diff --git a/Makefile b/Makefile index 8a69d18..baf8dc0 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ test: mocha \ --reporter $(REPORTER) \ --require should \ - --compilers coffee:coffee-script \ + --compilers coffee:coffee-script/register \ $(TESTS) .PHONY: build clean test diff --git a/binding.gyp b/binding.gyp index ce6cc36..e3cf178 100755 --- a/binding.gyp +++ b/binding.gyp @@ -1,5 +1,5 @@ { - 'variables': { 'target_arch%': 'ia32' }, + 'variables': { 'target_arch%': 'ia32'}, 'target_defaults': { 'default_configuration': 'Debug', @@ -48,7 +48,7 @@ 'targets': [ { - 'target_name': 'spatialite', + 'target_name': 'mod_spatialite', 'type': 'shared_library', 'direct_dependent_settings': { 'include_dirs': [ @@ -67,9 +67,12 @@ 'src/spatialite/deps/freexl/binding.gyp:freexl' ], 'sources': [ + 'src/spatialite/src/connection_cache/generator/code_generator.c', + 'src/spatialite/src/connection_cache/alloc_cache.c', + 'src/spatialite/src/dxf/dxf_writer.c', 'src/spatialite/src/gaiaaux/gg_sqlaux.c', 'src/spatialite/src/gaiaaux/gg_utf8.c', - 'src/spatialite/src/gaiaexif/gaia_exif.c', + 'src/spatialite/src/gaiaexif/gaia_exif.c', 'src/spatialite/src/gaiageo/gg_advanced.c', 'src/spatialite/src/gaiageo/gg_endian.c', 'src/spatialite/src/gaiageo/gg_ewkt.c', @@ -82,16 +85,37 @@ 'src/spatialite/src/gaiageo/gg_kml.c', 'src/spatialite/src/gaiageo/gg_lwgeom.c', 'src/spatialite/src/gaiageo/gg_relations.c', + 'src/spatialite/src/gaiageo/gg_relations_ext.c', 'src/spatialite/src/gaiageo/gg_shape.c', 'src/spatialite/src/gaiageo/gg_transform.c', 'src/spatialite/src/gaiageo/gg_vanuatu.c', 'src/spatialite/src/gaiageo/gg_voronoj.c', 'src/spatialite/src/gaiageo/gg_wkb.c', 'src/spatialite/src/gaiageo/gg_wkt.c', + 'src/spatialite/src/gaiageo/gg_xml.c', + 'src/spatialite/src/geopackage/gaia_cvt_gpkg.c', + 'src/spatialite/src/geopackage/gpkgAddGeometryColumn.c', + 'src/spatialite/src/geopackage/gpkgBinary.c', + 'src/spatialite/src/geopackage/gpkgCreateBaseTables.c', + 'src/spatialite/src/geopackage/gpkgCreateTilesTable.c', + 'src/spatialite/src/geopackage/gpkgCreateTilesZoomLevel.c', + 'src/spatialite/src/geopackage/gpkgGetImageType.c', + 'src/spatialite/src/geopackage/gpkgInsertEpsgSRID.c', + 'src/spatialite/src/geopackage/gpkgMakePoint.c', + 'src/spatialite/src/geopackage/gpkg_add_geometry_triggers.c', + 'src/spatialite/src/geopackage/gpkg_add_spatial_index.c', + 'src/spatialite/src/geopackage/gpkg_add_tile_triggers.c', + 'src/spatialite/src/geopackage/gpkg_get_normal_row.c', + 'src/spatialite/src/geopackage/gpkg_get_normal_zoom.c', + 'src/spatialite/src/md5/gaia_md5.c', + 'src/spatialite/src/md5/md5.c', 'src/spatialite/src/shapefiles/shapefiles.c', + 'src/spatialite/src/shapefiles/validator.c', + 'src/spatialite/src/spatialite/extra_tables.c', 'src/spatialite/src/spatialite/mbrcache.c', 'src/spatialite/src/spatialite/metatables.c', 'src/spatialite/src/spatialite/spatialite.c', + 'src/spatialite/src/spatialite/spatialite_init.c', 'src/spatialite/src/spatialite/statistics.c', 'src/spatialite/src/spatialite/virtualdbf.c', 'src/spatialite/src/spatialite/virtualfdo.c', @@ -99,6 +123,9 @@ 'src/spatialite/src/spatialite/virtualshape.c', 'src/spatialite/src/spatialite/virtualspatialindex.c', 'src/spatialite/src/spatialite/virtualXL.c', + 'src/spatialite/src/spatialite/virtualbbox.c', + 'src/spatialite/src/spatialite/virtualgpkg.c', + 'src/spatialite/src/spatialite/virtualxpath.c', 'src/spatialite/src/srsinit/epsg_inlined_00.c', 'src/spatialite/src/srsinit/epsg_inlined_01.c', 'src/spatialite/src/srsinit/epsg_inlined_02.c', @@ -140,6 +167,11 @@ 'src/spatialite/src/srsinit/epsg_inlined_38.c', 'src/spatialite/src/srsinit/epsg_inlined_39.c', 'src/spatialite/src/srsinit/epsg_inlined_40.c', + 'src/spatialite/src/srsinit/epsg_inlined_41.c', + 'src/spatialite/src/srsinit/epsg_inlined_42.c', + 'src/spatialite/src/srsinit/epsg_inlined_43.c', + 'src/spatialite/src/srsinit/epsg_inlined_44.c', + 'src/spatialite/src/srsinit/epsg_inlined_45.c', 'src/spatialite/src/srsinit/epsg_inlined_extra.c', 'src/spatialite/src/srsinit/epsg_inlined_prussian.c', 'src/spatialite/src/srsinit/epsg_inlined_wgs84_00.c', diff --git a/lib/spatialite.js b/lib/spatialite.js index ba0b786..cea60f0 100644 --- a/lib/spatialite.js +++ b/lib/spatialite.js @@ -2,22 +2,6 @@ var sqlite3 = module.exports = exports = require('sqlite3'); var fs = require('fs'); sqlite3.Database.prototype.spatialite = function(callback) { - var base_path = __dirname + '/../build/Release/spatialite'; - var linux_path = base_path + '.so'; - var osx_path = base_path + '.dylib'; - var windows_path = base_path + '.dll'; - - var extension_path = null; - - if (fs.existsSync(linux_path)) { - extension_path = linux_path; - } else if (fs.existsSync(osx_path)) { - extension_path = osx_path; - } else if (fs.existsSync(windows_path)) { - extension_path = windows_path; - } else { - throw new Error("Unable to find spatialite extension."); - } - - this.loadExtension(extension_path, callback); + var base_path = __dirname + '/../build/Release/mod_spatialite'; + this.loadExtension(base_path, callback); }; diff --git a/package.json b/package.json index 4d3bb4d..4fc84e1 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "url": "git://github.com/zhm/node-spatialite.git" }, "dependencies": { - "sqlite3": "*" + "sqlite3": "^3.0.5" }, "devDependencies": { "coffee-script": "*", @@ -32,6 +32,10 @@ "scripts": { "test": "make test" }, - "licenses": [{ "type": "BSD" }], + "licenses": [ + { + "type": "BSD" + } + ], "main": "./lib/spatialite" } diff --git a/src/config/linux/ia32/config.h b/src/config/linux/ia32/config.h index 0e2d2d3..dd7a716 100644 --- a/src/config/linux/ia32/config.h +++ b/src/config/linux/ia32/config.h @@ -172,7 +172,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -181,7 +181,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "4.0.0" +#define PACKAGE_VERSION "4.2.0" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -193,7 +193,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "4.0.0" +#define VERSION "4.2.0" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 @@ -216,3 +216,12 @@ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ + +/* Define target cpu */ +#define TARGET_CPU "x86_64-pc-linux-gnu" + +/* make library loadable */ +#define LOADABLE_EXTENSION 1 + +/* enable gpkg */ +#define ENABLE_GEOPACKAGE 1 diff --git a/src/config/linux/x64/config.h b/src/config/linux/x64/config.h index 0e2d2d3..5f19c54 100644 --- a/src/config/linux/x64/config.h +++ b/src/config/linux/x64/config.h @@ -172,7 +172,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -181,7 +181,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "4.0.0" +#define PACKAGE_VERSION "4.2.0" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -193,7 +193,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "4.0.0" +#define VERSION "4.2.0" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 @@ -216,3 +216,13 @@ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ +/* Define target cpu */ + +/* Define target cpu */ +#define TARGET_CPU "x86_64-pc-linux-gnu" + +/* make library loadable */ +#define LOADABLE_EXTENSION 1 + +/* enable gpkg */ +#define ENABLE_GEOPACKAGE 1 diff --git a/src/config/mac/x64/config.h b/src/config/mac/x64/config.h index 6efe6f1..dbc3d85 100644 --- a/src/config/mac/x64/config.h +++ b/src/config/mac/x64/config.h @@ -172,7 +172,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -181,7 +181,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "4.0.0" +#define PACKAGE_VERSION "4.2.0" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -193,7 +193,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "4.0.0" +#define VERSION "4.2.0" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 @@ -216,3 +216,12 @@ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ + +/* Define target cpu */ +#define TARGET_CPU "x86_64-apple-darwin14.1.0" + +/* make library loadable */ +#define LOADABLE_EXTENSION 1 + +/* enable gpkg */ +#define ENABLE_GEOPACKAGE 1 diff --git a/src/config/win/ia32/config-msvc.h b/src/config/win/ia32/config-msvc.h index e0f44b1..69fe3ac 100644 --- a/src/config/win/ia32/config-msvc.h +++ b/src/config/win/ia32/config-msvc.h @@ -177,7 +177,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -186,7 +186,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "4.0.0" +#define PACKAGE_VERSION "4.2.0" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -198,7 +198,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "4.0.0" +#define VERSION "4.2.0" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 @@ -221,3 +221,12 @@ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ + +/* Define target cpu */ +#define TARGET_CPU "msvc-32" + +/* make library loadable */ +#define LOADABLE_EXTENSION 1 + +/* enable gpkg */ +#define ENABLE_GEOPACKAGE 1 diff --git a/src/config/win/x64/config-msvc.h b/src/config/win/x64/config-msvc.h index ea00597..6984e0e 100644 --- a/src/config/win/x64/config-msvc.h +++ b/src/config/win/x64/config-msvc.h @@ -177,7 +177,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -221,3 +221,12 @@ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ + +/* Define target cpu */ +#define TARGET_CPU "msvc-32" + +/* make library loadable */ +#define LOADABLE_EXTENSION 1 + +/* enable gpkg */ +#define ENABLE_GEOPACKAGE 1 diff --git a/src/spatialite/Android_4.2.0.mk b/src/spatialite/Android_4.2.0.mk new file mode 100644 index 0000000..b7f8bac --- /dev/null +++ b/src/spatialite/Android_4.2.0.mk @@ -0,0 +1,23 @@ +# ------------------- +# Android_4.2.0.mk +# ndk-build clean +# ndk-build +# ------------------- +LOCAL_PATH := $(call my-dir) +JSQLITE_PATH := javasqlite-20120209 +SPATIALITE_PATH := libspatialite-4.2.0-rc1 +GEOS_PATH := geos-3.4.2 +PROJ4_PATH := proj-4.8.0 +SQLITE_PATH := sqlite-amalgamation-3080403 +ICONV_PATH := libiconv-1.13.1 +XML2_PATH := libxml2-2.9.1 +LZMA_PATH := xz-5.1.3alpha + +include $(LOCAL_PATH)/iconv-1.13.1.mk +include $(LOCAL_PATH)/sqlite-3080403.mk +include $(LOCAL_PATH)/proj4-4.8.0.mk +include $(LOCAL_PATH)/geos-3.4.2.mk +include $(LOCAL_PATH)/libxml2-2.9.1.mk +include $(LOCAL_PATH)/lzma-xz-5.1.3a.mk +include $(LOCAL_PATH)/spatialite-4.2.0.mk +include $(LOCAL_PATH)/jsqlite-20120209.mk diff --git a/src/spatialite/Doxyfile.in b/src/spatialite/Doxyfile.in index 4e9fc64..709c166 100644 --- a/src/spatialite/Doxyfile.in +++ b/src/spatialite/Doxyfile.in @@ -500,12 +500,6 @@ MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. @@ -609,6 +603,9 @@ INPUT = src/headers/spatialite.h \ src/headers/spatialite/gg_formats.h \ src/headers/spatialite/gg_dynamic.h \ src/headers/spatialite/gg_advanced.h \ + src/headers/spatialite/gg_xml.h \ + src/headers/spatialite/gg_wfs.h \ + src/headers/spatialite/gg_dxf.h \ examples/examples.doxy \ mainpage.doxy @@ -878,12 +875,6 @@ HTML_COLORSTYLE_GAMMA = 80 HTML_TIMESTAMP = YES -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports @@ -1055,21 +1046,6 @@ DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = NO - # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. diff --git a/src/spatialite/Makefile.am b/src/spatialite/Makefile.am index be31752..e14a393 100644 --- a/src/spatialite/Makefile.am +++ b/src/spatialite/Makefile.am @@ -2,10 +2,15 @@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip -EXTRA_DIST = makefile.vc nmake.opt Android.mk mainpage.doxy README.coverage \ +EXTRA_DIST = makefile.vc nmake.opt Android.mk Android_4.2.0.mk \ + spatialite-4.2.0.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h -SUBDIRS = src test examples +if ENABLE_EXAMPLES +EXAMPLES = examples +endif + +SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc diff --git a/src/spatialite/Makefile.in b/src/spatialite/Makefile.in index 8c31c94..8b71414 100644 --- a/src/spatialite/Makefile.in +++ b/src/spatialite/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,11 +79,11 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Doxyfile.in \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(srcdir)/spatialite.pc.in \ - $(top_srcdir)/configure AUTHORS COPYING INSTALL config.guess \ - config.sub depcomp install-sh ltmain.sh missing +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in $(srcdir)/Doxyfile.in \ + $(srcdir)/spatialite.pc.in AUTHORS COPYING INSTALL README \ + config.guess config.sub depcomp install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -70,15 +97,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile spatialite.pc CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -115,12 +155,34 @@ am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) +CSCOPE = cscope +DIST_SUBDIRS = src test examples DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -130,6 +192,7 @@ am__remove_distdir = \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -157,12 +220,14 @@ am__relativize = \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip GZIP_ENV = --best +DIST_TARGETS = dist-gzip dist-zip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -204,6 +269,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -225,6 +292,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -286,10 +356,12 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip -EXTRA_DIST = makefile.vc nmake.opt Android.mk mainpage.doxy README.coverage \ +EXTRA_DIST = makefile.vc nmake.opt Android.mk Android_4.2.0.mk \ + spatialite-4.2.0.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h -SUBDIRS = src test examples +@ENABLE_EXAMPLES_TRUE@EXAMPLES = examples +SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc MOSTLYCLEANFILES = libspatialite_cov.info @@ -382,22 +454,25 @@ uninstall-pkgconfigDATA: dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -412,57 +487,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -478,12 +508,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -495,15 +520,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -512,9 +533,31 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -582,41 +625,35 @@ distdir: $(DISTFILES) || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) + $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -627,8 +664,6 @@ distcheck: dist GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -640,9 +675,9 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -674,7 +709,7 @@ distcheck: dist && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -813,25 +848,24 @@ ps-am: uninstall-am: uninstall-pkgconfigDATA -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pkgconfigDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-pkgconfigDATA \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-pkgconfigDATA + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgconfigDATA coverage-init: diff --git a/src/spatialite/aclocal.m4 b/src/spatialite/aclocal.m4 index 74f17ca..f209970 100644 --- a/src/spatialite/aclocal.m4 +++ b/src/spatialite/aclocal.m4 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,33 +11,246 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -[m4_warning([this file was generated for autoconf 2.68. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -54,24 +266,22 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -90,7 +300,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -116,22 +326,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -150,16 +357,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 12 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -169,7 +374,7 @@ fi])]) # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -182,12 +387,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -195,8 +401,8 @@ AC_CACHE_CHECK([dependency style of $depcc], # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -236,16 +442,16 @@ AC_CACHE_CHECK([dependency style of $depcc], : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -254,8 +460,8 @@ AC_CACHE_CHECK([dependency style of $depcc], test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -263,7 +469,7 @@ AC_CACHE_CHECK([dependency style of $depcc], fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -311,7 +517,7 @@ AM_CONDITIONAL([am__fastdep$1], [ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -321,9 +527,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -338,20 +548,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -364,7 +572,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -376,21 +584,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -408,7 +614,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -416,29 +622,14 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 16 - # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -454,7 +645,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -483,31 +674,40 @@ AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -518,28 +718,32 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], @@ -567,15 +771,12 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -589,16 +790,14 @@ if test x"${install_sh}" != xset; then install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -615,20 +814,17 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), @@ -639,10 +835,11 @@ AC_DEFUN([AM_MAINTAINER_MODE], AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE @@ -650,18 +847,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) ] ) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -679,7 +872,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -706,15 +899,12 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -722,11 +912,10 @@ AC_DEFUN([AM_MISSING_PROG], $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -739,54 +928,51 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. +# -*- Autoconf -*- +# Obsolete and "removed" macros, that must however still report explicit +# error messages when used, to smooth transition. +# +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) +AC_DEFUN([AM_CONFIG_HEADER], +[AC_DIAGNOSE([obsolete], +['$0': this macro is obsolete. +You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl +AC_CONFIG_HEADERS($@)]) + +AC_DEFUN([AM_PROG_CC_STDC], +[AC_PROG_CC +am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc +AC_DIAGNOSE([obsolete], +['$0': this macro is obsolete. +You should simply use the 'AC][_PROG_CC' macro instead. +Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', +but upon 'ac_cv_prog_cc_stdc'.])]) + +AC_DEFUN([AM_C_PROTOTYPES], + [AC_FATAL([automatic de-ANSI-fication support has been removed])]) +AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -796,7 +982,7 @@ AC_DEFUN([_AM_MANGLE_OPTION], # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -812,22 +998,16 @@ AC_DEFUN([_AM_IF_OPTION], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -838,32 +1018,40 @@ case `pwd` in esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -873,46 +1061,118 @@ else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -926,18 +1186,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -947,76 +1205,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar +# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR diff --git a/src/spatialite/config-msvc.h b/src/spatialite/config-msvc.h index 740f31c..b95d9a6 100644 --- a/src/spatialite/config-msvc.h +++ b/src/spatialite/config-msvc.h @@ -5,14 +5,20 @@ / using the OsGeo4W libraries */ +/* Should be defined in order to enable GeoPackage support. */ +/* #undef ENABLE_GEOPACKAGE */ + +/* Should be defined in order to enable LIBXML2 support. */ +#define ENABLE_LIBXML2 1 + /* Should be defined in order to enable LWGEOM support. */ -#undef ENABLE_LWGEOM +/* #undef ENABLE_LWGEOM */ /* Should be defined in order to enable GEOS_ADVANCED support. */ #define GEOS_ADVANCED 1 /* Should be defined in order to enable GEOS_TRUNK experimental support. */ -#undef GEOS_TRUNK +/* #undef GEOS_TRUNK */ /* Define to 1 if you have the header file. */ /* #undef HAVE_DLFCN_H */ @@ -53,6 +59,9 @@ /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #define HAVE_LIBSQLITE3 1 +/* Define to 1 if you have the `z' library (-lz). */ +#define HAVE_LIBZ 1 + /* Define to 1 if you have the `localtime_r' function. */ /* #undef HAVE_LOCALTIME_R */ @@ -101,7 +110,7 @@ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 +/* #undef HAVE_STRCASECMP */ /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 @@ -116,7 +125,7 @@ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strncasecmp' function. */ -#define HAVE_STRNCASECMP 1 +/* #undef HAVE_STRNCASECMP */ /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 @@ -131,8 +140,10 @@ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 0 -#define YY_NO_UNISTD_H 1 +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ @@ -176,7 +187,7 @@ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libspatialite 4.0.0" +#define PACKAGE_STRING "libspatialite 4.2.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" @@ -185,11 +196,17 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "4.0.0" +#define PACKAGE_VERSION "4.2.0" + +/* Should be defined when linking liblwgeom from PostGIS 2.1 (or later). */ +/* #undef POSTGIS_2_1 1 */ /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 +/* Should contain a text-string describing the intended target CPU */ +#define TARGET_CPU "msvc-32" + /* Define to 1 if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 @@ -197,7 +214,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "4.0.0" +#define VERSION "4.2.0-rc2" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 diff --git a/src/spatialite/config.h.in b/src/spatialite/config.h.in index 9b34a3a..a37c737 100644 --- a/src/spatialite/config.h.in +++ b/src/spatialite/config.h.in @@ -1,5 +1,11 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +/* Should be defined in order to enable GeoPackage support. */ +#undef ENABLE_GEOPACKAGE + +/* Should be defined in order to enable LIBXML2 support. */ +#undef ENABLE_LIBXML2 + /* Should be defined in order to enable LWGEOM support. */ #undef ENABLE_LWGEOM @@ -48,6 +54,9 @@ /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #undef HAVE_LIBSQLITE3 +/* Define to 1 if you have the `z' library (-lz). */ +#undef HAVE_LIBZ + /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R @@ -128,6 +137,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the header file. */ +#undef HAVE_ZLIB_H + /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK @@ -181,9 +193,15 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Should be defined when linking liblwgeom from PostGIS 2.1 (or later). */ +#undef POSTGIS_2_1 + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Should contain a text-string describing the intended target CPU */ +#undef TARGET_CPU + /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME diff --git a/src/spatialite/configure b/src/spatialite/configure index 5e4b9c7..b8cdd25 100755 --- a/src/spatialite/configure +++ b/src/spatialite/configure @@ -1,13 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for libspatialite 4.0.0. +# Generated by GNU Autoconf 2.69 for libspatialite 4.2.0. # # Report bugs to . # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -136,6 +134,31 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -222,21 +246,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -339,6 +367,14 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -460,6 +496,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -494,16 +534,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -515,28 +555,8 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -570,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libspatialite' PACKAGE_TARNAME='libspatialite' -PACKAGE_VERSION='4.0.0' -PACKAGE_STRING='libspatialite 4.0.0' +PACKAGE_VERSION='4.2.0' +PACKAGE_STRING='libspatialite 4.2.0' PACKAGE_BUGREPORT='a.furieri@lqt.it' PACKAGE_URL='' @@ -620,6 +640,15 @@ MACOSX_FALSE MACOSX_TRUE MINGW_FALSE MINGW_TRUE +ENABLE_EXAMPLES_FALSE +ENABLE_EXAMPLES_TRUE +ENABLE_GEOPACKAGE_FALSE +ENABLE_GEOPACKAGE_TRUE +LIBXML2_LIBS +LIBXML2_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG GEOS_CFLAGS GEOS_LDFLAGS GEOSCONFIG @@ -682,6 +711,10 @@ CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -746,6 +779,7 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking +enable_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared @@ -764,9 +798,11 @@ enable_epsg enable_geos with_geosconfig enable_geosadvanced -enable_geostrunk enable_lwgeom +enable_libxml2 +enable_geopackage enable_gcov +enable_examples ' ac_precious_vars='build_alias host_alias @@ -780,7 +816,12 @@ CPP CXX CXXFLAGS CCC -CXXCPP' +CXXCPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +LIBXML2_CFLAGS +LIBXML2_LIBS' # Initialize some variables set by options. @@ -1236,8 +1277,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1323,7 +1362,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libspatialite 4.0.0 to adapt to many kinds of systems. +\`configure' configures libspatialite 4.2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1393,7 +1432,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libspatialite 4.0.0:";; + short | recursive ) echo "Configuration of libspatialite 4.2.0:";; esac cat <<\_ACEOF @@ -1401,10 +1440,15 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] @@ -1418,10 +1462,11 @@ Optional Features: --enable-epsg enables full EPSG dataset support [default=yes] --enable-geos enables GEOS inclusion [default=yes] --enable-geosadvanced enables GEOS advanced features [default=yes] - --enable-geostrunk enables GEOS-trunk experimental features - [default=no] --enable-lwgeom enables LWGEOM support [default=no] + --enable-libxml2 enables libxml2 inclusion [default=yes] + --enable-geopackage enables GeoPackage support [default=yes] --enable-gcov turn on code coverage analysis tools + --enable-examples enables building examples [default=yes] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1445,6 +1490,15 @@ Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + LIBXML2_CFLAGS + C compiler flags for LIBXML2, overriding pkg-config + LIBXML2_LIBS + linker flags for LIBXML2, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1512,10 +1566,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libspatialite configure 4.0.0 -generated by GNU Autoconf 2.68 +libspatialite configure 4.2.0 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1830,7 +1884,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1980,7 +2034,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2056,8 +2110,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libspatialite $as_me 4.0.0, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by libspatialite $as_me 4.2.0, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2412,7 +2466,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.11' +am__api_version='1.13' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2480,7 +2534,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2538,9 +2592,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2551,32 +2602,40 @@ case `pwd` in esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -2588,6 +2647,16 @@ Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2610,12 +2679,12 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2627,10 +2696,10 @@ if test x"${install_sh}" != xset; then esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -2649,7 +2718,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2689,7 +2758,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2740,7 +2809,7 @@ do test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -2769,12 +2838,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -2793,7 +2856,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2857,6 +2920,45 @@ else fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -2879,7 +2981,7 @@ fi # Define the identity of the package. PACKAGE='libspatialite' - VERSION='4.0.0' + VERSION='4.2.0' cat >>confdefs.h <<_ACEOF @@ -2907,12 +3009,22 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' @@ -2920,6 +3032,7 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -2973,6 +3086,10 @@ $as_echo "#define NDEBUG 1" >>confdefs.h + + + + # Checks for header files. DEPDIR="${am__leading_dot}deps" @@ -2993,7 +3110,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3059,7 +3176,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3099,7 +3216,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3152,7 +3269,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3193,7 +3310,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3251,7 +3368,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3295,7 +3412,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3741,8 +3858,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3838,8 +3954,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -3874,16 +3990,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -3892,8 +4008,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -3901,7 +4017,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4110,7 +4226,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4176,7 +4292,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -4549,6 +4665,20 @@ fi done +for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + +else + as_fn_error $? "cannot find zlib.h, bailing out" "$LINENO" 5 +fi + +done + # Checks for programs. @@ -4580,7 +4710,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4624,7 +4754,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4820,8 +4950,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4856,16 +4986,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4874,8 +5004,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4883,7 +5013,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4959,7 +5089,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4999,7 +5129,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5052,7 +5182,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5093,7 +5223,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -5151,7 +5281,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5195,7 +5325,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5391,8 +5521,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -5488,8 +5617,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -5524,16 +5653,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -5542,8 +5671,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -5551,7 +5680,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -5877,7 +6006,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5917,7 +6046,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5969,7 +6098,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6009,7 +6138,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6061,7 +6190,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6101,7 +6230,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6167,8 +6296,8 @@ esac -macro_version='2.4' -macro_revision='1.3293' +macro_version='2.4.2' +macro_revision='1.3337' @@ -6275,7 +6404,7 @@ do for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -6354,7 +6483,7 @@ do for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in @@ -6610,7 +6739,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6654,7 +6783,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7062,7 +7191,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7102,7 +7231,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7405,7 +7534,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7445,7 +7574,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7545,7 +7674,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7589,7 +7718,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7714,7 +7843,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7754,7 +7883,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7813,7 +7942,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7853,7 +7982,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8488,7 +8617,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8528,7 +8657,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8608,7 +8737,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8648,7 +8777,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8700,7 +8829,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8740,7 +8869,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8792,7 +8921,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8832,7 +8961,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8884,7 +9013,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8924,7 +9053,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8976,7 +9105,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9016,7 +9145,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16421,11 +16550,11 @@ else int main () { -/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus - /* Ultrix mips cc rejects this. */ + /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; - const charset cs; + const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -16442,8 +16571,9 @@ main () ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -16459,10 +16589,10 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this saying + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; @@ -17012,8 +17142,63 @@ else as_fn_error $? "'libsqlite3' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateInit_ in -lz" >&5 +$as_echo_n "checking for inflateInit_ in -lz... " >&6; } +if ${ac_cv_lib_z_inflateInit_+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inflateInit_ (); +int +main () +{ +return inflateInit_ (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_inflateInit_=yes +else + ac_cv_lib_z_inflateInit_=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateInit_" >&5 +$as_echo "$ac_cv_lib_z_inflateInit_" >&6; } +if test "x$ac_cv_lib_z_inflateInit_" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +else + as_fn_error $? "'libz' is required but it doesn't seem to be installed on this system." "$LINENO" 5 +fi + + +ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/connection_cache/Makefile src/connection_cache/generator/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_geos_tests/Makefile test/sql_stmt_geosadvanced_tests/Makefile test/sql_stmt_geopackage_tests/Makefile test/sql_stmt_proj_tests/Makefile test/sql_stmt_mathsql_tests/Makefile test/sql_stmt_lwgeom_tests/Makefile test/sql_stmt_libxml2_tests/Makefile test/sql_stmt_security_tests/Makefile test/sql_stmt_xmlsec_tests/Makefile examples/Makefile Doxyfile spatialite.pc" + + +# exporting the TARGET_CPU string +splite_cpu=`$CC -dumpmachine` +cat >>confdefs.h <<_ACEOF +#define TARGET_CPU "$splite_cpu" +_ACEOF -ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/virtualtext/Makefile test/Makefile examples/Makefile Doxyfile spatialite.pc" #----------------------------------------------------------------------- @@ -17179,6 +17364,64 @@ else as_fn_error $? "'libproj' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pj_init_ctx" >&5 +$as_echo_n "checking for library containing pj_init_ctx... " >&6; } +if ${ac_cv_search_pj_init_ctx+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pj_init_ctx (); +int +main () +{ +return pj_init_ctx (); + ; + return 0; +} +_ACEOF +for ac_lib in '' proj; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pj_init_ctx=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pj_init_ctx+:} false; then : + break +fi +done +if ${ac_cv_search_pj_init_ctx+:} false; then : + +else + ac_cv_search_pj_init_ctx=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pj_init_ctx" >&5 +$as_echo "$ac_cv_search_pj_init_ctx" >&6; } +ac_res=$ac_cv_search_pj_init_ctx +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "'libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed)." "$LINENO" 5 +fi + else $as_echo "#define OMIT_PROJ 1" >>confdefs.h @@ -17594,7 +17837,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GEOSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17659,9 +17902,9 @@ done # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSTopologyPreserveSimplify" >&5 -$as_echo_n "checking for library containing GEOSTopologyPreserveSimplify... " >&6; } -if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5 +$as_echo_n "checking for library containing GEOSCoveredBy... " >&6; } +if ${ac_cv_search_GEOSCoveredBy+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17674,11 +17917,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char GEOSTopologyPreserveSimplify (); +char GEOSCoveredBy (); int main () { -return GEOSTopologyPreserveSimplify (); +return GEOSCoveredBy (); ; return 0; } @@ -17691,34 +17934,34 @@ for ac_lib in '' geos_c; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_GEOSTopologyPreserveSimplify=$ac_res + ac_cv_search_GEOSCoveredBy=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : + if ${ac_cv_search_GEOSCoveredBy+:} false; then : break fi done -if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : +if ${ac_cv_search_GEOSCoveredBy+:} false; then : else - ac_cv_search_GEOSTopologyPreserveSimplify=no + ac_cv_search_GEOSCoveredBy=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSTopologyPreserveSimplify" >&5 -$as_echo "$ac_cv_search_GEOSTopologyPreserveSimplify" >&6; } -ac_res=$ac_cv_search_GEOSTopologyPreserveSimplify +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSCoveredBy" >&5 +$as_echo "$ac_cv_search_GEOSCoveredBy" >&6; } +ac_res=$ac_cv_search_GEOSCoveredBy if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else - as_fn_error $? "could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 + as_fn_error $? "could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 fi LIBS="$LIBS_SAVE" - LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' + LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" #----------------------------------------------------------------------- # --enable-geosadvanced @@ -17731,9 +17974,9 @@ else fi if test x"$enable_geosadvanced" != "xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5 -$as_echo_n "checking for library containing GEOSCoveredBy... " >&6; } -if ${ac_cv_search_GEOSCoveredBy+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSDelaunayTriangulation" >&5 +$as_echo_n "checking for library containing GEOSDelaunayTriangulation... " >&6; } +if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17746,11 +17989,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char GEOSCoveredBy (); +char GEOSDelaunayTriangulation (); int main () { -return GEOSCoveredBy (); +return GEOSDelaunayTriangulation (); ; return 0; } @@ -17763,30 +18006,30 @@ for ac_lib in '' geos_c; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_GEOSCoveredBy=$ac_res + ac_cv_search_GEOSDelaunayTriangulation=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_GEOSCoveredBy+:} false; then : + if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : break fi done -if ${ac_cv_search_GEOSCoveredBy+:} false; then : +if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : else - ac_cv_search_GEOSCoveredBy=no + ac_cv_search_GEOSDelaunayTriangulation=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSCoveredBy" >&5 -$as_echo "$ac_cv_search_GEOSCoveredBy" >&6; } -ac_res=$ac_cv_search_GEOSCoveredBy +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSDelaunayTriangulation" >&5 +$as_echo "$ac_cv_search_GEOSDelaunayTriangulation" >&6; } +ac_res=$ac_cv_search_GEOSDelaunayTriangulation if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else - as_fn_error $? "obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced." "$LINENO" 5 + as_fn_error $? "'libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi $as_echo "#define GEOS_ADVANCED 1" >>confdefs.h @@ -17794,19 +18037,53 @@ fi fi #----------------------------------------------------------------------- - # --enable-geostrunk + # --enable-lwgeom # - # Check whether --enable-geostrunk was given. -if test "${enable_geostrunk+set}" = set; then : - enableval=$enable_geostrunk; + # Check whether --enable-lwgeom was given. +if test "${enable_lwgeom+set}" = set; then : + enableval=$enable_lwgeom; else - enable_geostrunk=no + enable_lwgeom=no fi - if test x"$enable_geostrunk" != "xno"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSDelaunayTriangulation" >&5 -$as_echo_n "checking for library containing GEOSDelaunayTriangulation... " >&6; } -if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : + if test x"$enable_lwgeom" != "xno"; then + for ac_header in liblwgeom.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "liblwgeom.h" "ac_cv_header_liblwgeom_h" "$ac_includes_default" +if test "x$ac_cv_header_liblwgeom_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLWGEOM_H 1 +_ACEOF + +else + as_fn_error $? "cannot find liblwgeom.h, bailing out" "$LINENO" 5 +fi + +done + + _save_libs="$LIBS" + LIBS=$LIBS' -llwgeom -lgeos_c' + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return lwgeom_make_valid(); return 0; } + void lwgeom_init_allocators(void) { return; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + $as_echo "#define ENABLE_LWGEOM 1" >>confdefs.h + +else + as_fn_error $? "'liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid()." "$LINENO" 5 +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$_save_libs" + LIBS=$LIBS' -llwgeom -lgeos_c' + # + # testing for PostGIS 2.1 - lwgeom_set_handlers + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lwgeom_set_handlers" >&5 +$as_echo_n "checking for library containing lwgeom_set_handlers... " >&6; } +if ${ac_cv_search_lwgeom_set_handlers+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -17819,11 +18096,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char GEOSDelaunayTriangulation (); +char lwgeom_set_handlers (); int main () { -return GEOSDelaunayTriangulation (); +return lwgeom_set_handlers (); ; return 0; } @@ -17836,83 +18113,269 @@ for ac_lib in '' geos_c; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_GEOSDelaunayTriangulation=$ac_res + ac_cv_search_lwgeom_set_handlers=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : + if ${ac_cv_search_lwgeom_set_handlers+:} false; then : break fi done -if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : +if ${ac_cv_search_lwgeom_set_handlers+:} false; then : else - ac_cv_search_GEOSDelaunayTriangulation=no + ac_cv_search_lwgeom_set_handlers=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSDelaunayTriangulation" >&5 -$as_echo "$ac_cv_search_GEOSDelaunayTriangulation" >&6; } -ac_res=$ac_cv_search_GEOSDelaunayTriangulation +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lwgeom_set_handlers" >&5 +$as_echo "$ac_cv_search_lwgeom_set_handlers" >&6; } +ac_res=$ac_cv_search_lwgeom_set_handlers if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + $as_echo "#define POSTGIS_2_1 1" >>confdefs.h +fi + + fi else - as_fn_error $? "'libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system." "$LINENO" 5 + $as_echo "#define OMIT_GEOS 1" >>confdefs.h + fi - $as_echo "#define GEOS_TRUNK 1" >>confdefs.h +#----------------------------------------------------------------------- +# --enable-libxml2 +# +# Check whether --enable-libxml2 was given. +if test "${enable_libxml2+set}" = set; then : + enableval=$enable_libxml2; +else + enable_libxml2=yes +fi + +if test x"$enable_libxml2" != "xno"; then + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done + done +IFS=$as_save_IFS - #----------------------------------------------------------------------- - # --enable-lwgeom - # - # Check whether --enable-lwgeom was given. -if test "${enable_lwgeom+set}" = set; then : - enableval=$enable_lwgeom; + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - enable_lwgeom=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test x"$enable_lwgeom" != "xno"; then - for ac_header in liblwgeom.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "liblwgeom.h" "ac_cv_header_liblwgeom_h" "$ac_includes_default" -if test "x$ac_cv_header_liblwgeom_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBLWGEOM_H 1 -_ACEOF +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 else - as_fn_error $? "cannot find liblwgeom.h, bailing out" "$LINENO" 5 + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -done + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi - _save_libs="$LIBS" - LIBS=$LIBS' -llwgeom -lgeos_c' - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return lwgeom_make_valid(); return 0; } - void lwgeom_init_allocators(void) { return; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - $as_echo "#define ENABLE_LWGEOM 1" >>confdefs.h +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 +$as_echo_n "checking for LIBXML2... " >&6; } +if test -n "$LIBXML2_CFLAGS"; then + pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - as_fn_error $? "'liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid()." "$LINENO" 5 + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$_save_libs" - LIBS=$LIBS' -llwgeom -lgeos_c' - fi + else + pkg_failed=untried +fi +if test -n "$LIBXML2_LIBS"; then + pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - $as_echo "#define OMIT_GEOS 1" >>confdefs.h + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0" 2>&1` + else + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBXML2_PKG_ERRORS" >&5 + + as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 +else + LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS + LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + $as_echo "#define ENABLE_LIBXML2 1" >>confdefs.h + +fi + +#----------------------------------------------------------------------- +# --enable-geopackage +# +# Check whether --enable-geopackage was given. +if test "${enable_geopackage+set}" = set; then : + enableval=$enable_geopackage; +else + enable_geopackage=yes +fi + +if test x"$enable_geopackage" != "xno"; then + $as_echo "#define ENABLE_GEOPACKAGE 1" >>confdefs.h + +fi + if test x"$enable_geopackage" == "xyes"; then + ENABLE_GEOPACKAGE_TRUE= + ENABLE_GEOPACKAGE_FALSE='#' +else + ENABLE_GEOPACKAGE_TRUE='#' + ENABLE_GEOPACKAGE_FALSE= +fi + + +#----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-gcov @@ -17928,6 +18391,26 @@ if test "x$enable_gcov" = "xyes"; then fi #----------------------------------------------------------------------- +#----------------------------------------------------------------------- +# --enable-examples +# +# Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then : + enableval=$enable_examples; +else + enable_examples=yes +fi + + if test x"$enable_examples" != "xno"; then + ENABLE_EXAMPLES_TRUE= + ENABLE_EXAMPLES_FALSE='#' +else + ENABLE_EXAMPLES_TRUE='#' + ENABLE_EXAMPLES_FALSE= +fi + +#----------------------------------------------------------------------- + # Checking for MinGW if test "$target_alias" = "mingw32"; then MINGW_TRUE= @@ -18050,7 +18533,6 @@ DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= -U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -18065,6 +18547,14 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -18093,6 +18583,14 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_GEOPACKAGE_TRUE}" && test -z "${ENABLE_GEOPACKAGE_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_GEOPACKAGE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_EXAMPLES_TRUE}" && test -z "${ENABLE_EXAMPLES_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MINGW_TRUE}" && test -z "${MINGW_FALSE}"; then as_fn_error $? "conditional \"MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -18403,16 +18901,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -18472,28 +18970,16 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -18514,8 +19000,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libspatialite $as_me 4.0.0, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by libspatialite $as_me 4.2.0, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -18580,11 +19066,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libspatialite config.status 4.0.0 -configured by $0, generated by GNU Autoconf 2.68, +libspatialite config.status 4.2.0 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -18675,7 +19161,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -19100,12 +19586,28 @@ do "src/gaiageo/flex/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/flex/Makefile" ;; "src/gaiageo/lemon/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/Makefile" ;; "src/gaiageo/lemon/lemon_src/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/lemon_src/Makefile" ;; + "src/geopackage/Makefile") CONFIG_FILES="$CONFIG_FILES src/geopackage/Makefile" ;; "src/spatialite/Makefile") CONFIG_FILES="$CONFIG_FILES src/spatialite/Makefile" ;; "src/shapefiles/Makefile") CONFIG_FILES="$CONFIG_FILES src/shapefiles/Makefile" ;; + "src/dxf/Makefile") CONFIG_FILES="$CONFIG_FILES src/dxf/Makefile" ;; + "src/md5/Makefile") CONFIG_FILES="$CONFIG_FILES src/md5/Makefile" ;; "src/srsinit/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/Makefile" ;; "src/srsinit/epsg_update/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/epsg_update/Makefile" ;; + "src/connection_cache/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/Makefile" ;; + "src/connection_cache/generator/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/generator/Makefile" ;; "src/virtualtext/Makefile") CONFIG_FILES="$CONFIG_FILES src/virtualtext/Makefile" ;; + "src/wfs/Makefile") CONFIG_FILES="$CONFIG_FILES src/wfs/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "test/sql_stmt_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_tests/Makefile" ;; + "test/sql_stmt_geos_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_tests/Makefile" ;; + "test/sql_stmt_geosadvanced_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geosadvanced_tests/Makefile" ;; + "test/sql_stmt_geopackage_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geopackage_tests/Makefile" ;; + "test/sql_stmt_proj_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_proj_tests/Makefile" ;; + "test/sql_stmt_mathsql_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_mathsql_tests/Makefile" ;; + "test/sql_stmt_lwgeom_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_lwgeom_tests/Makefile" ;; + "test/sql_stmt_libxml2_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_libxml2_tests/Makefile" ;; + "test/sql_stmt_security_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_security_tests/Makefile" ;; + "test/sql_stmt_xmlsec_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_xmlsec_tests/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "spatialite.pc") CONFIG_FILES="$CONFIG_FILES spatialite.pc" ;; @@ -19705,7 +20207,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -19718,7 +20220,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -19752,21 +20254,19 @@ $as_echo X"$mf" | continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff --git a/src/spatialite/configure.ac b/src/spatialite/configure.ac index 380d190..a42cac4 100644 --- a/src/spatialite/configure.ac +++ b/src/spatialite/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT(libspatialite, 4.0.0, a.furieri@lqt.it) +AC_INIT(libspatialite, 4.2.0, a.furieri@lqt.it) AC_LANG(C) AC_CONFIG_MACRO_DIR([m4]) @@ -47,6 +47,14 @@ AH_TEMPLATE([OMIT_GEOCALLBACKS], [Should be defined in order to disable GEOCALLBACKS support.]) AH_TEMPLATE([OMIT_FREEXL], [Should be defined in order to disable FREEXL support.]) +AH_TEMPLATE([ENABLE_LIBXML2], + [Should be defined in order to enable LIBXML2 support.]) +AH_TEMPLATE([ENABLE_GEOPACKAGE], + [Should be defined in order to enable GeoPackage support.]) +AH_TEMPLATE([POSTGIS_2_1], + [Should be defined when linking liblwgeom from PostGIS 2.1 (or later).]) +AH_TEMPLATE([TARGET_CPU], + [Should contain a text-string describing the intended target CPU]) # Checks for header files. AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) @@ -63,6 +71,7 @@ AC_CHECK_HEADERS(sys/time.h,, [AC_MSG_ERROR([cannot find sys/time.h, bailing out AC_CHECK_HEADERS(unistd.h,, [AC_MSG_ERROR([cannot find unistd.h, bailing out])]) AC_CHECK_HEADERS(sqlite3.h,, [AC_MSG_ERROR([cannot find sqlite3.h, bailing out])]) AC_CHECK_HEADERS(sqlite3ext.h,, [AC_MSG_ERROR([cannot find sqlite3ext.h, bailing out])]) +AC_CHECK_HEADERS(zlib.h,, [AC_MSG_ERROR([cannot find zlib.h, bailing out])]) # Checks for programs. @@ -93,6 +102,7 @@ AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftr # Checks for installed libraries AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm) +AC_CHECK_LIB(z,inflateInit_,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile \ src/Makefile \ @@ -103,16 +113,37 @@ AC_CONFIG_FILES([Makefile \ src/gaiageo/flex/Makefile \ src/gaiageo/lemon/Makefile \ src/gaiageo/lemon/lemon_src/Makefile \ + src/geopackage/Makefile \ src/spatialite/Makefile \ src/shapefiles/Makefile \ + src/dxf/Makefile \ + src/md5/Makefile \ src/srsinit/Makefile \ src/srsinit/epsg_update/Makefile \ + src/connection_cache/Makefile \ + src/connection_cache/generator/Makefile \ src/virtualtext/Makefile \ + src/wfs/Makefile \ test/Makefile \ + test/sql_stmt_tests/Makefile \ + test/sql_stmt_geos_tests/Makefile \ + test/sql_stmt_geosadvanced_tests/Makefile \ + test/sql_stmt_geopackage_tests/Makefile \ + test/sql_stmt_proj_tests/Makefile \ + test/sql_stmt_mathsql_tests/Makefile \ + test/sql_stmt_lwgeom_tests/Makefile \ + test/sql_stmt_libxml2_tests/Makefile \ + test/sql_stmt_security_tests/Makefile \ + test/sql_stmt_xmlsec_tests/Makefile \ examples/Makefile \ Doxyfile \ spatialite.pc]) +# exporting the TARGET_CPU string +splite_cpu=`$CC -dumpmachine` +AC_DEFINE_UNQUOTED([TARGET_CPU], ["$splite_cpu"]) + + #----------------------------------------------------------------------- # --enable-mathsql # @@ -146,6 +177,7 @@ AC_ARG_ENABLE(proj, [AS_HELP_STRING( if test x"$enable_proj" != "xno"; then AC_CHECK_HEADERS(proj_api.h,, [AC_MSG_ERROR([cannot find proj_api.h, bailing out])]) AC_SEARCH_LIBS(pj_init_plus,proj,,AC_MSG_ERROR(['libproj' is required but it doesn't seem to be installed on this system.]),-lm) + AC_SEARCH_LIBS(pj_init_ctx,proj,,AC_MSG_ERROR(['libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed).]),-lm) else AC_DEFINE(OMIT_PROJ) fi @@ -239,9 +271,9 @@ if test x"$enable_geos" != "xno"; then # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" - AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) + AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig])) LIBS="$LIBS_SAVE" - LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' + LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" #----------------------------------------------------------------------- # --enable-geosadvanced @@ -250,19 +282,8 @@ if test x"$enable_geos" != "xno"; then [--enable-geosadvanced], [enables GEOS advanced features [default=yes]])], [], [enable_geosadvanced=yes]) if test x"$enable_geosadvanced" != "xno"; then - AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced.])) - AC_DEFINE(GEOS_ADVANCED) - fi - - #----------------------------------------------------------------------- - # --enable-geostrunk - # - AC_ARG_ENABLE(geostrunk, [AS_HELP_STRING( - [--enable-geostrunk], [enables GEOS-trunk experimental features [default=no]])], - [], [enable_geostrunk=no]) - if test x"$enable_geostrunk" != "xno"; then AC_SEARCH_LIBS(GEOSDelaunayTriangulation,geos_c,,AC_MSG_ERROR(['libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system.])) - AC_DEFINE(GEOS_TRUNK) + AC_DEFINE(GEOS_ADVANCED) fi #----------------------------------------------------------------------- @@ -281,11 +302,41 @@ if test x"$enable_geos" != "xno"; then [AC_MSG_ERROR(['liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid().])]) LIBS="$_save_libs" LIBS=$LIBS' -llwgeom -lgeos_c' + # + # testing for PostGIS 2.1 - lwgeom_set_handlers + # + AC_SEARCH_LIBS(lwgeom_set_handlers,geos_c,AC_DEFINE(POSTGIS_2_1)) fi else AC_DEFINE(OMIT_GEOS) fi +#----------------------------------------------------------------------- +# --enable-libxml2 +# +AC_ARG_ENABLE(libxml2, [AS_HELP_STRING( + [--enable-libxml2], [enables libxml2 inclusion [default=yes]])], + [], [enable_libxml2=yes]) +if test x"$enable_libxml2" != "xno"; then + PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], , AC_MSG_ERROR(['libxml2' is required but it doesn't seem to be installed on this system.])) + AC_SUBST(LIBXML2_CFLAGS) + AC_SUBST(LIBXML2_LIBS) + AC_DEFINE(ENABLE_LIBXML2) +fi + +#----------------------------------------------------------------------- +# --enable-geopackage +# +AC_ARG_ENABLE(geopackage, [AS_HELP_STRING( + [--enable-geopackage], [enables GeoPackage support [default=yes]])], + [], [enable_geopackage=yes]) +if test x"$enable_geopackage" != "xno"; then + AC_DEFINE(ENABLE_GEOPACKAGE) +fi +AM_CONDITIONAL([ENABLE_GEOPACKAGE], [test x"$enable_geopackage" == "xyes"]) + +#----------------------------------------------------------------------- + #----------------------------------------------------------------------- # --enable-gcov # @@ -297,6 +348,15 @@ if test "x$enable_gcov" = "xyes"; then fi #----------------------------------------------------------------------- +#----------------------------------------------------------------------- +# --enable-examples +# +AC_ARG_ENABLE(examples, [AS_HELP_STRING( + [--enable-examples], [enables building examples [default=yes]])], + [], [enable_examples=yes]) +AM_CONDITIONAL(ENABLE_EXAMPLES, [test x"$enable_examples" != "xno"]) +#----------------------------------------------------------------------- + # Checking for MinGW AM_CONDITIONAL([MINGW], [test "$target_alias" = "mingw32"]) # Checking for Mac OsX diff --git a/src/spatialite/examples/Makefile.am b/src/spatialite/examples/Makefile.am index 20df747..f796a97 100644 --- a/src/spatialite/examples/Makefile.am +++ b/src/spatialite/examples/Makefile.am @@ -3,6 +3,8 @@ noinst_PROGRAMS = demo1 demo2 demo3 demo4 demo5 AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) +LDADD = @LIBXML2_LIBS@ + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy diff --git a/src/spatialite/examples/Makefile.in b/src/spatialite/examples/Makefile.in index bf62ef1..3cb7144 100644 --- a/src/spatialite/examples/Makefile.in +++ b/src/spatialite/examples/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,7 +81,8 @@ host_triplet = @host@ noinst_PROGRAMS = demo1$(EXEEXT) demo2$(EXEEXT) demo3$(EXEEXT) \ demo4$(EXEEXT) demo5$(EXEEXT) subdir = examples -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -70,31 +98,61 @@ PROGRAMS = $(noinst_PROGRAMS) demo1_SOURCES = demo1.c demo1_OBJECTS = demo1.$(OBJEXT) demo1_LDADD = $(LDADD) +demo1_DEPENDENCIES = +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = demo2_SOURCES = demo2.c demo2_OBJECTS = demo2.$(OBJEXT) demo2_LDADD = $(LDADD) +demo2_DEPENDENCIES = demo3_SOURCES = demo3.c demo3_OBJECTS = demo3.$(OBJEXT) demo3_LDADD = $(LDADD) +demo3_DEPENDENCIES = demo4_SOURCES = demo4.c demo4_OBJECTS = demo4.$(OBJEXT) demo4_LDADD = $(LDADD) +demo4_DEPENDENCIES = demo5_SOURCES = demo5.c demo5_OBJECTS = demo5.$(OBJEXT) demo5_LDADD = $(LDADD) +demo5_DEPENDENCIES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c DIST_SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c am__can_run_installinfo = \ @@ -102,11 +160,29 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -148,6 +224,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -169,6 +247,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -230,6 +311,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) +LDADD = @LIBXML2_LIBS@ MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy all: all-am @@ -275,21 +357,26 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + demo1$(EXEEXT): $(demo1_OBJECTS) $(demo1_DEPENDENCIES) $(EXTRA_demo1_DEPENDENCIES) @rm -f demo1$(EXEEXT) - $(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS) + demo2$(EXEEXT): $(demo2_OBJECTS) $(demo2_DEPENDENCIES) $(EXTRA_demo2_DEPENDENCIES) @rm -f demo2$(EXEEXT) - $(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS) + demo3$(EXEEXT): $(demo3_OBJECTS) $(demo3_DEPENDENCIES) $(EXTRA_demo3_DEPENDENCIES) @rm -f demo3$(EXEEXT) - $(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS) + demo4$(EXEEXT): $(demo4_OBJECTS) $(demo4_DEPENDENCIES) $(EXTRA_demo4_DEPENDENCIES) @rm -f demo4$(EXEEXT) - $(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS) + demo5$(EXEEXT): $(demo5_OBJECTS) $(demo5_DEPENDENCIES) $(EXTRA_demo5_DEPENDENCIES) @rm -f demo5$(EXEEXT) - $(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -304,25 +391,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo5.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -330,26 +417,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -361,15 +437,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -378,6 +450,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -520,18 +607,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/examples/demo1.c b/src/spatialite/examples/demo1.c index c6fe557..7e731a2 100644 --- a/src/spatialite/examples/demo1.c +++ b/src/spatialite/examples/demo1.c @@ -51,6 +51,7 @@ main (int argc, char *argv[]) int blob_size; int geom_type; double measure; + void *cache; if (argc != 2) @@ -60,23 +61,6 @@ main (int argc, char *argv[]) } - -/* -VERY IMPORTANT: -you must initialize the SpatiaLite extension [and related] -BEFORE attempting to perform any other SQLite call -*/ - spatialite_init (0); - - -/* showing the SQLite version */ - printf ("SQLite version: %s\n", sqlite3_libversion ()); -/* showing the SpatiaLite version */ - printf ("SpatiaLite version: %s\n", spatialite_version ()); - printf ("\n\n"); - - - /* trying to connect the test DB: - this demo was designed in order to connect the standard @@ -93,6 +77,31 @@ Please notice: we'll establish a READ ONLY connection return -1; } +/* +VERY IMPORTANT: +you must initialize the SpatiaLite extension [and related] +BEFORE attempting to perform any other SQLite call +========================================================== +Please note: starting since 4.1.0 this is completely canged: +- a separate memory block (internal cache) is required by + each single connection +- allocating/freeing this block falls under the responsibility + of the program handling the connection +- in multithreaded programs a connection can never be share by + different threads; the internal-cache block must be allocated + by the same thread holding the connection +*/ + + cache = spatialite_alloc_connection (); + spatialite_init_ex (handle, cache, 0); + + +/* showing the SQLite version */ + printf ("SQLite version: %s\n", sqlite3_libversion ()); +/* showing the SpatiaLite version */ + printf ("SpatiaLite version: %s\n", spatialite_version ()); + printf ("\n\n"); + /* @@ -341,6 +350,10 @@ for each column we'll then get: printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } + +/* freeing the internal-cache memory block */ + spatialite_cleanup_ex (cache); + printf ("\n\nsample successfully terminated\n"); /* we have to free the dynamic pointer array used to store geotable names */ for (i = 0; i < n_geotables; i++) @@ -349,11 +362,15 @@ for each column we'll then get: free (p_geotables[i]); } free (p_geotables); + spatialite_shutdown(); return 0; abort: sqlite3_close (handle); - spatialite_cleanup(); + +/* freeing the internal-cache memory block */ + spatialite_cleanup_ex (cache); + if (p_geotables) { /* we have to free the dynamic pointer array used to store geotable names */ @@ -364,5 +381,6 @@ for each column we'll then get: } free (p_geotables); } + spatialite_shutdown(); return -1; } diff --git a/src/spatialite/examples/demo2.c b/src/spatialite/examples/demo2.c index 652beca..ebc6e94 100644 --- a/src/spatialite/examples/demo2.c +++ b/src/spatialite/examples/demo2.c @@ -200,7 +200,10 @@ main (int argc, char *argv[]) gaiaOutBuffer wkt; int ret; sqlite3 *handle; + void *cache; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ /* @@ -211,7 +214,6 @@ and you *must* establish a "fake" DB connection in order to properly initialize SpatiaLite and GEOS libraries */ - spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { @@ -220,6 +222,8 @@ properly initialize SpatiaLite and GEOS libraries sqlite3_close (handle); return -1; } + cache = spatialite_alloc_connection (); + spatialite_init_ex (handle, cache, 0); #ifndef OMIT_GEOS /* GEOS must be enabled */ @@ -537,6 +541,7 @@ we have to destroy each object using temporary storage before exit if (geo_coll) gaiaFreeGeomColl (geo_coll); sqlite3_close (handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); + spatialite_shutdown(); return 0; } diff --git a/src/spatialite/examples/demo3.c b/src/spatialite/examples/demo3.c index 2ae6c5f..bc63f45 100644 --- a/src/spatialite/examples/demo3.c +++ b/src/spatialite/examples/demo3.c @@ -50,6 +50,7 @@ main (int argc, char *argv[]) char *count; clock_t t0; clock_t t1; + void *cache; if (argc != 2) @@ -59,22 +60,6 @@ main (int argc, char *argv[]) } -/* -VERY IMPORTANT: -you must initialize the SpatiaLite extension [and related] -BEFORE attempting to perform any other SQLite call -*/ - spatialite_init (0); - - -/* showing the SQLite version */ - printf ("SQLite version: %s\n", sqlite3_libversion ()); -/* showing the SpatiaLite version */ - printf ("SpatiaLite version: %s\n", spatialite_version ()); - printf ("\n\n"); - - - /* trying to connect the test DB: - this demo is intended to create a new, empty database @@ -87,14 +72,22 @@ trying to connect the test DB: sqlite3_close (handle); return -1; } + cache = spatialite_alloc_connection (); + spatialite_init_ex (handle, cache, 0); +/* showing the SQLite version */ + printf ("SQLite version: %s\n", sqlite3_libversion ()); +/* showing the SpatiaLite version */ + printf ("SpatiaLite version: %s\n", spatialite_version ()); + printf ("\n\n"); + /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ - strcpy (sql, "SELECT InitSpatialMetadata()"); + strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { @@ -361,11 +354,13 @@ the idea is simply to simulate exactly the same conditions as above printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } + spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); return 0; abort: sqlite3_close (handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); + spatialite_shutdown(); return -1; } diff --git a/src/spatialite/examples/demo4.c b/src/spatialite/examples/demo4.c index 5c020a1..110137f 100644 --- a/src/spatialite/examples/demo4.c +++ b/src/spatialite/examples/demo4.c @@ -50,6 +50,7 @@ main (int argc, char *argv[]) char *count; clock_t t0; clock_t t1; + void *cache; if (argc != 2) @@ -59,22 +60,6 @@ main (int argc, char *argv[]) } -/* -VERY IMPORTANT: -you must initialize the SpatiaLite extension [and related] -BEFORE attempting to perform any other SQLite call -*/ - spatialite_init (0); - - -/* showing the SQLite version */ - printf ("SQLite version: %s\n", sqlite3_libversion ()); -/* showing the SpatiaLite version */ - printf ("SpatiaLite version: %s\n", spatialite_version ()); - printf ("\n\n"); - - - /* trying to connect the test DB: - this demo is intended to create a new, empty database @@ -87,14 +72,22 @@ trying to connect the test DB: sqlite3_close (handle); return -1; } + cache = spatialite_alloc_connection (); + spatialite_init_ex (handle, cache, 0); +/* showing the SQLite version */ + printf ("SQLite version: %s\n", sqlite3_libversion ()); +/* showing the SpatiaLite version */ + printf ("SpatiaLite version: %s\n", spatialite_version ()); + printf ("\n\n"); + /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ - strcpy (sql, "SELECT InitSpatialMetadata()"); + strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { @@ -359,10 +352,12 @@ the idea is simply to simulate exactly the same conditions as above return -1; } printf ("\n\nsample successfully terminated\n"); + spatialite_cleanup_ex (cache); return 0; abort: sqlite3_close (handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); + spatialite_shutdown(); return -1; } diff --git a/src/spatialite/examples/demo5.c b/src/spatialite/examples/demo5.c index 9d0cb83..85839d5 100644 --- a/src/spatialite/examples/demo5.c +++ b/src/spatialite/examples/demo5.c @@ -180,7 +180,6 @@ do_help () fprintf (stderr, "-g or --geometry column_name geometry column [optional]\n\n"); fprintf (stderr, "you can specify one of the following modes:\n"); - fprintf (stderr, "-f or --fast FAST mode [default]\n"); fprintf (stderr, "-o or --optimistic OPTIMISTIC mode\n"); fprintf (stderr, "-p or --pessimistic PESSIMISTIC mode\n"); } @@ -193,12 +192,16 @@ main (int argc, char *argv[]) sqlite3 *handle; int i; int next_arg = ARG_NONE; - int mode = GAIA_VECTORS_LIST_FAST; + int mode = GAIA_VECTORS_LIST_OPTIMISTIC; int error = 0; const char *db_path = NULL; const char *table = NULL; const char *geometry = NULL; gaiaVectorLayersListPtr list; + void *cache; + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ for (i = 1; i < argc; i++) { @@ -251,13 +254,6 @@ main (int argc, char *argv[]) next_arg = ARG_NONE; continue; } - if (strcasecmp (argv[i], "-f") == 0 - || strcmp (argv[i], "--fast") == 0) - { - mode = GAIA_VECTORS_LIST_FAST; - next_arg = ARG_NONE; - continue; - } if (strcasecmp (argv[i], "-o") == 0 || strcmp (argv[i], "--optimistic") == 0) { @@ -288,19 +284,6 @@ main (int argc, char *argv[]) } -/* -VERY IMPORTANT: -you must initialize the SpatiaLite extension [and related] -BEFORE attempting to perform any other SQLite call -*/ - spatialite_init (0); - -/* showing the SQLite version */ - printf ("SQLite version: %s\n", sqlite3_libversion ()); -/* showing the SpatiaLite version */ - printf ("SpatiaLite version: %s\n", spatialite_version ()); - printf ("\n\n"); - /* trying to connect the test DB: - this demo is intended to create an existing, already populated database @@ -313,6 +296,16 @@ trying to connect the test DB: sqlite3_close (handle); return -1; } + cache = spatialite_alloc_connection (); + spatialite_init_ex (handle, cache, 0); + + +/* showing the SQLite version */ + printf ("SQLite version: %s\n", sqlite3_libversion ()); +/* showing the SpatiaLite version */ + printf ("SpatiaLite version: %s\n", spatialite_version ()); + printf ("\n\n"); + /* listing the requested layer(s) */ list = gaiaGetVectorLayersList (handle, table, geometry, mode); @@ -326,7 +319,8 @@ trying to connect the test DB: printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } - spatialite_cleanup (); + spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); + spatialite_shutdown(); return 0; } diff --git a/src/spatialite/ltmain.sh b/src/spatialite/ltmain.sh old mode 100755 new mode 100644 index 78cf017..c2852d8 --- a/src/spatialite/ltmain.sh +++ b/src/spatialite/ltmain.sh @@ -1,9 +1,9 @@ -# libtool (GNU libtool) 2.4 +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -41,6 +41,7 @@ # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) +# --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages @@ -69,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # @@ -79,9 +80,9 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4 +VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" -package_revision=1.3293 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -136,15 +137,10 @@ progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -387,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -771,8 +767,8 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } @@ -1052,6 +1048,7 @@ opt_finish=false opt_help=false opt_help_all=false opt_silent=: +opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false @@ -1118,6 +1115,10 @@ esac ;; --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) @@ -2059,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -3201,11 +3202,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -3470,7 +3473,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -3982,14 +3985,17 @@ func_exec_program_core () # launches target application with the remaining arguments. func_exec_program () { - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac func_exec_program_core \${1+\"\$@\"} } @@ -5057,9 +5063,15 @@ void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' cat <<"EOF" } EOF @@ -5643,7 +5655,8 @@ func_mode_link () continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -6111,7 +6124,10 @@ func_mode_link () case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then @@ -6147,7 +6163,8 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" @@ -6430,19 +6447,19 @@ func_mode_link () # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done continue fi # $pass = conv @@ -6831,7 +6848,7 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -7316,6 +7333,7 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result @@ -7334,6 +7352,9 @@ func_mode_link () revision="$number_minor" lt_irix_increment=no ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; esac ;; no) @@ -7432,7 +7453,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -8020,6 +8041,11 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= @@ -8058,11 +8084,7 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -9152,6 +9174,8 @@ EOF esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" @@ -9261,7 +9285,8 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" diff --git a/src/spatialite/m4/ltversion.m4 b/src/spatialite/m4/ltversion.m4 index 9c7b5d4..07a8602 100644 --- a/src/spatialite/m4/ltversion.m4 +++ b/src/spatialite/m4/ltversion.m4 @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3293 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/src/spatialite/makefile.vc b/src/spatialite/makefile.vc index 6d9857e..208f460 100644 --- a/src/spatialite/makefile.vc +++ b/src/spatialite/makefile.vc @@ -12,13 +12,21 @@ LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \ src\gaiageo\gg_gml.obj src\gaiageo\gg_kml.obj \ src\gaiageo\gg_relations.obj src\gaiageo\gg_shape.obj \ src\gaiageo\gg_transform.obj src\gaiageo\gg_vanuatu.obj \ - src\gaiageo\gg_wkb.obj src\gaiageo\gg_wkt.obj src\gaiageo\gg_extras.obj \ + src\gaiageo\gg_wkb.obj src\gaiageo\gg_wkt.obj \ + src\gaiageo\gg_extras.obj src\gaiageo\gg_xml.obj \ + src\gaiageo\gg_relations_ext.obj src/connection_cache/alloc_cache.obj \ src\spatialite\mbrcache.obj src\shapefiles\shapefiles.obj \ src\spatialite\spatialite.obj src\spatialite\virtualdbf.obj \ src\spatialite\virtualfdo.obj src\spatialite\virtualnetwork.obj \ src\spatialite\virtualshape.obj src\spatialite\virtualspatialindex.obj \ src\spatialite\statistics.obj src\spatialite\metatables.obj \ - src\spatialite\virtualXL.obj src\srsinit\srs_init.obj \ + src\spatialite\virtualXL.obj src\spatialite\extra_tables.obj \ + src\spatialite\virtualxpath.obj src\spatialite\virtualbbox.obj \ + src\spatialite\spatialite_init.obj src\gaiageo\gg_voronoj.obj \ + src\wfs\wfs_in.obj src\srsinit\srs_init.obj \ + src\dxf\dxf_parser.obj src\dxf\dxf_loader.obj src\dxf\dxf_writer.obj \ + src\dxf\dxf_load_distinct.obj src\dxf\dxf_load_mixed.obj \ + src\shapefiles\validator.obj src\md5\md5.obj src\md5\gaia_md5.obj \ src\srsinit\epsg_inlined_00.obj src\srsinit\epsg_inlined_01.obj \ src\srsinit\epsg_inlined_02.obj src\srsinit\epsg_inlined_03.obj \ src\srsinit\epsg_inlined_04.obj src\srsinit\epsg_inlined_05.obj \ @@ -39,7 +47,10 @@ LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \ src\srsinit\epsg_inlined_34.obj src\srsinit\epsg_inlined_35.obj \ src\srsinit\epsg_inlined_36.obj src\srsinit\epsg_inlined_37.obj \ src\srsinit\epsg_inlined_38.obj src\srsinit\epsg_inlined_39.obj \ - src\srsinit\epsg_inlined_40.obj src\srsinit\epsg_inlined_extra.obj \ + src\srsinit\epsg_inlined_40.obj src\srsinit\epsg_inlined_41.obj \ + src\srsinit\epsg_inlined_42.obj src\srsinit\epsg_inlined_43.obj \ + src\srsinit\epsg_inlined_44.obj src\srsinit\epsg_inlined_45.obj \ + src\srsinit\epsg_inlined_extra.obj \ src\srsinit\epsg_inlined_prussian.obj \ src\srsinit\epsg_inlined_wgs84_00.obj src\srsinit\epsg_inlined_wgs84_01.obj \ src\versioninfo\version.obj src\virtualtext\virtualtext.obj @@ -61,9 +72,10 @@ $(SPATIALITE_DLL): spatialite_i.lib spatialite_i.lib: $(LIBOBJ) link /debug /dll /out:$(SPATIALITE_DLL) \ /implib:spatialite_i.lib $(LIBOBJ) \ - C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c_i.lib \ + C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \ C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \ - C:\OSGeo4W\lib\sqlite3_i.lib + C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \ + C:\OSGeo4W\lib\libxml2.lib if exist $(SPATIALITE_DLL).manifest mt -manifest \ $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2 @@ -82,6 +94,9 @@ clean: del src\srsinit\*.obj del src\versioninfo\*.obj del src\virtualtext\*.obj + del src\wfs\*.obj + del src\dxf\*.obj + del src\md5\*.obj del *.pdb install: all diff --git a/src/spatialite/nmake.opt b/src/spatialite/nmake.opt index 304bdc6..0960ec1 100644 --- a/src/spatialite/nmake.opt +++ b/src/spatialite/nmake.opt @@ -3,7 +3,7 @@ INSTDIR=C:\OSGeo4W # Uncomment the first for an optimized build, or the second for debug. OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ - /DDLL_EXPORT + /DDLL_EXPORT /DYY_NO_UNISTD_H #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT # Set the version number for the DLL. Normally we leave this blank since diff --git a/src/spatialite/spatialite-4.2.0.mk b/src/spatialite/spatialite-4.2.0.mk new file mode 100644 index 0000000..13c39f2 --- /dev/null +++ b/src/spatialite/spatialite-4.2.0.mk @@ -0,0 +1,169 @@ +include $(CLEAR_VARS) +# ./configure --enable-examples=no --build=x86_64-pc-linux-gnu --host=arm-linux-eabi +# 2015-06-09: libspatialite-4.2.0-rc1 +LOCAL_MODULE := spatialite + +# SQLite flags copied from ASOP +common_sqlite_flags := \ + -DHAVE_USLEEP=1 \ + -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ + -DSQLITE_THREADSAFE=1 \ + -DNDEBUG=1 \ + -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ + -DSQLITE_DEFAULT_AUTOVACUUM=1 \ + -DSQLITE_TEMP_STORE=3 \ + -DSQLITE_ENABLE_FTS3 \ + -DSQLITE_ENABLE_FTS3_BACKWARDS \ + -DSQLITE_ENABLE_RTREE=1 \ + -DSQLITE_DEFAULT_FILE_FORMAT=4 + + +# spatialite flags +# comment out TARGET_CPU in config.h - will be replaced with TARGET_ARCH_ABI +spatialite_flags := \ + -DOMIT_FREEXL \ + -DTARGET_CPU=\"$(TARGET_ARCH_ABI)\" \ + -Dfdatasync=fsync \ + -DSQLITE_ENABLE_RTREE=1 \ + -DSQLITE_OMIT_BUILTIN_TEST=1 + +LOCAL_CFLAGS := \ + $(common_sqlite_flags) \ + $(spatialite_flags) + +# LOCAL_LDLIBS is always ignored for static libraries +# LOCAL_LDLIBS := -llog -lz +# LOADABLE_EXTENSION must NOT be defined +# For Spatialite with VirtualShapes,VirtualXL support iconv is needed +LOCAL_C_INCLUDES := \ + $(SQLITE_PATH) \ + $(SPATIALITE_PATH) \ + $(SPATIALITE_PATH)/src/headers \ + $(ICONV_PATH)/include \ + $(ICONV_PATH)/libcharset/include \ + $(GEOS_PATH)/include \ + $(GEOS_PATH)/capi \ + $(PROJ4_PATH)/src \ + $(LZMA_PATH)/src/liblzma/api \ + $(XML2_PATH)/include +LOCAL_SRC_FILES := \ + $(SPATIALITE_PATH)/src/connection_cache/alloc_cache.c \ + $(SPATIALITE_PATH)/src/connection_cache/generator/code_generator.c \ + $(SPATIALITE_PATH)/src/dxf/dxf_load_distinct.c \ + $(SPATIALITE_PATH)/src/dxf/dxf_loader.c \ + $(SPATIALITE_PATH)/src/dxf/dxf_load_mixed.c \ + $(SPATIALITE_PATH)/src/dxf/dxf_parser.c \ + $(SPATIALITE_PATH)/src/dxf/dxf_writer.c \ + $(SPATIALITE_PATH)/src/gaiaaux/gg_sqlaux.c \ + $(SPATIALITE_PATH)/src/gaiaaux/gg_utf8.c \ + $(SPATIALITE_PATH)/src/gaiaexif/gaia_exif.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_advanced.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_endian.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_ewkt.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_extras.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_geodesic.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_geoJSON.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_geometries.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_geoscvt.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_gml.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_kml.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_lwgeom.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_relations.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_relations_ext.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_shape.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_transform.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_vanuatu.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_voronoj.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_wkb.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_wkt.c \ + $(SPATIALITE_PATH)/src/gaiageo/gg_xml.c \ + $(SPATIALITE_PATH)/src/geopackage/gaia_cvt_gpkg.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgAddGeometryColumn.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkg_add_geometry_triggers.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkg_add_spatial_index.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkg_add_tile_triggers.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgBinary.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgCreateBaseTables.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgCreateTilesTable.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgCreateTilesZoomLevel.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgGetImageType.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkg_get_normal_row.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkg_get_normal_zoom.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgInsertEpsgSRID.c \ + $(SPATIALITE_PATH)/src/geopackage/gpkgMakePoint.c \ + $(SPATIALITE_PATH)/src/md5/gaia_md5.c \ + $(SPATIALITE_PATH)/src/md5/md5.c \ + $(SPATIALITE_PATH)/src/shapefiles/shapefiles.c \ + $(SPATIALITE_PATH)/src/shapefiles/validator.c \ + $(SPATIALITE_PATH)/src/spatialite/extra_tables.c \ + $(SPATIALITE_PATH)/src/spatialite/mbrcache.c \ + $(SPATIALITE_PATH)/src/spatialite/metatables.c \ + $(SPATIALITE_PATH)/src/spatialite/spatialite.c \ + $(SPATIALITE_PATH)/src/spatialite/spatialite_init.c \ + $(SPATIALITE_PATH)/src/spatialite/statistics.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualbbox.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualdbf.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualfdo.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualgpkg.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualnetwork.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualshape.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualspatialindex.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualXL.c \ + $(SPATIALITE_PATH)/src/spatialite/virtualxpath.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_00.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_01.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_02.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_03.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_04.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_05.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_06.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_07.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_08.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_09.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_10.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_11.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_12.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_13.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_14.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_15.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_16.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_17.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_18.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_19.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_20.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_21.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_22.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_23.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_24.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_25.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_26.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_27.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_28.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_29.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_30.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_31.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_32.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_33.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_34.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_35.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_36.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_37.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_38.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_39.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_40.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_41.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_42.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_43.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_44.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_45.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_extra.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_prussian.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_wgs84_00.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_wgs84_01.c \ + $(SPATIALITE_PATH)/src/srsinit/srs_init.c \ + $(SPATIALITE_PATH)/src/srsinit/epsg_update/auto_epsg.c \ + $(SPATIALITE_PATH)/src/versioninfo/version.c \ + $(SPATIALITE_PATH)/src/virtualtext/virtualtext.c \ + $(SPATIALITE_PATH)/src/wfs/wfs_in.c +LOCAL_STATIC_LIBRARIES := iconv proj geos libxml2 +include $(BUILD_STATIC_LIBRARY) diff --git a/src/spatialite/spatialite-sql-latest.html b/src/spatialite/spatialite-sql-latest.html index 709134a..ca672ba 100644 --- a/src/spatialite/spatialite-sql-latest.html +++ b/src/spatialite/spatialite-sql-latest.html @@ -2,7 +2,7 @@ - + SpatiaLite SQL functions reference list -

SpatiaLite 4.0.0          SQL functions reference list

+

SpatiaLite 4.2.0          SQL functions reference list

back + + + + + + @@ -92,12 +107,53 @@

SQL Version Info [and build options testing] functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -165,9 +221,6 @@

SQL math functions

- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -280,6 +371,20 @@

SQL length/distance unit-conversion functions

< + + + + + + + + + + @@ -332,19 +437,34 @@

SQL utility functions for BLOB objects

+ + + + Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
+ Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
+ Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function. + The return type is Integer, with a return value of 1 for success, 0 for failure.
+ Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
+ Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function. + + + @@ -359,6 +479,12 @@

SQL utility functions [non-standard] for geometric objec

+ + + + + @@ -396,11 +522,87 @@

SQL utility functions [non-standard] for geometric objec

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -467,7 +668,6 @@

SQL utility functions [non-standard] for geometric objec NULL will be returned if geom isn't a valid Geometry.

@@ -475,7 +675,6 @@

SQL utility functions [non-standard] for geometric objec NULL will be returned if geom isn't a valid Geometry.

@@ -483,14 +682,13 @@

SQL utility functions [non-standard] for geometric objec NULL will be returned if geom isn't a valid Geometry.

- - + + - + + + + @@ -879,6 +1093,20 @@

SQL functions on type Geometry

+ + + + + + + + + + @@ -1121,7 +1349,7 @@

SQL functions on type Curve [Linestring or Ring]

< ST_Length( c Curve , use_ellipsoid Boolean ) : Double precision - + < ST_Perimeter( s Surface , use_ellipsoid Boolean ) : Double precision - + < - + + + + + + + + + + + + + + + + @@ -1231,12 +1483,20 @@

SQL functions on type Surface [Polygon or Ring]

X - + + + + + @@ -1275,7 +1535,7 @@

SQL functions on type GeomCollection

ST_NumGeometries( geom GeomCollection ) : Integer - + @@ -1429,7 +1689,7 @@

SQL functions that test spatial relationships

Covers( geom1 Geometry , geom2 Geometry ) : Integer
ST_Covers( geom1 Geometry , geom2 Geometry ) : Integer - + @@ -1437,7 +1697,7 @@

SQL functions that test spatial relationships

CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer
ST_CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer - + @@ -1465,7 +1725,7 @@

SQL functions for distance relationships

- + @@ -1538,19 +1798,19 @@

SQL functions that implement spatial operators

GEOS +

SQL functions that implement spatial operators
[GEOS specific features]

- - + + - + @@ -1558,7 +1818,7 @@

SQL functions that implement spatial operators
[GEOS advan

- + @@ -1566,14 +1826,14 @@

SQL functions that implement spatial operators
[GEOS advan

- + - + - + - + @@ -1602,7 +1862,7 @@

SQL functions that implement spatial operators
[GEOS advan ST_Line_Substring( line Curve , start_fraction Double precision , end_fraction Double precision ) : Curve

- + @@ -1610,21 +1870,21 @@

SQL functions that implement spatial operators
[GEOS advan

- + - + - + @@ -1632,14 +1892,14 @@

SQL functions that implement spatial operators
[GEOS advan

- + - + @@ -1647,7 +1907,7 @@

SQL functions that implement spatial operators
[GEOS advan

- + - + - + + + + + + - + @@ -1710,7 +1979,7 @@

SQL functions that implement spatial operators
[GEOS advan NULL will be returned if any error is encountered

+ ST_LinesCutAtNodes( geom1 Geometry , geom2 Geometry ) : Geometry - + NULL will be returned if any error is encountered (or when no item of required type is found)
+ The Type of the returned Geometry could be e.g. POINT or MULTIPOINT depending on actual items count. +
+ + + + + + + + + + + + + + @@ -1760,7 +2051,7 @@

SQL functions that implement spatial operators
[GEOS advan NULL will be returned if any error is encountered (or when no element corresponding to the given range of measures is found).
Please note: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.

+

SQL functions that implement spatial operators
[GEOS advanced features]

@@ -1770,7 +2061,7 @@

SQL functions that implement spatial operators
[GEOS trunk

- + - + - + + + + + + + + + + + + + + + + @@ -1995,15 +2310,18 @@

SQL functions for Spatial-MetaData and Spatial-Index handling<

+ InitSpatialMetaData( transaction Integer ) : Integer
+ InitSpatialMetaData( mode String ) : Integer
+ InitSpatialMetaData( transaction Integer , mode String ) : Integer
@@ -2077,7 +2395,8 @@

SQL functions for Spatial-MetaData and Spatial-Index handling<

+the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
+-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.
@@ -2091,6 +2410,20 @@

SQL functions for Spatial-MetaData and Spatial-Index handling<

+ + + + + + + + + + @@ -2102,7 +2435,8 @@

SQL functions for Spatial-MetaData and Spatial-Index handling<
  • otherwise only the RTree corresponding to table and column will be checked

  • the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    -NULL will be returned if the requested RTree doesn't exists

    +NULL will be returned if the requested RTree doesn't exist
    +-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.
    @@ -2120,7 +2454,22 @@

    SQL functions for Spatial-MetaData and Spatial-Index handling<
    the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    -NULL will be returned if the requested RTree doesn't exists

    +NULL will be returned if the requested RTree doesn't exist
    +-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected. +
    + + + + @@ -2133,6 +2482,18 @@

    SQL functions for Spatial-MetaData and Spatial-Index handling< corresponding to the given table
    the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE

    + + + + + @@ -2147,6 +2508,194 @@

    SQL functions for Spatial-MetaData and Spatial-Index handling< if omitted a "topo_" prefix will be assumed by default
    the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2221,6 +2770,201 @@

    SQL functions implementing FDO/OGR compatibility

    Removes a geometry column from FDO/OGR Spatial MetaData tables
    the column itself still continues to exist untouched as an ordinary column
    the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2294,6 +3038,255 @@

    SQL functions for R*Tree-based queries (Geometry Callbacks)geocallbacks

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    @@ -56,6 +64,9 @@

    SQL Version Info [and build options testing] functions

    spatialite_version spatialite_version( void ) : String returns the current SpatiaLite version as a text string
    spatialite_target_cpuspatialite_target_cpu( void ) : Stringreturns the current SpatiaLite Target CPU as a text string
    proj4_version proj4_version( void ) : String returns the current PROJ.4 version as a text string
    @@ -68,6 +79,10 @@

    SQL Version Info [and build options testing] functions

    lwgeom_version( void ) : String returns the current LWGEOM version as a text string
    or NULL if LWGEOM is currently unsupported
    libxml2_versionlibxml2_version( void ) : Stringreturns the current LibXML2 version as a text string
    + or NULL if LibXML2 is currently unsupported
    HasIconv HasIconv( void ) : Boolean TRUE if the underlaying library was built enabling ICONV
    HasLwGeom HasLwGeom( void ) : Boolean TRUE if the underlaying library was built enabling LWGEOM
    HasLibXML2HasLibXML2( void ) : BooleanTRUE if the underlaying library was built enabling LibXML2
    HasEpsg HasEpsg( void ) : Boolean TRUE if the underlaying library was built enabling EPSG
    HasFreeXL HasFreeXL( void ) : Boolean TRUE if the underlaying library was built enabling FREEXL
    HasGeoPackageHasGeoPackage( void ) : BooleanTRUE if the underlaying library was built enabling GeoPackage support (GPKG))
    +

    Generic SQL functions

    FunctionSyntaxSummary
    CastToIntegerCastToInteger( value Generic ) : Integerreturns the intput value possibly casted to the Integer data-type: NULL if no conversion is possible.
    CastToDoubleCastToDouble( value Generic ) : Double precisionreturns the intput value possibly casted to the Double data-type: NULL if no conversion is possible.
    CastToTextCastToText( value Generic ) : Text
    + CastToText( value Generic , zero_pad Integer ) : Text
    returns the intput value possibly casted to the Text data-type: NULL if no conversion is possible.
    + If an optional argument zero_pad is passed and the input value is of the Integer or Double type, then the returned string will be padded using as much trailing ZEROs so to ensure the required length.
    CastToBlobCastToBlob( value Generic ) : Blob
    + CastToBlob( value Generic , hex_input Boolean ) : Blob
    returns the intput value possibly casted to the BLOB data-type: + if the optional argument hex_input is set to TRUE the input value will be expected to correspond to an HexaDecimal string, e.g. 01ab89EF; if this assumption fails then NULL will be returned.
    + NULL if no conversion is possible.
    ForceAsNullForceAsNull( val1 Generic , val2 Generic) : Genericif val1 and val2 are equal (and exactly of the same data-type) NULL will be returned; + otherwise val1 will be returned absolutely untouched and still preserving its originale data-type.
    CreateUUIDCreateUUID( void ) : Textreturns a Version 4 (random) UUID (Universally unique identifier).
    MD5ChecksumMD5Checksum( BLOB | TEXT ) : Textreturns the MD5 checksum corresponding to the input value.
    Will return NULL for non-BLOB or non-TEXT input.
    MD5TotalChecksumMD5TotalChecksum( BLOB | TEXT ) : Textreturns a cumulative MD5 checksum.
    aggregate function

    SQL math functions

    Function
    Radians Radians( x Double precision ) : Double precision returns the argument x, converted from degrees to radians
    RoundRound( x Double precision ) : Double precisionreturns the integer value nearest to x
    Sign Sign( x Double precision ) : Double precision returns the sign of the argument as -1, 0, or 1, @@ -195,6 +248,44 @@

    SQL math functions

    Var_samp( x Double precision ) : Double precision returns the sample variance of the input values (square of the sample standard deviation)
    aggregate function
    +

    SQL functions reporting GEOS / LWGEOM errors and warnings

    FunctionSyntaxSummary
    GEOS_GetLastWarningMsgGEOS_GetLastWarningMsg( void ) : StringGEOSWill return the most recent warning message returned by GEOS (if any).
    + NULL will be returned if there is no pending GEOS warning.
    GEOS_GetLastErrorMsgGEOS_GetLastErrorMsg( void ) : StringGEOSWill return the most recent error message returned by GEOS (if any).
    + NULL will be returned if there is no pending GEOS error.
    GEOS_GetLastAuxErrorMsgGEOS_GetLastAuxErrorMsg( void ) : StringGEOSWill return the most recent error message (auxiliary) returned by GEOS (if any).
    + NULL will be returned if there is no pending GEOS (auxiliary) error.
    GEOS_GetCriticalPointFromMsgGEOS_GetCriticalPointFromMsg( void ) : Point
    + GEOS_GetCriticalPointFromMsg( SRID Integer ) : Point
    GEOSWill (possibly) return a Point Geometry extracted from the latest error / warning + message returned by GEOS.
    + NULL will be returned if there is no pending GEOS message, or if the current GEOS message + doesn't contain a critical Point.
    LWGEOM_GetLastWarningMsgLWGEOM_GetLastWarningMsg( void ) : StringLWGEOMWill return the most recent warning message returned by LWGEOM (if any).
    + NULL will be returned if there is no pending LWGEOM warning.
    LWGEOM_GetLastErrorMsgLWGEOM_GetLastErrorMsg( void ) : StringLWGEOMWill return the most recent error message returned by LWGEOM (if any).
    + NULL will be returned if there is no pending LWGEOM error.

    SQL length/distance unit-conversion functions

    FunctionCvtToIndCh( x Double precision ) : Double precision
    CvtFromIndCh( x Double precision ) : Double precision
    meters / indian chains
    +

    SQL conversion functions from DD/DMS notations (longitude/latitude)

    FunctionSyntaxSummary
    DD to DMSLongLatToDMS( longitude Double precision , latitude Double precision ) : Stringwill return a DMS string (Degrees, Minutes and Seconds) starting from DD (Decimal Degrees) input coordinates
    + NULL will be returned on invalid input.
    DMS to DDLongitudeFromDMS( dms_expression Sting ) : Double precision
    + LatitudeFromDMS( dms_expression Sting ) : Double precision
    will return the DD coordinates from within a DMS expression
    + NULL will be returned on invalid input.

    SQL utility functions for BLOB objects

    Function
    The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
    TRUE if this BLOB object corresponds to a valid WebP image
    GetMimeTypeGetMimeType( payload BLOB ) : StringThe return type is Text, and could be one of: image/gif, image/png, + image/jpeg, image/tiff, image/svg+xml, application/xml, + application/zip, application/pdf.
    + NULL could be returned for an invalid argument or if no valid mime-type is detected.
    BlobFromFile BlobFromFile( filepath String ) : BLOB If filepath corresponds to some valid pathname, and the corresponding file can be actually accessed in read mode, then the whole file content will be returned as a BLOB value.
    Otherwise NULL will be returned.
    - Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB)
    BlobToFile BlobToFile( payload BLOB , filepath String ) : Integer If payload is of the BLOB-type, and if filepath corresponds to some valid pathname (accessible in write/create mode), then the corresponding file will be created/overwritten so to contain the payload.
    - The return type is Integer, with a return value of 1 for success, 0 for failure
    CountUnsafeTriggersCountUnsafeTriggers( ) : IntegerThis SQL function checks if the currently connected DB does contain any potentially malicious Trigger; + carefully checking this conditions is a minimal precaution expected to be always verified before eventually activating the SPATIALITE_SECURITY=relaxed mode.
    + The return type is Integer (total count of suspected Triggers); 0 means that the currently connected DB should be considered absolutely safe.

    SQL utility functions [non-standard] for geometric objects

    Functiona POINT Geometry will be returned representing the GPS long/lat contained within EXIF-GPS metadata for the BLOB image
    NULL will be returned if for any reason it's not possible to build such a POINT
    ST_PointST_Point( x Double precision , y Double precision ) : Geometrybasesimply an alias-name for MakePoint()
    + Please note: the SRID argument is never supported by ST_Point()
    MakePoint MakePoint( x Double precision , y Double precision , [ , SRID Integer] ) : Geometrya Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence)
    aggregate function
    NULL will be returned if any error is encountered
    MakeLineMakeLine( geom MultiPointGeometry , direction Boolean ) : LinestringGeometrybasea Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence); direction=FALSE implies reverse order.
    + Please note: similar to the previuous one, but this one is an ordinary (not aggregate) function; a MultiPoint input is always expected.
    + NULL will be returned if any error is encountered
    MakeCircleMakeCircle( cx Double precision , cy Double precision , + radius Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a closed LINESTRING approximating the Circle defined by cx, cy and radius.
    + The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeEllipseMakeEllipse( cx Double precision , cy Double precision , + x_axis Double precision , y_axis Double precisin [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a closed LINESTRING approximating the Ellipse defined by cx, cy and x_axis, y_axis.
    + The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeArcMakeArc( cx Double precision , cy Double precision , + radius Double precision , + start Double precision , stop Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a LINESTRING approximating the Circular Arc defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
    + The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeEllipticArcMakeEllipticArc( cx Double precision , cy Double precision , + x_axis Double precision , y_axis Double precision , + start Double precision , stop Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a LINESTRING approximating the Elliptic Arc defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
    + The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeCircularSectorMakeCircularSector( cx Double precision , cy Double precision , + radius Double precision , + start Double precision , stop Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a POLYGON approximating the Circular Sector defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
    + The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeEllipticSectorMakeEllipticSector( cx Double precision , cy Double precision , + x_axis Double precision , y_axis Double precision , + start Double precision , stop Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a POLYGON approximating the Elliptic Sector defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
    + The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    MakeCircularStripeMakeCircularStripe( cx Double precision , cy Double precision , + radius_1 Double precision , radius_2 Double precision , + start Double precision , stop Double precision [ , SRID Integer [ , + step Double precision ] ] ) : Geometrybasewill return a POLYGON approximating the Circular Stripe delimited by two arcs sharing the same Centre [cx, cy] + but having different radii [radius_1, radius_2]; the arc's extremities will be defined by start, stop angles expressed in degrees.
    + The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
    + The implicit default setting corresponds to a point every 10 degrees.
    SquareGrid SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    ST_SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    GEOS-advancedGEOS return a grid of square cells (having the edge length of size) precisely covering the input Geometry.
    The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
    If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
    @@ -409,7 +611,7 @@

    SQL utility functions [non-standard] for geometric objec

    TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    ST_TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    GEOS-advancedGEOS return a grid of triangular cells (having the edge length of size) precisely covering the input Geometry.
    The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
    If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
    @@ -418,7 +620,7 @@

    SQL utility functions [non-standard] for geometric objec

    HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    ST_HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
    GEOS-advancedGEOS return a grid of hexagonal cells (having the edge length of size) precisely covering the input Geometry.
    The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
    If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
    @@ -459,7 +661,6 @@

    SQL utility functions [non-standard] for geometric objec NULL will be returned if any error is encountered.

    MbrMinX MbrMinX( geom Geometry) : Double precision
    - ST_MbrMinX( geom Geometry) : Double precision
    ST_MinX( geom Geometry) : Double precision
    base
    MbrMinY MbrMinY( geom Geometry) : Double precision
    - ST_MbrMinY( geom Geometry) : Double precision
    ST_MinY( geom Geometry) : Double precision
    base
    MbrMaxX MbrMaxX( geom Geometry) : Double precision
    - ST_MbrMaxX( geom Geometry) : Double precision
    ST_MaxX( geom Geometry) : Double precision
    base
    MbrMaxY MbrMaxY( geom Geometry) : Double precision
    - ST_MbrMaxY( geom Geometry) : Double precision
    ST_MaxY( geom Geometry) : Double precision
    base return the y-coordinate for geom MBR's uppermost side as a double precision number.
    NULL will be returned if geom isn't a valid Geometry.
    ST_MinZMinZ( geom Geometry) : Double precision
    MinZST_MinZ( geom Geometry) : Double precision base return the minimum Z-coordinate value for geom as a double precision number.
    @@ -795,7 +993,23 @@

    SQL functions supporting exotic geometric formats

    <
    GeomFromFGF( fgfGeometry Binary [ , SRID Integer] ) : Geometry baseconstruct a geometric object given its FGF binary Representation
    construct a geometric object given its FGF binary Representation
    ExportDXFExportDXF( out_dir String , filename String , sql_query String , layer_col_name String , + geom_col_name String , label_col_name String , text_height_col_name String , + text_rotation_col_name String , geom_filter Geometry [ , precision Integer ] ) : IntegerWill export a whole DXF file.
      +
    • The output file path is controlled by out_dir and filename.
    • +
    • sql_query is a complete SQL Statement returning the dataset to be exported.
    • +
    • layer_col_name, geom_col_name, label_col_name, text_height_col_name + and text_rotation_col_name must specify the corresponding column names within the resultset + returned by sql_query (label_col_name, text_height_col_name and text_rotation_col_name could be eventually NULL).
    • +
    • geom_filter acts as a spatial filter selecting which entities have to be exported (could be NULL).
    • +
    • the optional argument precision specificies how many decimal digits are required for coordinate values: if not specified the default is 3.
    • +
    + Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success.
    + Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
    + Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.

    SQL functions on type Geometry

    Function
    The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
    TRUE if this geometric object does not contains any topological error
    IsValidReasonIsValidReason( geom Geometry ) : String
    + ST_IsValidReason( geom Geometry ) : String
    GEOSWill return a TEXT string stating if a Geometry is valid and if not valid, a reason why.
    + NULL will be returned on invalid arguments.
    IsValidDetailIsValidDetail( geom Geometry ) : Geometry
    + ST_IsValidDetail( geom Geometry ) : Geometry
    GEOSWill return a Geometry detail (usually a POINT) causing invalidity.
    + NULL will be returned on invalid arguments, or in the case of a valid Geometry.
    Boundary Boundary( geom Geometry ) : Geometry
    ST_Boundary( geom Geometry ) : Geometry
    XGEOS-advancedGEOS return the length of c (measured in meters).
    If the use_ellipsoid argument is set to TRUE the precise (but slower) length will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
    This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
    @@ -1138,7 +1366,7 @@

    SQL functions on type Curve [Linestring or Ring]

    XGEOS-advancedGEOS return the perimeter of s (measured in meters).
    If the use_ellipsoid argument is set to TRUE the precise (but slower) perimeter will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
    This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
    @@ -1188,13 +1416,15 @@

    SQL functions on type Curve [Linestring or Ring]

    return a Point guaranteed to lie on the Surface (or Curve)
    Simplify Simplify( c Curve , tolerance Double precision ) : Curve
    + ST_Simplify( c Curve , tolerance Double precision ) : Curve
    ST_Generalize( c Curve , tolerance Double precision ) : Curve
    GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert algorithm with given tolerance
    SimplifyPreserveTopologySimplifyPreserveTopology( c Curve , tolerance Double precision ) : CurveSimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
    + ST_SimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
    GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert @@ -1218,6 +1448,28 @@

    SQL functions on type LineString

    X base return a Point containing Point n of line
    AddPointAddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
    + ST_AddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
    basereturns a new Linestring by adding a new Point into the input Linestring immediately before position (zero-based index).
    + A negative position (default) means appending the new Point to the end of the input Linestring.
    + NULL will be returned if any error is encountered.
    SetPointSetPoint( line LineString , position Integer , point Point ) : Linestring
    + ST_SetPoint( line LineString , position Integer , point Point ) : Linestring
    basereturns a new Linestring by replacing the Point at position (zero-based index).
    + NULL will be returned if any error is encountered.
    RemovePointRemovePoint( line LineString , position Integer ) : Linestring
    + ST_RemovePoint( line LineString , position Integer ) : Linestring
    basereturns a new Linestring by removing the Point at position (zero-based index).
    + NULL will be returned if any error is encountered.

    SQL functions on type Surface [Polygon or Ring]

    Function GEOS return the centroid of s, which may lie outside s
    Area
    Area Area( s Surface ) : Double precision
    ST_Area( s Surface ) : Double precision
    X GEOS return the area of s
    Area( s Surface , use_ellipsoid Boolean ) : Double precision
    + ST_Area( s Surface , use_ellipsoid Boolean ) : Double precision +
    XLWGEOMreturn the area of s (measured in meters).
    +If the use_ellipsoid argument is set to TRUE the precise (but slower) area will be computed on the Ellipsoid, otherwise will be computed on the Sphere (approximative, but faster).
    +This function only supports Long/Lat coordinates, and will return NULL for any planar CRS

    SQL functions on type Polygon

    Function
    X basereturn the number of interiorRings
    return the number of individual Geometries
    GeometryN GeometryN( geom GeomCollection , n Integer ) : Geometry
    ST_GeometryN( geom GeomCollection , n Integer ) : Geometry
    GEOS-advancedGEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
    convenience predicate: TRUE if g1 completely covers g2
    GEOS-advancedGEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
    convenience predicate: TRUE if g1 is completely covered by g2
    Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
    ST_Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
    XGEOS-advancedGEOS return the distance between geom1 and geom2 (measured in meters).
    If the use_ellipsoid argument is set to TRUE the precise (but slower) distance will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
    This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
    return a geometric object that is the convex hull of geom
    -

    SQL functions that implement spatial operators
    [GEOS advanced features]

    HausdorffDistance HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
    ST_HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
    XGEOS-advancedGEOS return the Hausdorff distance between geom1 and geom2
    learn more
    OffestCurve OffsetCurve( geom Curve , radius Double precision , left_or_right Integer ) : Curve
    ST_OffsetCurve( geom Curve , radius Double precision , left_or_right Integer ) : Curve
    GEOS-advancedGEOS return a geometric object representing the corresponding left- (or right-sided) offset curve
    NULL is returned whenever is not possible deriving an offset curve from the original geometry
    [a single not-closed LINESTRING is expected as input]
    SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
    ST_SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
    GEOS-advancedGEOS return a geometric object representing the corresponding left- (or right-sided) single-sided buffer
    NULL is returned whenever is not possible deriving a single-sided buffer from the original geometry
    [a single not-closed LINESTRING is expected as input]
    SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
    ST_SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
    GEOS-advancedGEOS return a geometric object (of the MULTILINESTRING type) representing any common lines shared by both geometries
    NULL is returned is no common line exists
    Line_Interpolate_Point Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
    ST_Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
    GEOS-advancedGEOS return a point interpolated along a line.
    Second argument (between 0.0 and 1.0) representing fraction of total length of linestring the point has to be located.
    @@ -1582,7 +1842,7 @@

    SQL functions that implement spatial operators
    [GEOS advan

    Line_Interpolate_Equidistant_Points( line Curve , distance Double precision) : MultiPoint
    ST_Line_Interpolate_Equidistant_Points( line Curve , distance Double precision ) : MultiPoint
    GEOS-advancedGEOS return a set of equidistant points interpolated along a line; the returned geometry always corresponds to a MULTIPOINT supporting the M coordinate (representing the progressive distance for each interpolated Point).
    @@ -1592,7 +1852,7 @@

    SQL functions that implement spatial operators
    [GEOS advan

    Line_Locate_Point( line Curve , point Point ) : Double precision
    ST_Line_Locate_Point( line Curve , point Point ) : Double precision
    GEOS-advancedGEOS return a number (between 0.0 and 1.0) representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length.
    NULL is returned for invalid arguments
    GEOS-advancedGEOS Return a Linestring being a substring of the input one starting and ending at the given fractions of total 2d length.
    Second and third arguments are expected to be in the range between 0.0 and 1.0.
    NULL is returned for invalid arguments
    ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
    ST_ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
    GEOS-advancedGEOS Returns the Point on geom1 that is closest to geom2.
    NULL is returned for invalid arguments (or if distance is ZERO)
    ShortestLine ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
    ST_ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
    GEOS-advancedGEOS Returns the shortest line between two geometries.
    NULL is returned for invalid arguments (or if distance is ZERO)
    Snap Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
    ST_Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
    GEOS-advancedGEOS Returns a new Geometry representing a modified geom1, so to "snap" vertices and segments to geom2 vertices; a snap distance tolerance is used to control where snapping is performed.
    NULL is returned for invalid arguments
    Collect( geom1 Geometry , geom2 Geometry ) : Geometry
    ST_Collect( geom1 Geometry , geom2 Geometry ) : Geometry
    GEOS-advancedGEOS a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging geom1 and geom2
    NULL will be returned if any error is encountered
    Collect Collect( geom Geometry ) : Geometry
    ST_Collect( geom Geometry ) : Geometry
    GEOS-advancedGEOS a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging input Geometries all together
    aggregate function
    NULL will be returned if any error is encountered
    LineMerge( geom Geometry ) : Geometry
    ST_LineMerge( geom Geometry ) : Geometry
    GEOS-advancedGEOS a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
    The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
    The input Geometry can be an arbitrary collection of sparse line fragments: this @@ -1657,7 +1917,7 @@

    SQL functions that implement spatial operators
    [GEOS advan

    BuildArea( geom Geometry ) : Geometry
    ST_BuildArea( geom Geometry ) : Geometry
    GEOS-advancedGEOS a Geometry (actually corresponding to a POLYGON or MULTIPOLYGON) will be returned.
    The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
    The input Geometry can be an arbitrary collection of sparse Linestrings: this @@ -1667,14 +1927,23 @@

    SQL functions that implement spatial operators
    [GEOS advan

    Polygonize( geom Geometry ) : Geometry
    ST_Polygonize( geom Geometry ) : Geometry
    GEOS-advancedGEOS Exactly the same as ST_BuildArea, but implemented as an aggregate function.
    NULL will be returned if any error is encountered
    MakePolygonMakePolygon( geom1 Geometry [ , geom2 Geometry ] ) : Geometry
    + ST_MakePolygon( geom1 Geometry [ , geom2 Geometry ] ) : Geometry
    baseKind of lightweight/simplified ST_BuildArea: the first input Geometry is always expected to represent a closed LINESTRING assumed to identify the output polygon's Exterior Ring.
    + The second input Geometry (if any) is expected to be a LINESTRING or MULTILINESTRING identifying any polygon's Interior Ring (and all them are expected to be correctly closed).
    + Please note well: this function doesn't perform any internal topology check, so it could possibly return an invalid polygon on invalid input.
    + NULL will be returned if any error is encountered
    UnaryUnion UnaryUnion( geom Geometry ) : Geometry
    ST_UnaryUnion( geom Geometry ) : Geometry
    GEOS-advancedGEOS Exactely the same as ST_Union, but applied to a single Geometry.
    (set union of elementary Geometries within a MULTI- or GEOMETRYCOLLECTION complex Geometry)
    NULL will be returned if any error is encountered
    LinesCutAtNodes LinesCutAtNodes( geom1 Geometry , geom2 Geometry ) : Geometry
    - ST_LinesCutAtNodess( geom1 Geometry , geom2 Geometry ) : Geometry
    base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) @@ -1735,14 +2004,36 @@

    SQL functions that implement spatial operators
    [GEOS advan ST_CollectionExtract( geom Geometry , type Integer ) : Geometry

    baseGiven a GEOMETRYCOLLECTION, returns a MULTI* geometry consisting only of the specified type. + Given any arbitrary GEOMETRY will return a derived geometry consisting only of the specified type. Sub-geometries that are not the specified type are ignored.
    • 1 = POINT-type
    • 2 = LINESTRING-type
    • 3 = POLYGON-type
    - NULL will be returned if any error is encountered (or when no item of required type is found)
    ExtractMultiPointExtractMultiPoint( geom Geometry ) : GeometrybaseGiven any arbitrary GEOMETRY will return a derived MULTIPOINT geometry. + Sub-geometries not being of the POINT type will be ignored.
    + NULL will be returned if any error is encountered (or when no POINT is found).
    ExtractMultiLinestringExtractMultiLinestring( geom Geometry ) : GeometrybaseGiven any arbitrary GEOMETRY will return a derived MULTILINESTRING geometry. + Sub-geometries not being of the LINESTRING type will be ignored.
    + NULL will be returned if any error is encountered (or when no LINESTRING is found).
    ExtractMultiPolygonExtractMultiPolygon( geom Geometry ) : GeometrybaseGiven any arbitrary GEOMETRY will return a derived MULTIPOLYGON geometry. + Sub-geometries not being of the POLYGON type will be ignored.
    + NULL will be returned if any error is encountered (or when no POLYGON is found).
    LocateAlongMeasure ST_Locate_Along_Measure( geom Geometry , m_value Double precision ) : Geometry
    ST_LocateAlong( geom Geometry , m_value Double precision ) : Geometry
    -

    SQL functions that implement spatial operators
    [GEOS trunk features]

    Function Syntax OGC
    defined
    DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
    ST_DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
    GEOS-trunkGEOS-advanced return a geometric object representing the Delaunay Triangulation corresponding to the input Geometry
    The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
    The returned Geometry will usually be of the MultiPolygon type (a collection of Triangles), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
    @@ -1780,7 +2071,7 @@

    SQL functions that implement spatial operators
    [GEOS trunk

    VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
    ST_VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
    GEOS-trunkGEOS-advanced return a geometric object representing the Voronoj Diagram corresponding to the input Geometry
    The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
    The returned Geometry will usually be of the MultiPolygon type, but will be a MultiLinestring if the optional edges_only argument is set to TRUE
    @@ -1791,7 +2082,7 @@

    SQL functions that implement spatial operators
    [GEOS trunk

    ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
    ST_ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
    GEOS-trunkGEOS-advanced return a geometric object representing the ConcaveHull corresponding to the input Geometry
    The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
    The returned Geometry will always be of the Polygon or MultiPolygon type.
    @@ -1858,8 +2149,18 @@

    SQL functions that implement spatial operators
    [LWGEOM fea

    LWGEOM return the angle (in radians) from the horizontal of the vector defined by pt1 and pt2.
    Both pt1 and pt2 are expected to be simple Points.
    + Starting since 4.1.0 if both points supports long/lat coords the returned Azimuth will be precisely computed on the ellipsoid.
    NULL is returned on failure.
    On the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2
    ProjectProject( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
    + ST_Project( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
    LWGEOMreturn a new Point projected from a start point using a bearing and distance.
    + start_point is expected to be simple long/lat Point.
    + distance is expected to be measured in meters; azimuth (aka bearing or heading) has the same identical meaning as in ST_Azimuth().
    + NULL is returned on failure or on invalid arguments.
    SnapToGrid SnapToGrid( geom Geometry , size Double precision ) : Geometry
    SnapToGrid( geom Geometry , size_x Double precision , size_y Double precision ) : Geometry
    @@ -1912,6 +2213,20 @@

    SQL functions that implement spatial operators
    [LWGEOM fea

    LWGEOM return the max 3D-distance between geom1 and geom2 (Z coordinates will be considered)
    ST_NodeST_Node( geom Geometry ) : GeometryLWGEOMFully nodes a set of linestrings using the least possible number of nodes while preserving all of the input ones.
    + NULL will be returned if the input Geometry isn't a set of linestrings or if any other error occurs.
    SelfIntersectionsSelfIntersections( geom Geometry ) : Geometry
    + ST_SelfIntersections( geom Geometry ) : Geometry
    LWGEOMReturns a MultiPoint Geometry representing any self-intersection found within the input geometry + [expected to be of the Linestring or MultiLinestring type].
    + NULL will be returned for invalid arguments, or when no self-intersections were found.

    SQL functions for coordinate transformations

    FunctionSummary
    InitSpatialMetaData InitSpatialMetaData( void ) : Integer
    - InitSpatialMetaData( mode String ) : Integer
    base Creates the geometry_columns and spatial_ref_sys metadata tables
    the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
      -
    • the first form (no args) will automatically populate spatial_ref_sys inserting any possible ESPG SRID definition
    • -
    • if the arg 'WGS84' (alias 'WGS84_ONLY') is specified, then only WGS84-related EPSG SRIDs will be inserted
    • -
    • if the arg 'NONE' (alias 'EMPTY') is specified, no EPSG SRID will be inserted at all
    • +
    • if the optional argument transaction is set to TRUE the whole operation will be handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
    • +
    • if the optional argument mode is not specified then any possible ESPG SRID definition will be inserted into the spatial_ref_sys table.
    • +
    • if the mode arg 'WGS84' (alias 'WGS84_ONLY') is specified, then only WGS84-related EPSG SRIDs will be inserted
    • +
    • if the mode arg 'NONE' (alias 'EMPTY') is specified, no EPSG SRID will be inserted at all
    InsertEpsgSrid InsertEpsgSrid( srid Integer ) : Integerbase Builds an RTree Spatial Index on a geometry column, creating any required trigger required in order to enforce full data coherency between the main table and Spatial Index
    -the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    CreateMbrCache CreateMbrCache( table String , column String ) : Integer base Disables an RTree Spatial Index or MbrCache, removing any related trigger
    the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    CheckShadowedRowidCheckShadowedRowid( table String ) : IntegerbaseChecks if some table has a physical column named "rowid" (caseless) shadowing the real ROWID.
    +the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    +NULL will be returned if the requested table doesn't exist.
    CheckWithoutRowidCheckWithoutRowid( table String ) : IntegerbaseChecks if some table was created by specifying a WITHOUT ROWID clause.
    +the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    +NULL will be returned if the requested table doesn't exist.
    CheckSpatialIndex CheckSpatialIndex( void ) : Integer
    CheckSpatialIndex( table String , column String ) : Integer
    RecoverSpatialIndex RecoverSpatialIndex( [ no_check : Integer ] ) : Integer
    RecoverSpatialIndex( table String , column String [ , no_check : Integer ] ) : Integer
    InvalidateLayerStatisticsInvalidateLayerStatistics( [ void ) : Integer
    + InvalidateLayerStatistics( table String [ , column String ] ) : Integer
    baseImmediately and unconditionally invalidates the internal Layer Statistics
      +
    • if no arguments are passed, then internal statistics will be invalidated + for any possible Geometry Column defined in the current DB
    • +
    • otherwise statistics will be updated only for Geometry Columns + corresponding to the given table
    • +

    +the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    + Please note: will effectively work only on behalf DB-files supporting the more recent metatables layout introduced + starting since version 4.x; in any other case will always return an error and no action will happen.
    UpdateLayerStatistics UpdateLayerStatistics( [ void ) : Integer
    UpdateLayerStatistics( table String [ , column String ] ) : Integer
    GetLayerExtentGetLayerExtent( table String [ , column String [ , mode Boolean] ] ) : GeometrybaseReturn the Envelope corresponding to the Total Extent (bounding box] of some Layer; + if the Table/Layer only contains a single Geometry column passing the column name isn't strictly required.
    + The returned extent will be retrieved from the Statistics tables:
      +
    • if the third argument mode is set to TRUEa PESSIMISTIC + strategy will be applied, i.e. an attempt will be made in order to update the Statistics tables before returning the Envelope.
    • +
    • otherwise the returned Envelope will simply reflect the current values stored into the Statics tables as they are (OPTIMISTIC strategy, adopted by default).
    • +

    + NULL will be returned if any error occurs or if the required table isn't a Layer.
    CreateTopologyTables CreateTopologyTables( SRID Integer , dims : String ) : Integer
    CreateTopologyTables( prefix String , SRID Integer , dims : String ) : Integer
    CreateRasterCoveragesTableCreateRasterCoveragesTable( void ) : IntegerbaseCreates the raster_coverages table required by RasterLite-2
    +the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
    +

    SQL functions supporting the MetaCatalog and related Statistics

    FunctionSyntaxOGC
    defined
    required
    module
    Summary
    CreateMetaCatalogTablesCreateMetaCatalogTables( transaction Integer ) : IntegerbaseCreates both splite_metacatalog and splite_metacatalog_statistics tables; + splite_metacatalog will be populated so to describe every table/column currently defined within the DB.
    + if the first argument transaction is set to TRUE the whole operation will be + handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
    + the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    UpdateMetaCatalogStatisticsUpdateMetaCatalogStatistics( transaction Integer , table_name String , column_name String ) : Integer
    + UpdateMetaCatalogStatistics( transaction Integer , master_table String , table_name String , column_name String ) : Integer
    baseUpdates the splite_metacatalog_statistics table by computing the statistic summary for the required table/column.
    + if the first argument transaction is set to TRUE the whole operation will be + handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
    + the first form (using three arguments) will simply attempt to update the statistic summary for a single + table/column as identified by their names: a matching row is expected to be found in splite_metacatalog.
    + the second form (using four arguments) allows to update the statistic summary for many table/columns in a single pass.
    + in this case master_table should identify an existing table: table_name and column_name should identify two columns belonging to this tables.
    + the statistic summary for every table/columns fetched from the master table will then be updated: + any mismatching table/column will be simply ignored.
    + the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
    +

    SQL functions supporting SLD/SE Styled Layers

    FunctionSyntaxOGC
    defined
    required
    module
    Summary
    CreateStylingTablesCreateStylingTables() : Integer
    + CreateStylingTables( relaxed Integer ) : Integer
    libxml2Creates a set of tables supporting SLD/SE Styled Layers. +
      +
    • if the optional argument relaxed is specified (any value), then + a relaxed version of the validating Triggers will be installed.
    • +

    +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.
    +Please note: will implicitly invoke CreateRasterCoverages() if the raster_coverages table has not yet been created.
    RegisterExternalGraphicRegisterExternalGraphic( xlink_href String , resource BLOB ) : Integer
    + RegisterExternalGraphic( xlink_href String , resource BLOB , title String , abstract String , file_name String ) : Integer
    libxml2Inserts (or updates) an External Graphic Resource. +
      +
    • xlink_href uniquely identifies each Resource (Primary Key).
    • +
    • resource is expected to be a BLOB containing an image/gif, image/png, image/jpeg or image/svg+xml payload.
    • +
    • the optional arguments title, abstract and file_name could be eventually specified for better human readability.
    • +

    +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.
    RegisterVectorStyledLayerRegisterVectorStyledLayer( f_table_name String , f_geometry_column String , style BLOB ) : Integer
    + RegisterVectorStyledLayer( f_table_name String , f_geometry_column String , style_id Integer , style BLOB ) : Integer
    libxml2Inserts (or updates) a Vector Styled Layer definition. +
      +
    • f_table_name and f_geometry_column must identify an existing Vector Layer.
    • +
    • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Vector type.
      + If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    • +
    • The same Vector Layer could eventually support more than a single Style; in this case + the optional argument style_id can be explicitly set in order to identify an individual Style.
      + If no style_id argument is specified then a new Styled Layer will be created, and the style_id value will be automatically set so to ensure univocity.
    • +

    +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.
    RegisterRasterStyledLayerRegisterRasterStyledLayer( coverage_name String , style BLOB ) : Integer
    + RegisterRasterStyledLayer( coverage_name String , style_id Integer , style BLOB ) : Integer
    libxml2Inserts (or updates) a Raster Styled Layer definition. +
      +
    • coverage_name must identify an existing Raster Layer.
    • +
    • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Raster type.
      + If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    • +
    • The same Raster Layer could eventually support more than a single Style; in this case + the optional argument style_id can be explicitly set in order to identify an individual Style.
      + If no style_id argument is specified then a new Styled Layer will be created, and the style_id value will be automatically set so to ensure univocity.
    • +

    +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.
    RegisterStyledGroupRegisterStyledGroup( group_name String , f_table_name String , f_geometry_column String [ , paint_order Integer ] ) : Integer
    + RegisterStyledGroup( group_name String , coverage_name String [ , paint_order Integer ] ) : Integer
    libxml2Inserts (or updates) a Styled Group definition. +
      +
    • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
    • +
    • f_table_name and f_geometry_column must identify an existing Vector Layer.
    • +
    • or alternatively: coverage_name must identify an existing Raster Layer.
    • +
    • the optional paint_order argument could be used to explicitly reference an already defined group item (this implying updating the previous registration)
      + If paint_order is not specified or if a negative value is passed + then the next available order position will be automatically assigned (this always implying inserting a new registration).
      + Please note: the painting order will follow the Painter rule, i.e. a lower paint-order value will always be painted before painting any higher value. +

    +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.
    SetStyledGroupInfosSetStyledGroupInfos( group_name String , title String , abstract String ) : Integerlibxml2Inserts (or updates) the descriptive infos associated to a Styled Group. +
      +
    • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
    • +
    • title and abstract represent the descriptive infos to be set.
    • +

    +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.
    RegisterGroupStyleRegisterGroupStyle( group_name String , style BLOB ) : Integer
    + RegisterGroupStyle( group_name String , style_id Integer , style BLOB ) : Integer
    libxml2Inserts (or updates) a Group Style definition. +
      +
    • group_name must identify an existing Styled Group.
    • +
    • style is expected to be an XmlBLOB containing a valid SLD Style.
      + If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    • +
    • The same Styled Group could eventually support more than a single Style; in this case + the optional argument style_id can be explicitly set in order to identify an individual Style.
      + If no style_id argument is specified then a new Style will be created, and the style_id value will be automatically set so to ensure univocity.
    • +

    +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.
    +

    SQL functions supporting ISO Metadata

    FunctionSyntaxOGC
    defined
    required
    module
    Summary
    CreateIsoMetadataTablesCreateIsoMetadataTables() : Integer
    + CreateIsoMetadataTables( relaxed Integer ) : Integer
    libxml2Creates a set of tables supporting ISO Metadata. +
      +
    • if the optional argument relaxed is specified (any value), then + a relaxed version of the validating Triggers will be installed.
    • +

    +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.
    RegisterIsoMetadataRegisterIsoMetadata( scope String , metadata BLOB ) : Integer
    + RegisterIsoMetadata( scope String , metadata BLOB , id Integer ) : Integer
    + RegisterIsoMetadata( scope String , metadata BLOB , fileIdentifier String ) : Integer
    libxml2Inserts (or updates) an ISO Metadata definition. +
      +
    • scope can be one of undefined, fieldSession, collectionSession, + series, dataset, featureType, feature, attributeType, attribute, + tile, model, catalogue, schema, taxonomy, software, + service, collectionHardware, nonGeographicDataset, dimensionGroup.
    • +
    • metadata is expected to be a valid XmlBLOB storing some IsoMetadata payload.
    • +
    • the first form (two arguments only) always performs an INSERT; if one the optional arguments id or fileIdentifier an UPDATE could be eventually performed if a corresponding metadata row is already defined.
    • +

    +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.
    GetIsoMetadataIdGetIsoMetadataId( fileIdentifier String ) : Integerlibxml2Return the unique id corresponding to the ISO Metadata definition identified by fileIdentifier.
    + If no corresponding ISO Metadata definition exists, this function will always return ZERO; -1 will be returned for invalid arguments.

    SQL functions implementing FDO/OGR compatibility

    Function
    +

    SQL functions implementing OGC GeoPackage compatibility

    FunctionSyntaxOGC
    defined
    required
    module
    Summary
    CheckGeoPackageMetaDataCheckGeoPackageMetaData( void ) : IntegerbaseThis function will inspect the DB layout checking if it corresponds to the GPKG own style
    +the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE
    AutoGPKGStartAutoGPKGStart( void ) : IntegerGeoPackageThis function will inspect the DB layout, then automatically creating/refreshing a VirtualGPKG + wrapper for each GPKG geometry table
    +the return type is Integer [how many VirtualGPKG tables have been created]
    AutoGPKGStopAutoGPKGStop( void ) : IntegerGeoPackageThis function will inspect the DB layout, then automatically destroying any VirtualGPKG + wrapper found
    +the return type is Integer [how many VirtualGPKG tables have been destroyed]
    gpkgCreateBaseTablesgpkgCreateBaseTables( void ) : voidGeoPackageThis function will create base tables for an "empty" GeoPackage
    +returns nothing on success, raises exception on error
    gpkgInsertEpsgSRIDgpkgInsertEpsgSRID( srid Integer ) : voidGeoPackageThis function will add a spatial reference system entry for the specified EPSG identifier; + it is an error to try to add the entry if it already exists
    +returns nothing on success, raises exception on error
    gpkgCreateTilesTablegpkgCreateTilesTable( tile_table_name String , srid Integer , min_x Double precision , + min_y Double precision , max_x Double precision , max_y Double precision ) : voidGeoPackageThis function will create a new (empty) Tiles table and the triggers for that table; + It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set.
    + This function assumes usual tile conventions, including that the tiles are power-of-two-zoom.
    +returns nothing on success, raises exception on error
    gpkgCreateTilesZoomLevelgpkgCreateTilesZoomLevel( tile_table_name String, zoom_level Integer , extent_width Double precision , + extent_height Double precision ) : voidGeoPackageThis function will add a zoom level for the specified table.
    + This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, + 256x256 pixels, 1 tile at the top level (zoom level 0).
    +returns nothing on success, raises exception on error
    gpkgAddTileTriggersgpkgAddTileTriggers( tile_table_name String ) : voidGeoPackageThis function will add Geopackage tile table triggers for the named table.
    +returns nothing on success, raises exception on error
    gpkgGetNormalZoomgpkgGetNormalZoom( tile_table_name String , inverted_zoom_level Integer ) : IntegerGeoPackageThis function will return the normal integer zoom level for data stored in the specified table.
    + Note that this function can also be used to convert from a normal zoom level + to an inverted zoom level - this conversion is symmetric.
    + Raises a SQL exception if inverted zoom level is outside the range of + tile_matrix_metadata table normal zoom levels defined for the tile_table
    gpkgGetNormalRowgpkgGetNormalRow( tile_table_name String , normal_zoom_level Integer , inverted_row_number Integer ) : IntegerGeoPackageThis function will return the normal integer row number for the specified table, normal zoom level + and inverted row number.
    + Note that this function can also be used to convert from a normal row number + to an inverted row number - this conversion is symmetric.
    + Raises a SQL exception if no zoom level row record in tile_matrix_metadata
    gpkgGetImageTypegpkgGetImageType( image Blob ) : StringGeoPackageThis function will return the image type (as a string) of the blob argument, or "unknown" if + the image type is not one of the PNG, JPEG, TIFF or WebP format types that are supported in GeoPackage. + The result will be one of: +
      +
    • "png" for PNG
    • +
    • "jpeg" for JPEG
    • +
    • "tiff" for TIFF
    • +
    • "x-webp" for WebP
    • +
    + These are the mime type for the image format (without the "image/" prefix).
    + This function raises exception on error (e.g. wrong argument type).
    gpkgAddGeometryColumngpkgAddGeomtryColumn( table_name Sting, geometry_column_name String , geometry_type String , + with_z Integer , with_m Integer , srs_id Integer ) : voidGeoPackageAdds a geometry column to the specified table: +
      +
    • geometry_type is a normal WKT name: +
        +
      • "GEOMETRY"
      • +
      • "POINT"
      • +
      • "LINESTRING"
      • +
      • "POLYGON"
      • +
      • "MULTIPOINT"
      • +
      • "MULTILINESTRING"
      • +
      • "MULTIPOLYGON"
      • +
      • "GEOMETRYCOLLECTION"
      • +
    • +
    • with_z is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values)
    • +
    • with_m is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values)
    • +

    + returns nothing on success, raises exception on error
    gpkgAddGeometryTriggersgpkgAddGeometryTriggers( table_name String , geometry_column_name String ) : voidGeoPackageThis function will add Geopackage geometry table triggers for the named table.
    +returns nothing on success, raises exception on error
    gpkgAddSpatialIndexgpkgAddSpatialIndex( table_name String , geometry_column_name String ) : voidGeoPackageThis function will add Geopackage Spatial Index support for the named table.
    +returns nothing on success, raises exception on error
    gpkgMakePointgpkgMakePoint (x Double precision , y Double precision ) : GPKG Blob Geometry
    + gpkgMakePoint (x Double precision , y Double precision , srid Integer ) : GPKG Blob Geometry
    GeoPackageThis function will create a GeoPackage geometry POINT.
    + Raises a SQL exception on error
    gpkgMakePointZgpkgMakePointZ (x Double precision , y Double precision , z Double precision ) : GPKG Blob Geometry
    + gpkgMakePointZ (x Double precision , y Double precision , z Double precision , srid Integer ) : GPKG Blob Geometry
    GeoPackageThis function will create a GeoPackage geometry POINT Z.
    + Raises a SQL exception on error
    gpkgMakePointMgpkgMakePointM (x Double precision , y Double precision , m Double precision ) : GPKG Blob Geometry
    + gpkgMakePointM (x Double precision , y Double precision , m Double precision , srid Integer ) : GPKG Blob Geometry
    GeoPackageThis function will create a GeoPackage geometry POINT M.
    + Raises a SQL exception on error
    gpkgMakePointZMgpkgMakePointZM (x Double precision , y Double precision , z Double precision , m Double precision ) : GPKG Blob Geometry
    + gpkgMakePointZM (x Double precision , y Double precision , z Double precision , m Double precision , srid Integer ) : GPKG Blob Geometry
    GeoPackageThis function will create a GeoPackage geometry POINT ZM.
    + Raises a SQL exception on error
    IsValidGPBIsValidGPB( geom Blob ) : IntegerGeoPackageThis function will inspect a BLOB then checking if it really corresponds to a GPKG own Geometry
    +the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE
    AsGPBAsGPB( geom BLOB encoded geometry ) : GPKG Blob GeometryGeoPackageThis function will convert a SpatiaLite geometry blob into a GeoPackage format geometry blob.
    + Will return NULL if any error is encountered
    GeomFromGPBGeomFromGPB( geom GPKG Blob Geometry ) : BLOB encoded geometryGeoPackageThis function will convert a GeoPackage format geometry blob into a SpatiaLite geometry blob.
    + Will return NULL if any error is encountered
    CastAutomagicCastAutomagic( geom Blob ) : BLOB encoded geometryGeoPackageThis function will indifferently accept on input: +
      +
    • a SpatiaLite own BLOB Geometry
    • +
    • a GPKG own BLOB Geometry
    • +
    + then returning a SpatiaLite own BLOB geometry.
    + Will return NULL if any error is encountered or on invalid / mismatching argument
    GPKG_IsAssignableGPKG_IsAssignable( expected_type_name String , actual_type_name String ) : IntegerGeoPackageThis function will check if expected_type is the same or is a super-type of actual_type; + this function is required by the standard implementation of GPKG Geometry validation Triggers.
    +the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE

    SQL functions for MbrCache-based queries

    FunctionRetrieves from an R*Tree Spatial Index any entity whose MBR intersect the square circumscribed on the given circle (x y center, radius)
    +

    SQL functions supporting XmlBLOB

    FunctionSyntaxOGC
    defined
    required
    module
    Summary
    XB_CreateXB_Create( xmlPayload BLOB ) : XmlBLOB
    + XB_Create( xmlPayload BLOB , compressed Boolean ) : XmlBLOB
    + XB_Create( xmlPayload BLOB , compressed Boolean , + schemaURI Text ) : XmlBLOB
    + XB_Create( xmlPayload BLOB , compressed Boolean , + internalSchemaURI Boolean ) : XmlBLOB
    libxml2Construct an XmlBLOB object starting from an XmlDocument.
      +
    • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
    • +
    • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
    • +
    • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

    + NULL will be returned for not well-formed XmlDocuments, or when XML validation is required but XmlDocument fails to pass validation for any reason.
    XB_GetPayloadXB_GetPayload( xmlObject XmlBLOB [ , indent Integer ] ) : BLOBlibxml2Extracts a generic BLOB from an XmlBLOB object, exactly corresponding to the original XmlDocument and fully preserving the original character encoding.
    + If the optional argument indent is set to some positive value then the returned XmlDocument + will be nicely formatted and properly indented by the required factor; ZERO will cause the whole + XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object).
    XB_GetDocumentXB_GetDocument( xmlObject XmlBLOB [ , indent Integer ] ) : Stringlibxml2Extracts an XmlDocument from an XmlBLOB object; the returned XmlDocument will always be UTF-8 encoded (TEXT), irrespectively from the original internal encoding declaration.
    + If the optional argument indent is set to some positive value then the returned XmlDocument + will be nicely formatted and properly indented by the required factor; ZERO will cause the whole + XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object).
    XB_SchemaValidateXB_SchemaValidate( xmlObject XmlBLOB , schemaURI Text [ , compressed Boolean ] ) : XmlBLOB
    + XB_SchemaValidate( xmlObject XmlBLOB , internalSchemaURI Boolean [ , compressed Boolean ] ) : XmlBLOB
    libxml2Construct an XML validated XmlBLOB object starting from an XmlDocument.
      +
    • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
    • +
    • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
    • +
    • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

    + NULL will be returned if the input XmlBLOB fails to pass validation for any reason.
    XB_CompressXB_Compress( xmlObject XmlBLOB ) : XmlBLOBlibxml2A new compressed XmlBLOB object will be returned.
    + If the input XmlBLOB is already compressed this one is a harmless no-op.
    + NULL will be returned for any invalid input (not a valid XmlBLOB object).
    XB_UncompressXB_Uncompress( xmlObject XmlBLOB ) : XmlBLOBlibxml2A new uncompressed XmlBLOB object will be returned.
    + If the input XmlBLOB is already uncompressed this one is a harmless no-op.
    + NULL will be returned for any invalid input (not a valid XmlBLOB object).
    XB_IsValidXB_IsValid( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsCompressedXB_IsCompressed( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsSchemaValidatedXB_IsSchemaValidated( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsIsoMetadataXB_IsIsoMetadata( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsSldSeVectorStyleXB_IsSldSeVectorStyle( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsSldSeRasterStyleXB_IsSldSeRasterStyle( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_IsSvgXB_IsSvg( xmlObject XmlBLOB ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_GetDocumentSizeXB_GetDocumentSize( xmlObject XmlBLOB ) : Integerlibxml2Will return the size in bytes of the corresponding uncompressed XmlDocument.
    + NULL will be returned for any invalid input (not a valid XmlBLOB object).
    XB_GetEncodingXB_GetEncoding( xmlObject XmlBLOB ) : Stringlibxml2Will return the character encoding internally declared by the XmlDocument corresponding to the input XmlBLOB.
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't explicitly declares any encoding.
    XB_GetSchemaURIXB_GetSchemaURI( xmlObject XmlBLOB ) : Stringlibxml2Will return the Schema URI effectively used to validate an XmlBLOB.
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlBLOB isn't validated.
    XB_GetInternalSchemaURIXB_GetInternalSchemaURI( xmlPayload BLOB ) : Stringlibxml2Will return the Schema URI internally declared by the input XmlDocument + (xsi:noNamespeceSchemaLocation or xsi:schemaLocation).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't declares any Schema at all.
    XB_GetFileIdXB_GetFileId( xmlObject XmlBLOB ) : Stringlibxml2Will return the FileIdentifier defined within the XmlBLOB (if any).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no FileIdentifier is defined.
    Supported only on ISO Metadata XML Documents.
    XB_SetFileIdXB_SetFileId( xmlObject XmlBLOB , fileId String ) : XmlBLOBlibxml2Will return a new XmlBLOB by replacing the FileIdentifier value.
    + The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined FileIdentifier.
    + NULL will be returned for any invalid input.
    XB_AddFileIdXB_AddFileId( xmlObject XmlBLOB , fileId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOBlibxml2Will return a new XmlBLOB by inserting a FileIdentifier value.
    + The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined FileIdentifier.
    + IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <fileIdentifier> tag (could be eventually NULL).
    + CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
    + NULL will be returned for any invalid input.
    XB_GetParentIdXB_GetParentId( xmlObject XmlBLOB ) : Stringlibxml2Will return the ParentIdentifier defined within the XmlBLOB (if any).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no ParentIdentifier is defined.
    Supported only on ISO Metadata XML Documents.
    XB_SetParentIdXB_SetParentId( xmlObject XmlBLOB , parentId String ) : XmlBLOBlibxml2Will return a new XmlBLOB by replacing the ParentIdentifier value.
    + The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined ParentIdentifier.
    + NULL will be returned for any invalid input.
    XB_AddParentIdXB_AddParentId( xmlObject XmlBLOB , parentId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOBlibxml2Will return a new XmlBLOB by inserting a ParentIdentifier value.
    + The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined ParentIdentifier.
    + IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <parentIdentifier> tag (could be eventually NULL).
    + CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
    + NULL will be returned for any invalid input.
    XB_GetTitleXB_GetTitle( xmlObject XmlBLOB ) : Stringlibxml2Will return the Title defined within the XmlBLOB (if any).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Title is defined.
    Supported only on ISO Metadata and SLD/SE Styles.
    XB_GetAbstractXB_GetAbstract( xmlObject XmlBLOB ) : Stringlibxml2Will return the Abstract defined within the XmlBLOB (if any).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Abstract is defined.
    Supported only on ISO Metadata and SLD/SE Styles.
    XB_GetGeometryXB_GetGeometry( xmlObject XmlBLOB ) : Geometrylibxml2Will return the Geometry (Bounding Box) defined within the XmlBLOB (if any).
    + NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Bounding Box is defined.
    Supported only on ISO Metadata XML Documents.
    XB_GetLastParseErrorXB_GetLastParseError( void ) : Stringlibxml2Will return the most recent XML parsing error (if any).
    + NULL will be returned if there is no pending parsing error.
    XB_GetLastValidateErrorXB_GetLastValidateError( void ) : Stringlibxml2Will return the most recent XML validating error (if any).
    + NULL will be returned if there is no pending validating error.
    XB_IsValidXPathExpressionXB_IsValidXPathExpression( expr Text ) : Integerlibxml2The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN + corresponding to a function invocation on NULL arguments.
    XB_GetLastXPathErrorXB_GetLastXPathError( void ) : Stringlibxml2Will return the most recent XPath error (if any).
    + NULL will be returned if there is no pending XPath error.
    XB_CacheFlushXB_CacheFlush( void ) : Booleanlibxml2Reset the internal XML Schema cache to its initial empty state.
    XB_LoadXMLXB_LoadXML( filepath-or-URL String ) : BLOBlibxml2If filepath-or-URL corresponds to some valid local pathname, and the corresponding file (expected to contain a well-formed XML Document) + can be actually accessed in read mode, then the whole file content will be returned as a + BLOB value.
    + This function is even able to acces a remote XML Document identified by an URL.
    + Otherwise NULL will be returned.
    + Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
    + Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
    + Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
    + Please see: CountUnsafeTriggers()
    XB_StoreXMLXB_StoreXML( XmlObject XmlBLOB , filepath String ) : Integer
    + XB_StoreXML( XmlObject XmlBLOB , filepath String , indent Integer ) : Integer
    libxml2If XmlObject is of the XmlBLOB-type, and if filepath corresponds to some valid pathname + (accessible in write/create mode), then the corresponding file will be created/overwritten so to + contain the corresponding XML Document (fully preserving the original character encoding).
    + If the optional argument indent is set to some positive value then the returned XmlDocument + will be nicely formatted and properly indented by the required factor; ZERO will cause the whole + XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
    + The return type is Integer, with a return value of 1 for success, 0 for failure and -1 for invalid arguments.
    + Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
    + Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
    + Please see: CountUnsafeTriggers()
    back diff --git a/src/spatialite/spatialite.pc.in b/src/spatialite/spatialite.pc.in index f00fd8c..63d9e36 100644 --- a/src/spatialite/spatialite.pc.in +++ b/src/spatialite/spatialite.pc.in @@ -8,5 +8,5 @@ includedir=@includedir@ Name: spatialite Description: Spatial SQL database engine based on SQLite Version: @VERSION@ -Libs: -L${libdir} -lspatialite -lsqlite3 -lm +Libs: -L${libdir} -lspatialite -lsqlite3 -lm -lz Cflags: -I${includedir} diff --git a/src/spatialite/src/Makefile.am b/src/spatialite/src/Makefile.am index f5e1cdc..4ebad26 100644 --- a/src/spatialite/src/Makefile.am +++ b/src/spatialite/src/Makefile.am @@ -3,38 +3,79 @@ SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ + geopackage \ spatialite \ shapefiles \ srsinit \ - virtualtext + connection_cache \ + virtualtext \ + wfs \ + dxf \ + md5 -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers -INCLUDES += -I$(top_srcdir) +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers +AM_CPPFLAGS += -I$(top_srcdir) -lib_LTLIBRARIES = libspatialite.la +lib_LTLIBRARIES = libspatialite.la mod_spatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la \ ./gaiageo/libgaiageo.la \ + ./geopackage/libgeopackage.la \ ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la \ + ./dxf/libdxf.la \ + ./md5/libmd5.la \ ./srsinit/libsrsinit.la \ - ./virtualtext/libvirtualtext.la - + ./connection_cache/libconnection_cache.la \ + ./virtualtext/libvirtualtext.la \ + ./wfs/libwfs.la @LIBXML2_LIBS@ if MINGW -libspatialite_la_LDFLAGS = -version-info 4:0:0 -no-undefined +libspatialite_la_LDFLAGS = -version-info 4:2:0 -no-undefined else if ANDROID -libspatialite_la_LDFLAGS = -version-info 5:1:0 +libspatialite_la_LDFLAGS = -version-info 7:0:0 libspatialite_la_LIBADD += -ldl else -libspatialite_la_LDFLAGS = -version-info 5:1:0 +libspatialite_la_LDFLAGS = -version-info 7:0:0 libspatialite_la_LIBADD += -lpthread -ldl endif endif +mod_spatialite_la_SOURCES = versioninfo/version.c + +mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la \ + ./gaiaexif/gaiaexif.la \ + ./gaiageo/gaiageo.la \ + ./geopackage/geopackage.la \ + ./spatialite/splite.la \ + ./shapefiles/shapefiles.la \ + ./dxf/dxf.la \ + ./md5/md5.la \ + ./srsinit/srsinit.la \ + ./connection_cache/connection_cache.la \ + ./virtualtext/virtualtext.la \ + ./wfs/wfs.la @LIBXML2_LIBS@ + +mod_spatialite_la_CPPFLAGS = @CFLAGS@ +mod_spatialite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +mod_spatialite_la_CPPFLAGS += -DLOADABLE_EXTENSION +mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static + +if MINGW +mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined +else +if ANDROID +mod_spatialite_la_LDFLAGS = -module -version-info 7:0:0 +mod_spatialite_la_LIBADD += -ldl +else +mod_spatialite_la_LDFLAGS = -module -version-info 7:0:0 +mod_spatialite_la_LIBADD += -lpthread -ldl +endif +endif + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/Makefile.in b/src/spatialite/src/Makefile.in index ab4d4a9..0cf7db7 100644 --- a/src/spatialite/src/Makefile.in +++ b/src/spatialite/src/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -53,8 +80,11 @@ build_triplet = @build@ host_triplet = @host@ @ANDROID_TRUE@@MINGW_FALSE@am__append_1 = -ldl @ANDROID_FALSE@@MINGW_FALSE@am__append_2 = -lpthread -ldl +@ANDROID_TRUE@@MINGW_FALSE@am__append_3 = -ldl +@ANDROID_FALSE@@MINGW_FALSE@am__append_4 = -lpthread -ldl subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -98,36 +128,80 @@ LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libspatialite_la_DEPENDENCIES = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ - ./spatialite/libsplite.la ./shapefiles/libshapefiles.la \ - ./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \ + ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ + ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ + ./srsinit/libsrsinit.la \ + ./connection_cache/libconnection_cache.la \ + ./virtualtext/libvirtualtext.la ./wfs/libwfs.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libspatialite_la_OBJECTS = version.lo libspatialite_la_OBJECTS = $(am_libspatialite_la_OBJECTS) -libspatialite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libspatialite_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libspatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libspatialite_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +mod_spatialite_la_DEPENDENCIES = ./gaiaaux/gaiaaux.la \ + ./gaiaexif/gaiaexif.la ./gaiageo/gaiageo.la \ + ./geopackage/geopackage.la ./spatialite/splite.la \ + ./shapefiles/shapefiles.la ./dxf/dxf.la ./md5/md5.la \ + ./srsinit/srsinit.la ./connection_cache/connection_cache.la \ + ./virtualtext/virtualtext.la ./wfs/wfs.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_mod_spatialite_la_OBJECTS = mod_spatialite_la-version.lo +mod_spatialite_la_OBJECTS = $(am_mod_spatialite_la_OBJECTS) +mod_spatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(mod_spatialite_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libspatialite_la_SOURCES) -DIST_SOURCES = $(libspatialite_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libspatialite_la_SOURCES) $(mod_spatialite_la_SOURCES) +DIST_SOURCES = $(libspatialite_la_SOURCES) \ + $(mod_spatialite_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -135,9 +209,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -169,6 +263,7 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -210,6 +305,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -231,6 +328,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -294,22 +394,44 @@ SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ + geopackage \ spatialite \ shapefiles \ srsinit \ - virtualtext - -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir) -lib_LTLIBRARIES = libspatialite.la + connection_cache \ + virtualtext \ + wfs \ + dxf \ + md5 + +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir) +lib_LTLIBRARIES = libspatialite.la mod_spatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ - ./spatialite/libsplite.la ./shapefiles/libshapefiles.la \ - ./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \ + ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ + ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ + ./srsinit/libsrsinit.la \ + ./connection_cache/libconnection_cache.la \ + ./virtualtext/libvirtualtext.la ./wfs/libwfs.la @LIBXML2_LIBS@ \ $(am__append_1) $(am__append_2) -@ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 5:1:0 -@ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 5:1:0 -@MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:0:0 -no-undefined +@ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 7:0:0 +@ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 7:0:0 +@MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:2:0 -no-undefined +mod_spatialite_la_SOURCES = versioninfo/version.c +mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la ./gaiaexif/gaiaexif.la \ + ./gaiageo/gaiageo.la ./geopackage/geopackage.la \ + ./spatialite/splite.la ./shapefiles/shapefiles.la ./dxf/dxf.la \ + ./md5/md5.la ./srsinit/srsinit.la \ + ./connection_cache/connection_cache.la \ + ./virtualtext/virtualtext.la ./wfs/wfs.la @LIBXML2_LIBS@ \ + $(am__append_3) $(am__append_4) +mod_spatialite_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static +@ANDROID_FALSE@@MINGW_FALSE@mod_spatialite_la_LDFLAGS = -module -version-info 7:0:0 +@ANDROID_TRUE@@MINGW_FALSE@mod_spatialite_la_LDFLAGS = -module -version-info 7:0:0 +@MINGW_TRUE@mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive @@ -345,6 +467,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @@ -371,14 +494,20 @@ uninstall-libLTLIBRARIES: clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libspatialite.la: $(libspatialite_la_OBJECTS) $(libspatialite_la_DEPENDENCIES) $(EXTRA_libspatialite_la_DEPENDENCIES) - $(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS) + +mod_spatialite.la: $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_DEPENDENCIES) $(EXTRA_mod_spatialite_la_DEPENDENCIES) + $(AM_V_CCLD)$(mod_spatialite_la_LINK) -rpath $(libdir) $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -386,35 +515,43 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_spatialite_la-version.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< version.lo: versioninfo/version.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT version.lo -MD -MP -MF $(DEPDIR)/version.Tpo -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/version.Tpo $(DEPDIR)/version.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='versioninfo/version.c' object='version.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT version.lo -MD -MP -MF $(DEPDIR)/version.Tpo -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/version.Tpo $(DEPDIR)/version.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='versioninfo/version.c' object='version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c + +mod_spatialite_la-version.lo: versioninfo/version.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mod_spatialite_la-version.lo -MD -MP -MF $(DEPDIR)/mod_spatialite_la-version.Tpo -c -o mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mod_spatialite_la-version.Tpo $(DEPDIR)/mod_spatialite_la-version.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='versioninfo/version.c' object='mod_spatialite_la-version.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c mostlyclean-libtool: -rm -f *.lo @@ -423,22 +560,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -453,57 +593,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -519,12 +614,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -536,15 +626,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -553,6 +639,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -722,24 +823,22 @@ ps-am: uninstall-am: uninstall-libLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-libLTLIBRARIES +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libLTLIBRARIES \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am \ + install-libLTLIBRARIES install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/connection_cache/Makefile.am b/src/spatialite/src/connection_cache/Makefile.am new file mode 100644 index 0000000..3e2c3bc --- /dev/null +++ b/src/spatialite/src/connection_cache/Makefile.am @@ -0,0 +1,22 @@ + +SUBDIRS = generator + +AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers + +noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h +noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la + +libconnection_cache_la_SOURCES = alloc_cache.c + +connection_cache_la_SOURCES = alloc_cache.c + +connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ +connection_cache_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +connection_cache_la_CPPFLAGS += -DLOADABLE_EXTENSION +connection_cache_la_LDFLAGS = -module +connection_cache_la_LIBTOOLFLAGS = --tag=disable-static + +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda + + diff --git a/src/spatialite/src/connection_cache/Makefile.in b/src/spatialite/src/connection_cache/Makefile.in new file mode 100644 index 0000000..b55519c --- /dev/null +++ b/src/spatialite/src/connection_cache/Makefile.in @@ -0,0 +1,733 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/connection_cache +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +connection_cache_la_LIBADD = +am_connection_cache_la_OBJECTS = connection_cache_la-alloc_cache.lo +connection_cache_la_OBJECTS = $(am_connection_cache_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +connection_cache_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(connection_cache_la_LDFLAGS) $(LDFLAGS) -o $@ +libconnection_cache_la_LIBADD = +am_libconnection_cache_la_OBJECTS = alloc_cache.lo +libconnection_cache_la_OBJECTS = $(am_libconnection_cache_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(connection_cache_la_SOURCES) \ + $(libconnection_cache_la_SOURCES) +DIST_SOURCES = $(connection_cache_la_SOURCES) \ + $(libconnection_cache_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = generator +AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers +noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h +noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la +libconnection_cache_la_SOURCES = alloc_cache.c +connection_cache_la_SOURCES = alloc_cache.c +connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION +connection_cache_la_LDFLAGS = -module +connection_cache_la_LIBTOOLFLAGS = --tag=disable-static +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/connection_cache/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +connection_cache.la: $(connection_cache_la_OBJECTS) $(connection_cache_la_DEPENDENCIES) $(EXTRA_connection_cache_la_DEPENDENCIES) + $(AM_V_CCLD)$(connection_cache_la_LINK) $(connection_cache_la_OBJECTS) $(connection_cache_la_LIBADD) $(LIBS) + +libconnection_cache.la: $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_DEPENDENCIES) $(EXTRA_libconnection_cache_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc_cache.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection_cache_la-alloc_cache.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +connection_cache_la-alloc_cache.lo: alloc_cache.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connection_cache_la-alloc_cache.lo -MD -MP -MF $(DEPDIR)/connection_cache_la-alloc_cache.Tpo -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/connection_cache_la-alloc_cache.Tpo $(DEPDIR)/connection_cache_la-alloc_cache.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alloc_cache.c' object='connection_cache_la-alloc_cache.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/connection_cache/alloc_cache.c b/src/spatialite/src/connection_cache/alloc_cache.c new file mode 100644 index 0000000..4d11912 --- /dev/null +++ b/src/spatialite/src/connection_cache/alloc_cache.c @@ -0,0 +1,756 @@ +/* + alloc_cache.c -- Gaia spatial support for SQLite + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + + +#ifdef _WIN32 +#include +#else +#include +#endif + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ +#include +#endif /* end LIBXML2 conditional */ + +#include +#include + +#include +#include +#include + +#ifndef OMIT_GEOS /* including GEOS */ +#include +#endif + +#ifndef OMIT_PROJ /* including PROJ.4 */ +#include +#endif + +#include "cache_aux_1.h" + +/* GLOBAL variables */ +extern char *gaia_geos_error_msg; +extern char *gaia_geos_warning_msg; + +/* GLOBAL semaphores */ +int gaia_already_initialized = 0; +#ifdef _WIN32 +static CRITICAL_SECTION gaia_cache_semaphore; +static CRITICAL_SECTION gaia_lwgeom_semaphore; +#else +static pthread_mutex_t gaia_cache_semaphore = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t gaia_lwgeom_semaphore = PTHREAD_MUTEX_INITIALIZER; +#endif + +#define GAIA_CONN_RESERVED (char *)1 + +static void +setGeosErrorMsg (int pool_index, const char *msg) +{ +/* setting the latest GEOS error message */ + struct splite_connection *p = &(splite_connection_pool[pool_index]); + int len; + if (p->gaia_geos_error_msg != NULL) + free (p->gaia_geos_error_msg); + p->gaia_geos_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geos_error_msg = malloc (len + 1); + strcpy (p->gaia_geos_error_msg, msg); +} + +static void +setGeosWarningMsg (int pool_index, const char *msg) +{ +/* setting the latest GEOS error message */ + struct splite_connection *p = &(splite_connection_pool[pool_index]); + int len; + if (p->gaia_geos_warning_msg != NULL) + free (p->gaia_geos_warning_msg); + p->gaia_geos_warning_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geos_warning_msg = malloc (len + 1); + strcpy (p->gaia_geos_warning_msg, msg); +} + +static void +setGeosAuxErrorMsg (int pool_index, const char *msg) +{ +/* setting the latest GEOS (auxiliary) error message */ + struct splite_connection *p = &(splite_connection_pool[pool_index]); + int len; + if (p->gaia_geosaux_error_msg != NULL) + free (p->gaia_geosaux_error_msg); + p->gaia_geosaux_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geosaux_error_msg = malloc (len + 1); + strcpy (p->gaia_geosaux_error_msg, msg); +} + +static void +geos_error_r (int pool_index, const char *fmt, va_list ap) +{ +/* reporting some GEOS error - thread safe */ + char *msg; + msg = sqlite3_vmprintf (fmt, ap); + if (msg) + { + spatialite_e ("GEOS error: %s\n", msg); + setGeosErrorMsg (pool_index, msg); + sqlite3_free (msg); + } + else + setGeosErrorMsg (pool_index, NULL); +} + +static void +geos_warning_r (int pool_index, const char *fmt, va_list ap) +{ +/* reporting some GEOS warning - thread safe */ + char *msg; + msg = sqlite3_vmprintf (fmt, ap); + if (msg) + { + spatialite_e ("GEOS warning: %s\n", msg); + setGeosWarningMsg (pool_index, msg); + sqlite3_free (msg); + } + else + setGeosWarningMsg (pool_index, NULL); +} + +#include "cache_aux_2.h" + +static int +find_free_connection () +{ + int i; + for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++) + { + struct splite_connection *p = &(splite_connection_pool[i]); + if (p->conn_ptr == NULL) + { + p->conn_ptr = GAIA_CONN_RESERVED; + return i; + } + } + spatialite_e ("ERROR: Too many connections: max %d\n", + SPATIALITE_MAX_CONNECTIONS); + return -1; +} + +static void +confirm (int i, void *cache) +{ +/* marking the slot as definitely reserved */ + struct splite_connection *p = &(splite_connection_pool[i]); + p->conn_ptr = cache; +} + +static void +invalidate (int i) +{ +/* definitely releasing the slot */ + struct splite_connection *p = &(splite_connection_pool[i]); + if (p->gaia_geos_error_msg != NULL) + free (p->gaia_geos_error_msg); + if (p->gaia_geos_warning_msg != NULL) + free (p->gaia_geos_warning_msg); + if (p->gaia_geosaux_error_msg != NULL) + free (p->gaia_geosaux_error_msg); + p->gaia_geos_error_msg = NULL; + p->gaia_geos_warning_msg = NULL; + p->gaia_geosaux_error_msg = NULL; + p->conn_ptr = NULL; +} + +SPATIALITE_DECLARE void * +spatialite_alloc_connection () +{ +/* allocating and initializing an empty internal cache */ + gaiaOutBufferPtr out; + int i; + struct splite_internal_cache *cache = NULL; + struct splite_geos_cache_item *p; + struct splite_xmlSchema_cache_item *p_xmlSchema; + int pool_index; + +/* attempting to implicitly initialize the library */ + spatialite_initialize (); + +/* locking the semaphore */ + splite_cache_semaphore_lock (); + + pool_index = find_free_connection (); + + if (pool_index < 0) + goto done; + + cache = malloc (sizeof (struct splite_internal_cache)); + if (cache == NULL) + { + invalidate (pool_index); + goto done; + } + cache->magic1 = SPATIALITE_CACHE_MAGIC1; + cache->magic2 = SPATIALITE_CACHE_MAGIC2; + cache->GEOS_handle = NULL; + cache->PROJ_handle = NULL; + cache->pool_index = pool_index; + confirm (pool_index, cache); +/* initializing the XML error buffers */ + out = malloc (sizeof (gaiaOutBuffer)); + gaiaOutBufferInitialize (out); + cache->xmlParsingErrors = out; + out = malloc (sizeof (gaiaOutBuffer)); + gaiaOutBufferInitialize (out); + cache->xmlSchemaValidationErrors = out; + out = malloc (sizeof (gaiaOutBuffer)); + gaiaOutBufferInitialize (out); + cache->xmlXPathErrors = out; +/* initializing the GEOS cache */ + p = &(cache->cacheItem1); + memset (p->gaiaBlob, '\0', 64); + p->gaiaBlobSize = 0; + p->crc32 = 0; + p->geosGeom = NULL; + p->preparedGeosGeom = NULL; + p = &(cache->cacheItem2); + memset (p->gaiaBlob, '\0', 64); + p->gaiaBlobSize = 0; + p->crc32 = 0; + p->geosGeom = NULL; + p->preparedGeosGeom = NULL; + for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) + { + /* initializing the XmlSchema cache */ + p_xmlSchema = &(cache->xmlSchemaCache[i]); + p_xmlSchema->timestamp = 0; + p_xmlSchema->schemaURI = NULL; + p_xmlSchema->schemaDoc = NULL; + p_xmlSchema->parserCtxt = NULL; + p_xmlSchema->schema = NULL; + } + +#include "cache_aux_3.h" + +/* initializing GEOS and PROJ.4 handles */ + +#ifndef OMIT_GEOS /* initializing GEOS */ + cache->GEOS_handle = initGEOS_r (cache->geos_warning, cache->geos_error); +#endif /* end GEOS */ + +#ifndef OMIT_PROJ /* initializing the PROJ.4 context */ + cache->PROJ_handle = pj_ctx_alloc (); +#endif /* end PROJ.4 */ + + done: +/* unlocking the semaphore */ + splite_cache_semaphore_unlock (); + return cache; +} + +SPATIALITE_PRIVATE void +free_internal_cache (struct splite_internal_cache *cache) +{ +/* freeing an internal cache */ + struct splite_geos_cache_item *p; +#ifndef OMIT_GEOS + GEOSContextHandle_t handle = NULL; +#endif + +#ifdef ENABLE_LIBXML2 + int i; + struct splite_xmlSchema_cache_item *p_xmlSchema; +#endif + + if (cache == NULL) + return; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return; + +#ifndef OMIT_GEOS + handle = cache->GEOS_handle; + if (handle != NULL) + finishGEOS_r (handle); + cache->GEOS_handle = NULL; + gaiaResetGeosMsg_r (cache); +#endif + +#ifndef OMIT_PROJ + if (cache->PROJ_handle != NULL) + pj_ctx_free (cache->PROJ_handle); + cache->PROJ_handle = NULL; +#endif + +/* freeing the XML error buffers */ + gaiaOutBufferReset (cache->xmlParsingErrors); + gaiaOutBufferReset (cache->xmlSchemaValidationErrors); + gaiaOutBufferReset (cache->xmlXPathErrors); + free (cache->xmlParsingErrors); + free (cache->xmlSchemaValidationErrors); + free (cache->xmlXPathErrors); + +/* freeing the GEOS cache */ + p = &(cache->cacheItem1); + splite_free_geos_cache_item_r (cache, p); + p = &(cache->cacheItem2); + splite_free_geos_cache_item_r (cache, p); +#ifdef ENABLE_LIBXML2 + for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) + { + /* freeing the XmlSchema cache */ + p_xmlSchema = &(cache->xmlSchemaCache[i]); + splite_free_xml_schema_cache_item (p_xmlSchema); + } +#endif + +/* releasing the connection pool object */ + invalidate (cache->pool_index); + +/* freeing the cache itself */ + free (cache); +} + +GAIAGEO_DECLARE void +gaiaResetGeosMsg_r (const void *p_cache) +{ +/* resets the GEOS error and warning messages */ + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return; + if (p->gaia_geos_error_msg != NULL) + free (p->gaia_geos_error_msg); + if (p->gaia_geos_warning_msg != NULL) + free (p->gaia_geos_warning_msg); + if (p->gaia_geosaux_error_msg != NULL) + free (p->gaia_geosaux_error_msg); + p->gaia_geos_error_msg = NULL; + p->gaia_geos_warning_msg = NULL; + p->gaia_geosaux_error_msg = NULL; +} + +GAIAGEO_DECLARE const char * +gaiaGetGeosErrorMsg_r (const void *p_cache) +{ +/* return the latest GEOS error message */ + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return NULL; + return p->gaia_geos_error_msg; +} + +GAIAGEO_DECLARE const char * +gaiaGetGeosWarningMsg_r (const void *p_cache) +{ +/* return the latest GEOS error message */ + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return NULL; + return p->gaia_geos_warning_msg; +} + +GAIAGEO_DECLARE const char * +gaiaGetGeosAuxErrorMsg_r (const void *p_cache) +{ +/* return the latest GEOS (auxialiary) error message */ + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return NULL; + return p->gaia_geosaux_error_msg; +} + +GAIAGEO_DECLARE void +gaiaSetGeosErrorMsg_r (const void *p_cache, const char *msg) +{ +/* setting the latest GEOS error message */ + int len; + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return; + if (p->gaia_geos_error_msg != NULL) + free (p->gaia_geos_error_msg); + p->gaia_geos_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geos_error_msg = malloc (len + 1); + strcpy (p->gaia_geos_error_msg, msg); +} + +GAIAGEO_DECLARE void +gaiaSetGeosWarningMsg_r (const void *p_cache, const char *msg) +{ +/* setting the latest GEOS error message */ + int len; + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return; + if (p->gaia_geos_warning_msg != NULL) + free (p->gaia_geos_warning_msg); + p->gaia_geos_warning_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geos_warning_msg = malloc (len + 1); + strcpy (p->gaia_geos_warning_msg, msg); +} + +GAIAGEO_DECLARE void +gaiaSetGeosAuxErrorMsg_r (const void *p_cache, const char *msg) +{ +/* setting the latest GEOS (auxiliary) error message */ + int len; + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return; + if (p->gaia_geosaux_error_msg != NULL) + free (p->gaia_geosaux_error_msg); + p->gaia_geosaux_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + p->gaia_geosaux_error_msg = malloc (len + 1); + strcpy (p->gaia_geosaux_error_msg, msg); +} + +static char * +parse_number_from_msg (const char *str) +{ +/* attempting to parse a number from a string */ + int sign = 0; + int point = 0; + int digit = 0; + int err = 0; + int len; + char *res; + const char *p = str; + while (1) + { + if (*p == '+' || *p == '-') + { + sign++; + p++; + continue; + } + if (*p == '.') + { + point++; + p++; + continue; + } + if (*p >= '0' && *p <= '9') + { + p++; + digit++; + continue; + } + break; + } + if (sign > 1) + err = 1; + if (sign == 1 && *str != '+' && *str != '-') + err = 1; + if (point > 1) + err = 1; + if (!digit) + err = 1; + if (err) + return NULL; + len = p - str; + res = malloc (len + 1); + memcpy (res, str, len); + *(res + len) = '\0'; + return res; +} + +static int +check_geos_critical_point (const char *msg, double *x, double *y) +{ +/* attempts to extract an [X,Y] Point coords from within a string */ + char *px; + char *py; + const char *ref = " at or near point "; + const char *ref2 = " conflict at "; + const char *p = strstr (msg, ref); + if (p != NULL) + goto ok_ref; + p = strstr (msg, ref2); + if (p == NULL) + return 0; + p += strlen (ref2); + goto ok_ref2; + ok_ref: + p += strlen (ref); + ok_ref2: + px = parse_number_from_msg (p); + if (px == NULL) + return 0; + p += strlen (px) + 1; + py = parse_number_from_msg (p); + if (py == NULL) + { + free (px); + return 0; + } + *x = atof (px); + *y = atof (py); + free (px); + free (py); + return 1; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaCriticalPointFromGEOSmsg (void) +{ +/* +/ Attempts to return a Point Geometry extracted from the latest GEOS +/ error / warning message +*/ + double x; + double y; + gaiaGeomCollPtr geom; + const char *msg = gaia_geos_error_msg; + if (msg == NULL) + msg = gaia_geos_warning_msg; + if (msg == NULL) + return NULL; + if (!check_geos_critical_point (msg, &x, &y)) + return NULL; + geom = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom, x, y); + return geom; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaCriticalPointFromGEOSmsg_r (const void *p_cache) +{ +/* +/ Attempts to return a Point Geometry extracted from the latest GEOS +/ error / warning message +*/ + double x; + double y; + gaiaGeomCollPtr geom; + const char *msg; + struct splite_connection *p = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache != NULL) + { + if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 + || cache->magic2 == SPATIALITE_CACHE_MAGIC2) + p = &(splite_connection_pool[cache->pool_index]); + } + if (p == NULL) + return NULL; + msg = p->gaia_geos_error_msg; + if (msg == NULL) + msg = p->gaia_geos_warning_msg; + if (msg == NULL) + return NULL; + if (!check_geos_critical_point (msg, &x, &y)) + return NULL; + geom = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom, x, y); + return geom; +} + +SPATIALITE_PRIVATE void +splite_cache_semaphore_lock (void) +{ +#ifdef _WIN32 + EnterCriticalSection (&gaia_cache_semaphore); +#else + pthread_mutex_lock (&gaia_cache_semaphore); +#endif +} + +SPATIALITE_PRIVATE void +splite_cache_semaphore_unlock (void) +{ +#ifdef _WIN32 + LeaveCriticalSection (&gaia_cache_semaphore); +#else + pthread_mutex_unlock (&gaia_cache_semaphore); +#endif +} + +SPATIALITE_PRIVATE void +splite_lwgeom_semaphore_lock (void) +{ +#ifdef _WIN32 + EnterCriticalSection (&gaia_lwgeom_semaphore); +#else + pthread_mutex_lock (&gaia_lwgeom_semaphore); +#endif +} + +SPATIALITE_PRIVATE void +splite_lwgeom_semaphore_unlock (void) +{ +#ifdef _WIN32 + LeaveCriticalSection (&gaia_lwgeom_semaphore); +#else + pthread_mutex_unlock (&gaia_lwgeom_semaphore); +#endif +} + +SPATIALITE_DECLARE void +spatialite_initialize (void) +{ +/* initializes the library */ + if (gaia_already_initialized) + return; + +#ifdef _WIN32 + InitializeCriticalSection (&gaia_cache_semaphore); + InitializeCriticalSection (&gaia_lwgeom_semaphore); +#endif + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + xmlInitParser (); +#endif /* end LIBXML2 conditional */ + + gaia_already_initialized = 1; +} + +SPATIALITE_DECLARE void +spatialite_shutdown (void) +{ +/* finalizes the library */ + int i; + if (!gaia_already_initialized) + return; + +#ifdef _WIN32 + DeleteCriticalSection (&gaia_cache_semaphore); + DeleteCriticalSection (&gaia_lwgeom_semaphore); +#endif + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + xmlCleanupParser (); +#endif /* end LIBXML2 conditional */ + + for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++) + { + struct splite_connection *p = &(splite_connection_pool[i]); + if (p->conn_ptr != NULL && p->conn_ptr != GAIA_CONN_RESERVED) + free_internal_cache (p->conn_ptr); + } + gaia_already_initialized = 0; +} diff --git a/src/spatialite/src/connection_cache/cache_aux_1.h b/src/spatialite/src/connection_cache/cache_aux_1.h new file mode 100644 index 0000000..fb2060f --- /dev/null +++ b/src/spatialite/src/connection_cache/cache_aux_1.h @@ -0,0 +1,76 @@ +#define SPATIALITE_MAX_CONNECTIONS 64 + +struct splite_connection +{ +/* connections pool */ + void *conn_ptr; + char *gaia_geos_error_msg; + char *gaia_geos_warning_msg; + char *gaia_geosaux_error_msg; +} splite_connection_pool[SPATIALITE_MAX_CONNECTIONS] = +{ + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL} +}; diff --git a/src/spatialite/src/connection_cache/cache_aux_2.h b/src/spatialite/src/connection_cache/cache_aux_2.h new file mode 100644 index 0000000..b64cc11 --- /dev/null +++ b/src/spatialite/src/connection_cache/cache_aux_2.h @@ -0,0 +1,1152 @@ +static void +geos_error_0 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (0, fmt, ap); + va_end (ap); +} + +static void +geos_error_1 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (1, fmt, ap); + va_end (ap); +} + +static void +geos_error_2 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (2, fmt, ap); + va_end (ap); +} + +static void +geos_error_3 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (3, fmt, ap); + va_end (ap); +} + +static void +geos_error_4 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (4, fmt, ap); + va_end (ap); +} + +static void +geos_error_5 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (5, fmt, ap); + va_end (ap); +} + +static void +geos_error_6 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (6, fmt, ap); + va_end (ap); +} + +static void +geos_error_7 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (7, fmt, ap); + va_end (ap); +} + +static void +geos_error_8 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (8, fmt, ap); + va_end (ap); +} + +static void +geos_error_9 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (9, fmt, ap); + va_end (ap); +} + +static void +geos_error_10 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (10, fmt, ap); + va_end (ap); +} + +static void +geos_error_11 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (11, fmt, ap); + va_end (ap); +} + +static void +geos_error_12 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (12, fmt, ap); + va_end (ap); +} + +static void +geos_error_13 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (13, fmt, ap); + va_end (ap); +} + +static void +geos_error_14 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (14, fmt, ap); + va_end (ap); +} + +static void +geos_error_15 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (15, fmt, ap); + va_end (ap); +} + +static void +geos_error_16 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (16, fmt, ap); + va_end (ap); +} + +static void +geos_error_17 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (17, fmt, ap); + va_end (ap); +} + +static void +geos_error_18 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (18, fmt, ap); + va_end (ap); +} + +static void +geos_error_19 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (19, fmt, ap); + va_end (ap); +} + +static void +geos_error_20 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (20, fmt, ap); + va_end (ap); +} + +static void +geos_error_21 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (21, fmt, ap); + va_end (ap); +} + +static void +geos_error_22 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (22, fmt, ap); + va_end (ap); +} + +static void +geos_error_23 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (23, fmt, ap); + va_end (ap); +} + +static void +geos_error_24 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (24, fmt, ap); + va_end (ap); +} + +static void +geos_error_25 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (25, fmt, ap); + va_end (ap); +} + +static void +geos_error_26 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (26, fmt, ap); + va_end (ap); +} + +static void +geos_error_27 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (27, fmt, ap); + va_end (ap); +} + +static void +geos_error_28 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (28, fmt, ap); + va_end (ap); +} + +static void +geos_error_29 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (29, fmt, ap); + va_end (ap); +} + +static void +geos_error_30 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (30, fmt, ap); + va_end (ap); +} + +static void +geos_error_31 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (31, fmt, ap); + va_end (ap); +} + +static void +geos_error_32 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (32, fmt, ap); + va_end (ap); +} + +static void +geos_error_33 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (33, fmt, ap); + va_end (ap); +} + +static void +geos_error_34 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (34, fmt, ap); + va_end (ap); +} + +static void +geos_error_35 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (35, fmt, ap); + va_end (ap); +} + +static void +geos_error_36 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (36, fmt, ap); + va_end (ap); +} + +static void +geos_error_37 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (37, fmt, ap); + va_end (ap); +} + +static void +geos_error_38 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (38, fmt, ap); + va_end (ap); +} + +static void +geos_error_39 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (39, fmt, ap); + va_end (ap); +} + +static void +geos_error_40 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (40, fmt, ap); + va_end (ap); +} + +static void +geos_error_41 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (41, fmt, ap); + va_end (ap); +} + +static void +geos_error_42 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (42, fmt, ap); + va_end (ap); +} + +static void +geos_error_43 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (43, fmt, ap); + va_end (ap); +} + +static void +geos_error_44 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (44, fmt, ap); + va_end (ap); +} + +static void +geos_error_45 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (45, fmt, ap); + va_end (ap); +} + +static void +geos_error_46 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (46, fmt, ap); + va_end (ap); +} + +static void +geos_error_47 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (47, fmt, ap); + va_end (ap); +} + +static void +geos_error_48 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (48, fmt, ap); + va_end (ap); +} + +static void +geos_error_49 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (49, fmt, ap); + va_end (ap); +} + +static void +geos_error_50 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (50, fmt, ap); + va_end (ap); +} + +static void +geos_error_51 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (51, fmt, ap); + va_end (ap); +} + +static void +geos_error_52 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (52, fmt, ap); + va_end (ap); +} + +static void +geos_error_53 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (53, fmt, ap); + va_end (ap); +} + +static void +geos_error_54 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (54, fmt, ap); + va_end (ap); +} + +static void +geos_error_55 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (55, fmt, ap); + va_end (ap); +} + +static void +geos_error_56 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (56, fmt, ap); + va_end (ap); +} + +static void +geos_error_57 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (57, fmt, ap); + va_end (ap); +} + +static void +geos_error_58 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (58, fmt, ap); + va_end (ap); +} + +static void +geos_error_59 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (59, fmt, ap); + va_end (ap); +} + +static void +geos_error_60 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (60, fmt, ap); + va_end (ap); +} + +static void +geos_error_61 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (61, fmt, ap); + va_end (ap); +} + +static void +geos_error_62 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (62, fmt, ap); + va_end (ap); +} + +static void +geos_error_63 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_error_r (63, fmt, ap); + va_end (ap); +} + +static void +geos_warning_0 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (0, fmt, ap); + va_end (ap); +} + +static void +geos_warning_1 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (1, fmt, ap); + va_end (ap); +} + +static void +geos_warning_2 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (2, fmt, ap); + va_end (ap); +} + +static void +geos_warning_3 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (3, fmt, ap); + va_end (ap); +} + +static void +geos_warning_4 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (4, fmt, ap); + va_end (ap); +} + +static void +geos_warning_5 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (5, fmt, ap); + va_end (ap); +} + +static void +geos_warning_6 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (6, fmt, ap); + va_end (ap); +} + +static void +geos_warning_7 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (7, fmt, ap); + va_end (ap); +} + +static void +geos_warning_8 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (8, fmt, ap); + va_end (ap); +} + +static void +geos_warning_9 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (9, fmt, ap); + va_end (ap); +} + +static void +geos_warning_10 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (10, fmt, ap); + va_end (ap); +} + +static void +geos_warning_11 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (11, fmt, ap); + va_end (ap); +} + +static void +geos_warning_12 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (12, fmt, ap); + va_end (ap); +} + +static void +geos_warning_13 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (13, fmt, ap); + va_end (ap); +} + +static void +geos_warning_14 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (14, fmt, ap); + va_end (ap); +} + +static void +geos_warning_15 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (15, fmt, ap); + va_end (ap); +} + +static void +geos_warning_16 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (16, fmt, ap); + va_end (ap); +} + +static void +geos_warning_17 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (17, fmt, ap); + va_end (ap); +} + +static void +geos_warning_18 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (18, fmt, ap); + va_end (ap); +} + +static void +geos_warning_19 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (19, fmt, ap); + va_end (ap); +} + +static void +geos_warning_20 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (20, fmt, ap); + va_end (ap); +} + +static void +geos_warning_21 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (21, fmt, ap); + va_end (ap); +} + +static void +geos_warning_22 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (22, fmt, ap); + va_end (ap); +} + +static void +geos_warning_23 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (23, fmt, ap); + va_end (ap); +} + +static void +geos_warning_24 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (24, fmt, ap); + va_end (ap); +} + +static void +geos_warning_25 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (25, fmt, ap); + va_end (ap); +} + +static void +geos_warning_26 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (26, fmt, ap); + va_end (ap); +} + +static void +geos_warning_27 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (27, fmt, ap); + va_end (ap); +} + +static void +geos_warning_28 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (28, fmt, ap); + va_end (ap); +} + +static void +geos_warning_29 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (29, fmt, ap); + va_end (ap); +} + +static void +geos_warning_30 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (30, fmt, ap); + va_end (ap); +} + +static void +geos_warning_31 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (31, fmt, ap); + va_end (ap); +} + +static void +geos_warning_32 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (32, fmt, ap); + va_end (ap); +} + +static void +geos_warning_33 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (33, fmt, ap); + va_end (ap); +} + +static void +geos_warning_34 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (34, fmt, ap); + va_end (ap); +} + +static void +geos_warning_35 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (35, fmt, ap); + va_end (ap); +} + +static void +geos_warning_36 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (36, fmt, ap); + va_end (ap); +} + +static void +geos_warning_37 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (37, fmt, ap); + va_end (ap); +} + +static void +geos_warning_38 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (38, fmt, ap); + va_end (ap); +} + +static void +geos_warning_39 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (39, fmt, ap); + va_end (ap); +} + +static void +geos_warning_40 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (40, fmt, ap); + va_end (ap); +} + +static void +geos_warning_41 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (41, fmt, ap); + va_end (ap); +} + +static void +geos_warning_42 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (42, fmt, ap); + va_end (ap); +} + +static void +geos_warning_43 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (43, fmt, ap); + va_end (ap); +} + +static void +geos_warning_44 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (44, fmt, ap); + va_end (ap); +} + +static void +geos_warning_45 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (45, fmt, ap); + va_end (ap); +} + +static void +geos_warning_46 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (46, fmt, ap); + va_end (ap); +} + +static void +geos_warning_47 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (47, fmt, ap); + va_end (ap); +} + +static void +geos_warning_48 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (48, fmt, ap); + va_end (ap); +} + +static void +geos_warning_49 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (49, fmt, ap); + va_end (ap); +} + +static void +geos_warning_50 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (50, fmt, ap); + va_end (ap); +} + +static void +geos_warning_51 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (51, fmt, ap); + va_end (ap); +} + +static void +geos_warning_52 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (52, fmt, ap); + va_end (ap); +} + +static void +geos_warning_53 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (53, fmt, ap); + va_end (ap); +} + +static void +geos_warning_54 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (54, fmt, ap); + va_end (ap); +} + +static void +geos_warning_55 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (55, fmt, ap); + va_end (ap); +} + +static void +geos_warning_56 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (56, fmt, ap); + va_end (ap); +} + +static void +geos_warning_57 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (57, fmt, ap); + va_end (ap); +} + +static void +geos_warning_58 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (58, fmt, ap); + va_end (ap); +} + +static void +geos_warning_59 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (59, fmt, ap); + va_end (ap); +} + +static void +geos_warning_60 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (60, fmt, ap); + va_end (ap); +} + +static void +geos_warning_61 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (61, fmt, ap); + va_end (ap); +} + +static void +geos_warning_62 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (62, fmt, ap); + va_end (ap); +} + +static void +geos_warning_63 (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + geos_warning_r (63, fmt, ap); + va_end (ap); +} + diff --git a/src/spatialite/src/connection_cache/cache_aux_3.h b/src/spatialite/src/connection_cache/cache_aux_3.h new file mode 100644 index 0000000..2e13c4f --- /dev/null +++ b/src/spatialite/src/connection_cache/cache_aux_3.h @@ -0,0 +1,261 @@ +/* initializing all function pointers */ + switch (cache->pool_index) + { + case 0: + cache->geos_warning = geos_warning_0; + cache->geos_error = geos_error_0; + break; + case 1: + cache->geos_warning = geos_warning_1; + cache->geos_error = geos_error_1; + break; + case 2: + cache->geos_warning = geos_warning_2; + cache->geos_error = geos_error_2; + break; + case 3: + cache->geos_warning = geos_warning_3; + cache->geos_error = geos_error_3; + break; + case 4: + cache->geos_warning = geos_warning_4; + cache->geos_error = geos_error_4; + break; + case 5: + cache->geos_warning = geos_warning_5; + cache->geos_error = geos_error_5; + break; + case 6: + cache->geos_warning = geos_warning_6; + cache->geos_error = geos_error_6; + break; + case 7: + cache->geos_warning = geos_warning_7; + cache->geos_error = geos_error_7; + break; + case 8: + cache->geos_warning = geos_warning_8; + cache->geos_error = geos_error_8; + break; + case 9: + cache->geos_warning = geos_warning_9; + cache->geos_error = geos_error_9; + break; + case 10: + cache->geos_warning = geos_warning_10; + cache->geos_error = geos_error_10; + break; + case 11: + cache->geos_warning = geos_warning_11; + cache->geos_error = geos_error_11; + break; + case 12: + cache->geos_warning = geos_warning_12; + cache->geos_error = geos_error_12; + break; + case 13: + cache->geos_warning = geos_warning_13; + cache->geos_error = geos_error_13; + break; + case 14: + cache->geos_warning = geos_warning_14; + cache->geos_error = geos_error_14; + break; + case 15: + cache->geos_warning = geos_warning_15; + cache->geos_error = geos_error_15; + break; + case 16: + cache->geos_warning = geos_warning_16; + cache->geos_error = geos_error_16; + break; + case 17: + cache->geos_warning = geos_warning_17; + cache->geos_error = geos_error_17; + break; + case 18: + cache->geos_warning = geos_warning_18; + cache->geos_error = geos_error_18; + break; + case 19: + cache->geos_warning = geos_warning_19; + cache->geos_error = geos_error_19; + break; + case 20: + cache->geos_warning = geos_warning_20; + cache->geos_error = geos_error_20; + break; + case 21: + cache->geos_warning = geos_warning_21; + cache->geos_error = geos_error_21; + break; + case 22: + cache->geos_warning = geos_warning_22; + cache->geos_error = geos_error_22; + break; + case 23: + cache->geos_warning = geos_warning_23; + cache->geos_error = geos_error_23; + break; + case 24: + cache->geos_warning = geos_warning_24; + cache->geos_error = geos_error_24; + break; + case 25: + cache->geos_warning = geos_warning_25; + cache->geos_error = geos_error_25; + break; + case 26: + cache->geos_warning = geos_warning_26; + cache->geos_error = geos_error_26; + break; + case 27: + cache->geos_warning = geos_warning_27; + cache->geos_error = geos_error_27; + break; + case 28: + cache->geos_warning = geos_warning_28; + cache->geos_error = geos_error_28; + break; + case 29: + cache->geos_warning = geos_warning_29; + cache->geos_error = geos_error_29; + break; + case 30: + cache->geos_warning = geos_warning_30; + cache->geos_error = geos_error_30; + break; + case 31: + cache->geos_warning = geos_warning_31; + cache->geos_error = geos_error_31; + break; + case 32: + cache->geos_warning = geos_warning_32; + cache->geos_error = geos_error_32; + break; + case 33: + cache->geos_warning = geos_warning_33; + cache->geos_error = geos_error_33; + break; + case 34: + cache->geos_warning = geos_warning_34; + cache->geos_error = geos_error_34; + break; + case 35: + cache->geos_warning = geos_warning_35; + cache->geos_error = geos_error_35; + break; + case 36: + cache->geos_warning = geos_warning_36; + cache->geos_error = geos_error_36; + break; + case 37: + cache->geos_warning = geos_warning_37; + cache->geos_error = geos_error_37; + break; + case 38: + cache->geos_warning = geos_warning_38; + cache->geos_error = geos_error_38; + break; + case 39: + cache->geos_warning = geos_warning_39; + cache->geos_error = geos_error_39; + break; + case 40: + cache->geos_warning = geos_warning_40; + cache->geos_error = geos_error_40; + break; + case 41: + cache->geos_warning = geos_warning_41; + cache->geos_error = geos_error_41; + break; + case 42: + cache->geos_warning = geos_warning_42; + cache->geos_error = geos_error_42; + break; + case 43: + cache->geos_warning = geos_warning_43; + cache->geos_error = geos_error_43; + break; + case 44: + cache->geos_warning = geos_warning_44; + cache->geos_error = geos_error_44; + break; + case 45: + cache->geos_warning = geos_warning_45; + cache->geos_error = geos_error_45; + break; + case 46: + cache->geos_warning = geos_warning_46; + cache->geos_error = geos_error_46; + break; + case 47: + cache->geos_warning = geos_warning_47; + cache->geos_error = geos_error_47; + break; + case 48: + cache->geos_warning = geos_warning_48; + cache->geos_error = geos_error_48; + break; + case 49: + cache->geos_warning = geos_warning_49; + cache->geos_error = geos_error_49; + break; + case 50: + cache->geos_warning = geos_warning_50; + cache->geos_error = geos_error_50; + break; + case 51: + cache->geos_warning = geos_warning_51; + cache->geos_error = geos_error_51; + break; + case 52: + cache->geos_warning = geos_warning_52; + cache->geos_error = geos_error_52; + break; + case 53: + cache->geos_warning = geos_warning_53; + cache->geos_error = geos_error_53; + break; + case 54: + cache->geos_warning = geos_warning_54; + cache->geos_error = geos_error_54; + break; + case 55: + cache->geos_warning = geos_warning_55; + cache->geos_error = geos_error_55; + break; + case 56: + cache->geos_warning = geos_warning_56; + cache->geos_error = geos_error_56; + break; + case 57: + cache->geos_warning = geos_warning_57; + cache->geos_error = geos_error_57; + break; + case 58: + cache->geos_warning = geos_warning_58; + cache->geos_error = geos_error_58; + break; + case 59: + cache->geos_warning = geos_warning_59; + cache->geos_error = geos_error_59; + break; + case 60: + cache->geos_warning = geos_warning_60; + cache->geos_error = geos_error_60; + break; + case 61: + cache->geos_warning = geos_warning_61; + cache->geos_error = geos_error_61; + break; + case 62: + cache->geos_warning = geos_warning_62; + cache->geos_error = geos_error_62; + break; + case 63: + cache->geos_warning = geos_warning_63; + cache->geos_error = geos_error_63; + break; + }; + diff --git a/src/spatialite/src/connection_cache/generator/Makefile.am b/src/spatialite/src/connection_cache/generator/Makefile.am new file mode 100644 index 0000000..9bfe34e --- /dev/null +++ b/src/spatialite/src/connection_cache/generator/Makefile.am @@ -0,0 +1,3 @@ + +EXTRA_DIST = README.txt code_generator.c + diff --git a/src/spatialite/src/connection_cache/generator/Makefile.in b/src/spatialite/src/connection_cache/generator/Makefile.in new file mode 100644 index 0000000..2c5e61c --- /dev/null +++ b/src/spatialite/src/connection_cache/generator/Makefile.in @@ -0,0 +1,437 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/connection_cache/generator +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = README.txt code_generator.c +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/connection_cache/generator/README.txt b/src/spatialite/src/connection_cache/generator/README.txt new file mode 100644 index 0000000..b527f78 --- /dev/null +++ b/src/spatialite/src/connection_cache/generator/README.txt @@ -0,0 +1,35 @@ +HOW-TO: UPDATE connection_cache.c auto-generated C CODE +============================================================================ +When updating is required: +every time you wish to change the max number of concurrent connections. +the basic default setting supported by any standard distribution always +is 64; anyway you could eventually change this to any other valure +in the range 4 - 1024 +============================================================================ + +STEP #1: compiling the C generator tool +-------- +# cd {libspatialite-source}/src/connection_cache/generator + +Linux: +# gcc code_generator.c -o code_generator + +Windows [MinGW]: +# gcc code_generator.c -o code_generator.exe + + + +STEP #3: generating the C code (#include snippets) +-------- +# rm cache_aux_*.h +# ./code_generator MAX + +at the end of this step several "cache_aux_*.h" files will be generated + + + +STEP #4: final setup +-------- +- copy the generated file into the parent dir: + rm ../cache_aux_*.h + cp cache_aux_*.h .. diff --git a/src/spatialite/src/connection_cache/generator/code_generator.c b/src/spatialite/src/connection_cache/generator/code_generator.c new file mode 100644 index 0000000..717836e --- /dev/null +++ b/src/spatialite/src/connection_cache/generator/code_generator.c @@ -0,0 +1,140 @@ +/* +/ code_generator +/ +/ a tool autogenerating C code for SpatiaLite +/ [#include snippets for alloc_cache.c] +/ +/ version 1.0, 2013 October 30 +/ +/ Author: Sandro Furieri a.furieri@lqt.it +/ +/ Copyright (C) 2013 Alessandro Furieri +/ +/ This program is free software: you can redistribute it and/or modify +/ it under the terms of the GNU General Public License as published by +/ the Free Software Foundation, either version 3 of the License, or +/ (at your option) any later version. +/ +/ This program is distributed in the hope that it will be useful, +/ but WITHOUT ANY WARRANTY; without even the implied warranty of +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/ GNU General Public License for more details. +/ +/ You should have received a copy of the GNU General Public License +/ along with this program. If not, see . +/ +*/ + +#include +#include +#include + +int +main (int argc, char *argv[]) +{ +/* + this tool autogenerates few #include code snippets + required by ../cache_alloc.c + + the MAX argument corresponds to the max number of + concurrent connections supported by libspatialite + at runtime. + this value is required to be in the range between + 4 and 1024 +*/ + int i; + int max; + FILE *out; + +/* checking the MAX arg for validity */ + if (argc != 2) + { + fprintf (stderr, "usage: code_generator MAX\n"); + return -1; + } + max = atoi (argv[1]); + if (max < 4) + { + fprintf (stderr, "error: MAX has to be >= 4 !!!!\n"); + return -1; + } + if (max > 1024) + { + fprintf (stderr, "error: MAX has to be <= 1024 !!!!\n"); + return -1; + } + +/* generating "cache_aux_1.h" */ + out = fopen ("cache_aux_1.h", "w"); + if (out == NULL) + { + fprintf (stderr, "Unable to create/open \"cache_aux_1.h\"\n"); + return -1; + } + fprintf (out, "#define SPATIALITE_MAX_CONNECTIONS\t%d\n\n", max); + fprintf (out, "struct splite_connection\n{\n"); + fprintf (out, "/* connections pool */\n"); + fprintf (out, "\tvoid *conn_ptr;\n"); + fprintf (out, "\tchar *gaia_geos_error_msg;\n"); + fprintf (out, "\tchar *gaia_geos_warning_msg;\n"); + fprintf (out, "\tchar *gaia_geosaux_error_msg;\n"); + fprintf (out, + "} splite_connection_pool[" "SPATIALITE_MAX_CONNECTIONS] =\n{\n"); + for (i = 0; i < max; i++) + { + if (i == (max - 1)) + fprintf (out, "\t{NULL, NULL, NULL, NULL}\n"); + else + fprintf (out, "\t{NULL, NULL, NULL, NULL},\n"); + } + fprintf (out, "};\n"); + fclose (out); + +/* generating "cache_aux_2.h" */ + out = fopen ("cache_aux_2.h", "w"); + if (out == NULL) + { + fprintf (stderr, "Unable to create/open \"cache_aux_2.h\"\n"); + return -1; + } + for (i = 0; i < max; i++) + { + fprintf (out, "static void\n"); + fprintf (out, "geos_error_%d (const char *fmt, ...)\n{\n", i); + fprintf (out, "\tva_list ap;\n"); + fprintf (out, "\tva_start (ap, fmt);\n"); + fprintf (out, "\tgeos_error_r (%d, fmt, ap);\n", i); + fprintf (out, "\tva_end (ap);\n}\n\n"); + } + for (i = 0; i < max; i++) + { + fprintf (out, "static void\n"); + fprintf (out, "geos_warning_%d (const char *fmt, ...)\n{\n", i); + fprintf (out, "\tva_list ap;\n"); + fprintf (out, "\tva_start (ap, fmt);\n"); + fprintf (out, "\tgeos_warning_r (%d, fmt, ap);\n", i); + fprintf (out, "\tva_end (ap);\n}\n\n"); + } + fclose (out); + +/* generating "cache_aux_3.h" */ + out = fopen ("cache_aux_3.h", "w"); + if (out == NULL) + { + fprintf (stderr, "Unable to create/open \"cache_aux_3.h\"\n"); + return -1; + } + fprintf (out, "/* initializing all function pointers */\n"); + fprintf (out, "\tswitch (cache->pool_index)\n\t{\n"); + for (i = 0; i < max; i++) + { + fprintf (out, "\tcase %d:\n", i); + fprintf (out, "\t\tcache->geos_warning = geos_warning_%d;\n", i); + fprintf (out, "\t\tcache->geos_error = geos_error_%d;\n", i); + fprintf (out, "\t\tbreak;\n"); + } + fprintf (out, "\t};\n\n"); + fclose (out); + + return 0; +} diff --git a/src/spatialite/src/dxf/Makefile.am b/src/spatialite/src/dxf/Makefile.am new file mode 100644 index 0000000..9d6a7af --- /dev/null +++ b/src/spatialite/src/dxf/Makefile.am @@ -0,0 +1,22 @@ + +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I. + +noinst_HEADERS = dxf_private.h +noinst_LTLIBRARIES = libdxf.la dxf.la + +DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \ + dxf_load_distinct.c dxf_load_mixed.c \ + dxf_writer.c + +libdxf_la_SOURCES = $(DXF_COMMON_SOURCES) + +dxf_la_SOURCES = $(DXF_COMMON_SOURCES) + +dxf_la_CPPFLAGS = @CFLAGS@ +dxf_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +dxf_la_CPPFLAGS += -DLOADABLE_EXTENSION +dxf_la_LDFLAGS = -module +dxf_la_LIBTOOLFLAGS = --tag=disable-static + +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/dxf/Makefile.in b/src/spatialite/src/dxf/Makefile.in new file mode 100644 index 0000000..9e53e7e --- /dev/null +++ b/src/spatialite/src/dxf/Makefile.in @@ -0,0 +1,658 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/dxf +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +dxf_la_LIBADD = +am__objects_1 = dxf_la-dxf_parser.lo dxf_la-dxf_loader.lo \ + dxf_la-dxf_load_distinct.lo dxf_la-dxf_load_mixed.lo \ + dxf_la-dxf_writer.lo +am_dxf_la_OBJECTS = $(am__objects_1) +dxf_la_OBJECTS = $(am_dxf_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +dxf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(dxf_la_LDFLAGS) $(LDFLAGS) -o $@ +libdxf_la_LIBADD = +am__objects_2 = dxf_parser.lo dxf_loader.lo dxf_load_distinct.lo \ + dxf_load_mixed.lo dxf_writer.lo +am_libdxf_la_OBJECTS = $(am__objects_2) +libdxf_la_OBJECTS = $(am_libdxf_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES) +DIST_SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. +noinst_HEADERS = dxf_private.h +noinst_LTLIBRARIES = libdxf.la dxf.la +DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \ + dxf_load_distinct.c dxf_load_mixed.c \ + dxf_writer.c + +libdxf_la_SOURCES = $(DXF_COMMON_SOURCES) +dxf_la_SOURCES = $(DXF_COMMON_SOURCES) +dxf_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +dxf_la_LDFLAGS = -module +dxf_la_LIBTOOLFLAGS = --tag=disable-static +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/dxf/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/dxf/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +dxf.la: $(dxf_la_OBJECTS) $(dxf_la_DEPENDENCIES) $(EXTRA_dxf_la_DEPENDENCIES) + $(AM_V_CCLD)$(dxf_la_LINK) $(dxf_la_OBJECTS) $(dxf_la_LIBADD) $(LIBS) + +libdxf.la: $(libdxf_la_OBJECTS) $(libdxf_la_DEPENDENCIES) $(EXTRA_libdxf_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libdxf_la_OBJECTS) $(libdxf_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_load_distinct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_load_mixed.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_loader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_writer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_distinct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_mixed.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_loader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_writer.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +dxf_la-dxf_parser.lo: dxf_parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_parser.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_parser.Tpo -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_parser.Tpo $(DEPDIR)/dxf_la-dxf_parser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_parser.c' object='dxf_la-dxf_parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c + +dxf_la-dxf_loader.lo: dxf_loader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_loader.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_loader.Tpo -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_loader.Tpo $(DEPDIR)/dxf_la-dxf_loader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_loader.c' object='dxf_la-dxf_loader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c + +dxf_la-dxf_load_distinct.lo: dxf_load_distinct.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_distinct.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo $(DEPDIR)/dxf_la-dxf_load_distinct.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_load_distinct.c' object='dxf_la-dxf_load_distinct.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c + +dxf_la-dxf_load_mixed.lo: dxf_load_mixed.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_mixed.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo $(DEPDIR)/dxf_la-dxf_load_mixed.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_load_mixed.c' object='dxf_la-dxf_load_mixed.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c + +dxf_la-dxf_writer.lo: dxf_writer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_writer.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_writer.Tpo -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_writer.Tpo $(DEPDIR)/dxf_la-dxf_writer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_writer.c' object='dxf_la-dxf_writer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/dxf/dxf_load_distinct.c b/src/spatialite/src/dxf/dxf_load_distinct.c new file mode 100644 index 0000000..6998709 --- /dev/null +++ b/src/spatialite/src/dxf/dxf_load_distinct.c @@ -0,0 +1,2465 @@ +/* + + dxf_load_distinct.c -- implements DXF support + [loding features into the DB - by distinct layers] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#include "dxf_private.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +static int +create_layer_text_table (sqlite3 * handle, const char *name, int srid, + int text3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Text-layer" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL,\n" + " label TEXT NOT NULL,\n" + " rotation DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + name, sqlite3_errmsg (handle)); + return 0; + } + if (!create_text_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_layer_point_table (sqlite3 * handle, const char *name, int srid, + int point3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Point-layer" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, + point3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + name, sqlite3_errmsg (handle)); + return 0; + } + if (!create_point_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_layer_line_table (sqlite3 * handle, const char *name, int srid, + int line3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Line-layer" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'LINESTRING', %Q)", name, srid, + line3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + name, sqlite3_errmsg (handle)); + return 0; + } + if (!create_line_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_layer_polyg_table (sqlite3 * handle, const char *name, int srid, + int polyg3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Polyg-layer" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POLYGON', %Q)", name, srid, + polyg3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + name, sqlite3_errmsg (handle)); + return 0; + } + if (!create_polyg_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_layer_hatch_tables (sqlite3 * handle, const char *name, int srid, + sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) +{ +/* attempting to create the "Hatch-layer" tables */ + char *sql; + int ret; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt2; + char *xname; + char *fk_name; + char *xfk_name; + char *pattern; + char *xpattern; + *xstmt = NULL; + *xstmt2 = NULL; + +/* creating the Hatch-Boundary table */ + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTIPOLYGON', 'XY')", name, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + name, sqlite3_errmsg (handle)); + return 0; + } + +/* creating the Hatch-Pattern table */ + xname = gaiaDoubleQuotedSql (name); + pattern = sqlite3_mprintf ("%s_pattern", name); + xpattern = gaiaDoubleQuotedSql (pattern); + fk_name = sqlite3_mprintf ("fk_%s_pattern", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY NOT NULL,\n" + " filename TEXT NOTT NULL,\n" + " layer TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + " REFERENCES \"%s\" (feature_id))", xpattern, + xfk_name, xname); + free (xname); + free (xfk_name); + free (xpattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTILINESTRING', 'XY')", pattern, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", + pattern, sqlite3_errmsg (handle)); + return 0; + } + + sqlite3_free (pattern); + if (!create_hatch_boundary_stmt (handle, name, &stmt)) + return 0; + if (!create_hatch_pattern_stmt (handle, name, &stmt2)) + return 0; + + *xstmt = stmt; + *xstmt2 = stmt2; + return 1; +} + +static int +create_layer_text_extra_attr_table (sqlite3 * handle, const char *name, + char *attr_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Text-layer-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xattr_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s_attr", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xattr_name = gaiaDoubleQuotedSql (attr_name); + xname = gaiaDoubleQuotedSql (name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xattr_name, xfk_name, xname); + free (xfk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s_attr", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); + free (xidx_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.layer AS layer, f.label AS label, " + "f.rotation AS rotation, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xattr_name); + free (xview_name); + free (xattr_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, attr_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_layer_point_extra_attr_table (sqlite3 * handle, const char *name, + char *attr_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Point-layer-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xattr_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s_attr", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xattr_name = gaiaDoubleQuotedSql (attr_name); + xname = gaiaDoubleQuotedSql (name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xattr_name, xfk_name, xname); + free (xfk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s_attr", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); + free (xidx_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xattr_name); + free (xview_name); + free (xattr_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, attr_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_layer_line_extra_attr_table (sqlite3 * handle, const char *name, + char *attr_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Line-layer-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xattr_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s_attr", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xattr_name = gaiaDoubleQuotedSql (attr_name); + xname = gaiaDoubleQuotedSql (name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xattr_name, xfk_name, xname); + free (xfk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s_attr", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); + free (xidx_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xattr_name); + free (xview_name); + free (xattr_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, attr_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_layer_polyg_extra_attr_table (sqlite3 * handle, const char *name, + char *attr_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Polyg-layer-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xattr_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s_attr", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xattr_name = gaiaDoubleQuotedSql (attr_name); + xname = gaiaDoubleQuotedSql (name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xattr_name, xfk_name, xname); + free (xfk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s_attr", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); + free (xidx_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xattr_name); + free (xview_name); + free (xattr_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, attr_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +DXF_PRIVATE int +import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) +{ +/* populating the target DB - by distinct layers */ + int ret; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt_ext; + sqlite3_stmt *stmt_pattern; + unsigned char *blob; + int blob_size; + gaiaGeomCollPtr geom; + gaiaLinestringPtr p_ln; + gaiaPolygonPtr p_pg; + gaiaRingPtr p_rng; + int iv; + char *name; + char *attr_name; + char *block; + gaiaDxfTextPtr txt; + gaiaDxfPointPtr pt; + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr pg; + gaiaDxfHatchPtr p_hatch; + gaiaDxfInsertPtr ins; + + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + /* looping on layers */ + int text = 0; + int point = 0; + int line = 0; + int polyg = 0; + int hatch = 0; + int ins_text = 0; + int ins_point = 0; + int ins_line = 0; + int ins_polyg = 0; + int ins_hatch = 0; + if (lyr->first_text != NULL) + text = 1; + if (lyr->first_point != NULL) + point = 1; + if (lyr->first_line != NULL) + line = 1; + if (lyr->first_polyg != NULL) + polyg = 1; + if (lyr->first_hatch != NULL) + hatch = 1; + if (lyr->first_ins_text != NULL) + ins_text = 1; + if (lyr->first_ins_point != NULL) + ins_point = 1; + if (lyr->first_ins_line != NULL) + ins_line = 1; + if (lyr->first_ins_polyg != NULL) + ins_polyg = 1; + if (lyr->first_ins_hatch != NULL) + ins_hatch = 1; + if (text) + { + /* creating and populating the TEXT-layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_text_%s", lyr->layer_name, + lyr->is3Dtext ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_text_%s", dxf->prefix, + lyr->layer_name, + lyr->is3Dtext ? "3d" : "2d"); + if (append + && check_text_table (handle, name, dxf->srid, + lyr->is3Dtext)) + { + /* appending into the already existing table */ + if (!create_text_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_layer_text_table + (handle, name, dxf->srid, lyr->is3Dtext, &stmt)) + { + sqlite3_free (name); + return 0; + } + } + if (lyr->hasExtraText) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_layer_text_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + txt = lyr->first_text; + while (txt != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, txt->label, + strlen (txt->label), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, txt->angle); + if (lyr->is3Dtext) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (lyr->is3Dtext) + gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, + txt->z); + else + gaiaAddPointToGeomColl (geom, txt->x, txt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 5, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + txt = txt->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (point) + { + /* creating and populating the POINT-layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_point_%s", lyr->layer_name, + lyr->is3Dpoint ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_point_%s", dxf->prefix, + lyr->layer_name, + lyr->is3Dpoint ? "3d" : "2d"); + if (append + && check_point_table (handle, name, dxf->srid, + lyr->is3Dpoint)) + { + /* appending into the already existing table */ + if (!create_point_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_layer_point_table + (handle, name, dxf->srid, lyr->is3Dpoint, &stmt)) + { + + sqlite3_free (name); + return 0; + } + } + if (lyr->hasExtraPoint) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_layer_point_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + pt = lyr->first_point; + while (pt != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (lyr->is3Dpoint) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (lyr->is3Dpoint) + gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); + else + gaiaAddPointToGeomColl (geom, pt->x, pt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = pt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + pt = pt->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (line) + { + /* creating and populating the LINE-layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_line_%s", lyr->layer_name, + lyr->is3Dline ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_line_%s", dxf->prefix, + lyr->layer_name, + lyr->is3Dline ? "3d" : "2d"); + if (append + && check_line_table (handle, name, dxf->srid, + lyr->is3Dline)) + { + /* appending into the already existing table */ + if (!create_line_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_layer_line_table + (handle, name, dxf->srid, lyr->is3Dline, &stmt)) + { + + sqlite3_free (name); + return 0; + } + } + if (lyr->hasExtraLine) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_layer_line_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ln = lyr->first_line; + while (ln != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (lyr->is3Dline) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + gaiaAddLinestringToGeomColl (geom, ln->points); + p_ln = geom->FirstLinestring; + for (iv = 0; iv < ln->points; iv++) + { + if (lyr->is3Dline) + { + gaiaSetPointXYZ (p_ln->Coords, iv, + *(ln->x + iv), *(ln->y + iv), + *(ln->z + iv)); + } + else + { + gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), + *(ln->y + iv)); + } + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ln->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ln = ln->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (polyg) + { + /* creating and populating the POLYG-layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_polyg_%s", lyr->layer_name, + lyr->is3Dpolyg ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_polyg_%s", dxf->prefix, + lyr->layer_name, + lyr->is3Dpolyg ? "3d" : "2d"); + if (append + && check_polyg_table (handle, name, dxf->srid, + lyr->is3Dpolyg)) + { + /* appending into the already existing table */ + if (!create_polyg_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_layer_polyg_table + (handle, name, dxf->srid, lyr->is3Dpolyg, &stmt)) + { + + sqlite3_free (name); + return 0; + } + } + if (lyr->hasExtraPolyg) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_layer_polyg_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + pg = lyr->first_polyg; + while (pg != NULL) + { + int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg); + int num_holes; + gaiaDxfHolePtr hole; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (lyr->is3Dpolyg) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + num_holes++; + hole = hole->next; + } + gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, + num_holes); + p_pg = geom->FirstPolygon; + p_rng = p_pg->Exterior; + for (iv = 0; iv < pg->points; iv++) + { + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv), + *(pg->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0), + *(pg->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0)); + } + } + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + int unclosed = + check_unclosed_hole (hole, lyr->is3Dpolyg); + p_rng = + gaiaAddInteriorRing (p_pg, num_holes, + hole->points + unclosed); + for (iv = 0; iv < hole->points; iv++) + { + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv), + *(hole->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, + hole->points, + *(hole->x + 0), + *(hole->y + 0), + *(hole->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, + hole->points, + *(hole->x + 0), + *(hole->y + 0)); + } + } + num_holes++; + hole = hole->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = pg->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + pg = pg->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (hatch) + { + /* creating and populating the HATCH-layer */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("%s_hatch_2d", lyr->layer_name); + else + name = + sqlite3_mprintf ("%s%s_hatch_2d", dxf->prefix, + lyr->layer_name); + if (append && check_hatch_tables (handle, name, dxf->srid)) + { + /* appending into the already existing table */ + if (!create_hatch_boundary_stmt (handle, name, &stmt)) + return 0; + if (!create_hatch_pattern_stmt + (handle, name, &stmt_pattern)) + return 0; + } + else + { + /* creating a new table */ + if (!create_layer_hatch_tables + (handle, name, dxf->srid, &stmt, &stmt_pattern)) + { + + sqlite3_free (name); + return 0; + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + p_hatch = lyr->first_hatch; + while (p_hatch != NULL) + { + sqlite3_int64 feature_id; + gaiaDxfHatchSegmPtr segm; + /* inserting the Boundary Geometry */ + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (p_hatch->boundary == NULL) + sqlite3_bind_null (stmt, 2); + else + { + gaiaToSpatiaLiteBlobWkb (p_hatch->boundary, &blob, + &blob_size); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + feature_id = sqlite3_last_insert_rowid (handle); + + /* inserting the Pattern Geometry */ + sqlite3_reset (stmt_pattern); + sqlite3_clear_bindings (stmt_pattern); + sqlite3_bind_int64 (stmt_pattern, 1, feature_id); + sqlite3_bind_text (stmt_pattern, 2, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (p_hatch->first_out == NULL) + sqlite3_bind_null (stmt_pattern, 4); + else + { + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + geom->DeclaredType = GAIA_MULTILINESTRING; + segm = p_hatch->first_out; + while (segm != NULL) + { + gaiaLinestringPtr p_ln = + gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (p_ln->Coords, 0, segm->x0, + segm->y0); + gaiaSetPoint (p_ln->Coords, 1, segm->x1, + segm->y1); + segm = segm->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, + free); + } + ret = sqlite3_step (stmt_pattern); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + p_hatch = p_hatch->next; + } + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (ins_text) + { + /* creating and populating the INSERT (Text reference) layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_instext_%s", lyr->layer_name, + lyr->is3DinsText ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_instext_%s", dxf->prefix, + lyr->layer_name, + lyr->is3DinsText ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_text_%s", + lyr->is3DinsText ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, + lyr->is3DinsText ? "3d" : "2d"); + if (!create_instext_table + (handle, name, block, lyr->is3Dtext, &stmt)) + { + sqlite3_free (name); + return 0; + } + sqlite3_free (block); + } + if (lyr->hasExtraInsText) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ins = lyr->first_ins_text; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (ins_point) + { + /* creating and populating the INSERT (Point reference) layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_inspoint_%s", lyr->layer_name, + lyr->is3DinsPoint ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_inspoint_%s", dxf->prefix, + lyr->layer_name, + lyr->is3DinsPoint ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_point_%s", + lyr->is3DinsPoint ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, + lyr->is3DinsPoint ? "3d" : "2d"); + if (!create_inspoint_table + (handle, name, block, lyr->is3Dpoint, &stmt)) + { + sqlite3_free (name); + return 0; + } + sqlite3_free (block); + } + if (lyr->hasExtraInsPoint) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ins = lyr->first_ins_point; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (ins_line) + { + /* creating and populating the INSERT (Line reference) layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_insline_%s", lyr->layer_name, + lyr->is3DinsLine ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_insline_%s", dxf->prefix, + lyr->layer_name, + lyr->is3DinsLine ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_line_%s", + lyr->is3DinsLine ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, + lyr->is3DinsLine ? "3d" : "2d"); + if (!create_insline_table + (handle, name, block, lyr->is3Dline, &stmt)) + { + sqlite3_free (name); + return 0; + } + sqlite3_free (block); + } + if (lyr->hasExtraInsLine) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ins = lyr->first_ins_line; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (ins_polyg) + { + /* creating and populating the INSERT (Polygon reference) layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("%s_inspolyg_%s", lyr->layer_name, + lyr->is3DinsPolyg ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%s%s_inspolyg_%s", dxf->prefix, + lyr->layer_name, + lyr->is3DinsPolyg ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_polyg_%s", + lyr->is3DinsPolyg ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, + lyr->is3DinsPolyg ? "3d" : "2d"); + if (!create_inspolyg_table + (handle, name, block, lyr->is3Dpolyg, &stmt)) + { + sqlite3_free (name); + return 0; + } + sqlite3_free (block); + } + if (lyr->hasExtraInsPolyg) + { + attr_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, attr_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt + (handle, attr_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, attr_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ins = lyr->first_ins_polyg; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + attr_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + + if (ins_hatch) + { + /* creating and populating the INSERT (Hatch reference) layer */ + stmt_ext = NULL; + attr_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("%s_inshatch_2d", lyr->layer_name); + else + name = + sqlite3_mprintf ("%s%s_inspolyg_2d", dxf->prefix, + lyr->layer_name); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = sqlite3_mprintf ("block_hatch_2d"); + else + block = + sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); + if (!create_inshatch_table (handle, name, block, &stmt)) + { + sqlite3_free (name); + return 0; + } + sqlite3_free (block); + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + ins = lyr->first_ins_polyg; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + sqlite3_free (name); + return 0; + } + ins = ins->next; + } + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + return 0; + } + sqlite3_free (name); + if (attr_name) + sqlite3_free (attr_name); + } + lyr = lyr->next; + } + return 1; +} diff --git a/src/spatialite/src/dxf/dxf_load_mixed.c b/src/spatialite/src/dxf/dxf_load_mixed.c new file mode 100644 index 0000000..e1f12ec --- /dev/null +++ b/src/spatialite/src/dxf/dxf_load_mixed.c @@ -0,0 +1,2403 @@ +/* + + dxf_load_mixed.c -- implements DXF support + [loding features into the DB - mixed layers by geometry type] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#include "dxf_private.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +static int +create_mixed_text_table (sqlite3 * handle, const char *name, int srid, + int text3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Text-mixed" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " label TEXT NOT NULL,\n" + " rotation DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_text_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_mixed_point_table (sqlite3 * handle, const char *name, int srid, + int point3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Point-mixed" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_point_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_mixed_line_table (sqlite3 * handle, const char *name, int srid, + int line3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Line-mixed" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_line_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_mixed_polyg_table (sqlite3 * handle, const char *name, int srid, + int polyg3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Polyg-mixed" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_polyg_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_mixed_hatch_table (sqlite3 * handle, const char *name, int srid, + sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) +{ +/* attempting to create the "Hatch-mixed" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt2; + char *xname; + char *pattern; + char *xpattern; + char *fk_name; + char *xfk_name; + *xstmt = NULL; + *xstmt2 = NULL; + +/* creating the Hatch-Boundary table */ + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTIPOLYGON', 'XY')", name, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + +/* creating the Hatch-Pattern table */ + xname = gaiaDoubleQuotedSql (name); + pattern = sqlite3_mprintf ("%s_pattern", name); + xpattern = gaiaDoubleQuotedSql (pattern); + fk_name = sqlite3_mprintf ("fk_%s_pattern", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY NOT NULL,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + " REFERENCES \"%s\" (feature_id))", xpattern, + xfk_name, xname); + free (xname); + free (xfk_name); + free (xpattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTILINESTRING', 'XY')", pattern, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (pattern); + if (!create_hatch_boundary_stmt (handle, name, &stmt)) + return 0; + if (!create_hatch_pattern_stmt (handle, name, &stmt2)) + return 0; + + *xstmt = stmt; + *xstmt2 = stmt2; + return 1; +} + +static int +create_mixed_text_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Text-mixed-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xextra_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s", extra_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xextra_name, xfk_name, xname); + free (xextra_name); + free (xfk_name); + free (xname); + sqlite3_free (fk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", extra_name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); + free (xidx_name); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + xname = gaiaDoubleQuotedSql (name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.filename AS filename, " + "f.layer AS layer, f.label AS label, " + "f.rotation AS rotation, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xextra_name); + free (xview_name); + free (xname); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_mixed_point_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, + sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Point-mixed-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xextra_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s", extra_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xextra_name, xfk_name, xname); + free (xfk_name); + free (xname); + free (xextra_name); + sqlite3_free (fk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", extra_name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + xname = gaiaDoubleQuotedSql (name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.filename AS filename, " + "f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xextra_name); + free (xview_name); + free (xname); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_mixed_line_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Line-mixed-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xextra_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s", extra_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xextra_name, xfk_name, xname); + free (xextra_name); + free (xfk_name); + free (xname); + sqlite3_free (fk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", extra_name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); + free (xidx_name); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", extra_name); + xview_name = gaiaDoubleQuotedSql (view_name); + xname = gaiaDoubleQuotedSql (name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.filename AS filename, " + "f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xextra_name); + free (xview_name); + free (xname); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +create_mixed_polyg_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, + sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Polyg-mixed-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xextra_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s", extra_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xextra_name, xfk_name, xname); + free (xextra_name); + free (xfk_name); + free (xname); + sqlite3_free (fk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", extra_name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); + free (xidx_name); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + xname = gaiaDoubleQuotedSql (name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.filename AS filename, " + "f.layer AS layer, f.geometry AS geometry, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xextra_name); + free (xview_name); + free (xname); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +DXF_PRIVATE int +import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) +{ +/* populating the target DB - all layers mixed altogether */ + int text = 0; + int point = 0; + int line = 0; + int polyg = 0; + int hatch = 0; + int insText = 0; + int insPoint = 0; + int insLine = 0; + int insPolyg = 0; + int insHatch = 0; + int hasExtraText = 0; + int hasExtraPoint = 0; + int hasExtraLine = 0; + int hasExtraPolyg = 0; + int hasExtraInsText = 0; + int hasExtraInsPoint = 0; + int hasExtraInsLine = 0; + int hasExtraInsPolyg = 0; + int text3D = 0; + int point3D = 0; + int line3D = 0; + int polyg3D = 0; + int insText3D = 0; + int insPoint3D = 0; + int insLine3D = 0; + int insPolyg3D = 0; + int ret; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt_ext; + sqlite3_stmt *stmt_pattern; + unsigned char *blob; + int blob_size; + gaiaGeomCollPtr geom; + char *name; + char *extra_name; + char *block; + + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + /* exploring Layers by type */ + if (lyr->first_text != NULL) + text = 1; + if (lyr->first_point != NULL) + point = 1; + if (lyr->first_line != NULL) + line = 1; + if (lyr->first_polyg != NULL) + polyg = 1; + if (lyr->first_hatch != NULL) + hatch = 1; + if (lyr->first_ins_text != NULL) + insText = 1; + if (lyr->first_ins_point != NULL) + insPoint = 1; + if (lyr->first_ins_line != NULL) + insLine = 1; + if (lyr->first_ins_polyg != NULL) + insPolyg = 1; + if (lyr->first_ins_hatch != NULL) + insHatch = 1; + if (lyr->hasExtraText) + hasExtraText = 1; + if (lyr->hasExtraPoint) + hasExtraPoint = 1; + if (lyr->hasExtraLine) + hasExtraLine = 1; + if (lyr->hasExtraPolyg) + hasExtraPolyg = 1; + if (lyr->hasExtraInsText) + hasExtraInsText = 1; + if (lyr->hasExtraInsPoint) + hasExtraInsPoint = 1; + if (lyr->hasExtraInsLine) + hasExtraInsLine = 1; + if (lyr->hasExtraInsPolyg) + hasExtraInsPolyg = 1; + if (lyr->is3Dtext) + text3D = 1; + if (lyr->is3Dpoint) + point3D = 1; + if (lyr->is3Dline) + line3D = 1; + if (lyr->is3Dpolyg) + polyg3D = 1; + if (lyr->is3DinsText) + insText3D = 1; + if (lyr->is3DinsPoint) + insPoint3D = 1; + if (lyr->is3DinsLine) + insLine3D = 1; + if (lyr->is3DinsPolyg) + insPolyg3D = 1; + lyr = lyr->next; + } + + if (text) + { + /* creating and populating the TEXT layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("text_layer_%s", text3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%stext_layer_%s", dxf->prefix, + text3D ? "3d" : "2d"); + if (append && check_text_table (handle, name, dxf->srid, text3D)) + { + /* appending into the already existing table */ + if (!create_text_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_mixed_text_table + (handle, name, dxf->srid, text3D, &stmt)) + return 0; + } + if (hasExtraText) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_mixed_text_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfTextPtr txt = lyr->first_text; + while (txt != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, txt->label, + strlen (txt->label), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, txt->angle); + if (text3D) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (text3D) + gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, + txt->z); + else + gaiaAddPointToGeomColl (geom, txt->x, txt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 5, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = txt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + txt = txt->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT text_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (point) + { + /* creating and populating the POINT layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("point_layer_%s", point3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%spoint_layer_%s", dxf->prefix, + point3D ? "3d" : "2d"); + if (append && check_point_table (handle, name, dxf->srid, point3D)) + { + /* appending into the already existing table */ + if (!create_point_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_mixed_point_table + (handle, name, dxf->srid, point3D, &stmt)) + return 0; + } + if (hasExtraPoint) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_mixed_point_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfPointPtr pt = lyr->first_point; + while (pt != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (point3D) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (point3D) + gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); + else + gaiaAddPointToGeomColl (geom, pt->x, pt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = pt->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + pt = pt->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT point_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (line) + { + /* creating and populating the LINE layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("line_layer_%s", line3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%sline_layer_%s", dxf->prefix, + line3D ? "3d" : "2d"); + if (append && check_line_table (handle, name, dxf->srid, line3D)) + { + /* appending into the already existing table */ + if (!create_line_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_mixed_line_table + (handle, name, dxf->srid, line3D, &stmt)) + return 0; + } + if (hasExtraLine) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_mixed_line_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfPolylinePtr ln = lyr->first_line; + while (ln != NULL) + { + int iv; + gaiaLinestringPtr p_ln; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (line3D) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + gaiaAddLinestringToGeomColl (geom, ln->points); + p_ln = geom->FirstLinestring; + for (iv = 0; iv < ln->points; iv++) + { + if (line3D) + { + gaiaSetPointXYZ (p_ln->Coords, iv, + *(ln->x + iv), *(ln->y + iv), + *(ln->z + iv)); + } + else + { + gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), + *(ln->y + iv)); + } + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ln->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ln = ln->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT line_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (polyg) + { + /* creating and populating the POLYG layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("polyg_layer_%s", polyg3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%spolyg_layer_%s", dxf->prefix, + polyg3D ? "3d" : "2d"); + if (append && check_polyg_table (handle, name, dxf->srid, polyg3D)) + { + /* appending into the already existing table */ + if (!create_polyg_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (!create_mixed_polyg_table + (handle, name, dxf->srid, polyg3D, &stmt)) + return 0; + } + if (hasExtraPolyg) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_mixed_polyg_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfPolylinePtr pg = lyr->first_polyg; + while (pg != NULL) + { + int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg); + gaiaDxfHolePtr hole; + int num_holes; + int iv; + gaiaPolygonPtr p_pg; + gaiaRingPtr p_rng; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (polyg3D) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + num_holes++; + hole = hole->next; + } + gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, + num_holes); + p_pg = geom->FirstPolygon; + p_rng = p_pg->Exterior; + for (iv = 0; iv < pg->points; iv++) + { + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv), + *(pg->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0), + *(pg->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0)); + } + } + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + int unclosed = + check_unclosed_hole (hole, lyr->is3Dpolyg); + p_rng = + gaiaAddInteriorRing (p_pg, num_holes, + hole->points + unclosed); + for (iv = 0; iv < hole->points; iv++) + { + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv), + *(hole->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (lyr->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, + hole->points, + *(hole->x + 0), + *(hole->y + 0), + *(hole->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, + hole->points, + *(hole->x + 0), + *(hole->y + 0)); + } + } + num_holes++; + hole = hole->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = pg->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + pg = pg->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT polyg_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (hatch) + { + /* creating and populating the HATCH layer */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("hatch_layer_2d"); + else + name = sqlite3_mprintf ("%shatch_layer_2d", dxf->prefix); + if (append && check_hatch_tables (handle, name, dxf->srid)) + { + /* appending into the already existing tables */ + if (!create_hatch_boundary_stmt (handle, name, &stmt)) + return 0; + if (!create_hatch_pattern_stmt (handle, name, &stmt_pattern)) + return 0; + } + else + { + /* creating a new table */ + if (!create_mixed_hatch_table + (handle, name, dxf->srid, &stmt, &stmt_pattern)) + return 0; + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfHatchPtr hatch = lyr->first_hatch; + while (hatch != NULL) + { + sqlite3_int64 feature_id; + gaiaDxfHatchSegmPtr segm; + /* inserting the Boundary Geometry */ + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (hatch->boundary == NULL) + sqlite3_bind_null (stmt, 3); + else + { + gaiaToSpatiaLiteBlobWkb (hatch->boundary, &blob, + &blob_size); + sqlite3_bind_blob (stmt, 3, blob, blob_size, free); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + feature_id = sqlite3_last_insert_rowid (handle); + + /* inserting the Pattern Geometry */ + sqlite3_reset (stmt_pattern); + sqlite3_clear_bindings (stmt_pattern); + sqlite3_bind_int64 (stmt_pattern, 1, feature_id); + sqlite3_bind_text (stmt_pattern, 2, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + if (hatch->first_out == NULL) + sqlite3_bind_null (stmt_pattern, 4); + else + { + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + geom->DeclaredType = GAIA_MULTILINESTRING; + segm = hatch->first_out; + while (segm != NULL) + { + gaiaLinestringPtr p_ln = + gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (p_ln->Coords, 0, segm->x0, + segm->y0); + gaiaSetPoint (p_ln->Coords, 1, segm->x1, + segm->y1); + segm = segm->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, + free); + } + ret = sqlite3_step (stmt_pattern); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + hatch = hatch->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_pattern); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (insText) + { + /* creating and populating the INSERT (Text reference) layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("instext_layer_%s", insText3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%sinstext_layer_%s", dxf->prefix, + insText3D ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_text_%s", + insText3D ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, + insText3D ? "3d" : "2d"); + if (!create_instext_table + (handle, name, block, insText3D, &stmt)) + return 0; + sqlite3_free (block); + } + if (hasExtraInsText) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfInsertPtr ins = lyr->first_ins_text; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ins->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (insPoint) + { + /* creating and populating the INSERT (Point reference) layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("inspoint_layer_%s", + insPoint3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%sinspoint_layer_%s", dxf->prefix, + insPoint3D ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_point_%s", + insPoint3D ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, + insPoint3D ? "3d" : "2d"); + if (!create_inspoint_table + (handle, name, block, insPoint3D, &stmt)) + return 0; + sqlite3_free (block); + } + if (hasExtraInsPoint) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfInsertPtr ins = lyr->first_ins_point; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ins->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (insLine) + { + /* creating and populating the INSERT (Linestring reference) layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("insline_layer_%s", insLine3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%sinsline_layer_%s", dxf->prefix, + insLine3D ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_line_%s", + insLine3D ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, + insLine3D ? "3d" : "2d"); + if (!create_insline_table + (handle, name, block, insLine3D, &stmt)) + return 0; + sqlite3_free (block); + } + if (hasExtraInsLine) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfInsertPtr ins = lyr->first_ins_line; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ins->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (insPolyg) + { + /* creating and populating the INSERT (Polygon reference) layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = + sqlite3_mprintf ("inspolyg_layer_%s", + insPolyg3D ? "3d" : "2d"); + else + name = + sqlite3_mprintf ("%sinspolyg_layer_%s", dxf->prefix, + insPolyg3D ? "3d" : "2d"); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = + sqlite3_mprintf ("block_polyg_%s", + insPolyg3D ? "3d" : "2d"); + else + block = + sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, + insPolyg3D ? "3d" : "2d"); + if (!create_inspolyg_table + (handle, name, block, insPolyg3D, &stmt)) + return 0; + sqlite3_free (block); + } + if (hasExtraInsPolyg) + { + extra_name = create_extra_attr_table_name (name); + if (append && check_extra_attr_table (handle, extra_name)) + { + /* appending into the already existing table */ + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + } + else + { + /* creating the Extra Attribute table */ + if (!create_insert_extra_attr_table + (handle, name, extra_name, &stmt_ext)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfInsertPtr ins = lyr->first_ins_polyg; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + if (stmt_ext != NULL) + { + /* inserting all Extra Attributes */ + sqlite3_int64 feature_id = + sqlite3_last_insert_rowid (handle); + gaiaDxfExtraAttrPtr ext = ins->first; + while (ext != NULL) + { + sqlite3_reset (stmt_ext); + sqlite3_clear_bindings (stmt_ext); + sqlite3_bind_int64 (stmt_ext, 1, feature_id); + sqlite3_bind_text (stmt_ext, 2, ext->key, + strlen (ext->key), + SQLITE_STATIC); + sqlite3_bind_text (stmt_ext, 3, ext->value, + strlen (ext->value), + SQLITE_STATIC); + ret = sqlite3_step (stmt_ext); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", + extra_name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = + sqlite3_exec (handle, "ROLLBACK", + NULL, NULL, NULL); + return 0; + } + ext = ext->next; + } + } + ins = ins->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + + if (insHatch) + { + /* creating and populating the INSERT (Hatch reference) layer */ + stmt_ext = NULL; + extra_name = NULL; + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("inshatch_layer_2d"); + else + name = sqlite3_mprintf ("%sinshatch_layer_2d", dxf->prefix); + if (append && check_insert_table (handle, name)) + { + /* appending into the already existing table */ + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + } + else + { + /* creating a new table */ + if (dxf->prefix == NULL) + block = sqlite3_mprintf ("block_hatch_2d"); + else + block = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); + if (!create_inshatch_table (handle, name, block, &stmt)) + return 0; + sqlite3_free (block); + } + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + return 0; + } + lyr = dxf->first_layer; + while (lyr != NULL) + { + gaiaDxfInsertPtr ins = lyr->first_ins_hatch; + while (ins != NULL) + { + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, lyr->layer_name, + strlen (lyr->layer_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, ins->block_id, + strlen (ins->block_id), SQLITE_STATIC); + sqlite3_bind_double (stmt, 4, ins->x); + sqlite3_bind_double (stmt, 5, ins->y); + sqlite3_bind_double (stmt, 6, ins->z); + sqlite3_bind_double (stmt, 7, ins->scale_x); + sqlite3_bind_double (stmt, 8, ins->scale_y); + sqlite3_bind_double (stmt, 9, ins->scale_z); + sqlite3_bind_double (stmt, 10, ins->angle); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + sqlite3_finalize (stmt); + ret = + sqlite3_exec (handle, "ROLLBACK", NULL, NULL, + NULL); + return 0; + } + ins = ins->next; + } + lyr = lyr->next; + } + sqlite3_free (name); + if (extra_name) + sqlite3_free (extra_name); + sqlite3_finalize (stmt); + if (stmt_ext != NULL) + sqlite3_finalize (stmt_ext); + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT hatch_layer error: %s\n", + sqlite3_errmsg (handle)); + return 0; + } + } + return 1; +} diff --git a/src/spatialite/src/dxf/dxf_loader.c b/src/spatialite/src/dxf/dxf_loader.c new file mode 100644 index 0000000..8d32959 --- /dev/null +++ b/src/spatialite/src/dxf/dxf_loader.c @@ -0,0 +1,3939 @@ +/* + + dxf_loader.c -- implements DXF support + [loding features into the DB - common methods] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#include "dxf_private.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +DXF_PRIVATE int +create_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) +{ +/* creating the "Text" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, label, rotation, geometry) " + "VALUES (NULL, ?, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) +{ +/* creating the "Point" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " + "VALUES (NULL, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) +{ +/* creating the "Line" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " + "VALUES (NULL, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) +{ +/* creating the "Polyg" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " + "VALUES (NULL, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_hatch_boundary_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Hatch-Boundary" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " + "VALUES (NULL, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_hatch_pattern_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Hatch-Pattern" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xpattern; + char *pattern; + *xstmt = NULL; + + pattern = sqlite3_mprintf ("%s_pattern", name); + xpattern = gaiaDoubleQuotedSql (pattern); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " + "VALUES (?, ?, ?, ?)", xpattern); + free (xpattern); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (pattern); + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_insert_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) +{ +/* creating the "Insert" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, x, y, z, scale_x, scale_y, scale_z, angle) " + "VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_extra_stmt (sqlite3 * handle, const char *extra_name, + sqlite3_stmt ** xstmt) +{ +/* creating the Extra Attributes insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xextra_name; + *xstmt = NULL; + + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (attr_id, feature_id, attr_key, attr_value) " + "VALUES (NULL, ?, ?, ?)", xextra_name); + free (xextra_name); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE char * +create_extra_attr_table_name (const char *name) +{ +/* creating the Extra Attributes table name [Mixed Layers] */ + return sqlite3_mprintf ("%s_attr", name); +} + +DXF_PRIVATE int +check_text_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Text table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_label = 0; + int ok_rotation = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) + ok_label = 1; + if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) + ok_rotation = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_label + && ok_rotation) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +check_point_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Point table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + } + if (ok_feature_id && ok_filename && ok_layer) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +check_line_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Line table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == + 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + } + if (ok_feature_id && ok_filename && ok_layer) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +check_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Polygon table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + } + if (ok_feature_id && ok_filename && ok_layer) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +check_hatch_tables (sqlite3 * handle, const char *name, int srid) +{ +/* checking if Hatch tables already exist */ + char *sql; + int ok_geom = 0; + int ok_pdata = 0; + int ok_bdata = 0; + int ret; + int i; + char *xname; + char *pattern = sqlite3_mprintf ("%s_pattern", name); + char *xpattern; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_bsrid = 0; + int ok_btype = 0; + int bdims2d = 0; + int ok_psrid = 0; + int ok_ptype = 0; + int pdims2d = 0; + sql = + sqlite3_mprintf + ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_bsrid = 1; + if (strcmp + ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) + ok_btype = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + bdims2d = 1; + } + } + sqlite3_free_table (results); + sql = + sqlite3_mprintf + ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_psrid = 1; + if (strcmp + ("MULTILINESTRING", + results[(i * n_columns) + 1]) == 0) + ok_ptype = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + pdims2d = 1; + } + } + sqlite3_free_table (results); + if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype + && pdims2d) + ok_geom = 1; + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_psrid = 0; + int ok_ptype = 0; + int ok_bsrid = 0; + int ok_btype = 0; + sql = + sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_bsrid = 1; + if (atoi (results[(i * n_columns) + 1]) == 6) + ok_btype = 1; + } + } + sqlite3_free_table (results); + sql = + sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", pattern, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_psrid = 1; + if (atoi (results[(i * n_columns) + 1]) == 5) + ok_ptype = 1; + } + } + sqlite3_free_table (results); + if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) + ok_geom = 1; + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + } + if (ok_feature_id && ok_filename && ok_layer) + ok_bdata = 1; + } + sqlite3_free_table (results); + + xpattern = gaiaDoubleQuotedSql (pattern); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); + free (xpattern); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + } + if (ok_feature_id && ok_filename && ok_layer) + ok_pdata = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_bdata && ok_pdata) + { + sqlite3_free (pattern); + return 1; + } + stop: + sqlite3_free (pattern); + return 0; +} + +DXF_PRIVATE int +check_insert_table (sqlite3 * handle, const char *name) +{ +/* checking if an Insert (indirect refs) table already exists */ + char *sql; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + int ok_x = 0; + int ok_y = 0; + int ok_z = 0; + int ok_scale_x = 0; + int ok_scale_y = 0; + int ok_scale_z = 0; + int ok_angle = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + if (strcasecmp ("x", results[(i * n_columns) + 1]) == 0) + ok_x = 1; + if (strcasecmp ("y", results[(i * n_columns) + 1]) == 0) + ok_y = 1; + if (strcasecmp ("z", results[(i * n_columns) + 1]) == 0) + ok_z = 1; + if (strcasecmp ("scale_x", results[(i * n_columns) + 1]) == 0) + ok_scale_x = 1; + if (strcasecmp ("scale_y", results[(i * n_columns) + 1]) == 0) + ok_scale_y = 1; + if (strcasecmp ("scale_z", results[(i * n_columns) + 1]) == 0) + ok_scale_z = 1; + if (strcasecmp ("angle", results[(i * n_columns) + 1]) == 0) + ok_angle = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id && ok_x + && ok_y && ok_z && ok_scale_x && ok_scale_y && ok_scale_z + && ok_angle) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +check_extra_attr_table (sqlite3 * handle, const char *name) +{ +/* checking if an Extra Attributes table already exists */ + char *sql; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_attr_id = 0; + int ok_feature_id = 0; + int ok_attr_key = 0; + int ok_attr_value = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("attr_id", results[(i * n_columns) + 1]) == 0) + ok_attr_id = 1; + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("attr_key", results[(i * n_columns) + 1]) == 0) + ok_attr_key = 1; + if (strcasecmp ("attr_value", results[(i * n_columns) + 1]) == + 0) + ok_attr_value = 1; + } + if (ok_attr_id && ok_feature_id && ok_attr_key && ok_attr_value) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_data) + return 1; + return 0; +} + +DXF_PRIVATE int +create_block_text_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Text" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, label, rotation, geometry) " + "VALUES (NULL, ?, ?, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +static int +create_block_point_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Point" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " + "VALUES (NULL, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +static int +create_block_line_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Line" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " + "VALUES (NULL, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +static int +create_block_polyg_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Polyg" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " + "VALUES (NULL, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +static int +create_block_hatch_boundary_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Hatch-Boundary" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " + "VALUES (NULL, ?, ?, ?, ?)", xname); + free (xname); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + *xstmt = stmt; + return 1; +} + +static int +create_block_hatch_pattern_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt) +{ +/* creating the "Block-Hatch-Pattern" insert statement */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xpattern; + char *pattern; + *xstmt = NULL; + + pattern = sqlite3_mprintf ("%s_pattern", name); + xpattern = gaiaDoubleQuotedSql (pattern); + sql = + sqlite3_mprintf + ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " + "VALUES (?, ?, ?, ?, ?)", xpattern); + free (xpattern); + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (pattern); + *xstmt = stmt; + return 1; +} + +static int +check_block_text_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Block-Text table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + int ok_label = 0; + int ok_rotation = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) + ok_label = 1; + if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) + ok_rotation = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id + && ok_label && ok_rotation) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +static int +has_viewgeom_rdonly (sqlite3 * handle) +{ +/* testing if "views_geometry_columns" has a "read_only" column */ + int has_rdonly = 0; + int ret; + int i; + char **results; + int n_rows; + int n_columns; + char *sql = "PRAGMA table_info(views_geometry_columns)"; + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("read_only", results[(i * n_columns) + 1]) == 0) + has_rdonly = 1; + } + } + sqlite3_free_table (results); + return has_rdonly; +} + +DXF_PRIVATE int +create_instext_table (sqlite3 * handle, const char *name, + const char *block, int is3d, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Insert-mixed-Text" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + char *view; + char *xview; + char *xblock; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " x DOUBLE NOT NULL,\n" + " y DOUBLE NOT NULL,\n" + " z DOUBLE NOT NULL,\n" + " scale_x DOUBLE NOT NULL,\n" + " scale_y DOUBLE NOT NULL,\n" + " scale_z DOUBLE NOT NULL,\n" + " angle DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + + view = sqlite3_mprintf ("%s_view", name); + xview = gaiaDoubleQuotedSql (view); + xname = gaiaDoubleQuotedSql (name); + xblock = gaiaDoubleQuotedSql (block); + if (is3d) + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + else + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + free (xname); + free (xview); + free (xblock); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + if (has_viewgeom_rdonly (handle)) + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, + "geometry", "rowid", block, "geometry"); + else + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q))", view, + "geometry", "rowid", block, "geometry"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("Register Spatial VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view); + + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_inspoint_table (sqlite3 * handle, const char *name, + const char *block, int is3d, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Insert-mixed-Point" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + char *view; + char *xview; + char *xblock; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " x DOUBLE NOT NULL,\n" + " y DOUBLE NOT NULL,\n" + " z DOUBLE NOT NULL,\n" + " scale_x DOUBLE NOT NULL,\n" + " scale_y DOUBLE NOT NULL,\n" + " scale_z DOUBLE NOT NULL,\n" + " angle DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + + view = sqlite3_mprintf ("%s_view", name); + xview = gaiaDoubleQuotedSql (view); + xname = gaiaDoubleQuotedSql (name); + xblock = gaiaDoubleQuotedSql (block); + if (is3d) + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + else + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID as rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + free (xname); + free (xview); + free (xblock); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + if (has_viewgeom_rdonly (handle)) + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, + "geometry", "rowid", block, "geometry"); + else + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q))", view, + "geometry", "rowid", block, "geometry"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("Register Spatial VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view); + + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_insline_table (sqlite3 * handle, const char *name, + const char *block, int is3d, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Insert-mixed-Line" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + char *view; + char *xview; + char *xblock; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " x DOUBLE NOT NULL,\n" + " y DOUBLE NOT NULL,\n" + " z DOUBLE NOT NULL,\n" + " scale_x DOUBLE NOT NULL,\n" + " scale_y DOUBLE NOT NULL,\n" + " scale_z DOUBLE NOT NULL,\n" + " angle DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + + view = sqlite3_mprintf ("%s_view", name); + xview = gaiaDoubleQuotedSql (view); + xname = gaiaDoubleQuotedSql (name); + xblock = gaiaDoubleQuotedSql (block); + if (is3d) + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + else + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + free (xname); + free (xview); + free (xblock); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + if (has_viewgeom_rdonly (handle)) + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, + "geometry", "rowid", block, "geometry"); + else + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q))", view, + "geometry", "rowid", block, "geometry"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("Register Spatial VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view); + + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_inspolyg_table (sqlite3 * handle, const char *name, + const char *block, int is3d, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Insert-mixed-Polyg" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + char *view; + char *xview; + char *xblock; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " x DOUBLE NOT NULL,\n" + " y DOUBLE NOT NULL,\n" + " z DOUBLE NOT NULL,\n" + " scale_x DOUBLE NOT NULL,\n" + " scale_y DOUBLE NOT NULL,\n" + " scale_z DOUBLE NOT NULL,\n" + " angle DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + + view = sqlite3_mprintf ("%s_view", name); + xview = gaiaDoubleQuotedSql (view); + xname = gaiaDoubleQuotedSql (name); + xblock = gaiaDoubleQuotedSql (block); + if (is3d) + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + else + { + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + } + free (xname); + free (xview); + free (xblock); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + if (has_viewgeom_rdonly (handle)) + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, + "geometry", "rowid", block, "geometry"); + else + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q))", view, + "geometry", "rowid", block, "geometry"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("Register Spatial VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view); + + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_inshatch_table (sqlite3 * handle, const char *name, + const char *block, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Insert-mixed-Hatch" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + char *view; + char *xview; + char *xblock; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " x DOUBLE NOT NULL,\n" + " y DOUBLE NOT NULL,\n" + " z DOUBLE NOT NULL,\n" + " scale_x DOUBLE NOT NULL,\n" + " scale_y DOUBLE NOT NULL,\n" + " scale_z DOUBLE NOT NULL,\n" + " angle DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + + view = sqlite3_mprintf ("%s_view", name); + xview = gaiaDoubleQuotedSql (view); + xname = gaiaDoubleQuotedSql (name); + xblock = gaiaDoubleQuotedSql (block); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " + "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " + "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " + "i.scale_x, i.scale_y), i.x, i.y) AS geometry " + "FROM \"%s\" AS i JOIN \"%s\" AS b ON " + "(b.layer = i.layer AND b.block_id = i.block_id)", + xview, xname, xblock); + free (xname); + free (xview); + free (xblock); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + if (has_viewgeom_rdonly (handle)) + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, + "geometry", "rowid", block, "geometry"); + else + sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" + "view_name, view_geometry, view_rowid, f_table_name, " + "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " + "Lower(%Q), Lower(%Q), Lower(%Q))", view, + "geometry", "rowid", block, "geometry"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("Register Spatial VIEW %s error: %s\n", view, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view); + + if (!create_insert_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +DXF_PRIVATE int +create_insert_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, sqlite3_stmt ** xstmt_ext) +{ +/* attempting to create the "Insert-mixed-extra-attr" table */ + char *sql; + int ret; + sqlite3_stmt *stmt_ext; + char *xname; + char *xextra_name; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + char *view_name; + char *xview_name; + *xstmt_ext = NULL; + + fk_name = sqlite3_mprintf ("fk_%s", extra_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " feature_id INTEGER NOT NULL,\n" + " attr_key TEXT NOT NULL,\n" + " attr_value TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + "REFERENCES \"%s\" (feature_id))", + xextra_name, xfk_name, xname); + free (xextra_name); + free (xfk_name); + free (xname); + sqlite3_free (fk_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", extra_name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); + free (xidx_name); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + view_name = sqlite3_mprintf ("%s_view", name); + xview_name = gaiaDoubleQuotedSql (view_name); + xname = gaiaDoubleQuotedSql (name); + xextra_name = gaiaDoubleQuotedSql (extra_name); + sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " + "SELECT f.feature_id AS feature_id, f.filename AS filename, " + "f.layer AS layer, f.x AS x, f.y AS y, f.z AS z, f.scale_x AS scale_x, " + "f.scale_y AS scale_y, f.scale_z AS scale_z, f.angle AS angle, " + "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " + "FROM \"%s\" AS f " + "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", + xview_name, xname, xextra_name); + free (xview_name); + free (xname); + free (xextra_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW %s error: %s\n", view_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (view_name); + if (!create_extra_stmt (handle, extra_name, &stmt_ext)) + return 0; + + *xstmt_ext = stmt_ext; + return 1; +} + +static int +check_block_point_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Block-Point table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +static int +check_block_line_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Block-Line table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == + 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +static int +check_block_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) +{ +/* checking if a Block-Polygon table already exists */ + char *sql; + int ok_geom = 0; + int ok_data = 0; + int ret; + int i; + char *xname; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_srid = 0; + int ok_type = 0; + int dims2d = 0; + int dims3d = 0; + sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) + ok_type = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + dims2d = 1; + if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) + dims3d = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + if (is3D && dims3d) + ok_geom = 1; + if (!is3D && dims2d) + ok_geom = 1; + } + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_srid = 0; + int ok_type = 0; + sql = sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_srid = 1; + if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) + ok_type = 1; + if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) + ok_type = 1; + } + } + sqlite3_free_table (results); + if (ok_srid && ok_type) + { + ok_geom = 1; + } + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id) + ok_data = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_data) + return 1; + return 0; +} + +static int +check_block_hatch_tables (sqlite3 * handle, const char *name, int srid) +{ +/* checking if Block-Hatch tables already exist */ + char *sql; + int ok_geom = 0; + int ok_pdata = 0; + int ok_bdata = 0; + int ret; + int i; + char *xname; + char *pattern = sqlite3_mprintf ("%s_pattern", name); + char *xpattern; + char **results; + int n_rows; + int n_columns; + int metadata_version = checkSpatialMetaData (handle); + + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + int ok_bsrid = 0; + int ok_btype = 0; + int bdims2d = 0; + int ok_psrid = 0; + int ok_ptype = 0; + int pdims2d = 0; + sql = + sqlite3_mprintf + ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_bsrid = 1; + if (strcmp + ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) + ok_btype = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + bdims2d = 1; + } + } + sqlite3_free_table (results); + sql = + sqlite3_mprintf + ("SELECT srid, type, coord_dimension " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_psrid = 1; + if (strcmp + ("MULTILINESTRING", + results[(i * n_columns) + 1]) == 0) + ok_ptype = 1; + if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) + pdims2d = 1; + } + } + sqlite3_free_table (results); + if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype + && pdims2d) + ok_geom = 1; + } + else + { + /* current metadata style >= v.4.0.0 */ + int ok_psrid = 0; + int ok_ptype = 0; + int ok_bsrid = 0; + int ok_btype = 0; + sql = + sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", name, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_bsrid = 1; + if (atoi (results[(i * n_columns) + 1]) == 6) + ok_btype = 1; + } + } + sqlite3_free_table (results); + sql = + sqlite3_mprintf ("SELECT srid, geometry_type " + "FROM geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", pattern, + "geometry"); + ret = + sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, + NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + for (i = 1; i <= n_rows; i++) + { + if (atoi (results[(i * n_columns) + 0]) == srid) + ok_psrid = 1; + if (atoi (results[(i * n_columns) + 1]) == 5) + ok_ptype = 1; + } + } + sqlite3_free_table (results); + if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) + ok_geom = 1; + } + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id) + ok_bdata = 1; + } + sqlite3_free_table (results); + + xpattern = gaiaDoubleQuotedSql (pattern); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); + free (xpattern); + ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + if (n_rows > 0) + { + int ok_feature_id = 0; + int ok_filename = 0; + int ok_layer = 0; + int ok_block_id = 0; + for (i = 1; i <= n_rows; i++) + { + if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == + 0) + ok_feature_id = 1; + if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) + ok_filename = 1; + if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) + ok_layer = 1; + if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) + ok_block_id = 1; + } + if (ok_feature_id && ok_filename && ok_layer && ok_block_id) + ok_pdata = 1; + } + sqlite3_free_table (results); + + if (ok_geom && ok_bdata && ok_pdata) + { + sqlite3_free (pattern); + return 1; + } + stop: + sqlite3_free (pattern); + return 0; +} + +static int +create_block_text_table (sqlite3 * handle, const char *name, int srid, + int text3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Block-Text" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " label TEXT NOT NULL,\n" + " rotation DOUBLE NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_block_text_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_block_point_table (sqlite3 * handle, const char *name, int srid, + int point3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Block-Point" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_block_point_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_block_line_table (sqlite3 * handle, const char *name, int srid, + int line3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Block-Line" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_block_line_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_block_polyg_table (sqlite3 * handle, const char *name, int srid, + int polyg3D, sqlite3_stmt ** xstmt) +{ +/* attempting to create the "Block-Polyg" table */ + char *sql; + int ret; + sqlite3_stmt *stmt; + char *xname; + char *idx_name; + char *xidx_name; + *xstmt = NULL; + + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + if (!create_block_polyg_stmt (handle, name, &stmt)) + return 0; + + *xstmt = stmt; + return 1; +} + +static int +create_block_hatch_tables (sqlite3 * handle, const char *name, int srid, + sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) +{ +/* attempting to create the "Block-Hatch" tables */ + char *sql; + int ret; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt2; + char *xname; + char *pattern; + char *xpattern; + char *fk_name; + char *xfk_name; + char *idx_name; + char *xidx_name; + *xstmt = NULL; + *xstmt2 = NULL; + +/* creating the Block-Hatch-Boundary table */ + xname = gaiaDoubleQuotedSql (name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL)", xname); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", name); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTIPOLYGON', 'XY')", name, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, + sqlite3_errmsg (handle)); + return 0; + } + +/* creating the Block-Hatch-Pattern table */ + xname = gaiaDoubleQuotedSql (name); + pattern = sqlite3_mprintf ("%s_pattern", name); + xpattern = gaiaDoubleQuotedSql (pattern); + fk_name = sqlite3_mprintf ("fk_%s_pattern", name); + xfk_name = gaiaDoubleQuotedSql (fk_name); + sqlite3_free (fk_name); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" + " feature_id INTEGER PRIMARY KEY NOT NULL,\n" + " filename TEXT NOT NULL, \n" + " layer TEXT NOT NULL,\n" + " block_id TEXT NOT NULL,\n" + " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " + " REFERENCES \"%s\" (feature_id))", xpattern, + xfk_name, xname); + free (xname); + free (xfk_name); + free (xpattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + idx_name = sqlite3_mprintf ("idx_%s", pattern); + xidx_name = gaiaDoubleQuotedSql (idx_name); + xname = gaiaDoubleQuotedSql (name); + sql = + sqlite3_mprintf + ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); + free (xidx_name); + free (xname); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (idx_name); + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'geometry', " + "%d, 'MULTILINESTRING', 'XY')", pattern, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sql = + sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); + ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, + sqlite3_errmsg (handle)); + return 0; + } + sqlite3_free (pattern); + if (!create_block_hatch_boundary_stmt (handle, name, &stmt)) + return 0; + if (!create_block_hatch_pattern_stmt (handle, name, &stmt2)) + return 0; + + *xstmt = stmt; + *xstmt2 = stmt2; + return 1; +} + +DXF_PRIVATE int +check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d) +{ +/* checking for unclosed Rings (exterior) */ + int last = pg->points - 1; + if (is3d) + { + if (*(pg->x + 0) == *(pg->x + last) && *(pg->y + 0) == *(pg->y + last) + && *(pg->z + 0) == *(pg->z + last)) + return 0; + } + else + { + if (*(pg->x + 0) == *(pg->x + last) + && *(pg->y + 0) == *(pg->y + last)) + return 0; + } + return 1; +} + +DXF_PRIVATE int +check_unclosed_hole (gaiaDxfHolePtr hole, int is3d) +{ +/* checking for unclosed Rings (interior) */ + int last = hole->points - 1; + if (is3d) + { + if (*(hole->x + 0) == *(hole->x + last) + && *(hole->y + 0) == *(hole->y + last) + && *(hole->z + 0) == *(hole->z + last)) + return 0; + } + else + { + if (*(hole->x + 0) == *(hole->x + last) + && *(hole->y + 0) == *(hole->y + last)) + return 0; + } + return 1; +} + +static int +import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) +{ +/* populating the target DB - importing BLOCK geometries */ + gaiaDxfTextPtr txt; + gaiaDxfPointPtr pt; + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr pg; + gaiaDxfHatchPtr htc; + int ret; + unsigned char *blob; + int blob_size; + gaiaGeomCollPtr geom; + int error = 0; + char *name; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt_text_2d = NULL; + sqlite3_stmt *stmt_text_3d = NULL; + sqlite3_stmt *stmt_point_2d = NULL; + sqlite3_stmt *stmt_point_3d = NULL; + sqlite3_stmt *stmt_line_2d = NULL; + sqlite3_stmt *stmt_line_3d = NULL; + sqlite3_stmt *stmt_polyg_2d = NULL; + sqlite3_stmt *stmt_polyg_3d = NULL; + sqlite3_stmt *stmt_hatch_boundary = NULL; + sqlite3_stmt *stmt_hatch_pattern = NULL; + int text = 0; + int point = 0; + int line = 0; + int polyg = 0; + int hatch = 0; + int text2D = 0; + int point2D = 0; + int line2D = 0; + int polyg2D = 0; + int text3D = 0; + int point3D = 0; + int line3D = 0; + int polyg3D = 0; + int iv; + gaiaDxfHolePtr hole; + int num_holes; + gaiaLinestringPtr p_ln; + gaiaPolygonPtr p_pg; + gaiaRingPtr p_rng; + sqlite3_int64 feature_id; + gaiaDxfHatchSegmPtr segm; + + gaiaDxfBlockPtr blk = dxf->first_block; + while (blk != NULL) + { + /* exploring Blocks by type */ + if (blk->hasInsert == 0) + { + blk = blk->next; + continue; + } + if (blk->first_text != NULL) + { + text = 1; + if (blk->is3Dtext) + text3D = 1; + else + text2D = 1; + } + if (blk->first_point != NULL) + { + point = 1; + if (blk->is3Dpoint) + point3D = 1; + else + point2D = 1; + } + if (blk->first_line != NULL) + { + line = 1; + if (blk->is3Dline) + line3D = 1; + else + line2D = 1; + } + if (blk->first_polyg != NULL) + { + polyg = 1; + if (blk->is3Dpolyg) + polyg3D = 1; + else + polyg2D = 1; + } + if (blk->first_hatch != NULL) + hatch = 1; + blk = blk->next; + } + + if (text && text2D) + { + /* preparing to insert into the Block Text 2D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_text_2d"); + else + name = sqlite3_mprintf ("%sblock_text_2d", dxf->prefix); + if (append && check_block_text_table (handle, name, dxf->srid, 0)) + { + /* appending into the already existing table */ + if (!create_block_text_stmt (handle, name, &stmt_text_2d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_text_table + (handle, name, dxf->srid, 0, &stmt_text_2d)) + return 0; + } + sqlite3_free (name); + } + if (text && text3D) + { + /* preparing to insert into the Block Text 3D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_text_3d"); + else + name = sqlite3_mprintf ("%sblock_text_3d", dxf->prefix); + if (append && check_block_text_table (handle, name, dxf->srid, 1)) + { + /* appending into the already existing table */ + if (!create_block_text_stmt (handle, name, &stmt_text_3d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_text_table + (handle, name, dxf->srid, 1, &stmt_text_3d)) + return 0; + } + sqlite3_free (name); + } + if (point && point2D) + { + /* preparing to insert into the Block Point 2D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_point_2d"); + else + name = sqlite3_mprintf ("%sblock_point_2d", dxf->prefix); + if (append && check_block_point_table (handle, name, dxf->srid, 0)) + { + /* appending into the already existing table */ + if (!create_block_point_stmt (handle, name, &stmt_point_2d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_point_table + (handle, name, dxf->srid, 0, &stmt_point_2d)) + return 0; + } + sqlite3_free (name); + } + if (point && point3D) + { + /* preparing to insert into the Block Point 3D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_point_3d"); + else + name = sqlite3_mprintf ("%sblock_point_3d", dxf->prefix); + if (append && check_block_point_table (handle, name, dxf->srid, 1)) + { + /* appending into the already existing table */ + if (!create_block_point_stmt (handle, name, &stmt_point_3d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_point_table + (handle, name, dxf->srid, 1, &stmt_point_3d)) + return 0; + } + sqlite3_free (name); + } + if (line && line2D) + { + /* preparing to insert into the Block Line 2D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_line_2d"); + else + name = sqlite3_mprintf ("%sblock_line_2d", dxf->prefix); + if (append && check_block_line_table (handle, name, dxf->srid, 0)) + { + /* appending into the already existing table */ + if (!create_block_line_stmt (handle, name, &stmt_line_2d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_line_table + (handle, name, dxf->srid, 0, &stmt_line_2d)) + return 0; + } + sqlite3_free (name); + } + if (line && line3D) + { + /* preparing to insert into the Block Line 3D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_line_3d"); + else + name = sqlite3_mprintf ("%sblock_line_3d", dxf->prefix); + if (append && check_block_line_table (handle, name, dxf->srid, 1)) + { + /* appending into the already existing table */ + if (!create_block_line_stmt (handle, name, &stmt_line_3d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_line_table + (handle, name, dxf->srid, 1, &stmt_line_3d)) + return 0; + } + sqlite3_free (name); + } + if (polyg && polyg2D) + { + /* preparing to insert into the Block Polyg 2D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_polyg_2d"); + else + name = sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); + if (append && check_block_polyg_table (handle, name, dxf->srid, 0)) + { + /* appending into the already existing table */ + if (!create_block_polyg_stmt (handle, name, &stmt_polyg_2d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_polyg_table + (handle, name, dxf->srid, 0, &stmt_polyg_2d)) + return 0; + } + sqlite3_free (name); + } + if (polyg && polyg3D) + { + /* preparing to insert into the Block Polyg 3D table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_polyg_3d"); + else + name = sqlite3_mprintf ("%sblock_polyg_3d", dxf->prefix); + if (append && check_block_polyg_table (handle, name, dxf->srid, 1)) + { + /* appending into the already existing table */ + if (!create_block_polyg_stmt (handle, name, &stmt_polyg_3d)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_polyg_table + (handle, name, dxf->srid, 1, &stmt_polyg_3d)) + return 0; + } + sqlite3_free (name); + } + if (hatch) + { + /* preparing to insert into the Block Hatch table */ + if (dxf->prefix == NULL) + name = sqlite3_mprintf ("block_hatch_2d"); + else + name = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); + if (append && check_block_hatch_tables (handle, name, dxf->srid)) + { + /* appending into the already existing table */ + if (!create_block_hatch_boundary_stmt + (handle, name, &stmt_hatch_boundary)) + return 0; + if (!create_block_hatch_pattern_stmt + (handle, name, &stmt_hatch_pattern)) + return 0; + } + else + { + /* creating a new table */ + if (!create_block_hatch_tables + (handle, name, dxf->srid, &stmt_hatch_boundary, + &stmt_hatch_pattern)) + return 0; + } + sqlite3_free (name); + } + + ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); + error = 1; + goto stop; + } + + blk = dxf->first_block; + while (blk != NULL) + { + if (blk->hasInsert == 0) + { + blk = blk->next; + continue; + } + txt = blk->first_text; + while (txt) + { + if (blk->is3Dtext) + stmt = stmt_text_3d; + else + stmt = stmt_text_2d; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + sqlite3_bind_text (stmt, 4, txt->label, + strlen (txt->label), SQLITE_STATIC); + sqlite3_bind_double (stmt, 5, txt->angle); + if (blk->is3Dtext) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (blk->is3Dtext) + gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); + else + gaiaAddPointToGeomColl (geom, txt->x, txt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 6, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + txt = txt->next; + } + pt = blk->first_point; + while (pt) + { + if (blk->is3Dpoint) + stmt = stmt_point_3d; + else + stmt = stmt_point_2d; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + if (blk->is3Dpoint) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + if (blk->is3Dpoint) + gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); + else + gaiaAddPointToGeomColl (geom, pt->x, pt->y); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 4, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + pt = pt->next; + } + ln = blk->first_line; + while (ln) + { + if (blk->is3Dline) + stmt = stmt_line_3d; + else + stmt = stmt_line_2d; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + if (blk->is3Dline) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + gaiaAddLinestringToGeomColl (geom, ln->points); + p_ln = geom->FirstLinestring; + for (iv = 0; iv < ln->points; iv++) + { + if (blk->is3Dline) + { + gaiaSetPointXYZ (p_ln->Coords, iv, + *(ln->x + iv), *(ln->y + iv), + *(ln->z + iv)); + } + else + { + gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), + *(ln->y + iv)); + } + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 4, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + ln = ln->next; + } + pg = blk->first_polyg; + while (pg) + { + int unclosed = check_unclosed_polyg (pg, blk->is3Dpolyg); + if (blk->is3Dpolyg) + stmt = stmt_polyg_3d; + else + stmt = stmt_polyg_2d; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + if (blk->is3Dpolyg) + geom = gaiaAllocGeomCollXYZ (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + num_holes++; + hole = hole->next; + } + gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, + num_holes); + p_pg = geom->FirstPolygon; + p_rng = p_pg->Exterior; + for (iv = 0; iv < pg->points; iv++) + { + if (blk->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv), + *(pg->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(pg->x + iv), *(pg->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (blk->is3Dpolyg) + { + gaiaSetPointXYZ (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0), + *(pg->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, pg->points, + *(pg->x + 0), *(pg->y + 0)); + } + } + num_holes = 0; + hole = pg->first_hole; + while (hole != NULL) + { + int unclosed = check_unclosed_hole (hole, polyg3D); + p_rng = + gaiaAddInteriorRing (p_pg, num_holes, + hole->points + unclosed); + for (iv = 0; iv < hole->points; iv++) + { + if (polyg3D) + { + gaiaSetPointXYZ (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv), + *(hole->z + iv)); + } + else + { + gaiaSetPoint (p_rng->Coords, iv, + *(hole->x + iv), + *(hole->y + iv)); + } + } + if (unclosed) + { + /* forcing the Ring to be closed */ + if (polyg3D) + { + gaiaSetPointXYZ (p_rng->Coords, hole->points, + *(hole->x + 0), + *(hole->y + 0), + *(hole->z + 0)); + } + else + { + gaiaSetPoint (p_rng->Coords, hole->points, + *(hole->x + 0), *(hole->y + 0)); + } + } + num_holes++; + hole = hole->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 4, blob, blob_size, free); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + pg = pg->next; + } + htc = blk->first_hatch; + while (htc) + { + /* inserting the Boundary Geometry */ + stmt = stmt_hatch_boundary; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + if (htc->boundary == NULL) + sqlite3_bind_null (stmt, 4); + else + { + gaiaToSpatiaLiteBlobWkb (htc->boundary, &blob, + &blob_size); + sqlite3_bind_blob (stmt, 4, blob, blob_size, free); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + feature_id = sqlite3_last_insert_rowid (handle); + + /* inserting the Pattern Geometry */ + stmt = stmt_hatch_pattern; + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_int64 (stmt, 1, feature_id); + sqlite3_bind_text (stmt, 2, dxf->filename, + strlen (dxf->filename), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, blk->layer_name, + strlen (blk->layer_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 4, blk->block_id, + strlen (blk->block_id), SQLITE_STATIC); + if (htc->first_out == NULL) + sqlite3_bind_null (stmt, 5); + else + { + geom = gaiaAllocGeomColl (); + geom->Srid = dxf->srid; + geom->DeclaredType = GAIA_MULTILINESTRING; + segm = htc->first_out; + while (segm != NULL) + { + gaiaLinestringPtr p_ln = + gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); + gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); + segm = segm->next; + } + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + gaiaFreeGeomColl (geom); + sqlite3_bind_blob (stmt, 5, blob, blob_size, free); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("INSERT %s error: %s\n", name, + sqlite3_errmsg (handle)); + ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); + error = 1; + goto stop; + } + htc = htc->next; + } + blk = blk->next; + } + + ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT text_layer error: %s\n", + sqlite3_errmsg (handle)); + error = 1; + goto stop; + } + + stop: + if (stmt_text_2d != NULL) + sqlite3_finalize (stmt_text_2d); + if (stmt_text_3d != NULL) + sqlite3_finalize (stmt_text_3d); + if (stmt_point_2d != NULL) + sqlite3_finalize (stmt_point_2d); + if (stmt_point_3d != NULL) + sqlite3_finalize (stmt_point_3d); + if (stmt_line_2d != NULL) + sqlite3_finalize (stmt_line_2d); + if (stmt_line_3d != NULL) + sqlite3_finalize (stmt_line_3d); + if (stmt_polyg_2d != NULL) + sqlite3_finalize (stmt_polyg_2d); + if (stmt_polyg_3d != NULL) + sqlite3_finalize (stmt_polyg_3d); + if (stmt_hatch_boundary != NULL) + sqlite3_finalize (stmt_hatch_boundary); + if (stmt_hatch_pattern != NULL) + sqlite3_finalize (stmt_hatch_pattern); + if (error) + return 0; + return 1; +} + +GAIAGEO_DECLARE int +gaiaLoadFromDxfParser (sqlite3 * handle, + gaiaDxfParserPtr dxf, int mode, int append) +{ +/* populating the target DB */ + int ret; + + if (dxf == NULL) + return 0; + if (dxf->first_layer == NULL) + return 0; + + if (dxf->first_block != NULL) + { + if (!import_blocks (handle, dxf, append)) + return 0; + } + + if (mode == GAIA_DXF_IMPORT_MIXED) + ret = import_mixed (handle, dxf, append); + else + ret = import_by_layer (handle, dxf, append); + return ret; +} diff --git a/src/spatialite/src/dxf/dxf_parser.c b/src/spatialite/src/dxf/dxf_parser.c new file mode 100644 index 0000000..a4665b3 --- /dev/null +++ b/src/spatialite/src/dxf/dxf_parser.c @@ -0,0 +1,3551 @@ +/* + + dxf_parser.c -- implements DXF support [parsing] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include + +#include "dxf_private.h" + +#ifndef OMIT_GEOS /* only if GEOS is enabled */ + +typedef struct dxf_segment +{ +/* a DXF segment */ + int valid; + double ax; + double ay; + double az; + double bx; + double by; + double bz; +} dxfSegment; +typedef dxfSegment *dxfSegmentPtr; + +typedef struct dxf_linked_segments +{ +/* a collection of DXF segments */ + int count; + dxfSegmentPtr segments; +} dxfLinkedSegments; +typedef dxfLinkedSegments *dxfLinkedSegmentsPtr; + +typedef struct dxf_rings_collection +{ +/* a collection of rings */ + gaiaDxfPolylinePtr first; + gaiaDxfPolylinePtr last; +} dxfRingsCollection; +typedef dxfRingsCollection *dxfRingsCollectionPtr; + +static gaiaDxfHatchSegmPtr +alloc_dxf_hatch_segm (double x0, double y0, double x1, double y1) +{ +/* allocating and initializing a DXF Hatch Segment object */ + gaiaDxfHatchSegmPtr segm = malloc (sizeof (gaiaDxfHatchSegm)); + segm->x0 = x0; + segm->y0 = y0; + segm->x1 = x1; + segm->y1 = y1; + segm->next = NULL; + return segm; +} + +static void +destroy_dxf_hatch_segm (gaiaDxfHatchSegmPtr segm) +{ +/* memory cleanup - destroying a DXF Hatch Segment object */ + if (segm == NULL) + return; + free (segm); +} + +static gaiaDxfBoundaryPathPtr +alloc_dxf_boundary_path () +{ +/* allocating and initializing a DXF Boundary Path object */ + gaiaDxfBoundaryPathPtr path = malloc (sizeof (gaiaDxfBoundaryPath)); + path->first = NULL; + path->last = NULL; + path->next = NULL; + return path; +} + +static void +insert_dxf_boundary_segm (gaiaDxfBoundaryPathPtr path, gaiaDxfHatchSegmPtr segm) +{ +/* inserting a Segment into a Boundary Path */ + if (path->first == NULL) + path->first = segm; + if (path->last != NULL) + path->last->next = segm; + path->last = segm; +} + +static void +destroy_dxf_boundary_path (gaiaDxfBoundaryPathPtr path) +{ +/* memory cleanup - destroying a DXF Boundary Path object */ + gaiaDxfHatchSegmPtr segm; + gaiaDxfHatchSegmPtr n_segm; + if (path == NULL) + return; + segm = path->first; + while (segm != NULL) + { + n_segm = segm->next; + destroy_dxf_hatch_segm (segm); + segm = n_segm; + } + free (path); +} + +static gaiaDxfHatchPtr +alloc_dxf_hatch () +{ +/* allocating and initializing a DXF Pattern Hatch object */ + gaiaDxfHatchPtr hatch = malloc (sizeof (gaiaDxfHatch)); + hatch->spacing = 0.0; + hatch->angle = 0.0; + hatch->base_x = 0.0; + hatch->base_y = 0.0; + hatch->offset_x = 0.0; + hatch->offset_y = 0.0; + hatch->first = NULL; + hatch->last = NULL; + hatch->boundary = NULL; + hatch->first_out = NULL; + hatch->last_out = NULL; + hatch->next = NULL; + return hatch; +} + +static void +insert_dxf_boundary_path (gaiaDxfHatchPtr hatch, gaiaDxfBoundaryPathPtr path) +{ +/* inserting a Boundary Path into a Hatch */ + if (hatch->first == NULL) + hatch->first = path; + if (hatch->last != NULL) + hatch->last->next = path; + hatch->last = path; +} + +static void +insert_dxf_hatch_out (gaiaDxfHatchPtr hatch, gaiaDxfHatchSegmPtr segm) +{ +/* inserting a Segment into a Hatch */ + if (hatch->first_out == NULL) + hatch->first_out = segm; + if (hatch->last_out != NULL) + hatch->last_out->next = segm; + hatch->last_out = segm; +} + +static void +destroy_dxf_hatch (gaiaDxfHatchPtr hatch) +{ +/* memory cleanup - destroying a DXF Pattern Hatch object */ + gaiaDxfBoundaryPathPtr path; + gaiaDxfBoundaryPathPtr n_path; + gaiaDxfHatchSegmPtr out; + gaiaDxfHatchSegmPtr n_out; + if (hatch == NULL) + return; + path = hatch->first; + while (path != NULL) + { + n_path = path->next; + destroy_dxf_boundary_path (path); + path = n_path; + } + if (hatch->boundary != NULL) + gaiaFreeGeomColl (hatch->boundary); + out = hatch->first_out; + while (out != NULL) + { + n_out = out->next; + destroy_dxf_hatch_segm (out); + out = n_out; + } + free (hatch); +} + +static int +is_valid_dxf_hatch (gaiaDxfHatchPtr hatch) +{ +/* testing for a valid Pattern Hatch */ + if (hatch->first == NULL) + return 0; + return 1; +} + +static void +apply_vertical_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, + double spacing, double base_x) +{ +/* vertical Pattern Hatch Lines */ + double min_x = boundary->MinX; + double max_x = boundary->MaxX; + double min_y = boundary->MinY; + double max_y = boundary->MaxY; + double x; + gaiaLinestringPtr ln; +/* inserting all Hatch Lines into the collection */ + x = base_x + boundary->MinX; + while (x < max_x) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, x, min_y); + gaiaSetPoint (ln->Coords, 1, x, max_y); + x += spacing; + } + x = base_x + boundary->MinX - spacing; + while (x > min_x) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, x, min_y); + gaiaSetPoint (ln->Coords, 1, x, max_y); + x -= spacing; + } +} + +static void +apply_horizontal_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, + double spacing, double base_y) +{ +/* horizontal Pattern Hatch Lines */ + double min_x = boundary->MinX; + double max_x = boundary->MaxX; + double min_y = boundary->MinY; + double max_y = boundary->MaxY; + double y; + gaiaLinestringPtr ln; +/* inserting all Hatch Lines into the collection */ + y = base_y + boundary->MinY; + while (y < max_y) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, min_x, y); + gaiaSetPoint (ln->Coords, 1, max_x, y); + y += spacing; + } + y = base_y + boundary->MinY - spacing; + while (y > min_y) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, min_x, y); + gaiaSetPoint (ln->Coords, 1, max_x, y); + y -= spacing; + } +} + +static void +apply_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double angle, + double spacing, double base_x, double base_y) +{ +/* ordinary (slant) Pattern Hatch Lines */ + double min_x = boundary->MinX; + double max_x = boundary->MaxX; + double min_y = boundary->MinY; + double max_y = boundary->MaxY; + double ext_x = max_x - min_x; + double ext_y = max_y - min_y; + double ext = (ext_x > ext_y) ? ext_x : ext_y; + double mnx = (ext * 2.0) * -1.0; + double mxx = ext * 3.0; + double mny = (ext * 2.0) * -1.0; + double mxy = ext * 3.0; + gaiaLinestringPtr ln; + double y; +/* inserting all horizontal Hatch Lines into the collection */ + y = 0.0; + while (y < mxy) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, mnx, y); + gaiaSetPoint (ln->Coords, 1, mxx, y); + y += spacing; + } + y = 0.0 - spacing; + while (y > mny) + { + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, mnx, y); + gaiaSetPoint (ln->Coords, 1, mxx, y); + y -= spacing; + } +/* applying the required rotation */ + gaiaRotateCoords (geom, angle * -1.0); +/* translating into base position */ + gaiaShiftCoords (geom, base_x + min_x, base_y + min_y); +} + +static void +create_dxf_hatch_lines (const void *p_cache, gaiaDxfHatchPtr hatch, int srid) +{ +/* creating Pattern Hatch lines */ + gaiaDxfBoundaryPathPtr path; + gaiaDxfHatchSegmPtr out; + gaiaDxfHatchSegmPtr n_out; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr result; + gaiaGeomCollPtr clipped; + double angle; + double x0; + double y0; + double x1; + double y1; + gaiaLinestringPtr ln; + + if (hatch == NULL) + return; + if (hatch->boundary != NULL) + gaiaFreeGeomColl (hatch->boundary); + out = hatch->first_out; + while (out != NULL) + { + /* cleaning all Pattern Hatch lines */ + n_out = out->next; + destroy_dxf_hatch_segm (out); + out = n_out; + } + hatch->boundary = NULL; + hatch->first_out = NULL; + hatch->last_out = NULL; + +/* creating the Pattern Boundary */ + geom = gaiaAllocGeomColl (); + path = hatch->first; + while (path != NULL) + { + /* inserting Boundary lines */ + out = path->first; + while (out != NULL) + { + /* inserting all Boundary segments into the collection */ + ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPoint (ln->Coords, 0, out->x0, out->y0); + gaiaSetPoint (ln->Coords, 1, out->x1, out->y1); + out = out->next; + } + path = path->next; + } +/* attempting to reassemble the Boundary */ + if (p_cache != NULL) + result = gaiaPolygonize_r (p_cache, geom, 0); + else + result = gaiaPolygonize (geom, 0); + gaiaFreeGeomColl (geom); + if (result == NULL) + return; + gaiaMbrGeometry (result); + result->Srid = srid; + result->DeclaredType = GAIA_MULTIPOLYGON; + hatch->boundary = result; + if (hatch->spacing == 0.0) + { + /* no pattern filling, just the boundary */ + return; + } +/* normalizing the angle */ + angle = hatch->angle; + while (angle >= 360.0) + angle -= 360.0; + while (angle <= -360.0) + angle += 360; +/* preparing the Hatch filling lines */ + geom = gaiaAllocGeomColl (); + if (angle == 90.0 || angle == -90.0 || angle == 270.0 || angle == -270.0) + apply_vertical_hatch (result, geom, hatch->spacing, hatch->base_x); + else if (angle == 0.0 || angle == 180 || angle == -180) + apply_horizontal_hatch (result, geom, hatch->spacing, hatch->base_y); + else + apply_hatch (result, geom, angle, hatch->spacing, hatch->base_x, + hatch->base_y); + gaiaMbrGeometry (geom); + if (p_cache != NULL) + clipped = gaiaGeometryIntersection_r (p_cache, geom, result); + else + clipped = gaiaGeometryIntersection (geom, result); + gaiaFreeGeomColl (geom); + if (clipped == NULL) + return; + ln = clipped->FirstLinestring; + while (ln != NULL) + { + if (ln->Points == 2) + { + gaiaGetPoint (ln->Coords, 0, &x0, &y0); + gaiaGetPoint (ln->Coords, 1, &x1, &y1); + n_out = alloc_dxf_hatch_segm (x0, y0, x1, y1); + insert_dxf_hatch_out (hatch, n_out); + } + ln = ln->Next; + } + gaiaFreeGeomColl (clipped); +} + +static gaiaDxfHolePtr +alloc_dxf_hole (int points) +{ +/* allocating and initializing a DXF Polygon Hole object */ + int i; + gaiaDxfHolePtr hole = malloc (sizeof (gaiaDxfHole)); + hole->points = points; + hole->x = malloc (sizeof (double) * points); + hole->y = malloc (sizeof (double) * points); + hole->z = malloc (sizeof (double) * points); + for (i = 0; i < points; i++) + { + *(hole->x + i) = 0.0; + *(hole->y + i) = 0.0; + *(hole->z + i) = 0.0; + } + hole->next = NULL; + return hole; +} + +static void +insert_dxf_hole (gaiaDxfPolylinePtr line, gaiaDxfHolePtr hole) +{ +/* inserting an Hole into a Polygon */ + if (line->first_hole == NULL) + line->first_hole = hole; + if (line->last_hole != NULL) + line->last_hole->next = hole; + line->last_hole = hole; +} + +static void +destroy_dxf_hole (gaiaDxfHolePtr hole) +{ +/* memory cleanup - destroying a DXF Hole object */ + if (hole == NULL) + return; + if (hole->x != NULL) + free (hole->x); + if (hole->y != NULL) + free (hole->y); + if (hole->z != NULL) + free (hole->z); + free (hole); +} + +static int +force_closure (gaiaDxfPolylinePtr line) +{ +/* checking (and eventually forcing) first/last vertex coherency */ + if (check_unclosed_polyg (line, 1)) + { + /* not properly closed: forcing the last vertex */ + double *ptr_x; + double *ptr_y; + double *ptr_z; + ptr_x = realloc (line->x, sizeof (double) * (line->points + 1)); + ptr_y = realloc (line->y, sizeof (double) * (line->points + 1)); + ptr_z = realloc (line->z, sizeof (double) * (line->points + 1)); + if (ptr_x == NULL || ptr_y == NULL || ptr_z == NULL) + { + /* some unexpected error happened - giving up */ + if (ptr_x == NULL) + free (ptr_x); + if (ptr_y == NULL) + free (ptr_y); + if (ptr_z == NULL) + free (ptr_z); + return 0; + } + line->x = ptr_x; + line->y = ptr_y; + line->z = ptr_z; + *(line->x + line->points) = *(line->x + 0); + *(line->y + line->points) = *(line->y + 0); + *(line->z + line->points) = *(line->z + 0); + line->points += 1; + } + return 1; +} + +static void +linked_rings (const void *p_cache, gaiaDxfPolylinePtr line) +{ +/* attempt to identify linked Polygon rings */ + int i; + int i2; + int match = 0; + double x; + double y; + double z; + gaiaDxfHolePtr hole; + dxfLinkedSegmentsPtr coll; + dxfSegmentPtr seg; + dxfSegmentPtr seg2; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr result; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + int pgs; + int ok; + + if (line == NULL) + return; + if (line->points <= 0) + return; + if (line->is_closed == 0) + return; + + if (!force_closure (line)) + return; + + coll = malloc (sizeof (dxfLinkedSegments)); + coll->count = line->points - 1; + coll->segments = malloc (sizeof (dxfSegment) * coll->count); + x = *(line->x + 0); + y = *(line->y + 0); + z = *(line->z + 0); + for (i2 = 0, i = 1; i < line->points; i++, i2++) + { + /* initializing all segments */ + seg = &(coll->segments[i2]); + seg->valid = 1; + seg->ax = x; + seg->ay = y; + seg->az = z; + x = *(line->x + i); + y = *(line->y + i); + z = *(line->z + i); + seg->bx = x; + seg->by = y; + seg->bz = z; + } + + for (i = 0; i < coll->count - 1; i++) + { + /* testing for linked polygon holes */ + seg = &(coll->segments[i]); + if (seg->valid == 0) + continue; + for (i2 = i + 1; i2 < coll->count; i2++) + { + seg2 = &(coll->segments[i2]); + if (seg2->valid == 0) + continue; + if ((seg->ax == seg2->ax && seg->ay == seg2->ay + && seg->az == seg2->az && seg->bx == seg2->bx + && seg->by == seg2->by && seg->bz == seg2->bz) + || (seg->ax == seg2->bx && seg->ay == seg2->by + && seg->az == seg2->bz && seg->bx == seg2->ax + && seg->by == seg2->ay && seg->bz == seg2->az)) + { + /* found a linked segment */ + seg->valid = 0; + seg2->valid = 0; + match = 1; + } + } + } + + if (match == 0) + { + /* no link segment was found - quitting */ + free (coll->segments); + free (coll); + return; + } + +/* building a candidate geometry (multilinestring) */ + geom = gaiaAllocGeomCollXYZ (); + for (i = 0; i < coll->count; i++) + { + seg = &(coll->segments[i]); + if (seg->valid) + { + /* inserting a valid segment into the collection */ + gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (geom, 2); + gaiaSetPointXYZ (ln->Coords, 0, seg->ax, seg->ay, seg->az); + gaiaSetPointXYZ (ln->Coords, 1, seg->bx, seg->by, seg->bz); + } + } +/* freeing the linked segments list */ + free (coll->segments); + free (coll); + +/* attempting to reassemble a polygon */ + if (p_cache != NULL) + result = gaiaPolygonize_r (p_cache, geom, 0); + else + result = gaiaPolygonize (geom, 0); + gaiaFreeGeomColl (geom); + if (result == NULL) + return; + +/* checking the returned polygon for validity */ + pgs = 0; + ok = 1; + pg = result->FirstPolygon; + while (pg != NULL) + { + pgs++; + if (pg->NumInteriors == 0) + ok = 0; + pg = pg->Next; + } + if (ok == 1 && pgs == 1) + { + /* found a valid Polygon with internal holes(s) */ + pg = result->FirstPolygon; + rng = pg->Exterior; + /* rebuilding the exterior ring */ + free (line->x); + free (line->y); + free (line->z); + line->points = rng->Points; + line->x = malloc (sizeof (double) * line->points); + line->y = malloc (sizeof (double) * line->points); + line->z = malloc (sizeof (double) * line->points); + for (i = 0; i < line->points; i++) + { + /* setting the exterior ring points */ + gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); + *(line->x + i) = x; + *(line->y + i) = y; + *(line->z + i) = z; + } + for (i2 = 0; i2 < pg->NumInteriors; i2++) + { + /* saving the Holes */ + rng = pg->Interiors + i2; + hole = alloc_dxf_hole (rng->Points); + insert_dxf_hole (line, hole); + for (i = 0; i < hole->points; i++) + { + /* setting the interior ring points */ + gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); + *(hole->x + i) = x; + *(hole->y + i) = y; + *(hole->z + i) = z; + } + } + } + gaiaFreeGeomColl (result); +/* forcing the closure flag */ + line->is_closed = 1; +} + +static void +insert_dxf_hatch (gaiaDxfParserPtr dxf, const char *layer_name, + gaiaDxfHatchPtr hatch) +{ +/* inserting a HATCH object into the appropriate Layer */ + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, layer_name) == 0) + { + /* found the matching Layer */ + if (lyr->first_hatch == NULL) + lyr->first_hatch = hatch; + if (lyr->last_hatch != NULL) + lyr->last_hatch->next = hatch; + lyr->last_hatch = hatch; + return; + } + lyr = lyr->next; + } + destroy_dxf_hatch (hatch); +} + +static void +insert_dxf_block_hatch (gaiaDxfParserPtr dxf, gaiaDxfHatchPtr hatch) +{ +/* inserting a HATCH object into the current Block */ + if (dxf->curr_block.first_hatch == NULL) + dxf->curr_block.first_hatch = hatch; + if (dxf->curr_block.last_hatch != NULL) + dxf->curr_block.last_hatch->next = hatch; + dxf->curr_block.last_hatch = hatch; +} + +static gaiaDxfExtraAttrPtr +alloc_dxf_extra () +{ +/* allocating and initializing a DXF Extra Attribute object */ + gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); + ext->key = NULL; + ext->value = NULL; + ext->next = NULL; + return ext; +} + +static gaiaDxfExtraAttrPtr +clone_dxf_extra (gaiaDxfExtraAttrPtr org) +{ +/* cloning a DXF Extra Attribute object */ + int len; + gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); + len = strlen (org->key); + ext->key = malloc (len + 1); + strcpy (ext->key, org->key); + len = strlen (org->value); + ext->value = malloc (len + 1); + strcpy (ext->value, org->value); + ext->next = NULL; + return ext; +} + +static void +destroy_dxf_extra (gaiaDxfExtraAttrPtr ext) +{ +/* memory cleanup - destroying a DXF Extra Attribute object */ + if (ext == NULL) + return; + if (ext->key != NULL) + free (ext->key); + if (ext->value != NULL) + free (ext->value); + free (ext); +} + +static gaiaDxfTextPtr +alloc_dxf_text (const char *label, double x, double y, double z, double angle) +{ +/* allocating and initializing a DXF Text object */ + int len; + gaiaDxfTextPtr txt = malloc (sizeof (gaiaDxfText)); + len = strlen (label); + txt->label = malloc (len + 1); + strcpy (txt->label, label); + txt->x = x; + txt->y = y; + txt->z = z; + txt->angle = angle; + txt->first = NULL; + txt->last = NULL; + txt->next = NULL; + return txt; +} + +static void +destroy_dxf_text (gaiaDxfTextPtr txt) +{ +/* memory cleanup - destroying a DXF Text object */ + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + if (txt == NULL) + return; + if (txt->label != NULL) + free (txt->label); + ext = txt->first; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + free (txt); +} + +static int +is_3d_text (gaiaDxfTextPtr txt) +{ +/* testing if it's really a 3D Text */ + if (txt->z == 0.0) + return 0; + return 1; +} + +static void +insert_dxf_text (gaiaDxfParserPtr dxf, const char *layer_name, + gaiaDxfTextPtr txt) +{ +/* inserting a TEXT object into the appropriate Layer */ + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, layer_name) == 0) + { + /* found the matching Layer */ + if (lyr->first_text == NULL) + lyr->first_text = txt; + if (lyr->last_text != NULL) + lyr->last_text->next = txt; + lyr->last_text = txt; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_text (txt)) + lyr->is3Dtext = 1; + } + txt->first = dxf->first_ext; + txt->last = dxf->last_ext; + dxf->first_ext = NULL; + dxf->last_ext = NULL; + if (txt->first != NULL) + lyr->hasExtraText = 1; + return; + } + lyr = lyr->next; + } + destroy_dxf_text (txt); +} + +static void +insert_dxf_block_text (gaiaDxfParserPtr dxf, gaiaDxfTextPtr txt) +{ +/* inserting a TEXT object into the current Block */ + if (dxf->curr_block.first_text == NULL) + dxf->curr_block.first_text = txt; + if (dxf->curr_block.last_text != NULL) + dxf->curr_block.last_text->next = txt; + dxf->curr_block.last_text = txt; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_text (txt)) + dxf->curr_block.is3Dtext = 1; + } +} + +static gaiaDxfInsertPtr +alloc_dxf_insert (const char *block_id, double x, double y, double z, + double scale_x, double scale_y, double scale_z, double angle) +{ +/* allocating and initializing a DXF Insertt object */ + int len; + gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); + len = strlen (block_id); + ins->block_id = malloc (len + 1); + strcpy (ins->block_id, block_id); + ins->x = x; + ins->y = y; + ins->z = z; + ins->scale_x = scale_x; + ins->scale_y = scale_y; + ins->scale_z = scale_z; + ins->angle = angle; + ins->hasText = 0; + ins->hasPoint = 0; + ins->hasLine = 0; + ins->hasPolyg = 0; + ins->hasHatch = 0; + ins->is3Dtext = 0; + ins->is3Dpoint = 0; + ins->is3Dline = 0; + ins->is3Dpolyg = 0; + ins->first = NULL; + ins->last = NULL; + ins->next = NULL; + return ins; +} + +static gaiaDxfInsertPtr +clone_dxf_insert (gaiaDxfInsertPtr org) +{ +/* cloning a DXF Insertt object */ + gaiaDxfExtraAttrPtr ext_org; + gaiaDxfExtraAttrPtr ext; + int len; + gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); + len = strlen (org->block_id); + ins->block_id = malloc (len + 1); + strcpy (ins->block_id, org->block_id); + ins->x = org->x; + ins->y = org->y; + ins->z = org->z; + ins->scale_x = org->scale_x; + ins->scale_y = org->scale_y; + ins->scale_z = org->scale_z; + ins->angle = org->angle; + ins->hasText = org->hasText; + ins->hasPoint = org->hasPoint; + ins->hasLine = org->hasLine; + ins->hasPolyg = org->hasPolyg; + ins->hasHatch = org->hasHatch; + ins->is3Dtext = org->is3Dtext; + ins->is3Dpoint = org->is3Dpoint; + ins->is3Dline = org->is3Dline; + ins->is3Dpolyg = org->is3Dpolyg; + ins->first = NULL; + ins->last = NULL; + ext_org = org->first; + while (ext_org != NULL) + { + ext = clone_dxf_extra (ext_org); + if (ins->first == NULL) + ins->first = ext; + if (ins->last != NULL) + ins->last->next = ext; + ins->last = ext; + ext_org = ext_org->next; + } + ins->next = NULL; + return ins; +} + +static void +destroy_dxf_insert (gaiaDxfInsertPtr ins) +{ +/* memory cleanup - destroying a DXF Insert object */ + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + if (ins == NULL) + return; + if (ins->block_id != NULL) + free (ins->block_id); + ext = ins->first; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + free (ins); +} + +static void +insert_dxf_insert (gaiaDxfParserPtr dxf, const char *layer_name, + gaiaDxfInsertPtr ins) +{ +/* inserting an INSERT object into the appropriate Layer */ + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, layer_name) == 0) + { + /* found the matching Layer */ + ins->first = dxf->first_ext; + ins->last = dxf->last_ext; + dxf->first_ext = NULL; + dxf->last_ext = NULL; + if (ins->hasText) + { + /* indirect Text reference */ + gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); + if (lyr->first_ins_text == NULL) + lyr->first_ins_text = ins2; + if (lyr->last_ins_text != NULL) + lyr->last_ins_text->next = ins2; + lyr->last_ins_text = ins2; + if (ins2->is3Dtext) + lyr->is3DinsText = 1; + if (ins2->first != NULL) + lyr->hasExtraInsText = 1; + } + if (ins->hasPoint) + { + /* indirect Point reference */ + gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); + if (lyr->first_ins_point == NULL) + lyr->first_ins_point = ins2; + if (lyr->last_ins_point != NULL) + lyr->last_ins_point->next = ins2; + lyr->last_ins_point = ins2; + if (ins2->is3Dpoint) + lyr->is3DinsPoint = 1; + if (ins2->first != NULL) + lyr->hasExtraInsPoint = 1; + } + if (ins->hasLine) + { + /* indirect Polyline (Linestring) reference */ + gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); + if (lyr->first_ins_line == NULL) + lyr->first_ins_line = ins2; + if (lyr->last_ins_line != NULL) + lyr->last_ins_line->next = ins2; + lyr->last_ins_line = ins2; + if (ins2->is3Dline) + lyr->is3DinsLine = 1; + if (ins2->first != NULL) + lyr->hasExtraInsLine = 1; + } + if (ins->hasPolyg) + { + /* indirect Polyline (Polygon) reference */ + gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); + if (lyr->first_ins_polyg == NULL) + lyr->first_ins_polyg = ins2; + if (lyr->last_ins_polyg != NULL) + lyr->last_ins_polyg->next = ins2; + lyr->last_ins_polyg = ins2; + if (ins2->is3Dpolyg) + lyr->is3DinsPolyg = 1; + if (ins2->first != NULL) + lyr->hasExtraInsPolyg = 1; + } + destroy_dxf_insert (ins); + return; + } + lyr = lyr->next; + } + destroy_dxf_insert (ins); +} + +static gaiaDxfPointPtr +alloc_dxf_point (double x, double y, double z) +{ +/* allocating and initializing a DXF Point object */ + gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); + pt->x = x; + pt->y = y; + pt->z = z; + pt->next = NULL; + pt->first = NULL; + pt->last = NULL; + return pt; +} + +static void +destroy_dxf_point (gaiaDxfPointPtr pt) +{ +/* memory cleanup - destroying a DXF Point object */ + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + if (pt == NULL) + return; + ext = pt->first; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + free (pt); +} + +static int +is_3d_point (gaiaDxfPointPtr pt) +{ +/* testing if it's really a 3D Point */ + if (pt->z == 0.0) + return 0; + return 1; +} + +static void +insert_dxf_point (gaiaDxfParserPtr dxf, const char *layer_name, + gaiaDxfPointPtr pt) +{ +/* inserting a POINT object into the appropriate Layer */ + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, layer_name) == 0) + { + /* found the matching Layer */ + if (lyr->first_point == NULL) + lyr->first_point = pt; + if (lyr->last_point != NULL) + lyr->last_point->next = pt; + lyr->last_point = pt; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_point (pt)) + lyr->is3Dpoint = 1; + } + pt->first = dxf->first_ext; + pt->last = dxf->last_ext; + dxf->first_ext = NULL; + dxf->last_ext = NULL; + if (pt->first != NULL) + lyr->hasExtraPoint = 1; + return; + } + lyr = lyr->next; + } + destroy_dxf_point (pt); +} + +static void +insert_dxf_block_point (gaiaDxfParserPtr dxf, gaiaDxfPointPtr pt) +{ +/* inserting a POINT object into the current Block */ + if (dxf->curr_block.first_point == NULL) + dxf->curr_block.first_point = pt; + if (dxf->curr_block.last_point != NULL) + dxf->curr_block.last_point->next = pt; + dxf->curr_block.last_point = pt; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_point (pt)) + dxf->curr_block.is3Dpoint = 1; + } +} + +static gaiaDxfPolylinePtr +alloc_dxf_polyline (int is_closed, int points) +{ +/* allocating and initializing a DXF Polyline object */ + int i; + gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); + ln->is_closed = is_closed; + ln->points = points; + ln->x = malloc (sizeof (double) * points); + ln->y = malloc (sizeof (double) * points); + ln->z = malloc (sizeof (double) * points); + for (i = 0; i < points; i++) + { + *(ln->x + i) = 0.0; + *(ln->y + i) = 0.0; + *(ln->z + i) = 0.0; + } + ln->first_hole = NULL; + ln->last_hole = NULL; + ln->first = NULL; + ln->last = NULL; + ln->next = NULL; + return ln; +} + +static gaiaDxfPolylinePtr +alloc_dxf_line (double x0, double y0, double z0, double x1, double y1, + double z1) +{ +/* allocating and initializing a DXF Line object */ + gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); + ln->is_closed = 0; + ln->points = 2; + ln->x = malloc (sizeof (double) * 2); + ln->y = malloc (sizeof (double) * 2); + ln->z = malloc (sizeof (double) * 2); + *(ln->x + 0) = x0; + *(ln->y + 0) = y0; + *(ln->z + 0) = z0; + *(ln->x + 1) = x1; + *(ln->y + 1) = y1; + *(ln->z + 1) = z1; + ln->first_hole = NULL; + ln->last_hole = NULL; + ln->first = NULL; + ln->last = NULL; + ln->next = NULL; + return ln; +} + +static void +destroy_dxf_polyline (gaiaDxfPolylinePtr ln) +{ +/* memory cleanup - destroying a DXF Polyline object */ + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + gaiaDxfHolePtr hole; + gaiaDxfHolePtr n_hole; + if (ln == NULL) + return; + if (ln->x != NULL) + free (ln->x); + if (ln->y != NULL) + free (ln->y); + if (ln->z != NULL) + free (ln->z); + ext = ln->first; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + hole = ln->first_hole; + while (hole != NULL) + { + n_hole = hole->next; + destroy_dxf_hole (hole); + hole = n_hole; + } + free (ln); +} + +static int +is_3d_line (gaiaDxfPolylinePtr ln) +{ +/* testing if it's really a 3D Polyline */ + gaiaDxfHolePtr hole; + int i; + for (i = 0; i < ln->points; i++) + { + if (*(ln->z + i) != 0.0) + return 1; + } + hole = ln->first_hole; + while (hole != NULL) + { + for (i = 0; i < hole->points; i++) + { + if (*(hole->z + i) != 0.0) + return 1; + } + } + return 0; +} + +static dxfRingsCollectionPtr +alloc_dxf_rings () +{ +/* allocating an empty Rings Collection */ + dxfRingsCollectionPtr coll = malloc (sizeof (dxfRingsCollection)); + coll->first = NULL; + coll->last = NULL; + return coll; +} + +static void +destroy_dxf_rings (dxfRingsCollectionPtr coll) +{ +/* memory cleanup - destroying a Rings Collection */ + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr n_ln; + if (coll == NULL) + return; + ln = coll->first; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + free (coll); +} + +static void +insert_dxf_ring (dxfRingsCollectionPtr coll, gaiaDxfPolylinePtr line, int start, + int end) +{ +/* inserting a Ring into the collection */ + int i; + int i2; + int points = end - start + 1; + gaiaDxfPolylinePtr out = alloc_dxf_polyline (1, points); + for (i2 = 0, i = start; i <= end; i++, i2++) + { + *(out->x + i2) = *(line->x + i); + *(out->y + i2) = *(line->y + i); + *(out->z + i2) = *(line->z + i); + } + if (coll->first == NULL) + coll->first = out; + if (coll->last != NULL) + coll->last->next = out; + coll->last = out; +} + +static void +unlinked_rings (const void *p_cache, gaiaDxfPolylinePtr line) +{ +/* attempt to identify unlinked Polygon rings */ + int invalid; + int start; + int count; + double x; + double y; + double z; + int i; + int i2; + gaiaDxfHolePtr hole; + dxfRingsCollectionPtr coll; + gaiaDxfPolylinePtr ring; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr result; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + int pgs; + int ok; + + if (line == NULL) + return; + if (line->points <= 0) + return; + if (line->is_closed == 0) + return; + + if (!force_closure (line)) + return; + + coll = alloc_dxf_rings (); + start = 0; + while (start < line->points - 1) + { + /* looping on candidate rings */ + x = *(line->x + start); + y = *(line->y + start); + z = *(line->z + start); + invalid = 1; + for (i = start + 1; i < line->points; i++) + { + if (*(line->x + i) == x && *(line->y + i) == y + && *(line->z + i) == z) + { + insert_dxf_ring (coll, line, start, i); + start = i + 1; + invalid = 0; + break; + } + } + if (invalid) + break; + } + + count = 0; + ring = coll->first; + while (ring != NULL) + { + count++; + ring = ring->next; + } + if (count < 2) + invalid = 1; + if (invalid) + { + /* no unlinked rings were found - quitting */ + destroy_dxf_rings (coll); + return; + } + +/* building a candidate geometry (multilinestring) */ + geom = gaiaAllocGeomCollXYZ (); + ring = coll->first; + while (ring != NULL) + { + /* inserting a ring into the collection */ + gaiaLinestringPtr ln = + gaiaAddLinestringToGeomColl (geom, ring->points); + for (i = 0; i < ring->points; i++) + { + gaiaSetPointXYZ (ln->Coords, i, *(ring->x + i), *(ring->y + i), + *(ring->z + i)); + } + ring = ring->next; + } +/* freeing the rings list */ + destroy_dxf_rings (coll); + +/* attempting to reassemble a polygon */ + if (p_cache != NULL) + result = gaiaPolygonize_r (p_cache, geom, 0); + else + result = gaiaPolygonize (geom, 0); + gaiaFreeGeomColl (geom); + if (result == NULL) + return; + +/* checking the returned polygon for validity */ + pgs = 0; + ok = 1; + pg = result->FirstPolygon; + while (pg != NULL) + { + pgs++; + if (pg->NumInteriors == 0) + ok = 0; + pg = pg->Next; + } + if (ok == 1 && pgs == 1) + { + /* found a valid Polygon with internal holes(s) */ + pg = result->FirstPolygon; + rng = pg->Exterior; + /* rebuilding the exterior ring */ + free (line->x); + free (line->y); + free (line->z); + line->points = rng->Points; + line->x = malloc (sizeof (double) * line->points); + line->y = malloc (sizeof (double) * line->points); + line->z = malloc (sizeof (double) * line->points); + for (i = 0; i < line->points; i++) + { + /* setting the exterior ring points */ + gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); + *(line->x + i) = x; + *(line->y + i) = y; + *(line->z + i) = z; + } + for (i2 = 0; i2 < pg->NumInteriors; i2++) + { + /* saving the Holes */ + rng = pg->Interiors + i2; + hole = alloc_dxf_hole (rng->Points); + insert_dxf_hole (line, hole); + for (i = 0; i < hole->points; i++) + { + /* setting the interior ring points */ + gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); + *(hole->x + i) = x; + *(hole->y + i) = y; + *(hole->z + i) = z; + } + } + } + gaiaFreeGeomColl (result); +/* forcing the closure flag */ + line->is_closed = 1; +} + +static void +insert_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf, + const char *layer_name, gaiaDxfPolylinePtr ln) +{ +/* inserting a POLYLINE object into the appropriate Layer */ + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, layer_name) == 0) + { + /* found the matching Layer */ + if (dxf->linked_rings) + linked_rings (p_cache, ln); + if (dxf->unlinked_rings) + unlinked_rings (p_cache, ln); + if (ln->is_closed) + { + /* it's a Ring */ + if (lyr->first_polyg == NULL) + lyr->first_polyg = ln; + if (lyr->last_polyg != NULL) + lyr->last_polyg->next = ln; + lyr->last_polyg = ln; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_line (ln)) + lyr->is3Dpolyg = 1; + } + } + else + { + /* it's a Linestring */ + if (lyr->first_line == NULL) + lyr->first_line = ln; + if (lyr->last_line != NULL) + lyr->last_line->next = ln; + lyr->last_line = ln; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_line (ln)) + lyr->is3Dline = 1; + } + } + ln->first = dxf->first_ext; + ln->last = dxf->last_ext; + dxf->first_ext = NULL; + dxf->last_ext = NULL; + if (ln->is_closed && ln->first != NULL) + lyr->hasExtraPolyg = 1; + if (ln->is_closed == 0 && ln->first != NULL) + lyr->hasExtraLine = 1; + return; + } + lyr = lyr->next; + } + destroy_dxf_polyline (ln); +} + +static void +insert_dxf_block_polyline (const void *p_cache, gaiaDxfParserPtr dxf, + gaiaDxfPolylinePtr ln) +{ +/* inserting a POLYLINE object into the current Block */ + if (dxf->linked_rings) + linked_rings (p_cache, ln); + if (dxf->unlinked_rings) + unlinked_rings (p_cache, ln); + if (ln->is_closed) + { + /* it's a Ring */ + if (dxf->curr_block.first_polyg == NULL) + dxf->curr_block.first_polyg = ln; + if (dxf->curr_block.last_polyg != NULL) + dxf->curr_block.last_polyg->next = ln; + dxf->curr_block.last_polyg = ln; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_line (ln)) + dxf->curr_block.is3Dpolyg = 1; + } + } + else + { + /* it's a Linestring */ + if (dxf->curr_block.first_line == NULL) + dxf->curr_block.first_line = ln; + if (dxf->curr_block.last_line != NULL) + dxf->curr_block.last_line->next = ln; + dxf->curr_block.last_line = ln; + if (dxf->force_dims == GAIA_DXF_FORCE_2D + || dxf->force_dims == GAIA_DXF_FORCE_3D) + ; + else + { + if (is_3d_line (ln)) + dxf->curr_block.is3Dline = 1; + } + } + ln->first = dxf->first_ext; + ln->last = dxf->last_ext; + dxf->first_ext = NULL; + dxf->last_ext = NULL; +} + +static gaiaDxfBlockPtr +alloc_dxf_block (const char *layer, const char *id) +{ +/* allocating and initializing a DXF Block object */ + int len; + gaiaDxfBlockPtr blk = malloc (sizeof (gaiaDxfBlock)); + blk->hasInsert = 0; + len = strlen (layer); + blk->layer_name = malloc (len + 1); + strcpy (blk->layer_name, layer); + len = strlen (id); + blk->block_id = malloc (len + 1); + strcpy (blk->block_id, id); + blk->first_text = NULL; + blk->last_text = NULL; + blk->first_point = NULL; + blk->last_point = NULL; + blk->first_line = NULL; + blk->last_line = NULL; + blk->first_polyg = NULL; + blk->last_polyg = NULL; + blk->first_hatch = NULL; + blk->last_hatch = NULL; + blk->is3Dtext = 0; + blk->is3Dpoint = 0; + blk->is3Dline = 0; + blk->is3Dpolyg = 0; + blk->next = NULL; + return blk; +} + +static void +destroy_dxf_block (gaiaDxfBlockPtr blk) +{ +/* memory cleanup - destroying a DXF Block object */ + gaiaDxfTextPtr txt; + gaiaDxfTextPtr n_txt; + gaiaDxfPointPtr pt; + gaiaDxfPointPtr n_pt; + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr n_ln; + gaiaDxfHatchPtr htc; + gaiaDxfHatchPtr n_htc; + if (blk == NULL) + return; + if (blk->layer_name != NULL) + free (blk->layer_name); + if (blk->block_id != NULL) + free (blk->block_id); + txt = blk->first_text; + while (txt != NULL) + { + n_txt = txt->next; + destroy_dxf_text (txt); + txt = n_txt; + } + pt = blk->first_point; + while (pt != NULL) + { + n_pt = pt->next; + destroy_dxf_point (pt); + pt = n_pt; + } + ln = blk->first_line; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + ln = blk->first_polyg; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + htc = blk->first_hatch; + while (htc != NULL) + { + n_htc = htc->next; + destroy_dxf_hatch (htc); + htc = n_htc; + } + free (blk); +} + +static void +insert_dxf_block (gaiaDxfParserPtr dxf) +{ +/* inserting a DXF Block object */ + gaiaDxfBlockPtr blk; + int ok = 0; + if (dxf->curr_block.layer_name == NULL) + return; + if (dxf->curr_block.block_id == NULL) + return; + if (dxf->curr_block.first_text != NULL) + ok++; + if (dxf->curr_block.first_point != NULL) + ok++; + if (dxf->curr_block.first_line != NULL) + ok++; + if (dxf->curr_block.first_polyg != NULL) + ok++; + if (dxf->curr_block.first_hatch != NULL) + ok++; + if (ok == 0) + return; + blk = + alloc_dxf_block (dxf->curr_block.layer_name, dxf->curr_block.block_id); + blk->first_text = dxf->curr_block.first_text; + blk->last_text = dxf->curr_block.last_text; + dxf->curr_block.first_text = NULL; + dxf->curr_block.last_text = NULL; + blk->first_point = dxf->curr_block.first_point; + blk->last_point = dxf->curr_block.last_point; + dxf->curr_block.first_point = NULL; + dxf->curr_block.last_point = NULL; + blk->first_line = dxf->curr_block.first_line; + blk->last_line = dxf->curr_block.last_line; + dxf->curr_block.first_line = NULL; + dxf->curr_block.last_line = NULL; + blk->first_polyg = dxf->curr_block.first_polyg; + blk->last_polyg = dxf->curr_block.last_polyg; + dxf->curr_block.first_polyg = NULL; + dxf->curr_block.last_polyg = NULL; + blk->first_hatch = dxf->curr_block.first_hatch; + blk->last_hatch = dxf->curr_block.last_hatch; + dxf->curr_block.first_hatch = NULL; + dxf->curr_block.last_hatch = NULL; + + if (dxf->first_block == NULL) + dxf->first_block = blk; + if (dxf->last_block != NULL) + dxf->last_block->next = blk; + dxf->last_block = blk; +} + +static gaiaDxfLayerPtr +alloc_dxf_layer (const char *name, int force_dims) +{ +/* allocating and initializing a DXF Layer object */ + int len; + gaiaDxfLayerPtr lyr = malloc (sizeof (gaiaDxfLayer)); + len = strlen (name); + lyr->layer_name = malloc (len + 1); + strcpy (lyr->layer_name, name); + lyr->first_text = NULL; + lyr->last_text = NULL; + lyr->first_point = NULL; + lyr->last_point = NULL; + lyr->first_line = NULL; + lyr->last_line = NULL; + lyr->first_polyg = NULL; + lyr->last_polyg = NULL; + lyr->first_hatch = NULL; + lyr->last_hatch = NULL; + lyr->first_ins_text = NULL; + lyr->last_ins_text = NULL; + lyr->first_ins_point = NULL; + lyr->last_ins_point = NULL; + lyr->first_ins_line = NULL; + lyr->last_ins_line = NULL; + lyr->first_ins_polyg = NULL; + lyr->last_ins_polyg = NULL; + lyr->first_ins_hatch = NULL; + lyr->last_ins_hatch = NULL; + if (force_dims == GAIA_DXF_FORCE_3D) + { + lyr->is3Dtext = 1; + lyr->is3Dpoint = 1; + lyr->is3Dline = 1; + lyr->is3Dpolyg = 1; + lyr->is3DinsText = 1; + lyr->is3DinsPoint = 1; + lyr->is3DinsLine = 1; + lyr->is3DinsPolyg = 1; + } + else + { + lyr->is3Dtext = 0; + lyr->is3Dpoint = 0; + lyr->is3Dline = 0; + lyr->is3Dpolyg = 0; + lyr->is3DinsText = 0; + lyr->is3DinsPoint = 0; + lyr->is3DinsLine = 0; + lyr->is3DinsPolyg = 0; + } + lyr->hasExtraText = 0; + lyr->hasExtraPoint = 0; + lyr->hasExtraLine = 0; + lyr->hasExtraPolyg = 0; + lyr->hasExtraInsText = 0; + lyr->hasExtraInsPoint = 0; + lyr->hasExtraInsLine = 0; + lyr->hasExtraInsPolyg = 0; + lyr->next = NULL; + return lyr; +} + +static void +destroy_dxf_layer (gaiaDxfLayerPtr lyr) +{ +/* memory cleanup - destroying a DXF Layer object */ + gaiaDxfTextPtr txt; + gaiaDxfTextPtr n_txt; + gaiaDxfPointPtr pt; + gaiaDxfPointPtr n_pt; + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr n_ln; + gaiaDxfHatchPtr ht; + gaiaDxfHatchPtr n_ht; + gaiaDxfInsertPtr ins; + gaiaDxfInsertPtr n_ins; + if (lyr == NULL) + return; + txt = lyr->first_text; + while (txt != NULL) + { + n_txt = txt->next; + destroy_dxf_text (txt); + txt = n_txt; + } + pt = lyr->first_point; + while (pt != NULL) + { + n_pt = pt->next; + destroy_dxf_point (pt); + pt = n_pt; + } + ln = lyr->first_line; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + ln = lyr->first_polyg; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + ht = lyr->first_hatch; + while (ht != NULL) + { + n_ht = ht->next; + destroy_dxf_hatch (ht); + ht = n_ht; + } + ins = lyr->first_ins_text; + while (ins != NULL) + { + n_ins = ins->next; + destroy_dxf_insert (ins); + ins = n_ins; + } + ins = lyr->first_ins_point; + while (ins != NULL) + { + n_ins = ins->next; + destroy_dxf_insert (ins); + ins = n_ins; + } + ins = lyr->first_ins_line; + while (ins != NULL) + { + n_ins = ins->next; + destroy_dxf_insert (ins); + ins = n_ins; + } + ins = lyr->first_ins_polyg; + while (ins != NULL) + { + n_ins = ins->next; + destroy_dxf_insert (ins); + ins = n_ins; + } + ins = lyr->first_ins_hatch; + while (ins != NULL) + { + n_ins = ins->next; + destroy_dxf_insert (ins); + ins = n_ins; + } + if (lyr->layer_name != NULL) + free (lyr->layer_name); + free (lyr); +} + +static void +insert_dxf_layer (gaiaDxfParserPtr dxf, gaiaDxfLayerPtr lyr) +{ +/* inserting a Layer object into the DXF struct */ + if (dxf->first_layer == NULL) + dxf->first_layer = lyr; + if (dxf->last_layer != NULL) + dxf->last_layer->next = lyr; + dxf->last_layer = lyr; +} + +static void +force_missing_layer (gaiaDxfParserPtr dxf) +{ +/* forcing undeclared layers [missing TABLES section] */ + int ok_layer = 1; + if (dxf->undeclared_layers == 0) + return; + if (dxf->selected_layer != NULL) + { + ok_layer = 0; + if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) + ok_layer = 1; + } + if (ok_layer) + { + int already_defined = 0; + gaiaDxfLayerPtr lyr = dxf->first_layer; + while (lyr != NULL) + { + if (strcmp (lyr->layer_name, dxf->curr_layer_name) == 0) + { + already_defined = 1; + break; + } + lyr = lyr->next; + } + if (already_defined) + return; + lyr = alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); + insert_dxf_layer (dxf, lyr); + } +} + +static void +set_dxf_vertex (gaiaDxfParserPtr dxf) +{ +/* saving the current Polyline Vertex */ + gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); + pt->x = dxf->curr_point.x; + pt->y = dxf->curr_point.y; + pt->z = dxf->curr_point.z; + pt->first = NULL; + pt->last = NULL; + pt->next = NULL; + if (dxf->first_pt == NULL) + dxf->first_pt = pt; + if (dxf->last_pt != NULL) + dxf->last_pt->next = pt; + dxf->last_pt = pt; + dxf->curr_point.x = 0.0; + dxf->curr_point.y = 0.0; + dxf->curr_point.z = 0.0; +} + +static void +save_current_polyline (const void *p_cache, gaiaDxfParserPtr dxf) +{ +/* saving the current Polyline */ + int points = 0; + gaiaDxfPolylinePtr ln; + gaiaDxfPointPtr n_pt; + gaiaDxfPointPtr pt; + if (dxf->curr_layer_name == NULL) + goto clear; + pt = dxf->first_pt; + while (pt != NULL) + { + /* counting how many vertices are into the polyline */ + points++; + pt = pt->next; + } + ln = alloc_dxf_polyline (dxf->is_closed_polyline, points); + points = 0; + pt = dxf->first_pt; + while (pt != NULL) + { + /* setting vertices into the polyline */ + *(ln->x + points) = pt->x; + *(ln->y + points) = pt->y; + *(ln->z + points) = pt->z; + points++; + pt = pt->next; + } + if (dxf->is_block) + insert_dxf_block_polyline (p_cache, dxf, ln); + else + { + force_missing_layer (dxf); + insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); + } + /* resetting the current polyline */ + clear: + pt = dxf->first_pt; + while (pt != NULL) + { + n_pt = pt->next; + destroy_dxf_point (pt); + pt = n_pt; + } + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + dxf->first_pt = NULL; + dxf->last_pt = NULL; +} + +static void +reset_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf) +{ +/* resetting the current DXF polyline */ + if (dxf->is_polyline) + { + if (dxf->first_pt != NULL) + save_current_polyline (p_cache, dxf); + dxf->is_polyline = 0; + } +} + +static void +reset_dxf_block (gaiaDxfParserPtr dxf) +{ +/* memory cleanup - resetting the current DXF Block */ + gaiaDxfTextPtr txt; + gaiaDxfTextPtr n_txt; + gaiaDxfPointPtr pt; + gaiaDxfPointPtr n_pt; + gaiaDxfPolylinePtr ln; + gaiaDxfPolylinePtr n_ln; + gaiaDxfHatchPtr htc; + gaiaDxfHatchPtr n_htc; + if (dxf->curr_block.layer_name != NULL) + free (dxf->curr_block.layer_name); + if (dxf->curr_block.block_id != NULL) + free (dxf->curr_block.block_id); + txt = dxf->curr_block.first_text; + while (txt != NULL) + { + n_txt = txt->next; + destroy_dxf_text (txt); + txt = n_txt; + } + pt = dxf->curr_block.first_point; + while (pt != NULL) + { + n_pt = pt->next; + destroy_dxf_point (pt); + pt = n_pt; + } + ln = dxf->curr_block.first_line; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + ln = dxf->curr_block.first_polyg; + while (ln != NULL) + { + n_ln = ln->next; + destroy_dxf_polyline (ln); + ln = n_ln; + } + htc = dxf->curr_block.first_hatch; + while (htc != NULL) + { + n_htc = htc->next; + destroy_dxf_hatch (htc); + htc = n_htc; + } + dxf->curr_block.layer_name = NULL; + dxf->curr_block.block_id = NULL; + dxf->curr_block.first_text = NULL; + dxf->curr_block.last_text = NULL; + dxf->curr_block.first_point = NULL; + dxf->curr_block.last_point = NULL; + dxf->curr_block.first_line = NULL; + dxf->curr_block.last_line = NULL; + dxf->curr_block.first_polyg = NULL; + dxf->curr_block.last_polyg = NULL; + dxf->curr_block.first_hatch = NULL; + dxf->curr_block.last_hatch = NULL; + dxf->curr_block.is3Dtext = 0; + dxf->curr_block.is3Dpoint = 0; + dxf->curr_block.is3Dline = 0; + dxf->curr_block.is3Dpolyg = 0; +} + +static gaiaDxfBlockPtr +find_dxf_block (gaiaDxfParserPtr dxf, const char *layer_name, + const char *block_id) +{ +/* attempting to find a Block object by its Id */ + gaiaDxfBlockPtr blk = dxf->first_block; + while (blk != NULL) + { + if (layer_name != NULL && block_id != NULL) + { + if (strcmp (blk->layer_name, layer_name) == 0 + && strcmp (blk->block_id, block_id) == 0) + { + /* ok, matching item found */ + return blk; + } + } + blk = blk->next; + } + return NULL; +} + +static void +save_current_circle (const void *p_cache, gaiaDxfParserPtr dxf) +{ +/* saving the current Circle */ + int iv; + double x; + double y; + gaiaGeomCollPtr geom = NULL; + gaiaLinestringPtr circle; + gaiaDxfPolylinePtr ln; + if (dxf->curr_layer_name == NULL) + return; + geom = + gaiaMakeCircle (dxf->curr_circle.cx, dxf->curr_circle.cy, + dxf->curr_circle.radius, 2.5); + if (geom == NULL) + goto stop; + circle = geom->FirstLinestring; + if (circle == NULL) + goto stop; + ln = alloc_dxf_polyline (0, circle->Points); + for (iv = 0; iv < circle->Points; iv++) + { + /* setting vertices into the polyline */ + gaiaGetPoint (circle->Coords, iv, &x, &y); + *(ln->x + iv) = x; + *(ln->y + iv) = y; + *(ln->z + iv) = dxf->curr_circle.cz; + } + if (dxf->is_block) + insert_dxf_block_polyline (p_cache, dxf, ln); + else + { + force_missing_layer (dxf); + insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); + } + stop: + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + if (geom != NULL) + gaiaFreeGeomColl (geom); +} + +static void +save_current_arc (const void *p_cache, gaiaDxfParserPtr dxf) +{ +/* saving the current Arc */ + int iv; + double x; + double y; + gaiaGeomCollPtr geom; + gaiaLinestringPtr arc; + gaiaDxfPolylinePtr ln; + if (dxf->curr_layer_name == NULL) + return; + geom = + gaiaMakeArc (dxf->curr_arc.cx, dxf->curr_arc.cy, dxf->curr_arc.radius, + dxf->curr_arc.start, dxf->curr_arc.stop, 2.5); + if (geom == NULL) + goto stop; + arc = geom->FirstLinestring; + if (arc == NULL) + goto stop; + ln = alloc_dxf_polyline (0, arc->Points); + for (iv = 0; iv < arc->Points; iv++) + { + /* setting vertices into the polyline */ + gaiaGetPoint (arc->Coords, iv, &x, &y); + *(ln->x + iv) = x; + *(ln->y + iv) = y; + *(ln->z + iv) = dxf->curr_arc.cz; + } + if (dxf->is_block) + insert_dxf_block_polyline (p_cache, dxf, ln); + else + { + force_missing_layer (dxf); + insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); + } + stop: + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + if (geom != NULL) + gaiaFreeGeomColl (geom); +} + +static void +reset_dxf_entity (const void *p_cache, gaiaDxfParserPtr dxf) +{ +/* resetting the current DXF entity */ + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + if (dxf->is_vertex) + { + /* saving the current Vertex */ + set_dxf_vertex (dxf); + dxf->is_vertex = 0; + return; + } + if (dxf->is_polyline) + return; + if (dxf->is_layer) + { + /* saving the current Table aka Layer */ + int ok_layer = 1; + if (dxf->selected_layer != NULL) + { + ok_layer = 0; + if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) + ok_layer = 1; + } + if (ok_layer) + { + gaiaDxfLayerPtr lyr = + alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); + insert_dxf_layer (dxf, lyr); + dxf->undeclared_layers = 0; + } + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + dxf->is_layer = 0; + } + if (dxf->is_insert) + { + gaiaDxfBlockPtr blk = find_dxf_block (dxf, dxf->curr_layer_name, + dxf->curr_insert.block_id); + if (blk != NULL) + { + /* saving the current Insert */ + gaiaDxfInsertPtr ins = + alloc_dxf_insert (dxf->curr_insert.block_id, + dxf->curr_insert.x, + dxf->curr_insert.y, dxf->curr_insert.z, + dxf->curr_insert.scale_x, + dxf->curr_insert.scale_y, + dxf->curr_insert.scale_z, + dxf->curr_insert.angle); + blk->hasInsert = 1; + if (blk->first_text != NULL) + { + ins->hasText = 1; + if (blk->is3Dtext) + ins->is3Dtext = 1; + } + if (blk->first_point != NULL) + { + ins->hasPoint = 1; + if (blk->is3Dpoint) + ins->is3Dpoint = 1; + } + if (blk->first_line != NULL) + { + ins->hasLine = 1; + if (blk->is3Dline) + ins->is3Dline = 1; + } + if (blk->first_polyg != NULL) + { + ins->hasPolyg = 1; + if (blk->is3Dpolyg) + ins->is3Dpolyg = 1; + } + if (blk->first_hatch != NULL) + ins->hasHatch = 1; + force_missing_layer (dxf); + insert_dxf_insert (dxf, dxf->curr_layer_name, ins); + } + /* resetting curr_insert */ + dxf->curr_insert.x = 0.0; + dxf->curr_insert.y = 0.0; + dxf->curr_insert.z = 0.0; + dxf->curr_insert.scale_x = 0.0; + dxf->curr_insert.scale_y = 0.0; + dxf->curr_insert.scale_z = 0.0; + dxf->curr_insert.angle = 0.0; + dxf->curr_insert.is3Dtext = 0; + dxf->curr_insert.is3Dpoint = 0; + dxf->curr_insert.is3Dline = 0; + dxf->curr_insert.is3Dpolyg = 0; + if (dxf->curr_insert.block_id != NULL) + free (dxf->curr_insert.block_id); + dxf->curr_insert.block_id = NULL; + dxf->is_insert = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_line) + { + /* saving the current Line */ + gaiaDxfPolylinePtr ln = + alloc_dxf_line (dxf->curr_point.x, dxf->curr_point.y, + dxf->curr_point.z, + dxf->curr_end_point.x, dxf->curr_end_point.y, + dxf->curr_end_point.z); + if (dxf->is_block) + insert_dxf_block_polyline (p_cache, dxf, ln); + else + { + force_missing_layer (dxf); + insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); + } + /* resetting curr_line */ + dxf->curr_point.x = 0.0; + dxf->curr_point.y = 0.0; + dxf->curr_point.z = 0.0; + dxf->curr_end_point.x = 0.0; + dxf->curr_end_point.y = 0.0; + dxf->curr_end_point.z = 0.0; + dxf->is_line = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_hatch) + { + /* saving the current hatch */ + if (dxf->curr_hatch != NULL) + { + if (is_valid_dxf_hatch (dxf->curr_hatch)) + { + create_dxf_hatch_lines (p_cache, dxf->curr_hatch, + dxf->srid); + if (dxf->is_block) + insert_dxf_block_hatch (dxf, dxf->curr_hatch); + else + { + force_missing_layer (dxf); + insert_dxf_hatch (dxf, dxf->curr_layer_name, + dxf->curr_hatch); + } + dxf->curr_hatch = NULL; + } + } + dxf->is_hatch = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_text) + { + /* saving the current Text */ + gaiaDxfTextPtr txt = + alloc_dxf_text (dxf->curr_text.label, dxf->curr_text.x, + dxf->curr_text.y, dxf->curr_text.z, + dxf->curr_text.angle); + if (dxf->is_block) + insert_dxf_block_text (dxf, txt); + else + { + force_missing_layer (dxf); + insert_dxf_text (dxf, dxf->curr_layer_name, txt); + } + /* resetting curr_text */ + dxf->curr_text.x = 0.0; + dxf->curr_text.y = 0.0; + dxf->curr_text.z = 0.0; + dxf->curr_text.angle = 0.0; + if (dxf->curr_text.label != NULL) + free (dxf->curr_text.label); + dxf->curr_text.label = NULL; + dxf->is_text = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_point) + { + /* saving the current Point */ + gaiaDxfPointPtr pt = + alloc_dxf_point (dxf->curr_point.x, dxf->curr_point.y, + dxf->curr_point.z); + if (dxf->is_block) + insert_dxf_block_point (dxf, pt); + else + { + force_missing_layer (dxf); + insert_dxf_point (dxf, dxf->curr_layer_name, pt); + } + /* resetting curr_point */ + dxf->curr_point.x = 0.0; + dxf->curr_point.y = 0.0; + dxf->curr_point.z = 0.0; + dxf->is_point = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_lwpolyline) + { + /* saving the current Polyline */ + save_current_polyline (p_cache, dxf); + dxf->is_lwpolyline = 0; + } + if (dxf->is_circle) + { + /* saving the current Circle */ + save_current_circle (p_cache, dxf); + /* resetting curr_circle */ + dxf->curr_circle.cx = 0.0; + dxf->curr_circle.cy = 0.0; + dxf->curr_circle.cz = 0.0; + dxf->curr_circle.radius = 0.0; + dxf->is_circle = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->is_arc) + { + /* saving the current Arc */ + save_current_arc (p_cache, dxf); + /* resetting curr_arc */ + dxf->curr_arc.cx = 0.0; + dxf->curr_arc.cy = 0.0; + dxf->curr_arc.cz = 0.0; + dxf->curr_arc.radius = 0.0; + dxf->curr_arc.start = 0.0; + dxf->curr_arc.stop = 0.0; + dxf->is_arc = 0; + /* resetting curr_layer */ + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + dxf->curr_layer_name = NULL; + } + if (dxf->extra_key != NULL) + free (dxf->extra_key); + if (dxf->extra_value != NULL) + free (dxf->extra_value); + ext = dxf->first_ext; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + dxf->first_ext = NULL; + dxf->last_ext = NULL; + if (dxf->curr_hatch != NULL) + destroy_dxf_hatch (dxf->curr_hatch); + dxf->curr_hatch = NULL; +} + +static void +set_dxf_layer_name (gaiaDxfParserPtr dxf, const char *name) +{ +/* saving the current Layer Name */ + int len; + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + len = strlen (name); + dxf->curr_layer_name = malloc (len + 1); + strcpy (dxf->curr_layer_name, name); +} + +static void +set_dxf_block_layer_name (gaiaDxfParserPtr dxf, const char *name) +{ +/* saving the current Block Layer Name */ + int len; + if (dxf->curr_block.layer_name != NULL) + free (dxf->curr_block.layer_name); + len = strlen (name); + dxf->curr_block.layer_name = malloc (len + 1); + strcpy (dxf->curr_block.layer_name, name); +} + +static void +set_dxf_block_id (gaiaDxfParserPtr dxf, const char *id) +{ +/* saving the current Block Id */ + int len; + if (dxf->curr_block.block_id != NULL) + free (dxf->curr_block.block_id); + len = strlen (id); + dxf->curr_block.block_id = malloc (len + 1); + strcpy (dxf->curr_block.block_id, id); +} + +static void +set_dxf_insert_block_id (gaiaDxfParserPtr dxf, const char *id) +{ +/* saving the current Block Id */ + int len; + if (dxf->curr_insert.block_id != NULL) + free (dxf->curr_insert.block_id); + len = strlen (id); + dxf->curr_insert.block_id = malloc (len + 1); + strcpy (dxf->curr_insert.block_id, id); +} + +static void +set_dxf_label (gaiaDxfParserPtr dxf, const char *label) +{ +/* saving the current Text Label */ + int len; + if (dxf->curr_text.label != NULL) + free (dxf->curr_text.label); + len = strlen (label); + dxf->curr_text.label = malloc (len + 1); + strcpy (dxf->curr_text.label, label); +} + +static void +set_dxf_extra_attr (gaiaDxfParserPtr dxf) +{ +/* saving the current Extra Attribute */ + gaiaDxfExtraAttrPtr ext = alloc_dxf_extra (); + ext->key = dxf->extra_key; + ext->value = dxf->extra_value; + if (dxf->first_ext == NULL) + dxf->first_ext = ext; + if (dxf->last_ext != NULL) + dxf->last_ext->next = ext; + dxf->last_ext = ext; + dxf->extra_key = NULL; + dxf->extra_value = NULL; +} + +static void +set_dxf_extra_key (gaiaDxfParserPtr dxf, const char *key) +{ +/* saving the current Extra Attribute Key */ + int len; + if (dxf->extra_key != NULL) + free (dxf->extra_key); + len = strlen (key); + dxf->extra_key = malloc (len + 1); + strcpy (dxf->extra_key, key); + if (dxf->extra_key != NULL && dxf->extra_value != NULL) + set_dxf_extra_attr (dxf); +} + +static void +set_dxf_extra_value (gaiaDxfParserPtr dxf, const char *value) +{ +/* saving the current Extra Attribute Value */ + int len; + if (dxf->extra_value != NULL) + free (dxf->extra_value); + len = strlen (value); + dxf->extra_value = malloc (len + 1); + strcpy (dxf->extra_value, value); + if (dxf->extra_key != NULL && dxf->extra_value != NULL) + set_dxf_extra_attr (dxf); +} + +static void +create_dxf_curr_hatch (gaiaDxfParserPtr dxf) +{ +/* creating the current Hatch being parsed */ + if (dxf->curr_hatch != NULL) + destroy_dxf_hatch (dxf->curr_hatch); + dxf->curr_hatch = alloc_dxf_hatch (); +} + +static void +start_dxf_hatch_boundary (gaiaDxfParserPtr dxf) +{ +/* starting a new Hatch Boundary Path */ + if (dxf->curr_hatch != NULL) + { + gaiaDxfBoundaryPathPtr path = alloc_dxf_boundary_path (); + insert_dxf_boundary_path (dxf->curr_hatch, path); + dxf->is_hatch_boundary = 1; + } +} + +static void +insert_dxf_hatch_boundary_segm (gaiaDxfParserPtr dxf) +{ + if (dxf->curr_hatch != NULL) + { + gaiaDxfBoundaryPathPtr path = dxf->curr_hatch->last; + if (path != NULL) + { + gaiaDxfHatchSegmPtr segm = + alloc_dxf_hatch_segm (dxf->curr_point.x, dxf->curr_point.y, + dxf->curr_end_point.x, + dxf->curr_end_point.y); + insert_dxf_boundary_segm (path, segm); + } + } + dxf->curr_point.x = 0.0; + dxf->curr_point.y = 0.0; + dxf->curr_point.z = 0.0; + dxf->curr_end_point.x = 0.0; + dxf->curr_end_point.y = 0.0; + dxf->curr_end_point.z = 0.0; +} + +static void +set_dxf_hatch_spacing (gaiaDxfParserPtr dxf, double spacing) +{ +/* saving the current Hatch spacing */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->spacing = spacing; +} + +static void +set_dxf_hatch_angle (gaiaDxfParserPtr dxf, double angle) +{ +/* saving the current Hatch angle */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->angle = angle; +} + +static void +set_dxf_hatch_base_x (gaiaDxfParserPtr dxf, double x) +{ +/* saving the current Hatch base X */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->base_x = x; +} + +static void +set_dxf_hatch_base_y (gaiaDxfParserPtr dxf, double y) +{ +/* saving the current Hatch base Y */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->base_y = y; +} + +static void +set_dxf_hatch_offset_x (gaiaDxfParserPtr dxf, double x) +{ +/* saving the current Hatch offset X */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->offset_x = x; +} + +static void +set_dxf_hatch_offset_y (gaiaDxfParserPtr dxf, double y) +{ +/* saving the current Hatch offset Y */ + if (dxf->curr_hatch != NULL) + dxf->curr_hatch->offset_y = y; +} + +static int +op_code_line (const char *line) +{ +/* checking for a valid op-code */ + int numdigit = 0; + int invalid = 0; + const char *p = line; + while (*p != '\0') + { + /* skipping leading white-spaces */ + if (*p == ' ' || *p == '\t') + { + p++; + continue; + } + else + break; + } + while (*p != '\0') + { + /* evaluating each character */ + if (*p >= '0' && *p <= '9') + { + numdigit++; + p++; + continue; + } + else + { + invalid = 1; + break; + } + } + if (numdigit > 0 && invalid == 0) + return 1; + return 0; +} + +static int +parse_dxf_line (const void *p_cache, gaiaDxfParserPtr dxf, const char *line) +{ +/* parsing a DXF line */ + dxf->line_no += 1; + + if (dxf->tables || dxf->entities || dxf->blocks) + { + /* handling OP-CODE lines */ + if (dxf->op_code_line) + { + if (!op_code_line (line)) + { + /* unexpected value */ + spatialite_e + ("ERROR on line %d: expected on OP-CODE to be found\n", + dxf->line_no); + return 0; + } + dxf->op_code = atoi (line); + if (dxf->op_code == 0) + reset_dxf_entity (p_cache, dxf); + dxf->op_code_line = 0; + return 1; + } + dxf->op_code_line = 1; + } + if (dxf->eof) + { + /* reading past the end */ + spatialite_e ("ERROR on line %d: attempting to read past EOF\n", + dxf->line_no); + return 0; + } + if (strcmp (line, "SECTION") == 0) + { + /* start SECTION tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->section) + { + spatialite_e ("ERROR on line %d: unexpected SECTION\n", + dxf->line_no); + dxf->error = 1; + return 0; + } + dxf->section = 1; + return 1; + } + if (strcmp (line, "ENDSEC") == 0) + { + /* end SECTION tag */ + reset_dxf_polyline (p_cache, dxf); + if (!dxf->section) + { + spatialite_e ("ERROR on line %d: unexpected ENDSEC\n", + dxf->line_no); + dxf->error = 1; + return 0; + } + dxf->section = 0; + dxf->tables = 0; + dxf->blocks = 0; + dxf->is_block = 0; + dxf->entities = 0; + return 1; + } + if (strcmp (line, "TABLES") == 0) + { + /* start TABLES tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->section) + { + dxf->tables = 1; + dxf->op_code_line = 1; + return 1; + } + } + if (strcmp (line, "BLOCKS") == 0) + { + /* start BLOCKS tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->section) + { + dxf->blocks = 1; + dxf->op_code_line = 1; + return 1; + } + } + if (strcmp (line, "BLOCK") == 0) + { + /* start BLOCK tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->blocks) + { + dxf->is_block = 1; + dxf->op_code_line = 1; + return 1; + } + } + if (strcmp (line, "ENDBLK") == 0) + { + /* end BLOCK tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->is_block) + { + insert_dxf_block (dxf); + dxf->is_block = 0; + dxf->op_code_line = 1; + return 1; + } + } + if (strcmp (line, "ENTITIES") == 0) + { + /* start ENTITIES tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->section) + { + dxf->entities = 1; + dxf->op_code_line = 1; + return 1; + } + } + if (strcmp (line, "LAYER") == 0) + { + /* start LAYER tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->tables && dxf->op_code == 0) + { + dxf->is_layer = 1; + return 1; + } + } + if (strcmp (line, "INSERT") == 0) + { + /* start INSERT tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_insert = 1; + return 1; + } + } + if (strcmp (line, "INSERT") == 0) + { + /* start INSERT tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_insert = 1; + return 1; + } + } + if (strcmp (line, "TEXT") == 0) + { + /* start TEXT tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_text = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_text = 1; + return 1; + } + } + if (strcmp (line, "POINT") == 0) + { + /* start POINT tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_point = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_point = 1; + return 1; + } + } + if (strcmp (line, "POLYLINE") == 0) + { + /* start POLYLINE tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_polyline = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_polyline = 1; + return 1; + } + } + if (strcmp (line, "LWPOLYLINE") == 0) + { + /* start LWPOLYLINE tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_lwpolyline = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_lwpolyline = 1; + return 1; + } + } + if (strcmp (line, "LINE") == 0) + { + /* start LINE tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_line = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_line = 1; + return 1; + } + } + if (strcmp (line, "CIRCLE") == 0) + { + /* start CIRCLE tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_circle = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_circle = 1; + return 1; + } + } + if (strcmp (line, "ARC") == 0) + { + /* start ARC tag */ + reset_dxf_polyline (p_cache, dxf); + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_arc = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_arc = 1; + return 1; + } + } + if (strcmp (line, "VERTEX") == 0) + { + /* start VERTEX tag */ + if (dxf->is_polyline && dxf->op_code == 0) + { + dxf->is_vertex = 1; + return 1; + } + } + if (strcmp (line, "HATCH") == 0) + { + /* start HATCH tag */ + if (dxf->entities && dxf->op_code == 0) + { + dxf->is_hatch = 1; + return 1; + } + if (dxf->is_block && dxf->op_code == 0) + { + dxf->is_hatch = 1; + return 1; + } + } + if (strcmp (line, "EOF") == 0) + { + /* end of file marker tag */ + reset_dxf_polyline (p_cache, dxf); + dxf->eof = 1; + return 1; + } + if (dxf->is_layer) + { + /* parsing Table attributes */ + switch (dxf->op_code) + { + case 2: + set_dxf_layer_name (dxf, line); + break; + }; + } + if (dxf->is_block) + { + /* parsing Block attributes */ + switch (dxf->op_code) + { + case 2: + set_dxf_block_id (dxf, line); + break; + case 8: + set_dxf_block_layer_name (dxf, line); + break; + }; + } + if (dxf->is_line) + { + /* parsing Line attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_point.x = atof (line); + break; + case 20: + dxf->curr_point.y = atof (line); + break; + case 30: + dxf->curr_point.z = atof (line); + break; + case 11: + dxf->curr_end_point.x = atof (line); + break; + case 21: + dxf->curr_end_point.y = atof (line); + break; + case 31: + dxf->curr_end_point.z = atof (line); + break; + }; + } + if (dxf->is_circle) + { + /* parsing Circle attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_circle.cx = atof (line); + break; + case 20: + dxf->curr_circle.cy = atof (line); + break; + case 30: + dxf->curr_circle.cz = atof (line); + break; + case 40: + dxf->curr_circle.radius = atof (line); + break; + }; + } + if (dxf->is_arc) + { + /* parsing Arc attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_arc.cx = atof (line); + break; + case 20: + dxf->curr_arc.cy = atof (line); + break; + case 30: + dxf->curr_arc.cz = atof (line); + break; + case 40: + dxf->curr_arc.radius = atof (line); + break; + case 50: + dxf->curr_arc.start = atof (line); + break; + case 51: + dxf->curr_arc.stop = atof (line); + break; + }; + } + if (dxf->is_insert) + { + /* parsing Insert attributes */ + switch (dxf->op_code) + { + case 2: + set_dxf_insert_block_id (dxf, line); + break; + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_insert.x = atof (line); + break; + case 20: + dxf->curr_insert.y = atof (line); + break; + case 30: + dxf->curr_insert.z = atof (line); + break; + case 41: + dxf->curr_insert.scale_x = atof (line); + break; + case 42: + dxf->curr_insert.scale_y = atof (line); + break; + case 43: + dxf->curr_insert.scale_z = atof (line); + break; + case 50: + dxf->curr_insert.angle = atof (line); + break; + case 1000: + set_dxf_extra_value (dxf, line); + break; + case 1001: + set_dxf_extra_key (dxf, line); + break; + }; + } + if (dxf->is_text) + { + /* parsing Text attributes */ + switch (dxf->op_code) + { + case 1: + set_dxf_label (dxf, line); + break; + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_text.x = atof (line); + break; + case 20: + dxf->curr_text.y = atof (line); + break; + case 30: + dxf->curr_text.z = atof (line); + break; + case 50: + dxf->curr_text.angle = atof (line); + break; + case 1000: + set_dxf_extra_value (dxf, line); + break; + case 1001: + set_dxf_extra_key (dxf, line); + break; + }; + } + if (dxf->is_point) + { + /* parsing Point attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_point.x = atof (line); + break; + case 20: + dxf->curr_point.y = atof (line); + break; + case 30: + dxf->curr_point.z = atof (line); + break; + case 1000: + set_dxf_extra_value (dxf, line); + break; + case 1001: + set_dxf_extra_key (dxf, line); + break; + }; + } + if (dxf->is_lwpolyline) + { + /* parsing LwPolyline attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 10: + dxf->curr_point.x = atof (line); + break; + case 20: + dxf->curr_point.y = atof (line); + set_dxf_vertex (dxf); + break; + case 70: + if ((atoi (line) & 0x01) == 0x01) + dxf->is_closed_polyline = 1; + else + dxf->is_closed_polyline = 0; + break; + case 1000: + set_dxf_extra_value (dxf, line); + break; + case 1001: + set_dxf_extra_key (dxf, line); + break; + }; + } + if (dxf->is_polyline && dxf->is_vertex != 1) + { + /* parsing Polyline attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + break; + case 70: + if ((atoi (line) & 0x01) == 0x01) + dxf->is_closed_polyline = 1; + else + dxf->is_closed_polyline = 0; + break; + case 1000: + set_dxf_extra_value (dxf, line); + break; + case 1001: + set_dxf_extra_key (dxf, line); + break; + }; + } + if (dxf->is_vertex) + { + /* parsing Vertex attributes */ + switch (dxf->op_code) + { + case 10: + dxf->curr_point.x = atof (line); + break; + case 20: + dxf->curr_point.y = atof (line); + break; + case 30: + dxf->curr_point.z = atof (line); + break; + }; + } + if (dxf->is_hatch) + { + /* parsing Hatch attributes */ + switch (dxf->op_code) + { + case 8: + set_dxf_layer_name (dxf, line); + create_dxf_curr_hatch (dxf); + break; + case 10: + if (dxf->is_hatch_boundary) + dxf->curr_point.x = atof (line); + break; + case 20: + if (dxf->is_hatch_boundary) + dxf->curr_point.y = atof (line); + break; + case 11: + if (dxf->is_hatch_boundary) + dxf->curr_end_point.x = atof (line); + break; + case 21: + dxf->curr_end_point.y = atof (line); + insert_dxf_hatch_boundary_segm (dxf); + break; + case 41: + set_dxf_hatch_spacing (dxf, atof (line)); + break; + case 43: + set_dxf_hatch_base_x (dxf, atof (line)); + break; + case 44: + set_dxf_hatch_base_y (dxf, atof (line)); + break; + case 45: + set_dxf_hatch_offset_x (dxf, atof (line)); + break; + case 46: + set_dxf_hatch_offset_y (dxf, atof (line)); + break; + case 53: + set_dxf_hatch_angle (dxf, atof (line)); + break; + case 92: + start_dxf_hatch_boundary (dxf); + break; + case 97: + dxf->is_hatch_boundary = 0; + break; + }; + } + return 1; +} + +GAIAGEO_DECLARE gaiaDxfParserPtr +gaiaCreateDxfParser (int srid, + int force_dims, + const char *prefix, + const char *selected_layer, int special_rings) +{ +/* allocating and initializing a DXF parser object */ + gaiaDxfParserPtr dxf = malloc (sizeof (gaiaDxfParser)); + dxf->line_no = 0; + dxf->op_code_line = 0; + dxf->op_code = -1; + dxf->section = 0; + dxf->tables = 0; + dxf->blocks = 0; + dxf->entities = 0; + dxf->is_layer = 0; + dxf->is_block = 0; + dxf->is_text = 0; + dxf->is_point = 0; + dxf->is_polyline = 0; + dxf->is_lwpolyline = 0; + dxf->is_line = 0; + dxf->is_circle = 0; + dxf->is_arc = 0; + dxf->is_vertex = 0; + dxf->is_hatch = 0; + dxf->is_hatch_boundary = 0; + dxf->is_insert = 0; + dxf->eof = 0; + dxf->error = 0; + dxf->curr_layer_name = NULL; + dxf->curr_insert.x = 0.0; + dxf->curr_insert.y = 0.0; + dxf->curr_insert.z = 0.0; + dxf->curr_insert.scale_x = 0.0; + dxf->curr_insert.scale_y = 0.0; + dxf->curr_insert.scale_z = 0.0; + dxf->curr_insert.angle = 0.0; + dxf->curr_insert.block_id = NULL; + dxf->curr_insert.is3Dtext = 0; + dxf->curr_insert.is3Dpoint = 0; + dxf->curr_insert.is3Dline = 0; + dxf->curr_insert.is3Dpolyg = 0; + dxf->curr_text.x = 0.0; + dxf->curr_text.y = 0.0; + dxf->curr_text.z = 0.0; + dxf->curr_text.angle = 0.0; + dxf->curr_text.label = NULL; + dxf->curr_point.x = 0.0; + dxf->curr_point.y = 0.0; + dxf->curr_point.z = 0.0; + dxf->curr_block.layer_name = NULL; + dxf->curr_block.block_id = NULL; + dxf->curr_block.first_text = NULL; + dxf->curr_block.last_text = NULL; + dxf->curr_block.first_point = NULL; + dxf->curr_block.last_point = NULL; + dxf->curr_block.first_line = NULL; + dxf->curr_block.last_line = NULL; + dxf->curr_block.first_polyg = NULL; + dxf->curr_block.last_polyg = NULL; + dxf->curr_block.first_hatch = NULL; + dxf->curr_block.last_hatch = NULL; + dxf->curr_block.is3Dtext = 0; + dxf->curr_block.is3Dpoint = 0; + dxf->curr_block.is3Dline = 0; + dxf->curr_block.is3Dpolyg = 0; + dxf->curr_end_point.x = 0.0; + dxf->curr_end_point.y = 0.0; + dxf->curr_end_point.z = 0.0; + dxf->curr_circle.cx = 0.0; + dxf->curr_circle.cy = 0.0; + dxf->curr_circle.cz = 0.0; + dxf->curr_circle.radius = 0.0; + dxf->curr_arc.cx = 0.0; + dxf->curr_arc.cy = 0.0; + dxf->curr_arc.cz = 0.0; + dxf->curr_arc.radius = 0.0; + dxf->curr_arc.start = 0.0; + dxf->curr_arc.stop = 0.0; + dxf->is_closed_polyline = 0; + dxf->extra_key = NULL; + dxf->extra_value = NULL; + dxf->first_pt = NULL; + dxf->last_pt = NULL; + dxf->first_ext = NULL; + dxf->last_ext = NULL; + dxf->filename = NULL; + dxf->first_layer = NULL; + dxf->last_layer = NULL; + dxf->first_block = NULL; + dxf->last_block = NULL; + dxf->curr_hatch = NULL; + dxf->force_dims = force_dims; + if (srid <= 0) + srid = -1; + dxf->srid = srid; + dxf->prefix = prefix; + dxf->selected_layer = selected_layer; + dxf->linked_rings = 0; + dxf->unlinked_rings = 0; + if (special_rings == GAIA_DXF_RING_LINKED) + dxf->linked_rings = 1; + if (special_rings == GAIA_DXF_RING_UNLINKED) + dxf->unlinked_rings = 1; + dxf->undeclared_layers = 1; + return dxf; +} + +GAIAGEO_DECLARE void +gaiaDestroyDxfParser (gaiaDxfParserPtr dxf) +{ +/* memory cleanup: destroying a DXF parser object */ + gaiaDxfLayerPtr lyr; + gaiaDxfLayerPtr n_lyr; + gaiaDxfPointPtr pt; + gaiaDxfPointPtr n_pt; + gaiaDxfExtraAttrPtr ext; + gaiaDxfExtraAttrPtr n_ext; + gaiaDxfBlockPtr blk; + gaiaDxfBlockPtr n_blk; + if (dxf == NULL) + return; + if (dxf->curr_text.label != NULL) + free (dxf->curr_text.label); + if (dxf->curr_layer_name != NULL) + free (dxf->curr_layer_name); + if (dxf->filename != NULL) + free (dxf->filename); + lyr = dxf->first_layer; + while (lyr != NULL) + { + n_lyr = lyr->next; + destroy_dxf_layer (lyr); + lyr = n_lyr; + } + pt = dxf->first_pt; + while (pt != NULL) + { + n_pt = pt->next; + destroy_dxf_point (pt); + pt = n_pt; + } + if (dxf->extra_key != NULL) + free (dxf->extra_key); + if (dxf->extra_value != NULL) + free (dxf->extra_value); + ext = dxf->first_ext; + while (ext != NULL) + { + n_ext = ext->next; + destroy_dxf_extra (ext); + ext = n_ext; + } + blk = dxf->first_block; + while (blk != NULL) + { + n_blk = blk->next; + destroy_dxf_block (blk); + blk = n_blk; + } + if (dxf->curr_hatch != NULL) + destroy_dxf_hatch (dxf->curr_hatch); + reset_dxf_block (dxf); + free (dxf); +} + +static void +save_dxf_filename (gaiaDxfParserPtr dxf, const char *path) +{ +/* saving the input/origin filename */ + int len = strlen (path); + const char *start = path; + const char *stop = path + len - 1; + const char *p = path; + if (dxf->filename != NULL) + free (dxf->filename); + dxf->filename = NULL; + if (path == NULL) + return; + + while (*p != '\0') + { + if (*p == '/' || *p == '\\') + start = p + 1; + p++; + } + p = stop; + while (p > path) + { + if (*p == '.') + { + stop = p - 1; + break; + } + p--; + } + if (stop > start) + { + len = stop - start + 1; + dxf->filename = malloc (len + 1); + memset (dxf->filename, '\0', len + 1); + memcpy (dxf->filename, start, len); + } + else + { + dxf->filename = malloc (len + 1); + strcpy (dxf->filename, path); + } +} + +static int +gaiaParseDxfFileCommon (const void *p_cache, gaiaDxfParserPtr dxf, + const char *path) +{ +/* parsing the whole DXF file */ + int c; + char line[4192]; + char *p = line; + FILE *fl; + + if (dxf == NULL) + return 0; + save_dxf_filename (dxf, path); + if (dxf->first_layer != NULL || dxf->first_block != NULL) + return 0; + +/* attempting to open the input file */ + fl = fopen (path, "rb"); + if (fl == NULL) + return 0; + +/* scanning the DXF file */ + while ((c = getc (fl)) != EOF) + { + if (c == '\r') + { + /* ignoring any CR */ + continue; + } + if (c == '\n') + { + /* end line found */ + *p = '\0'; + if (!parse_dxf_line (p_cache, dxf, line)) + goto stop; + if (dxf->eof) + { + /* EOF marker found - quitting */ + break; + } + p = line; + continue; + } + *p++ = c; + /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ + if (p - line == sizeof (line) - 1) + goto stop; + /* END - Even Rouault 2013-06-02 */ + } + + fclose (fl); + return 1; + stop: + fclose (fl); + return 0; +} + +GAIAGEO_DECLARE int +gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path) +{ + return gaiaParseDxfFileCommon (NULL, dxf, path); +} + +GAIAGEO_DECLARE int +gaiaParseDxfFile_r (const void *p_cache, gaiaDxfParserPtr dxf, const char *path) +{ + return gaiaParseDxfFileCommon (p_cache, dxf, path); +} + +#endif /* GEOS enabled */ diff --git a/src/spatialite/src/dxf/dxf_private.h b/src/spatialite/src/dxf/dxf_private.h new file mode 100644 index 0000000..6b38cfb --- /dev/null +++ b/src/spatialite/src/dxf/dxf_private.h @@ -0,0 +1,196 @@ +/* + dxf_private.h -- DXF Import Private API + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +/** + \file spatialite_private.h + + SpatiaLite private header file + */ +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#ifdef _WIN32 +#ifdef DLL_EXPORT +#define DXF_PRIVATE +#else +#define DXF_PRIVATE +#endif +#else +#define DXF_PRIVATE __attribute__ ((visibility("hidden"))) +#endif +#endif + +#ifndef _DXF_PRIVATE_H +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#define _DXF_PRIVATE_H +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + + typedef struct dxf_out_layer + { + double minx; + double miny; + double maxx; + double maxy; + char *layer_name; + struct dxf_out_layer *next; + } gaiaDxfExportLayer; + typedef gaiaDxfExportLayer *gaiaDxfExportLayerPtr; + + typedef struct dxf_out + { + double minx; + double miny; + double maxx; + double maxy; + gaiaDxfExportLayer *first; + gaiaDxfExportLayer *last; + } gaiaDxfExport; + typedef gaiaDxfExport *gaiaDxfExportPtr; + + DXF_PRIVATE int + create_text_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_point_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_line_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_polyg_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_hatch_boundary_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + DXF_PRIVATE int + create_hatch_pattern_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_insert_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_extra_stmt (sqlite3 * handle, const char *extra_name, + sqlite3_stmt ** xstmt); + DXF_PRIVATE char *create_extra_attr_table_name (const char *name); + + DXF_PRIVATE int + check_text_table (sqlite3 * handle, const char *name, int srid, + int is3D); + + DXF_PRIVATE int + check_point_table (sqlite3 * handle, const char *name, int srid, + int is3D); + + DXF_PRIVATE int + check_line_table (sqlite3 * handle, const char *name, int srid, + int is3D); + + DXF_PRIVATE int + check_polyg_table (sqlite3 * handle, const char *name, int srid, + int is3D); + + DXF_PRIVATE int + check_hatch_tables (sqlite3 * handle, const char *name, int srid); + + DXF_PRIVATE int check_insert_table (sqlite3 * handle, const char *name); + + DXF_PRIVATE int check_extra_attr_table (sqlite3 * handle, const char *name); + + DXF_PRIVATE int + create_block_text_stmt (sqlite3 * handle, const char *name, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); + + DXF_PRIVATE int + import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); + + DXF_PRIVATE int + create_instext_table (sqlite3 * handle, const char *name, + const char *block, int is3d, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_inspoint_table (sqlite3 * handle, const char *name, + const char *block, int is3d, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_insline_table (sqlite3 * handle, const char *name, + const char *block, int is3d, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_inspolyg_table (sqlite3 * handle, const char *name, + const char *block, int is3d, + sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_inshatch_table (sqlite3 * handle, const char *name, + const char *block, sqlite3_stmt ** xstmt); + + DXF_PRIVATE int + create_insert_extra_attr_table (sqlite3 * handle, const char *name, + char *extra_name, + sqlite3_stmt ** xstmt_ext); + + DXF_PRIVATE int check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d); + + DXF_PRIVATE int check_unclosed_hole (gaiaDxfHolePtr hole, int is3d); + +#ifdef __cplusplus +} +#endif + +#endif /* _DXF_PRIVATE_H */ diff --git a/src/spatialite/src/dxf/dxf_writer.c b/src/spatialite/src/dxf/dxf_writer.c new file mode 100644 index 0000000..413c3f3 --- /dev/null +++ b/src/spatialite/src/dxf/dxf_writer.c @@ -0,0 +1,717 @@ +/* + + dxf_writer.c -- implements DXF support + [exporting a DXF] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#include "dxf_private.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +GAIAGEO_DECLARE int +gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE * out, int precision, int version) +{ +/* initializing a DXF Output object */ + if (dxf == NULL) + return 0; + dxf->error = 0; + dxf->precision = precision; + if (precision < 0) + dxf->precision = 0; + if (precision > 10) + dxf->precision = 10; + if (version != GAIA_DXF_V12) + dxf->error = 1; + else + dxf->version = GAIA_DXF_V12; + if (out == NULL) + dxf->error = 1; + else + dxf->out = out; + dxf->count = 0; + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, + double maxx, double maxy, double maxz) +{ +/* printing the DXF HEADER */ + char format[128]; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + + fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nHEADER\r\n", 0, 2); + fprintf (dxf->out, "%3d\r\n$EXTMIN\r\n", 9); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, minx, 20, miny, 30, minz); + fprintf (dxf->out, "%3d\r\n$EXTMAX\r\n", 9); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, maxx, 20, maxy, 30, maxz); + fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteTables (gaiaDxfWriterPtr dxf) +{ +/* printing the DXF TABLES section header */ + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nTABLES\r\n", 0, 2); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer) +{ +/* printing a DXF TABLE/LAYER definition */ + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nTABLE\r\n%3d\r\nLAYER\r\n", 0, 2); + fprintf (dxf->out, "%3d\r\n%3d\r\n%3d\r\nLAYER\r\n%3d\r\n%s\r\n", 70, 1, 0, + 2, layer); + fprintf (dxf->out, "%3d\r\n%d\r\n%3d\r\n%d\r\n%3d\r\nCONTINUOUS\r\n", 70, + 64, 62, 7, 6); + fprintf (dxf->out, "%3d\r\nENDTAB\r\n", 0); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf) +{ +/* printing the DXF footer */ + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nEOF\r\n", 0); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf) +{ +/* printing the DXF ENTITIES section header */ + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nENTITIES\r\n", 0, 2); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf) +{ +/* printing a DXF ENDSEC */ + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, + double z) +{ +/* printing a DXF POINT */ + char format[128]; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nPOINT\r\n%3d\r\n%s\r\n", 0, 8, layer); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, x, 20, y, 30, z); + dxf->count++; + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, + double z, const char *label, double text_height, double angle) +{ +/* printing a DXF TEXT */ + char format[128]; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nTEXT\r\n%3d\r\n%s\r\n", 0, 8, layer); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, x, 20, y, 30, z); + sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%s\r\n", + dxf->precision, dxf->precision); + fprintf (dxf->out, format, 40, text_height, 50, angle, 1, label); + dxf->count++; + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer, + gaiaLinestringPtr line) +{ +/* printing a DXF POLYLINE (opened) */ + int iv; + double x; + double y; + double z; + double m; + char format[128]; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, + layer, 66, 1); + fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 0); + for (iv = 0; iv < line->Points; iv++) + { + /* exporting all vertices */ + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (line->Coords, iv, &x, &y); + } + fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, x, 20, y, 30, z); + } + fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); + dxf->count++; + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer, gaiaRingPtr ring) +{ +/* printing a DXF POLYLINE (closed) */ + int iv; + double x; + double y; + double z; + double m; + char format[128]; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, + layer, 66, 1); + fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 1); + for (iv = 0; iv < ring->Points - 1; iv++) + { + /* sandro 2013-10-19 + exporting all vertices except the last one + because accordingly to DXF specifications the + Ring closure is always implicitly assumed, so + there is no need at all to explicitly export + a last vertex identical to the first one */ + if (ring->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); + } + else if (ring->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); + } + else if (ring->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ring->Coords, iv, &x, &y); + } + fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); + sprintf (format, + "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", + dxf->precision, dxf->precision, dxf->precision); + fprintf (dxf->out, format, 10, x, 20, y, 30, z); + } + fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); + dxf->count++; + return 1; +} + +GAIAGEO_DECLARE int +gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer, + const char *label, double text_height, + double text_rotation, gaiaGeomCollPtr geom) +{ +/* exporting a whole Geometry into the DXF */ + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + int ib; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + pt = geom->FirstPoint; + while (pt != NULL) + { + if (label == NULL) + gaiaDxfWritePoint (dxf, layer, pt->X, pt->Y, pt->Z); + else + gaiaDxfWriteText (dxf, layer, pt->X, pt->Y, pt->Z, label, + text_height, text_rotation); + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln != NULL) + { + gaiaDxfWriteLine (dxf, layer, ln); + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg != NULL) + { + rng = pg->Exterior; + gaiaDxfWriteRing (dxf, layer, rng); + for (ib = 0; ib < pg->NumInteriors; ib++) + { + rng = pg->Interiors + ib; + gaiaDxfWriteRing (dxf, layer, rng); + } + pg = pg->Next; + } + return 1; +} + +static gaiaDxfExportLayerPtr +alloc_aux_layer (const char *layer, gaiaGeomCollPtr geom) +{ +/* allocating and initializing an helper Layer */ + int len; + gaiaDxfExportLayerPtr lyr = malloc (sizeof (gaiaDxfExportLayer)); + len = strlen (layer); + lyr->layer_name = malloc (len + 1); + strcpy (lyr->layer_name, layer), lyr->minx = geom->MinX; + lyr->miny = geom->MinY; + lyr->maxx = geom->MaxX; + lyr->maxy = geom->MaxY; + lyr->next = NULL; + return lyr; +} + +static void +destroy_aux_layer (gaiaDxfExportLayerPtr lyr) +{ +/* destroying a DXF Helper Layer */ + if (lyr == NULL) + return; + if (lyr->layer_name != NULL) + free (lyr->layer_name); + free (lyr); +} + +static gaiaDxfExportPtr +alloc_aux_exporter () +{ +/* allocating and initializing the helper Exporter */ + gaiaDxfExportPtr aux = malloc (sizeof (gaiaDxfExport)); + aux->first = NULL; + aux->last = NULL; + return aux; +} + +static void +destroy_aux_exporter (gaiaDxfExportPtr aux) +{ +/* memory cleanup - destroying the helper Exporter */ + gaiaDxfExportLayerPtr lyr; + gaiaDxfExportLayerPtr n_lyr; + if (aux == NULL) + return; + lyr = aux->first; + while (lyr != NULL) + { + n_lyr = lyr->next; + destroy_aux_layer (lyr); + lyr = n_lyr; + } + free (aux); +} + +static void +update_aux_exporter (gaiaDxfExportPtr aux, const char *layer, + gaiaGeomCollPtr geom) +{ +/* updating the Helper Exporter */ + gaiaDxfExportLayerPtr lyr = aux->first; + while (lyr != NULL) + { + if (strcasecmp (layer, lyr->layer_name) == 0) + { + /* updating an already defined layer */ + if (geom->MinX < lyr->minx) + lyr->minx = geom->MinX; + if (geom->MinY < lyr->miny) + lyr->miny = geom->MinY; + if (geom->MaxX > lyr->maxx) + lyr->maxx = geom->MaxX; + if (geom->MaxY > lyr->maxy) + lyr->maxy = geom->MaxY; + if (geom->MinX < aux->minx) + aux->minx = geom->MinX; + if (geom->MinY < aux->miny) + aux->miny = geom->MinY; + if (geom->MaxX > aux->maxx) + aux->maxx = geom->MaxX; + if (geom->MaxY > aux->maxy) + aux->maxy = geom->MaxY; + return; + } + lyr = lyr->next; + } +/* inserting a new Layer */ + lyr = alloc_aux_layer (layer, geom); + if (aux->first == NULL) + { + aux->first = lyr; + aux->minx = geom->MinX; + aux->miny = geom->MinY; + aux->maxx = geom->MaxX; + aux->maxy = geom->MaxY; + } + if (aux->last != NULL) + aux->last->next = lyr; + aux->last = lyr; +} + +GAIAGEO_DECLARE int +gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, + const char *sql, const char *layer_col_name, + const char *geom_col_name, const char *label_col_name, + const char *text_height_col_name, + const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter) +{ +/* exporting a complex DXF by executing an arbitrary SQL query */ + sqlite3_stmt *stmt = NULL; + int ret; + int params; + int first_row = 1; + int layer_col = -1; + int geom_col = -1; + int label_col = -1; + int text_height_col = -1; + int text_rotation_col = -1; + int i; + unsigned char *p_blob; + const unsigned char *blob; + int len; + const char *layer; + const char *label = NULL; + gaiaGeomCollPtr geom; + gaiaDxfExportPtr aux = NULL; + gaiaDxfExportLayerPtr lyr; + if (dxf == NULL) + return 0; + if (dxf->error) + return 0; + if (dxf->out == NULL) + return 0; + if (db_handle == NULL) + return 0; + if (sql == NULL) + return 0; + if (layer_col_name == NULL) + return 0; + if (geom_col_name == NULL) + return 0; + +/* attempting to create the SQL prepared statement */ + ret = sqlite3_prepare_v2 (db_handle, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("exportDXF - CREATE STATEMENT error: %s\n", + sqlite3_errmsg (db_handle)); + goto stop; + } + params = sqlite3_bind_parameter_count (stmt); + + if (params > 0 && geom_filter != NULL) + { + /* parameter binding - Spatial Filter */ + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + for (i = 1; i <= params; i++) + { + gaiaToSpatiaLiteBlobWkb (geom_filter, &p_blob, &len); + ret = sqlite3_bind_blob (stmt, i, p_blob, len, free); + if (ret != SQLITE_OK) + { + spatialite_e ("exportDXF - parameter BIND error: %s\n", + sqlite3_errmsg (db_handle)); + goto stop; + } + } + } + +/* pass #1 - sniffing the result set */ + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (first_row) + { + /* this one is the first row of the resultset */ + for (i = 0; i < sqlite3_column_count (stmt); i++) + { + /* attempting to identify the resultset columns */ + if (strcasecmp + (layer_col_name, + sqlite3_column_name (stmt, i)) == 0) + layer_col = i; + if (strcasecmp + (geom_col_name, + sqlite3_column_name (stmt, i)) == 0) + geom_col = i; + if (label_col_name != NULL) + { + if (strcasecmp + (label_col_name, + sqlite3_column_name (stmt, i)) == 0) + label_col = i; + } + if (text_height_col_name != NULL) + { + if (strcasecmp + (text_height_col_name, + sqlite3_column_name (stmt, i)) == 0) + text_height_col = i; + } + if (text_rotation_col_name != NULL) + { + if (strcasecmp + (text_rotation_col_name, + sqlite3_column_name (stmt, i)) == 0) + text_rotation_col = i; + } + } + if (layer_col < 0) + { + spatialite_e + ("exportDXF - Layer Column not found into the resultset\n"); + goto stop; + } + if (geom_col < 0) + { + spatialite_e + ("exportDXF - Geometry Column not found into the resultset\n"); + goto stop; + } + first_row = 0; + aux = alloc_aux_exporter (); + } + layer = (const char *) sqlite3_column_text (stmt, layer_col); + blob = sqlite3_column_blob (stmt, geom_col); + len = sqlite3_column_bytes (stmt, geom_col); + geom = gaiaFromSpatiaLiteBlobWkb (blob, len); + if (geom) + { + update_aux_exporter (aux, layer, geom); + gaiaFreeGeomColl (geom); + } + } + } + +/* pass #2 - exporting the DXF file */ + gaiaDxfWriteHeader (dxf, aux->minx, aux->miny, 0, aux->maxx, aux->maxy, 0); + gaiaDxfWriteTables (dxf); + lyr = aux->first; + while (lyr != NULL) + { + gaiaDxfWriteLayer (dxf, lyr->layer_name); + lyr = lyr->next; + } + gaiaDxfWriteEndSection (dxf); + gaiaDxfWriteEntities (dxf); + + sqlite3_reset (stmt); + while (1) + { + /* scrolling the result set rows */ + int ival; + double height = 10.0; + double rotation = 0.0; + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + layer = (const char *) sqlite3_column_text (stmt, layer_col); + if (label_col >= 0) + label = + (const char *) sqlite3_column_text (stmt, label_col); + if (text_height_col >= 0) + { + if (sqlite3_column_type (stmt, text_height_col) == + SQLITE_INTEGER) + { + ival = sqlite3_column_int (stmt, text_height_col); + height = ival; + } + if (sqlite3_column_type (stmt, text_height_col) == + SQLITE_FLOAT) + height = + sqlite3_column_double (stmt, text_height_col); + } + if (text_rotation_col >= 0) + { + if (sqlite3_column_type (stmt, text_rotation_col) == + SQLITE_INTEGER) + { + ival = sqlite3_column_int (stmt, text_rotation_col); + rotation = ival; + } + if (sqlite3_column_type (stmt, text_height_col) == + SQLITE_FLOAT) + rotation = + sqlite3_column_double (stmt, text_rotation_col); + } + blob = sqlite3_column_blob (stmt, geom_col); + len = sqlite3_column_bytes (stmt, geom_col); + geom = gaiaFromSpatiaLiteBlobWkb (blob, len); + if (geom) + { + gaiaDxfWriteGeometry (dxf, layer, label, height, rotation, + geom); + gaiaFreeGeomColl (geom); + } + } + } + gaiaDxfWriteEndSection (dxf); + gaiaDxfWriteFooter (dxf); + + sqlite3_finalize (stmt); + if (aux != NULL) + destroy_aux_exporter (aux); + return dxf->count; + + stop: + if (stmt != NULL) + sqlite3_finalize (stmt); + if (aux != NULL) + destroy_aux_exporter (aux); + return 0; +} diff --git a/src/spatialite/src/gaiaaux/Makefile.am b/src/spatialite/src/gaiaaux/Makefile.am index acab16b..40e44dd 100644 --- a/src/spatialite/src/gaiaaux/Makefile.am +++ b/src/spatialite/src/gaiaaux/Makefile.am @@ -1,10 +1,19 @@ -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiaaux.la +noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la -libgaiaaux_la_SOURCES = gg_sqlaux.c \ - gg_utf8.c +GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c + +libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) + +gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) + +gaiaaux_la_CPPFLAGS = @CFLAGS@ +gaiaaux_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +gaiaaux_la_CPPFLAGS += -DLOADABLE_EXTENSION +gaiaaux_la_LDFLAGS = -module +gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/gaiaaux/Makefile.in b/src/spatialite/src/gaiaaux/Makefile.in index e602992..3234ae0 100644 --- a/src/spatialite/src/gaiaaux/Makefile.in +++ b/src/spatialite/src/gaiaaux/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaaux -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -65,34 +93,85 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) +gaiaaux_la_LIBADD = +am__objects_1 = gaiaaux_la-gg_sqlaux.lo gaiaaux_la-gg_utf8.lo +am_gaiaaux_la_OBJECTS = $(am__objects_1) +gaiaaux_la_OBJECTS = $(am_gaiaaux_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +gaiaaux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(gaiaaux_la_LDFLAGS) $(LDFLAGS) -o $@ libgaiaaux_la_LIBADD = -am_libgaiaaux_la_OBJECTS = gg_sqlaux.lo gg_utf8.lo +am__objects_2 = gg_sqlaux.lo gg_utf8.lo +am_libgaiaaux_la_OBJECTS = $(am__objects_2) libgaiaaux_la_OBJECTS = $(am_libgaiaaux_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libgaiaaux_la_SOURCES) -DIST_SOURCES = $(libgaiaaux_la_SOURCES) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES) +DIST_SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -134,6 +213,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -155,6 +236,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -214,11 +298,15 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiaaux.la -libgaiaaux_la_SOURCES = gg_sqlaux.c \ - gg_utf8.c - +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la +GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c +libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) +gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) +gaiaaux_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +gaiaaux_la_LDFLAGS = -module +gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am @@ -257,14 +345,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +gaiaaux.la: $(gaiaaux_la_OBJECTS) $(gaiaaux_la_DEPENDENCIES) $(EXTRA_gaiaaux_la_DEPENDENCIES) + $(AM_V_CCLD)$(gaiaaux_la_LINK) $(gaiaaux_la_OBJECTS) $(gaiaaux_la_LIBADD) $(LIBS) + libgaiaaux.la: $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_DEPENDENCIES) $(EXTRA_libgaiaaux_la_DEPENDENCIES) - $(LINK) $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -272,29 +366,45 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaaux_la-gg_utf8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_sqlaux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_utf8.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +gaiaaux_la-gg_sqlaux.lo: gg_sqlaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_sqlaux.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo $(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_sqlaux.c' object='gaiaaux_la-gg_sqlaux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c + +gaiaaux_la-gg_utf8.lo: gg_utf8.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_utf8.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo $(DEPDIR)/gaiaaux_la-gg_utf8.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_utf8.c' object='gaiaaux_la-gg_utf8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c mostlyclean-libtool: -rm -f *.lo @@ -302,26 +412,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -333,15 +432,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -350,6 +445,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -492,18 +602,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiaaux/gg_sqlaux.c b/src/spatialite/src/gaiaaux/gg_sqlaux.c index 3154a82..7906f33 100644 --- a/src/spatialite/src/gaiaaux/gg_sqlaux.c +++ b/src/spatialite/src/gaiaaux/gg_sqlaux.c @@ -2,7 +2,7 @@ gg_sqlaux.c -- SQL ancillary functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -47,6 +47,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include #include +#include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" @@ -63,6 +64,13 @@ the terms of any one of the MPL, the GPL or the LGPL. #define strcasecmp _stricmp #endif /* not WIN32 */ +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + GAIAAUX_DECLARE int gaiaIllegalSqlName (const char *name) { @@ -775,12 +783,7 @@ gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, /* CURRENT db-schema (>= 4.0.0) required */ return; } -#if defined(_WIN32) || defined(__MINGW32__) - /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", sqllog_pk); -#else - sprintf (dummy, "%lld", sqllog_pk); -#endif + sprintf (dummy, FRMT64, sqllog_pk); if (success) { sql_statement = sqlite3_mprintf ("UPDATE sql_statements_log SET " @@ -800,3 +803,398 @@ gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, sqlite3_free (sql_statement); } +static void +consume_blank (const char *p_start, const char **p_end) +{ +/* consuming blanks */ + const char *p = p_start; + while (1) + { + if (*p == ' ' || *p == '\t') + { + p++; + continue; + } + else + { + *p_end = p; + return; + } + } +} + +static int +check_deg_delimiter (const char *p_start, const char **p_end) +{ +/* testing a "degrees" delimiter/qualifier */ + unsigned char ctrl1; + unsigned char ctrl2; + if (*p_start == 'd') + { + *p_end = p_start + 1; + return 1; + } + ctrl1 = *(p_start + 0); + ctrl2 = *(p_start + 1); + if (ctrl1 == 0xc2 && ctrl2 == 0xb0) + { + *p_end = p_start + 2; + return 1; + } + return 0; +} + +static int +check_min_delimiter (const char *p_start, const char **p_end) +{ +/* testing a "minutes" delimiter/qualifier */ + unsigned char ctrl1; + unsigned char ctrl2; + unsigned char ctrl3; + if (*p_start == '\'') + { + *p_end = p_start + 1; + return 1; + } + ctrl1 = *(p_start + 0); + ctrl2 = *(p_start + 1); + ctrl3 = *(p_start + 2); + if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb2) + { + *p_end = p_start + 3; + return 1; + } + return 0; +} + +static int +check_sec_delimiter (const char *p_start, const char **p_end) +{ +/* testing a "seconds" delimiter/qualifier */ + unsigned char ctrl1; + unsigned char ctrl2; + unsigned char ctrl3; + if (*p_start == '"') + { + *p_end = p_start + 1; + return 1; + } + ctrl1 = *(p_start + 0); + ctrl2 = *(p_start + 1); + ctrl3 = *(p_start + 2); + if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb3) + { + *p_end = p_start + 3; + return 1; + } + return 0; +} + +static void +consume_int (const char *p_start, const char **p_end, int *value) +{ +/* consuming an integer value */ + char *buf; + int len = 0; + const char *p = p_start; + while (1) + { + if (*p >= '0' && *p <= '9') + { + len++; + p++; + continue; + } + else + { + *p_end = p; + break; + } + } + if (len == 0) + { + *value = 181; + return; + } + buf = malloc (len + 1); + memcpy (buf, p_start, len); + *(buf + len) = '\0'; + *value = atoi (buf); + free (buf); +} + +static void +consume_float (const char *p_start, const char **p_end, double *value) +{ +/* consuming a double value */ + char *buf; + int pt = 0; + int len = 0; + const char *p = p_start; + while (1) + { + if (*p >= '0' && *p <= '9') + { + len++; + p++; + continue; + } + else if (*p == '.' || *p == ',') + { + len++; + pt++; + p++; + continue; + } + else + { + *p_end = p; + break; + } + } + if (len == 0 || pt > 1) + { + *value = 61.0; + return; + } + buf = malloc (len + 1); + memcpy (buf, p_start, len); + *(buf + len) = '\0'; + *value = atof (buf); + free (buf); +} + +GAIAAUX_DECLARE int +gaiaParseDMS (const char *dms, double *longitude, double *latitude) +{ +/* attempting to parse a DMS string */ + double lg; + double lt; + int lat_d; + int lat_m; + double lat_s; + char lat_prefix = '\0'; + int long_d; + int long_m; + double long_s; + char long_prefix = '\0'; + const char *p = dms; + const char *p_end; + if (dms == NULL) + return 0; + +/* attempting to parse the latitude */ + consume_blank (p, &p_end); + p = p_end; + if (*p == 'S' || *p == 'N') + { + lat_prefix = *p; + p++; + consume_blank (p, &p_end); + p = p_end; + } + if (*p >= '0' && *p <= '9') + { + consume_int (p, &p_end, &lat_d); + if (lat_d < 0 && lat_d > 90) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_deg_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (*p >= '0' && *p <= '9') + { + consume_int (p, &p_end, &lat_m); + if (lat_m < 0 && lat_m >= 60) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_min_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (*p >= '0' && *p <= '9') + { + consume_float (p, &p_end, &lat_s); + if (lat_s < 0.0 && lat_s >= 60.0) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_sec_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (lat_prefix == '\0') + { + /* attempting to retrieve the prefix */ + if (*p == 'S' || *p == 'N') + { + lat_prefix = *p; + p++; + } + else + return 0; + } + lt = (double) lat_d + ((double) lat_m / 60.0) + (lat_s / 3600.0); + if (lat_prefix == 'S') + lt *= -1.0; + if (lt < -90.0 || lt > 90.0) + return 0; + +/* attempting to parse the longitude */ + consume_blank (p, &p_end); + p = p_end; + if (*p == 'E' || *p == 'W') + { + long_prefix = *p; + p++; + consume_blank (p, &p_end); + p = p_end; + } + if (*p >= '0' && *p <= '9') + { + consume_int (p, &p_end, &long_d); + if (long_d < 0 && long_d > 90) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_deg_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (*p >= '0' && *p <= '9') + { + consume_int (p, &p_end, &long_m); + if (long_m < 0 && long_m >= 60) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_min_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (*p >= '0' && *p <= '9') + { + consume_float (p, &p_end, &long_s); + if (long_s < 0.0 && long_s >= 60.0) + return 0; + p = p_end; + } + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (check_sec_delimiter (p, &p_end)) + p = p_end; + else + return 0; + consume_blank (p, &p_end); + p = p_end; + if (long_prefix == '\0') + { + /* attempting to retrieve the prefix */ + if (*p == 'E' || *p == 'W') + { + long_prefix = *p; + p++; + } + else + return 0; + } + lg = (double) long_d + ((double) long_m / 60.0) + (long_s / 3600.0); + if (long_prefix == 'W') + lg *= -1.0; + if (lg < -180.0 || lg > 180.0) + return 0; + + *longitude = lg; + *latitude = lt; + return 1; +} + +GAIAAUX_DECLARE char * +gaiaConvertToDMS (double longitude, double latitude) +{ +/* formatting a DMS string */ + char *dms0; + char *dms; + char long_prefix = 'E'; + char lat_prefix = 'N'; + int long_d; + int long_m; + int long_s; + int lat_d; + int lat_m; + int lat_s; + double val; + int len; + if (longitude < -180.0 || longitude > 180.0) + return NULL; + if (latitude < -90.0 || latitude > 90.0) + return NULL; + if (longitude < 0.0) + { + long_prefix = 'W'; + longitude *= -1.0; + } + if (latitude < 0.0) + { + lat_prefix = 'S'; + latitude *= -1.0; + } + long_d = floor (longitude); + val = 60.0 * (longitude - (double) long_d); + long_m = floor (val); + val = 60.0 * (val - (double) long_m); + long_s = floor (val); + if ((val - (double) long_s) > 0.5) + long_s++; + lat_d = floor (latitude); + val = 60.0 * (latitude - (double) lat_d); + lat_m = floor (val); + val = 60.0 * (val - (double) lat_m); + lat_s = floor (val); + if ((val - (double) lat_s) > 0.5) + lat_s++; + dms0 = + sqlite3_mprintf ("%02d°%02d′%02d″%c %03d°%02d′%02d″%c", lat_d, + lat_m, lat_s, lat_prefix, long_d, long_m, long_s, + long_prefix); + len = strlen (dms0); + dms = malloc (len + 1); + strcpy (dms, dms0); + sqlite3_free (dms0); + return dms; +} diff --git a/src/spatialite/src/gaiaaux/gg_utf8.c b/src/spatialite/src/gaiaaux/gg_utf8.c index d413b61..a07bf94 100644 --- a/src/spatialite/src/gaiaaux/gg_utf8.c +++ b/src/spatialite/src/gaiaaux/gg_utf8.c @@ -2,7 +2,7 @@ gg_utf8.c -- locale charset handling - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -78,10 +78,6 @@ extern const char *locale_charset (void); #endif #endif -#define iconv libiconv -#define iconv_open libiconv_open -#define iconv_close libiconv_close - #include #include diff --git a/src/spatialite/src/gaiaexif/Makefile.am b/src/spatialite/src/gaiaexif/Makefile.am index 9e48153..10ab8b9 100644 --- a/src/spatialite/src/gaiaexif/Makefile.am +++ b/src/spatialite/src/gaiaexif/Makefile.am @@ -1,9 +1,17 @@ -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiaexif.la +noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c +gaiaexif_la_SOURCES = gaia_exif.c + +gaiaexif_la_CPPFLAGS = @CFLAGS@ +gaiaexif_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +gaiaexif_la_CPPFLAGS += -DLOADABLE_EXTENSION +gaiaexif_la_LDFLAGS = -module +gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/gaiaexif/Makefile.in b/src/spatialite/src/gaiaexif/Makefile.in index b1120dd..b5587cd 100644 --- a/src/spatialite/src/gaiaexif/Makefile.in +++ b/src/spatialite/src/gaiaexif/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaexif -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -65,34 +93,84 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) +gaiaexif_la_LIBADD = +am_gaiaexif_la_OBJECTS = gaiaexif_la-gaia_exif.lo +gaiaexif_la_OBJECTS = $(am_gaiaexif_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +gaiaexif_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(gaiaexif_la_LDFLAGS) \ + $(LDFLAGS) -o $@ libgaiaexif_la_LIBADD = am_libgaiaexif_la_OBJECTS = gaia_exif.lo libgaiaexif_la_OBJECTS = $(am_libgaiaexif_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libgaiaexif_la_SOURCES) -DIST_SOURCES = $(libgaiaexif_la_SOURCES) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES) +DIST_SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -134,6 +212,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -155,6 +235,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -214,9 +297,14 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiaexif.la +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c +gaiaexif_la_SOURCES = gaia_exif.c +gaiaexif_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +gaiaexif_la_LDFLAGS = -module +gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am @@ -255,14 +343,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +gaiaexif.la: $(gaiaexif_la_OBJECTS) $(gaiaexif_la_DEPENDENCIES) $(EXTRA_gaiaexif_la_DEPENDENCIES) + $(AM_V_CCLD)$(gaiaexif_la_LINK) $(gaiaexif_la_OBJECTS) $(gaiaexif_la_LIBADD) $(LIBS) + libgaiaexif.la: $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_DEPENDENCIES) $(EXTRA_libgaiaexif_la_DEPENDENCIES) - $(LINK) $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -271,27 +365,35 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_exif.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaexif_la-gaia_exif.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +gaiaexif_la-gaia_exif.lo: gaia_exif.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaexif_la-gaia_exif.lo -MD -MP -MF $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo $(DEPDIR)/gaiaexif_la-gaia_exif.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_exif.c' object='gaiaexif_la-gaia_exif.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c mostlyclean-libtool: -rm -f *.lo @@ -299,26 +401,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -330,15 +421,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -347,6 +434,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -489,18 +591,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiaexif/gaia_exif.c b/src/spatialite/src/gaiaexif/gaia_exif.c index 4bece7c..621bb07 100644 --- a/src/spatialite/src/gaiaexif/gaia_exif.c +++ b/src/spatialite/src/gaiaexif/gaia_exif.c @@ -2,7 +2,7 @@ gaia_exif.c -- Gaia EXIF support - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -61,6 +61,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include +#include #include #ifdef _WIN32 @@ -1302,41 +1303,31 @@ gaiaGetExifTags (const unsigned char *blob, int size) unsigned int offset; unsigned short items; unsigned short i; - int x; int app1_offset; - int app1_marker = 0; gaiaExifTagPtr pT; if (!blob) goto error; if (size < 14) goto error; -/* cecking for SOI [Start Of Image] */ +/* checking for SOI [Start Of Image] */ if (*(blob + 0) == 0xff && *(blob + 1) == 0xd8) ; else goto error; - app1_offset = 2; - for (x = 2; x < size; x++) + for (app1_offset = 2; app1_offset < size - 1; app1_offset++) { - /* retrieving the APP1 Marker */ - if (*(blob + x) == 0xff) - app1_marker = 1; - if (*(blob + x) == 0xe1) + if (*(blob + app1_offset) == 0xff + && *(blob + app1_offset + 1) == 0xe1) { - if (app1_marker) - { - app1_offset = x - 1; - break; - } - else - app1_marker = 0; + /* found APP1 marker */ + break; } } -/* checking for APP1 Marker */ - if (*(blob + app1_offset) == 0xff && *(blob + app1_offset + 1) == 0xe1) - ; - else - goto error; + if (app1_offset == size - 1) + { + /* we've reached the end of the file, but not found the marker */ + goto error; + } /* checking for EXIF identifier */ if (memcmp (blob + app1_offset + 4, "Exif", 4) == 0) ; @@ -2526,6 +2517,21 @@ gaiaGuessBlobType (const unsigned char *blob, int size) } if (geom) return GAIA_GEOMETRY_BLOB; + +#ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ + + if (gaiaIsValidXmlBlob (blob, size)) + return GAIA_XML_BLOB; + +#endif /* end LIBXML2: supporting XML documents */ + +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + + if (gaiaIsValidGPB (blob, size)) + return GAIA_GPB_BLOB; + +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + return GAIA_HEX_BLOB; } diff --git a/src/spatialite/src/gaiageo/Ewkt.c b/src/spatialite/src/gaiageo/Ewkt.c index 8fc5fdf..540dfcc 100644 --- a/src/spatialite/src/gaiageo/Ewkt.c +++ b/src/spatialite/src/gaiageo/Ewkt.c @@ -18,7 +18,7 @@ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE -# define INTERFACE 1 +#define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -58,17 +58,18 @@ #define YYNOCODE 117 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * -typedef union { - int yyinit; - ParseTOKENTYPE yy0; +typedef union +{ + int yyinit; + ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct ewkt_data *p_data ; -#define ParseARG_PDECL , struct ewkt_data *p_data -#define ParseARG_FETCH struct ewkt_data *p_data = yypParser->p_data -#define ParseARG_STORE yypParser->p_data = p_data +#define ParseARG_PDECL , struct ewkt_data *p_data +#define ParseARG_FETCH struct ewkt_data *p_data = yypParser->p_data +#define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 508 #define YYNRULE 199 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) @@ -88,7 +89,7 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** for testing. */ #ifndef yytestcase -# define yytestcase(X) +#define yytestcase(X) #endif @@ -140,271 +141,276 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 249, 336, 337, 338, 339, 340, 341, 342, 343, 344, - /* 10 */ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - /* 20 */ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - /* 30 */ 365, 366, 163, 201, 224, 178, 202, 225, 179, 203, - /* 40 */ 226, 180, 204, 227, 181, 205, 228, 182, 206, 229, - /* 50 */ 508, 101, 250, 128, 371, 254, 66, 129, 19, 80, - /* 60 */ 20, 95, 22, 124, 23, 141, 25, 158, 27, 232, - /* 70 */ 250, 254, 708, 1, 13, 80, 19, 95, 20, 124, - /* 80 */ 22, 141, 23, 158, 25, 247, 28, 103, 104, 371, - /* 90 */ 105, 106, 63, 305, 111, 117, 305, 255, 21, 164, - /* 100 */ 66, 165, 164, 166, 165, 167, 166, 169, 167, 177, - /* 110 */ 169, 313, 183, 374, 313, 375, 376, 187, 14, 188, - /* 120 */ 187, 189, 188, 190, 189, 192, 190, 200, 192, 321, - /* 130 */ 207, 404, 321, 405, 406, 210, 62, 211, 210, 212, - /* 140 */ 211, 213, 212, 215, 213, 223, 215, 254, 230, 3, - /* 150 */ 24, 80, 104, 95, 26, 124, 71, 141, 111, 158, - /* 160 */ 171, 240, 2, 172, 194, 163, 173, 195, 178, 174, - /* 170 */ 196, 179, 175, 197, 180, 176, 198, 181, 217, 199, - /* 180 */ 182, 218, 201, 125, 219, 202, 371, 220, 203, 224, - /* 190 */ 221, 204, 225, 222, 205, 226, 108, 206, 227, 371, - /* 200 */ 388, 228, 389, 390, 229, 284, 233, 242, 243, 244, - /* 210 */ 245, 246, 234, 235, 236, 237, 238, 239, 31, 113, - /* 220 */ 251, 252, 371, 253, 83, 63, 256, 258, 87, 260, - /* 230 */ 91, 63, 265, 270, 103, 275, 257, 63, 106, 68, - /* 240 */ 105, 78, 75, 75, 424, 117, 425, 426, 132, 119, - /* 250 */ 135, 138, 371, 436, 64, 437, 438, 146, 69, 150, - /* 260 */ 154, 65, 370, 68, 448, 70, 449, 450, 67, 184, - /* 270 */ 68, 186, 209, 73, 74, 373, 33, 71, 71, 79, - /* 280 */ 262, 75, 81, 66, 82, 66, 265, 66, 266, 267, - /* 290 */ 85, 68, 270, 68, 68, 68, 71, 271, 272, 89, - /* 300 */ 258, 71, 71, 71, 71, 275, 276, 75, 75, 277, - /* 310 */ 93, 75, 75, 280, 281, 282, 66, 66, 66, 377, - /* 320 */ 256, 99, 251, 378, 66, 68, 260, 68, 75, 252, - /* 330 */ 253, 72, 75, 71, 407, 408, 371, 371, 380, 76, - /* 340 */ 259, 77, 35, 36, 381, 38, 261, 383, 84, 263, - /* 350 */ 385, 386, 39, 88, 268, 43, 47, 92, 96, 273, - /* 360 */ 51, 98, 102, 278, 264, 86, 61, 283, 393, 269, - /* 370 */ 287, 285, 90, 400, 286, 396, 107, 97, 274, 94, - /* 380 */ 279, 399, 100, 289, 403, 108, 110, 413, 109, 288, - /* 390 */ 112, 291, 113, 114, 116, 118, 115, 290, 119, 15, - /* 400 */ 415, 419, 125, 120, 121, 123, 292, 122, 126, 130, - /* 410 */ 133, 127, 417, 296, 55, 136, 293, 428, 297, 56, - /* 420 */ 430, 131, 139, 298, 295, 57, 422, 294, 142, 148, - /* 430 */ 144, 147, 301, 152, 134, 151, 155, 137, 156, 140, - /* 440 */ 143, 159, 709, 145, 161, 16, 4, 168, 170, 149, - /* 450 */ 5, 17, 709, 6, 83, 153, 709, 191, 193, 433, - /* 460 */ 87, 709, 160, 157, 432, 299, 91, 162, 435, 374, - /* 470 */ 388, 7, 132, 709, 709, 709, 300, 709, 8, 440, - /* 480 */ 146, 404, 709, 18, 442, 214, 302, 445, 444, 216, - /* 490 */ 424, 709, 303, 709, 709, 709, 447, 709, 709, 709, - /* 500 */ 709, 436, 709, 709, 304, 709, 709, 375, 9, 709, - /* 510 */ 135, 709, 389, 709, 709, 709, 709, 452, 453, 454, - /* 520 */ 709, 455, 456, 709, 457, 185, 306, 312, 709, 150, - /* 530 */ 307, 308, 309, 310, 425, 184, 10, 11, 709, 405, - /* 540 */ 709, 709, 709, 311, 464, 709, 709, 709, 709, 709, - /* 550 */ 709, 709, 437, 709, 376, 466, 390, 709, 335, 709, - /* 560 */ 138, 709, 12, 709, 709, 367, 467, 154, 709, 29, - /* 570 */ 468, 208, 469, 470, 471, 406, 426, 314, 315, 316, - /* 580 */ 317, 318, 186, 319, 478, 368, 369, 372, 320, 379, - /* 590 */ 438, 30, 382, 32, 34, 384, 37, 387, 391, 40, - /* 600 */ 709, 392, 41, 42, 480, 481, 482, 394, 483, 44, - /* 610 */ 58, 45, 484, 46, 395, 48, 397, 485, 59, 231, - /* 620 */ 49, 50, 398, 52, 322, 401, 323, 53, 324, 54, - /* 630 */ 402, 409, 493, 325, 326, 327, 209, 492, 410, 328, - /* 640 */ 495, 496, 411, 412, 497, 498, 241, 499, 500, 501, - /* 650 */ 407, 329, 414, 330, 408, 416, 418, 331, 332, 420, - /* 660 */ 421, 423, 427, 429, 248, 431, 333, 434, 439, 334, - /* 670 */ 441, 443, 446, 451, 458, 459, 460, 461, 462, 463, - /* 680 */ 465, 472, 473, 474, 475, 476, 477, 479, 60, 709, - /* 690 */ 486, 487, 488, 489, 709, 490, 491, 494, 502, 709, - /* 700 */ 503, 504, 505, 506, 709, 507, + /* 0 */ 249, 336, 337, 338, 339, 340, 341, 342, 343, 344, + /* 10 */ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + /* 20 */ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + /* 30 */ 365, 366, 163, 201, 224, 178, 202, 225, 179, 203, + /* 40 */ 226, 180, 204, 227, 181, 205, 228, 182, 206, 229, + /* 50 */ 508, 101, 250, 128, 371, 254, 66, 129, 19, 80, + /* 60 */ 20, 95, 22, 124, 23, 141, 25, 158, 27, 232, + /* 70 */ 250, 254, 708, 1, 13, 80, 19, 95, 20, 124, + /* 80 */ 22, 141, 23, 158, 25, 247, 28, 103, 104, 371, + /* 90 */ 105, 106, 63, 305, 111, 117, 305, 255, 21, 164, + /* 100 */ 66, 165, 164, 166, 165, 167, 166, 169, 167, 177, + /* 110 */ 169, 313, 183, 374, 313, 375, 376, 187, 14, 188, + /* 120 */ 187, 189, 188, 190, 189, 192, 190, 200, 192, 321, + /* 130 */ 207, 404, 321, 405, 406, 210, 62, 211, 210, 212, + /* 140 */ 211, 213, 212, 215, 213, 223, 215, 254, 230, 3, + /* 150 */ 24, 80, 104, 95, 26, 124, 71, 141, 111, 158, + /* 160 */ 171, 240, 2, 172, 194, 163, 173, 195, 178, 174, + /* 170 */ 196, 179, 175, 197, 180, 176, 198, 181, 217, 199, + /* 180 */ 182, 218, 201, 125, 219, 202, 371, 220, 203, 224, + /* 190 */ 221, 204, 225, 222, 205, 226, 108, 206, 227, 371, + /* 200 */ 388, 228, 389, 390, 229, 284, 233, 242, 243, 244, + /* 210 */ 245, 246, 234, 235, 236, 237, 238, 239, 31, 113, + /* 220 */ 251, 252, 371, 253, 83, 63, 256, 258, 87, 260, + /* 230 */ 91, 63, 265, 270, 103, 275, 257, 63, 106, 68, + /* 240 */ 105, 78, 75, 75, 424, 117, 425, 426, 132, 119, + /* 250 */ 135, 138, 371, 436, 64, 437, 438, 146, 69, 150, + /* 260 */ 154, 65, 370, 68, 448, 70, 449, 450, 67, 184, + /* 270 */ 68, 186, 209, 73, 74, 373, 33, 71, 71, 79, + /* 280 */ 262, 75, 81, 66, 82, 66, 265, 66, 266, 267, + /* 290 */ 85, 68, 270, 68, 68, 68, 71, 271, 272, 89, + /* 300 */ 258, 71, 71, 71, 71, 275, 276, 75, 75, 277, + /* 310 */ 93, 75, 75, 280, 281, 282, 66, 66, 66, 377, + /* 320 */ 256, 99, 251, 378, 66, 68, 260, 68, 75, 252, + /* 330 */ 253, 72, 75, 71, 407, 408, 371, 371, 380, 76, + /* 340 */ 259, 77, 35, 36, 381, 38, 261, 383, 84, 263, + /* 350 */ 385, 386, 39, 88, 268, 43, 47, 92, 96, 273, + /* 360 */ 51, 98, 102, 278, 264, 86, 61, 283, 393, 269, + /* 370 */ 287, 285, 90, 400, 286, 396, 107, 97, 274, 94, + /* 380 */ 279, 399, 100, 289, 403, 108, 110, 413, 109, 288, + /* 390 */ 112, 291, 113, 114, 116, 118, 115, 290, 119, 15, + /* 400 */ 415, 419, 125, 120, 121, 123, 292, 122, 126, 130, + /* 410 */ 133, 127, 417, 296, 55, 136, 293, 428, 297, 56, + /* 420 */ 430, 131, 139, 298, 295, 57, 422, 294, 142, 148, + /* 430 */ 144, 147, 301, 152, 134, 151, 155, 137, 156, 140, + /* 440 */ 143, 159, 709, 145, 161, 16, 4, 168, 170, 149, + /* 450 */ 5, 17, 709, 6, 83, 153, 709, 191, 193, 433, + /* 460 */ 87, 709, 160, 157, 432, 299, 91, 162, 435, 374, + /* 470 */ 388, 7, 132, 709, 709, 709, 300, 709, 8, 440, + /* 480 */ 146, 404, 709, 18, 442, 214, 302, 445, 444, 216, + /* 490 */ 424, 709, 303, 709, 709, 709, 447, 709, 709, 709, + /* 500 */ 709, 436, 709, 709, 304, 709, 709, 375, 9, 709, + /* 510 */ 135, 709, 389, 709, 709, 709, 709, 452, 453, 454, + /* 520 */ 709, 455, 456, 709, 457, 185, 306, 312, 709, 150, + /* 530 */ 307, 308, 309, 310, 425, 184, 10, 11, 709, 405, + /* 540 */ 709, 709, 709, 311, 464, 709, 709, 709, 709, 709, + /* 550 */ 709, 709, 437, 709, 376, 466, 390, 709, 335, 709, + /* 560 */ 138, 709, 12, 709, 709, 367, 467, 154, 709, 29, + /* 570 */ 468, 208, 469, 470, 471, 406, 426, 314, 315, 316, + /* 580 */ 317, 318, 186, 319, 478, 368, 369, 372, 320, 379, + /* 590 */ 438, 30, 382, 32, 34, 384, 37, 387, 391, 40, + /* 600 */ 709, 392, 41, 42, 480, 481, 482, 394, 483, 44, + /* 610 */ 58, 45, 484, 46, 395, 48, 397, 485, 59, 231, + /* 620 */ 49, 50, 398, 52, 322, 401, 323, 53, 324, 54, + /* 630 */ 402, 409, 493, 325, 326, 327, 209, 492, 410, 328, + /* 640 */ 495, 496, 411, 412, 497, 498, 241, 499, 500, 501, + /* 650 */ 407, 329, 414, 330, 408, 416, 418, 331, 332, 420, + /* 660 */ 421, 423, 427, 429, 248, 431, 333, 434, 439, 334, + /* 670 */ 441, 443, 446, 451, 458, 459, 460, 461, 462, 463, + /* 680 */ 465, 472, 473, 474, 475, 476, 477, 479, 60, 709, + /* 690 */ 486, 487, 488, 489, 709, 490, 491, 494, 502, 709, + /* 700 */ 503, 504, 505, 506, 709, 507, }; + static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 10 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - /* 20 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - /* 30 */ 53, 54, 27, 28, 29, 30, 31, 32, 33, 34, - /* 40 */ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - /* 50 */ 0, 3, 2, 57, 6, 5, 60, 61, 8, 9, - /* 60 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 70 */ 2, 5, 21, 22, 3, 9, 8, 11, 10, 13, - /* 80 */ 12, 15, 14, 17, 16, 19, 18, 55, 56, 6, - /* 90 */ 58, 59, 60, 2, 62, 63, 2, 57, 3, 8, - /* 100 */ 60, 10, 8, 12, 10, 14, 12, 16, 14, 18, - /* 110 */ 16, 2, 18, 72, 2, 74, 75, 8, 3, 10, - /* 120 */ 8, 12, 10, 14, 12, 16, 14, 18, 16, 2, - /* 130 */ 18, 88, 2, 90, 91, 8, 60, 10, 8, 12, - /* 140 */ 10, 14, 12, 16, 14, 18, 16, 5, 18, 3, - /* 150 */ 3, 9, 56, 11, 3, 13, 60, 15, 62, 17, - /* 160 */ 27, 19, 3, 30, 28, 27, 33, 31, 30, 36, - /* 170 */ 34, 33, 39, 37, 36, 42, 40, 39, 29, 43, - /* 180 */ 42, 32, 28, 3, 35, 31, 6, 38, 34, 29, - /* 190 */ 41, 37, 32, 44, 40, 35, 3, 43, 38, 6, - /* 200 */ 76, 41, 78, 79, 44, 60, 48, 49, 50, 51, - /* 210 */ 52, 53, 48, 49, 50, 51, 52, 53, 7, 3, - /* 220 */ 55, 56, 6, 58, 80, 60, 55, 56, 84, 58, - /* 230 */ 86, 60, 55, 56, 55, 58, 68, 60, 59, 60, - /* 240 */ 58, 58, 60, 60, 92, 63, 94, 95, 72, 3, - /* 250 */ 74, 75, 6, 100, 60, 102, 103, 76, 55, 78, - /* 260 */ 79, 60, 60, 60, 108, 55, 110, 111, 60, 108, - /* 270 */ 60, 110, 111, 56, 56, 60, 7, 60, 60, 58, - /* 280 */ 57, 60, 57, 60, 57, 60, 55, 60, 55, 55, - /* 290 */ 55, 60, 56, 60, 60, 60, 60, 56, 56, 56, - /* 300 */ 56, 60, 60, 60, 60, 58, 58, 60, 60, 58, - /* 310 */ 58, 60, 60, 57, 57, 57, 60, 60, 60, 60, - /* 320 */ 55, 57, 55, 68, 60, 60, 58, 60, 60, 56, - /* 330 */ 58, 60, 60, 60, 4, 4, 6, 6, 60, 60, - /* 340 */ 70, 60, 7, 3, 70, 7, 71, 71, 7, 69, - /* 350 */ 73, 69, 3, 7, 68, 3, 3, 7, 3, 70, - /* 360 */ 3, 7, 60, 71, 81, 80, 60, 69, 81, 85, - /* 370 */ 71, 68, 84, 77, 70, 85, 7, 82, 87, 86, - /* 380 */ 83, 87, 82, 64, 83, 3, 59, 64, 60, 60, - /* 390 */ 7, 66, 3, 60, 62, 7, 60, 60, 3, 3, - /* 400 */ 66, 89, 3, 60, 60, 63, 67, 60, 60, 7, - /* 410 */ 7, 60, 67, 96, 3, 7, 60, 96, 98, 3, - /* 420 */ 98, 61, 7, 99, 65, 3, 65, 69, 3, 3, - /* 430 */ 7, 7, 106, 3, 72, 7, 7, 74, 3, 75, - /* 440 */ 73, 3, 116, 73, 7, 3, 7, 3, 3, 76, - /* 450 */ 3, 3, 116, 7, 80, 78, 116, 3, 3, 93, - /* 460 */ 84, 116, 77, 79, 99, 97, 86, 77, 97, 72, - /* 470 */ 76, 3, 72, 116, 116, 116, 104, 116, 7, 104, - /* 480 */ 76, 88, 116, 3, 106, 3, 107, 101, 107, 3, - /* 490 */ 92, 116, 105, 116, 116, 116, 105, 116, 116, 116, - /* 500 */ 116, 100, 116, 116, 112, 116, 116, 74, 3, 116, - /* 510 */ 74, 116, 78, 116, 116, 116, 116, 112, 112, 112, - /* 520 */ 116, 112, 112, 116, 112, 108, 112, 114, 116, 78, - /* 530 */ 112, 112, 112, 112, 94, 108, 3, 7, 116, 90, - /* 540 */ 116, 116, 116, 112, 112, 116, 116, 116, 116, 116, - /* 550 */ 116, 116, 102, 116, 75, 114, 79, 116, 1, 116, - /* 560 */ 75, 116, 3, 116, 116, 4, 114, 79, 116, 3, - /* 570 */ 114, 110, 114, 114, 114, 91, 95, 114, 114, 114, - /* 580 */ 114, 114, 110, 114, 114, 4, 4, 4, 115, 4, - /* 590 */ 103, 7, 4, 7, 7, 4, 7, 4, 4, 7, - /* 600 */ 116, 4, 7, 7, 115, 115, 115, 4, 115, 7, - /* 610 */ 3, 7, 115, 7, 4, 7, 4, 115, 3, 111, - /* 620 */ 7, 7, 4, 7, 115, 4, 115, 7, 115, 7, - /* 630 */ 4, 4, 109, 115, 115, 115, 111, 115, 4, 113, - /* 640 */ 113, 113, 4, 4, 113, 113, 109, 113, 113, 113, - /* 650 */ 4, 113, 4, 113, 4, 4, 4, 113, 113, 4, - /* 660 */ 4, 4, 4, 4, 109, 4, 113, 4, 4, 113, - /* 670 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - /* 680 */ 4, 4, 4, 4, 4, 4, 4, 4, 3, 116, - /* 690 */ 4, 4, 4, 4, 116, 4, 4, 4, 4, 116, - /* 700 */ 4, 4, 4, 4, 116, 4, + /* 0 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 10 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + /* 20 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + /* 30 */ 53, 54, 27, 28, 29, 30, 31, 32, 33, 34, + /* 40 */ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + /* 50 */ 0, 3, 2, 57, 6, 5, 60, 61, 8, 9, + /* 60 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 70 */ 2, 5, 21, 22, 3, 9, 8, 11, 10, 13, + /* 80 */ 12, 15, 14, 17, 16, 19, 18, 55, 56, 6, + /* 90 */ 58, 59, 60, 2, 62, 63, 2, 57, 3, 8, + /* 100 */ 60, 10, 8, 12, 10, 14, 12, 16, 14, 18, + /* 110 */ 16, 2, 18, 72, 2, 74, 75, 8, 3, 10, + /* 120 */ 8, 12, 10, 14, 12, 16, 14, 18, 16, 2, + /* 130 */ 18, 88, 2, 90, 91, 8, 60, 10, 8, 12, + /* 140 */ 10, 14, 12, 16, 14, 18, 16, 5, 18, 3, + /* 150 */ 3, 9, 56, 11, 3, 13, 60, 15, 62, 17, + /* 160 */ 27, 19, 3, 30, 28, 27, 33, 31, 30, 36, + /* 170 */ 34, 33, 39, 37, 36, 42, 40, 39, 29, 43, + /* 180 */ 42, 32, 28, 3, 35, 31, 6, 38, 34, 29, + /* 190 */ 41, 37, 32, 44, 40, 35, 3, 43, 38, 6, + /* 200 */ 76, 41, 78, 79, 44, 60, 48, 49, 50, 51, + /* 210 */ 52, 53, 48, 49, 50, 51, 52, 53, 7, 3, + /* 220 */ 55, 56, 6, 58, 80, 60, 55, 56, 84, 58, + /* 230 */ 86, 60, 55, 56, 55, 58, 68, 60, 59, 60, + /* 240 */ 58, 58, 60, 60, 92, 63, 94, 95, 72, 3, + /* 250 */ 74, 75, 6, 100, 60, 102, 103, 76, 55, 78, + /* 260 */ 79, 60, 60, 60, 108, 55, 110, 111, 60, 108, + /* 270 */ 60, 110, 111, 56, 56, 60, 7, 60, 60, 58, + /* 280 */ 57, 60, 57, 60, 57, 60, 55, 60, 55, 55, + /* 290 */ 55, 60, 56, 60, 60, 60, 60, 56, 56, 56, + /* 300 */ 56, 60, 60, 60, 60, 58, 58, 60, 60, 58, + /* 310 */ 58, 60, 60, 57, 57, 57, 60, 60, 60, 60, + /* 320 */ 55, 57, 55, 68, 60, 60, 58, 60, 60, 56, + /* 330 */ 58, 60, 60, 60, 4, 4, 6, 6, 60, 60, + /* 340 */ 70, 60, 7, 3, 70, 7, 71, 71, 7, 69, + /* 350 */ 73, 69, 3, 7, 68, 3, 3, 7, 3, 70, + /* 360 */ 3, 7, 60, 71, 81, 80, 60, 69, 81, 85, + /* 370 */ 71, 68, 84, 77, 70, 85, 7, 82, 87, 86, + /* 380 */ 83, 87, 82, 64, 83, 3, 59, 64, 60, 60, + /* 390 */ 7, 66, 3, 60, 62, 7, 60, 60, 3, 3, + /* 400 */ 66, 89, 3, 60, 60, 63, 67, 60, 60, 7, + /* 410 */ 7, 60, 67, 96, 3, 7, 60, 96, 98, 3, + /* 420 */ 98, 61, 7, 99, 65, 3, 65, 69, 3, 3, + /* 430 */ 7, 7, 106, 3, 72, 7, 7, 74, 3, 75, + /* 440 */ 73, 3, 116, 73, 7, 3, 7, 3, 3, 76, + /* 450 */ 3, 3, 116, 7, 80, 78, 116, 3, 3, 93, + /* 460 */ 84, 116, 77, 79, 99, 97, 86, 77, 97, 72, + /* 470 */ 76, 3, 72, 116, 116, 116, 104, 116, 7, 104, + /* 480 */ 76, 88, 116, 3, 106, 3, 107, 101, 107, 3, + /* 490 */ 92, 116, 105, 116, 116, 116, 105, 116, 116, 116, + /* 500 */ 116, 100, 116, 116, 112, 116, 116, 74, 3, 116, + /* 510 */ 74, 116, 78, 116, 116, 116, 116, 112, 112, 112, + /* 520 */ 116, 112, 112, 116, 112, 108, 112, 114, 116, 78, + /* 530 */ 112, 112, 112, 112, 94, 108, 3, 7, 116, 90, + /* 540 */ 116, 116, 116, 112, 112, 116, 116, 116, 116, 116, + /* 550 */ 116, 116, 102, 116, 75, 114, 79, 116, 1, 116, + /* 560 */ 75, 116, 3, 116, 116, 4, 114, 79, 116, 3, + /* 570 */ 114, 110, 114, 114, 114, 91, 95, 114, 114, 114, + /* 580 */ 114, 114, 110, 114, 114, 4, 4, 4, 115, 4, + /* 590 */ 103, 7, 4, 7, 7, 4, 7, 4, 4, 7, + /* 600 */ 116, 4, 7, 7, 115, 115, 115, 4, 115, 7, + /* 610 */ 3, 7, 115, 7, 4, 7, 4, 115, 3, 111, + /* 620 */ 7, 7, 4, 7, 115, 4, 115, 7, 115, 7, + /* 630 */ 4, 4, 109, 115, 115, 115, 111, 115, 4, 113, + /* 640 */ 113, 113, 4, 4, 113, 113, 109, 113, 113, 113, + /* 650 */ 4, 113, 4, 113, 4, 4, 4, 113, 113, 4, + /* 660 */ 4, 4, 4, 4, 109, 4, 113, 4, 4, 113, + /* 670 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 680 */ 4, 4, 4, 4, 4, 4, 4, 4, 3, 116, + /* 690 */ 4, 4, 4, 4, 116, 4, 4, 4, 4, 116, + /* 700 */ 4, 4, 4, 4, 116, 4, }; + #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 334 static const short yy_shift_ofst[] = { - /* 0 */ -1, 50, 68, 48, 91, 94, 109, 112, 127, 130, - /* 10 */ 66, 142, 83, 83, 83, 180, 193, 216, 246, 71, - /* 20 */ 95, 115, 146, 147, 71, 151, 95, 159, 159, 83, - /* 30 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - /* 40 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - /* 50 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - /* 60 */ 83, 330, 331, 83, 83, 83, 83, 83, 83, 211, - /* 70 */ 211, 83, 83, 269, 269, 83, 83, 83, 335, 335, - /* 80 */ 340, 338, 338, 341, 349, 211, 341, 346, 352, 269, - /* 90 */ 346, 350, 353, 335, 350, 355, 357, 354, 357, 338, - /* 100 */ 354, 83, 83, 211, 269, 335, 369, 382, 83, 83, - /* 110 */ 369, 383, 389, 83, 83, 83, 383, 388, 395, 83, - /* 120 */ 83, 83, 83, 388, 396, 83, 83, 83, 338, 402, - /* 130 */ 399, 402, 403, 411, 403, 408, 416, 408, 415, 422, - /* 140 */ 415, 425, 340, 423, 340, 423, 424, 426, 349, 424, - /* 150 */ 428, 430, 352, 428, 429, 435, 353, 429, 438, 355, - /* 160 */ 437, 355, 437, 439, 411, 426, 442, 444, 411, 445, - /* 170 */ 426, 439, 439, 439, 439, 439, 439, 447, 439, 439, - /* 180 */ 439, 439, 439, 447, 439, 439, 446, 416, 430, 448, - /* 190 */ 454, 416, 455, 430, 446, 446, 446, 446, 446, 446, - /* 200 */ 468, 446, 446, 446, 446, 446, 446, 468, 446, 471, - /* 210 */ 422, 435, 480, 482, 422, 486, 435, 471, 471, 471, - /* 220 */ 471, 471, 471, 505, 471, 471, 471, 471, 471, 471, - /* 230 */ 505, 471, 533, 530, 530, 530, 530, 530, 530, 530, - /* 240 */ 533, 530, 530, 530, 530, 530, 530, 533, 530, 557, - /* 250 */ 559, 561, 581, 582, 566, 583, 584, 585, 586, 588, - /* 260 */ 587, 591, 589, 593, 594, 592, 595, 596, 597, 603, - /* 270 */ 602, 604, 606, 610, 612, 608, 613, 614, 618, 621, - /* 280 */ 616, 620, 622, 626, 627, 634, 638, 639, 646, 648, - /* 290 */ 650, 651, 652, 655, 656, 657, 658, 659, 661, 663, - /* 300 */ 664, 666, 667, 668, 669, 607, 670, 671, 672, 673, - /* 310 */ 674, 675, 676, 615, 677, 678, 679, 680, 681, 682, - /* 320 */ 683, 685, 686, 687, 688, 689, 691, 692, 693, 694, - /* 330 */ 696, 697, 698, 699, 701, + /* 0 */ -1, 50, 68, 48, 91, 94, 109, 112, 127, 130, + /* 10 */ 66, 142, 83, 83, 83, 180, 193, 216, 246, 71, + /* 20 */ 95, 115, 146, 147, 71, 151, 95, 159, 159, 83, + /* 30 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + /* 40 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + /* 50 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + /* 60 */ 83, 330, 331, 83, 83, 83, 83, 83, 83, 211, + /* 70 */ 211, 83, 83, 269, 269, 83, 83, 83, 335, 335, + /* 80 */ 340, 338, 338, 341, 349, 211, 341, 346, 352, 269, + /* 90 */ 346, 350, 353, 335, 350, 355, 357, 354, 357, 338, + /* 100 */ 354, 83, 83, 211, 269, 335, 369, 382, 83, 83, + /* 110 */ 369, 383, 389, 83, 83, 83, 383, 388, 395, 83, + /* 120 */ 83, 83, 83, 388, 396, 83, 83, 83, 338, 402, + /* 130 */ 399, 402, 403, 411, 403, 408, 416, 408, 415, 422, + /* 140 */ 415, 425, 340, 423, 340, 423, 424, 426, 349, 424, + /* 150 */ 428, 430, 352, 428, 429, 435, 353, 429, 438, 355, + /* 160 */ 437, 355, 437, 439, 411, 426, 442, 444, 411, 445, + /* 170 */ 426, 439, 439, 439, 439, 439, 439, 447, 439, 439, + /* 180 */ 439, 439, 439, 447, 439, 439, 446, 416, 430, 448, + /* 190 */ 454, 416, 455, 430, 446, 446, 446, 446, 446, 446, + /* 200 */ 468, 446, 446, 446, 446, 446, 446, 468, 446, 471, + /* 210 */ 422, 435, 480, 482, 422, 486, 435, 471, 471, 471, + /* 220 */ 471, 471, 471, 505, 471, 471, 471, 471, 471, 471, + /* 230 */ 505, 471, 533, 530, 530, 530, 530, 530, 530, 530, + /* 240 */ 533, 530, 530, 530, 530, 530, 530, 533, 530, 557, + /* 250 */ 559, 561, 581, 582, 566, 583, 584, 585, 586, 588, + /* 260 */ 587, 591, 589, 593, 594, 592, 595, 596, 597, 603, + /* 270 */ 602, 604, 606, 610, 612, 608, 613, 614, 618, 621, + /* 280 */ 616, 620, 622, 626, 627, 634, 638, 639, 646, 648, + /* 290 */ 650, 651, 652, 655, 656, 657, 658, 659, 661, 663, + /* 300 */ 664, 666, 667, 668, 669, 607, 670, 671, 672, 673, + /* 310 */ 674, 675, 676, 615, 677, 678, 679, 680, 681, 682, + /* 320 */ 683, 685, 686, 687, 688, 689, 691, 692, 693, 694, + /* 330 */ 696, 697, 698, 699, 701, }; + #define YY_REDUCE_USE_DFLT (-24) #define YY_REDUCE_MAX 248 static const short yy_reduce_ofst[] = { - /* 0 */ 51, -23, 5, 32, 133, 138, 136, 154, 149, 160, - /* 10 */ 158, 164, 165, 171, 177, -4, 179, 96, 182, 41, - /* 20 */ 124, 144, 43, 152, 176, 153, 181, 156, 161, 40, - /* 30 */ 203, 210, 217, 218, 183, 221, 223, 225, 227, 231, - /* 40 */ 233, 234, 235, 236, 241, 242, 243, 247, 248, 251, - /* 50 */ 252, 256, 257, 258, 264, 265, 244, 268, 267, 273, - /* 60 */ 272, 76, 145, 194, 201, 202, 208, 215, 259, 168, - /* 70 */ 255, 271, 278, 270, 274, 279, 281, 202, 275, 276, - /* 80 */ 277, 280, 282, 283, 285, 286, 287, 284, 288, 289, - /* 90 */ 290, 291, 293, 292, 294, 296, 295, 297, 300, 298, - /* 100 */ 301, 302, 306, 303, 304, 299, 319, 327, 328, 329, - /* 110 */ 323, 325, 332, 333, 336, 337, 334, 339, 342, 343, - /* 120 */ 344, 347, 145, 345, 312, 348, 351, 356, 358, 359, - /* 130 */ 360, 361, 317, 362, 321, 320, 363, 322, 324, 364, - /* 140 */ 365, 366, 367, 368, 370, 371, 372, 373, 374, 375, - /* 150 */ 326, 377, 376, 378, 379, 384, 380, 381, 386, 385, - /* 160 */ 387, 390, 391, 392, 397, 394, 393, 398, 400, 401, - /* 170 */ 404, 405, 406, 407, 409, 410, 412, 417, 414, 418, - /* 180 */ 419, 420, 421, 427, 431, 432, 413, 433, 434, 449, - /* 190 */ 440, 436, 450, 451, 441, 452, 456, 458, 459, 460, - /* 200 */ 461, 463, 464, 465, 466, 467, 469, 472, 470, 473, - /* 210 */ 479, 477, 484, 481, 485, 487, 488, 489, 490, 491, - /* 220 */ 493, 497, 502, 508, 509, 511, 513, 518, 519, 520, - /* 230 */ 525, 522, 523, 526, 527, 528, 531, 532, 534, 535, - /* 240 */ 537, 536, 538, 540, 544, 545, 553, 555, 556, + /* 0 */ 51, -23, 5, 32, 133, 138, 136, 154, 149, 160, + /* 10 */ 158, 164, 165, 171, 177, -4, 179, 96, 182, 41, + /* 20 */ 124, 144, 43, 152, 176, 153, 181, 156, 161, 40, + /* 30 */ 203, 210, 217, 218, 183, 221, 223, 225, 227, 231, + /* 40 */ 233, 234, 235, 236, 241, 242, 243, 247, 248, 251, + /* 50 */ 252, 256, 257, 258, 264, 265, 244, 268, 267, 273, + /* 60 */ 272, 76, 145, 194, 201, 202, 208, 215, 259, 168, + /* 70 */ 255, 271, 278, 270, 274, 279, 281, 202, 275, 276, + /* 80 */ 277, 280, 282, 283, 285, 286, 287, 284, 288, 289, + /* 90 */ 290, 291, 293, 292, 294, 296, 295, 297, 300, 298, + /* 100 */ 301, 302, 306, 303, 304, 299, 319, 327, 328, 329, + /* 110 */ 323, 325, 332, 333, 336, 337, 334, 339, 342, 343, + /* 120 */ 344, 347, 145, 345, 312, 348, 351, 356, 358, 359, + /* 130 */ 360, 361, 317, 362, 321, 320, 363, 322, 324, 364, + /* 140 */ 365, 366, 367, 368, 370, 371, 372, 373, 374, 375, + /* 150 */ 326, 377, 376, 378, 379, 384, 380, 381, 386, 385, + /* 160 */ 387, 390, 391, 392, 397, 394, 393, 398, 400, 401, + /* 170 */ 404, 405, 406, 407, 409, 410, 412, 417, 414, 418, + /* 180 */ 419, 420, 421, 427, 431, 432, 413, 433, 434, 449, + /* 190 */ 440, 436, 450, 451, 441, 452, 456, 458, 459, 460, + /* 200 */ 461, 463, 464, 465, 466, 467, 469, 472, 470, 473, + /* 210 */ 479, 477, 484, 481, 485, 487, 488, 489, 490, 491, + /* 220 */ 493, 497, 502, 508, 509, 511, 513, 518, 519, 520, + /* 230 */ 525, 522, 523, 526, 527, 528, 531, 532, 534, 535, + /* 240 */ 537, 536, 538, 540, 544, 545, 553, 555, 556, }; + static const YYACTIONTYPE yy_default[] = { - /* 0 */ 509, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 10 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 20 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 30 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 40 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 50 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 60 */ 707, 707, 707, 707, 550, 552, 707, 707, 707, 563, - /* 70 */ 563, 707, 707, 567, 567, 707, 707, 707, 569, 569, - /* 80 */ 707, 565, 565, 588, 707, 563, 588, 594, 707, 567, - /* 90 */ 594, 597, 707, 569, 597, 707, 707, 591, 707, 565, - /* 100 */ 591, 707, 707, 563, 567, 569, 555, 707, 707, 707, - /* 110 */ 555, 559, 707, 707, 707, 707, 559, 561, 707, 707, - /* 120 */ 707, 707, 707, 561, 707, 707, 707, 707, 565, 557, - /* 130 */ 707, 557, 616, 707, 616, 622, 707, 622, 625, 707, - /* 140 */ 625, 707, 707, 619, 707, 619, 632, 707, 707, 632, - /* 150 */ 638, 707, 707, 638, 641, 707, 707, 641, 707, 707, - /* 160 */ 635, 707, 635, 654, 707, 707, 707, 707, 707, 707, - /* 170 */ 707, 654, 654, 654, 654, 654, 654, 707, 654, 654, - /* 180 */ 654, 654, 654, 707, 654, 654, 684, 707, 707, 707, - /* 190 */ 707, 707, 707, 707, 684, 684, 684, 684, 684, 684, - /* 200 */ 707, 684, 684, 684, 684, 684, 684, 707, 684, 699, - /* 210 */ 707, 707, 707, 707, 707, 707, 707, 699, 699, 699, - /* 220 */ 699, 699, 699, 707, 699, 699, 699, 699, 699, 699, - /* 230 */ 707, 699, 707, 669, 669, 669, 669, 669, 669, 669, - /* 240 */ 707, 669, 669, 669, 669, 669, 669, 707, 669, 707, - /* 250 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 260 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 270 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 280 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 290 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 300 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 310 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 320 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - /* 330 */ 707, 707, 707, 707, 707, 510, 511, 512, 513, 514, - /* 340 */ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - /* 350 */ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - /* 360 */ 535, 536, 537, 538, 539, 540, 541, 542, 543, 545, - /* 370 */ 553, 554, 544, 551, 571, 573, 574, 550, 564, 575, - /* 380 */ 552, 568, 577, 570, 578, 572, 566, 576, 579, 581, - /* 390 */ 582, 583, 587, 589, 585, 593, 595, 586, 596, 598, - /* 400 */ 580, 584, 590, 592, 599, 601, 602, 546, 548, 549, - /* 410 */ 603, 605, 606, 556, 607, 560, 609, 562, 610, 600, - /* 420 */ 547, 604, 558, 608, 611, 613, 614, 615, 617, 621, - /* 430 */ 623, 624, 626, 612, 618, 620, 627, 629, 630, 631, - /* 440 */ 633, 637, 639, 640, 642, 628, 634, 636, 643, 645, - /* 450 */ 646, 647, 655, 656, 657, 658, 659, 660, 648, 649, - /* 460 */ 650, 651, 652, 653, 661, 683, 685, 686, 687, 688, - /* 470 */ 689, 690, 677, 678, 679, 680, 681, 682, 691, 698, - /* 480 */ 700, 701, 702, 703, 704, 705, 692, 693, 694, 695, - /* 490 */ 696, 697, 706, 644, 662, 670, 671, 672, 673, 674, - /* 500 */ 675, 676, 663, 664, 665, 666, 667, 668, + /* 0 */ 509, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 10 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 20 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 30 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 40 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 50 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 60 */ 707, 707, 707, 707, 550, 552, 707, 707, 707, 563, + /* 70 */ 563, 707, 707, 567, 567, 707, 707, 707, 569, 569, + /* 80 */ 707, 565, 565, 588, 707, 563, 588, 594, 707, 567, + /* 90 */ 594, 597, 707, 569, 597, 707, 707, 591, 707, 565, + /* 100 */ 591, 707, 707, 563, 567, 569, 555, 707, 707, 707, + /* 110 */ 555, 559, 707, 707, 707, 707, 559, 561, 707, 707, + /* 120 */ 707, 707, 707, 561, 707, 707, 707, 707, 565, 557, + /* 130 */ 707, 557, 616, 707, 616, 622, 707, 622, 625, 707, + /* 140 */ 625, 707, 707, 619, 707, 619, 632, 707, 707, 632, + /* 150 */ 638, 707, 707, 638, 641, 707, 707, 641, 707, 707, + /* 160 */ 635, 707, 635, 654, 707, 707, 707, 707, 707, 707, + /* 170 */ 707, 654, 654, 654, 654, 654, 654, 707, 654, 654, + /* 180 */ 654, 654, 654, 707, 654, 654, 684, 707, 707, 707, + /* 190 */ 707, 707, 707, 707, 684, 684, 684, 684, 684, 684, + /* 200 */ 707, 684, 684, 684, 684, 684, 684, 707, 684, 699, + /* 210 */ 707, 707, 707, 707, 707, 707, 707, 699, 699, 699, + /* 220 */ 699, 699, 699, 707, 699, 699, 699, 699, 699, 699, + /* 230 */ 707, 699, 707, 669, 669, 669, 669, 669, 669, 669, + /* 240 */ 707, 669, 669, 669, 669, 669, 669, 707, 669, 707, + /* 250 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 260 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 270 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 280 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 290 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 300 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 310 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 320 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, + /* 330 */ 707, 707, 707, 707, 707, 510, 511, 512, 513, 514, + /* 340 */ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + /* 350 */ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + /* 360 */ 535, 536, 537, 538, 539, 540, 541, 542, 543, 545, + /* 370 */ 553, 554, 544, 551, 571, 573, 574, 550, 564, 575, + /* 380 */ 552, 568, 577, 570, 578, 572, 566, 576, 579, 581, + /* 390 */ 582, 583, 587, 589, 585, 593, 595, 586, 596, 598, + /* 400 */ 580, 584, 590, 592, 599, 601, 602, 546, 548, 549, + /* 410 */ 603, 605, 606, 556, 607, 560, 609, 562, 610, 600, + /* 420 */ 547, 604, 558, 608, 611, 613, 614, 615, 617, 621, + /* 430 */ 623, 624, 626, 612, 618, 620, 627, 629, 630, 631, + /* 440 */ 633, 637, 639, 640, 642, 628, 634, 636, 643, 645, + /* 450 */ 646, 647, 655, 656, 657, 658, 659, 660, 648, 649, + /* 460 */ 650, 651, 652, 653, 661, 683, 685, 686, 687, 688, + /* 470 */ 689, 690, 677, 678, 679, 680, 681, 682, 691, 698, + /* 480 */ 700, 701, 702, 703, 704, 705, 692, 693, 694, 695, + /* 490 */ 696, 697, 706, 644, 662, 670, 671, 672, 673, 674, + /* 500 */ 675, 676, 663, 664, 665, 666, 667, 668, }; + #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct @@ -434,29 +440,31 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ +struct yyStackEntry +{ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ +struct yyParser +{ + int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ + int yyidxMax; /* Maximum value of yyidx */ #endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ + int yyerrcnt; /* Shifts left before out of the error */ + ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ #else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; @@ -485,47 +493,61 @@ static char *yyTracePrompt = 0; ** Outputs: ** None. */ -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; +void +ParseTrace (FILE * TraceFILE, char *zTracePrompt) +{ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if (yyTraceFILE == 0) + yyTracePrompt = 0; + else if (yyTracePrompt == 0) + yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { - "$", "EWKT_NEWLINE", "EWKT_POINT", "EWKT_OPEN_BRACKET", - "EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA", - "EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M", - "EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING", "EWKT_MULTILINESTRING_M", - "EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION", "EWKT_GEOMETRYCOLLECTION_M", - "error", "main", "in", "state", - "program", "geo_text", "geo_textm", "point", - "pointz", "pointzm", "linestring", "linestringz", - "linestringzm", "polygon", "polygonz", "polygonzm", - "multipoint", "multipointz", "multipointzm", "multilinestring", - "multilinestringz", "multilinestringzm", "multipolygon", "multipolygonz", - "multipolygonzm", "geocoll", "geocollz", "geocollzm", - "pointm", "linestringm", "polygonm", "multipointm", - "multilinestringm", "multipolygonm", "geocollm", "point_coordxy", - "point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy", - "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", - "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", - "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", - "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", - "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", - "ring", "extra_rings", "ringm", "extra_ringsm", - "ringz", "extra_ringsz", "ringzm", "extra_ringszm", - "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", - "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", - "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", - "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", - "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", - "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", - "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", +static const char *const yyTokenName[] = { + "$", "EWKT_NEWLINE", "EWKT_POINT", "EWKT_OPEN_BRACKET", + "EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA", + "EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M", + "EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING", + "EWKT_MULTILINESTRING_M", + "EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION", + "EWKT_GEOMETRYCOLLECTION_M", + "error", "main", "in", "state", + "program", "geo_text", "geo_textm", "point", + "pointz", "pointzm", "linestring", "linestringz", + "linestringzm", "polygon", "polygonz", "polygonzm", + "multipoint", "multipointz", "multipointzm", "multilinestring", + "multilinestringz", "multilinestringzm", "multipolygon", "multipolygonz", + "multipolygonzm", "geocoll", "geocollz", "geocollzm", + "pointm", "linestringm", "polygonm", "multipointm", + "multilinestringm", "multipolygonm", "geocollm", "point_coordxy", + "point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy", + "coord", "point_brkt_coordxym", "point_brkt_coordxyz", + "point_brkt_coordxyzm", + "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", + "extra_brkt_pointsxyzm", + "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", + "linestring_text", "linestring_textm", "linestring_textz", + "linestring_textzm", + "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", + "ring", "extra_rings", "ringm", "extra_ringsm", + "ringz", "extra_ringsz", "ringzm", "extra_ringszm", + "multipoint_text", "multipoint_textm", "multipoint_textz", + "multipoint_textzm", + "multilinestring_text", "multilinestring_textm", "multilinestring_textz", + "multilinestring_textzm", + "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", + "multilinestring_textzm2", + "multipolygon_text", "multipolygon_textm", "multipolygon_textz", + "multipolygon_textzm", + "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", + "multipolygon_textzm2", + "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", + "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ @@ -533,205 +555,289 @@ static const char *const yyTokenName[] = { /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { - /* 0 */ "main ::= in", - /* 1 */ "in ::=", - /* 2 */ "in ::= in state EWKT_NEWLINE", - /* 3 */ "state ::= program", - /* 4 */ "program ::= geo_text", - /* 5 */ "program ::= geo_textm", - /* 6 */ "geo_text ::= point", - /* 7 */ "geo_text ::= pointz", - /* 8 */ "geo_text ::= pointzm", - /* 9 */ "geo_text ::= linestring", - /* 10 */ "geo_text ::= linestringz", - /* 11 */ "geo_text ::= linestringzm", - /* 12 */ "geo_text ::= polygon", - /* 13 */ "geo_text ::= polygonz", - /* 14 */ "geo_text ::= polygonzm", - /* 15 */ "geo_text ::= multipoint", - /* 16 */ "geo_text ::= multipointz", - /* 17 */ "geo_text ::= multipointzm", - /* 18 */ "geo_text ::= multilinestring", - /* 19 */ "geo_text ::= multilinestringz", - /* 20 */ "geo_text ::= multilinestringzm", - /* 21 */ "geo_text ::= multipolygon", - /* 22 */ "geo_text ::= multipolygonz", - /* 23 */ "geo_text ::= multipolygonzm", - /* 24 */ "geo_text ::= geocoll", - /* 25 */ "geo_text ::= geocollz", - /* 26 */ "geo_text ::= geocollzm", - /* 27 */ "geo_textm ::= pointm", - /* 28 */ "geo_textm ::= linestringm", - /* 29 */ "geo_textm ::= polygonm", - /* 30 */ "geo_textm ::= multipointm", - /* 31 */ "geo_textm ::= multilinestringm", - /* 32 */ "geo_textm ::= multipolygonm", - /* 33 */ "geo_textm ::= geocollm", - /* 34 */ "point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET", - /* 35 */ "pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET", - /* 36 */ "pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET", - /* 37 */ "pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET", - /* 38 */ "point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET", - /* 39 */ "point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", - /* 40 */ "point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", - /* 41 */ "point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET", - /* 42 */ "point_coordxy ::= coord coord", - /* 43 */ "point_coordxym ::= coord coord coord", - /* 44 */ "point_coordxyz ::= coord coord coord", - /* 45 */ "point_coordxyzm ::= coord coord coord coord", - /* 46 */ "coord ::= EWKT_NUM", - /* 47 */ "extra_brkt_pointsxy ::=", - /* 48 */ "extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy", - /* 49 */ "extra_brkt_pointsxym ::=", - /* 50 */ "extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym", - /* 51 */ "extra_brkt_pointsxyz ::=", - /* 52 */ "extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", - /* 53 */ "extra_brkt_pointsxyzm ::=", - /* 54 */ "extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", - /* 55 */ "extra_pointsxy ::=", - /* 56 */ "extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy", - /* 57 */ "extra_pointsxym ::=", - /* 58 */ "extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym", - /* 59 */ "extra_pointsxyz ::=", - /* 60 */ "extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz", - /* 61 */ "extra_pointsxyzm ::=", - /* 62 */ "extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm", - /* 63 */ "linestring ::= EWKT_LINESTRING linestring_text", - /* 64 */ "linestringm ::= EWKT_LINESTRING_M linestring_textm", - /* 65 */ "linestringz ::= EWKT_LINESTRING linestring_textz", - /* 66 */ "linestringzm ::= EWKT_LINESTRING linestring_textzm", - /* 67 */ "linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", - /* 68 */ "linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", - /* 69 */ "linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", - /* 70 */ "linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", - /* 71 */ "polygon ::= EWKT_POLYGON polygon_text", - /* 72 */ "polygonm ::= EWKT_POLYGON_M polygon_textm", - /* 73 */ "polygonz ::= EWKT_POLYGON polygon_textz", - /* 74 */ "polygonzm ::= EWKT_POLYGON polygon_textzm", - /* 75 */ "polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET", - /* 76 */ "polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET", - /* 77 */ "polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET", - /* 78 */ "polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET", - /* 79 */ "ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", - /* 80 */ "extra_rings ::=", - /* 81 */ "extra_rings ::= EWKT_COMMA ring extra_rings", - /* 82 */ "ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", - /* 83 */ "extra_ringsm ::=", - /* 84 */ "extra_ringsm ::= EWKT_COMMA ringm extra_ringsm", - /* 85 */ "ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", - /* 86 */ "extra_ringsz ::=", - /* 87 */ "extra_ringsz ::= EWKT_COMMA ringz extra_ringsz", - /* 88 */ "ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", - /* 89 */ "extra_ringszm ::=", - /* 90 */ "extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm", - /* 91 */ "multipoint ::= EWKT_MULTIPOINT multipoint_text", - /* 92 */ "multipointm ::= EWKT_MULTIPOINT_M multipoint_textm", - /* 93 */ "multipointz ::= EWKT_MULTIPOINT multipoint_textz", - /* 94 */ "multipointzm ::= EWKT_MULTIPOINT multipoint_textzm", - /* 95 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", - /* 96 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", - /* 97 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", - /* 98 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", - /* 99 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET", - /* 100 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET", - /* 101 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET", - /* 102 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET", - /* 103 */ "multilinestring ::= EWKT_MULTILINESTRING multilinestring_text", - /* 104 */ "multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm", - /* 105 */ "multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz", - /* 106 */ "multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm", - /* 107 */ "multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET", - /* 108 */ "multilinestring_text2 ::=", - /* 109 */ "multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2", - /* 110 */ "multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET", - /* 111 */ "multilinestring_textm2 ::=", - /* 112 */ "multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2", - /* 113 */ "multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET", - /* 114 */ "multilinestring_textz2 ::=", - /* 115 */ "multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2", - /* 116 */ "multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET", - /* 117 */ "multilinestring_textzm2 ::=", - /* 118 */ "multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2", - /* 119 */ "multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text", - /* 120 */ "multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm", - /* 121 */ "multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz", - /* 122 */ "multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm", - /* 123 */ "multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET", - /* 124 */ "multipolygon_text2 ::=", - /* 125 */ "multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2", - /* 126 */ "multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET", - /* 127 */ "multipolygon_textm2 ::=", - /* 128 */ "multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2", - /* 129 */ "multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET", - /* 130 */ "multipolygon_textz2 ::=", - /* 131 */ "multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2", - /* 132 */ "multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET", - /* 133 */ "multipolygon_textzm2 ::=", - /* 134 */ "multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2", - /* 135 */ "geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text", - /* 136 */ "geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm", - /* 137 */ "geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz", - /* 138 */ "geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm", - /* 139 */ "geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET", - /* 140 */ "geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET", - /* 141 */ "geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET", - /* 142 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET", - /* 143 */ "geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET", - /* 144 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET", - /* 145 */ "geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET", - /* 146 */ "geocoll_text2 ::=", - /* 147 */ "geocoll_text2 ::= EWKT_COMMA point geocoll_text2", - /* 148 */ "geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2", - /* 149 */ "geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2", - /* 150 */ "geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2", - /* 151 */ "geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2", - /* 152 */ "geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2", - /* 153 */ "geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2", - /* 154 */ "geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 155 */ "geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 156 */ "geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 157 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 158 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 159 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 160 */ "geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET", - /* 161 */ "geocoll_textm2 ::=", - /* 162 */ "geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2", - /* 163 */ "geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2", - /* 164 */ "geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2", - /* 165 */ "geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2", - /* 166 */ "geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2", - /* 167 */ "geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2", - /* 168 */ "geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", - /* 169 */ "geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 170 */ "geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 171 */ "geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 172 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 173 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 174 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 175 */ "geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET", - /* 176 */ "geocoll_textz2 ::=", - /* 177 */ "geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2", - /* 178 */ "geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2", - /* 179 */ "geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2", - /* 180 */ "geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2", - /* 181 */ "geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2", - /* 182 */ "geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2", - /* 183 */ "geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2", - /* 184 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 185 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 186 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 187 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 188 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 189 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 190 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET", - /* 191 */ "geocoll_textzm2 ::=", - /* 192 */ "geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2", - /* 193 */ "geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2", - /* 194 */ "geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2", - /* 195 */ "geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2", - /* 196 */ "geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2", - /* 197 */ "geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2", - /* 198 */ "geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2", + /* 0 */ "main ::= in", + /* 1 */ "in ::=", + /* 2 */ "in ::= in state EWKT_NEWLINE", + /* 3 */ "state ::= program", + /* 4 */ "program ::= geo_text", + /* 5 */ "program ::= geo_textm", + /* 6 */ "geo_text ::= point", + /* 7 */ "geo_text ::= pointz", + /* 8 */ "geo_text ::= pointzm", + /* 9 */ "geo_text ::= linestring", + /* 10 */ "geo_text ::= linestringz", + /* 11 */ "geo_text ::= linestringzm", + /* 12 */ "geo_text ::= polygon", + /* 13 */ "geo_text ::= polygonz", + /* 14 */ "geo_text ::= polygonzm", + /* 15 */ "geo_text ::= multipoint", + /* 16 */ "geo_text ::= multipointz", + /* 17 */ "geo_text ::= multipointzm", + /* 18 */ "geo_text ::= multilinestring", + /* 19 */ "geo_text ::= multilinestringz", + /* 20 */ "geo_text ::= multilinestringzm", + /* 21 */ "geo_text ::= multipolygon", + /* 22 */ "geo_text ::= multipolygonz", + /* 23 */ "geo_text ::= multipolygonzm", + /* 24 */ "geo_text ::= geocoll", + /* 25 */ "geo_text ::= geocollz", + /* 26 */ "geo_text ::= geocollzm", + /* 27 */ "geo_textm ::= pointm", + /* 28 */ "geo_textm ::= linestringm", + /* 29 */ "geo_textm ::= polygonm", + /* 30 */ "geo_textm ::= multipointm", + /* 31 */ "geo_textm ::= multilinestringm", + /* 32 */ "geo_textm ::= multipolygonm", + /* 33 */ "geo_textm ::= geocollm", + /* 34 */ + "point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET", + /* 35 */ + "pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET", + /* 36 */ + "pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET", + /* 37 */ + "pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET", + /* 38 */ + "point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET", + /* 39 */ + "point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", + /* 40 */ + "point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", + /* 41 */ + "point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET", + /* 42 */ "point_coordxy ::= coord coord", + /* 43 */ "point_coordxym ::= coord coord coord", + /* 44 */ "point_coordxyz ::= coord coord coord", + /* 45 */ "point_coordxyzm ::= coord coord coord coord", + /* 46 */ "coord ::= EWKT_NUM", + /* 47 */ "extra_brkt_pointsxy ::=", + /* 48 */ + "extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy", + /* 49 */ "extra_brkt_pointsxym ::=", + /* 50 */ + "extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym", + /* 51 */ "extra_brkt_pointsxyz ::=", + /* 52 */ + "extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", + /* 53 */ "extra_brkt_pointsxyzm ::=", + /* 54 */ + "extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", + /* 55 */ "extra_pointsxy ::=", + /* 56 */ "extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy", + /* 57 */ "extra_pointsxym ::=", + /* 58 */ "extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym", + /* 59 */ "extra_pointsxyz ::=", + /* 60 */ "extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz", + /* 61 */ "extra_pointsxyzm ::=", + /* 62 */ + "extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm", + /* 63 */ "linestring ::= EWKT_LINESTRING linestring_text", + /* 64 */ "linestringm ::= EWKT_LINESTRING_M linestring_textm", + /* 65 */ "linestringz ::= EWKT_LINESTRING linestring_textz", + /* 66 */ "linestringzm ::= EWKT_LINESTRING linestring_textzm", + /* 67 */ + "linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", + /* 68 */ + "linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", + /* 69 */ + "linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", + /* 70 */ + "linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", + /* 71 */ "polygon ::= EWKT_POLYGON polygon_text", + /* 72 */ "polygonm ::= EWKT_POLYGON_M polygon_textm", + /* 73 */ "polygonz ::= EWKT_POLYGON polygon_textz", + /* 74 */ "polygonzm ::= EWKT_POLYGON polygon_textzm", + /* 75 */ + "polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET", + /* 76 */ + "polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET", + /* 77 */ + "polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET", + /* 78 */ + "polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET", + /* 79 */ + "ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", + /* 80 */ "extra_rings ::=", + /* 81 */ "extra_rings ::= EWKT_COMMA ring extra_rings", + /* 82 */ + "ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", + /* 83 */ "extra_ringsm ::=", + /* 84 */ "extra_ringsm ::= EWKT_COMMA ringm extra_ringsm", + /* 85 */ + "ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", + /* 86 */ "extra_ringsz ::=", + /* 87 */ "extra_ringsz ::= EWKT_COMMA ringz extra_ringsz", + /* 88 */ + "ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", + /* 89 */ "extra_ringszm ::=", + /* 90 */ "extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm", + /* 91 */ "multipoint ::= EWKT_MULTIPOINT multipoint_text", + /* 92 */ "multipointm ::= EWKT_MULTIPOINT_M multipoint_textm", + /* 93 */ "multipointz ::= EWKT_MULTIPOINT multipoint_textz", + /* 94 */ "multipointzm ::= EWKT_MULTIPOINT multipoint_textzm", + /* 95 */ + "multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", + /* 96 */ + "multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", + /* 97 */ + "multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", + /* 98 */ + "multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", + /* 99 */ + "multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET", + /* 100 */ + "multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET", + /* 101 */ + "multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET", + /* 102 */ + "multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET", + /* 103 */ "multilinestring ::= EWKT_MULTILINESTRING multilinestring_text", + /* 104 */ + "multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm", + /* 105 */ "multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz", + /* 106 */ + "multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm", + /* 107 */ + "multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET", + /* 108 */ "multilinestring_text2 ::=", + /* 109 */ + "multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2", + /* 110 */ + "multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET", + /* 111 */ "multilinestring_textm2 ::=", + /* 112 */ + "multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2", + /* 113 */ + "multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET", + /* 114 */ "multilinestring_textz2 ::=", + /* 115 */ + "multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2", + /* 116 */ + "multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET", + /* 117 */ "multilinestring_textzm2 ::=", + /* 118 */ + "multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2", + /* 119 */ "multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text", + /* 120 */ "multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm", + /* 121 */ "multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz", + /* 122 */ "multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm", + /* 123 */ + "multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET", + /* 124 */ "multipolygon_text2 ::=", + /* 125 */ + "multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2", + /* 126 */ + "multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET", + /* 127 */ "multipolygon_textm2 ::=", + /* 128 */ + "multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2", + /* 129 */ + "multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET", + /* 130 */ "multipolygon_textz2 ::=", + /* 131 */ + "multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2", + /* 132 */ + "multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET", + /* 133 */ "multipolygon_textzm2 ::=", + /* 134 */ + "multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2", + /* 135 */ "geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text", + /* 136 */ "geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm", + /* 137 */ "geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz", + /* 138 */ "geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm", + /* 139 */ + "geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET", + /* 140 */ + "geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET", + /* 141 */ + "geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET", + /* 142 */ + "geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET", + /* 143 */ + "geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET", + /* 144 */ + "geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET", + /* 145 */ + "geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET", + /* 146 */ "geocoll_text2 ::=", + /* 147 */ "geocoll_text2 ::= EWKT_COMMA point geocoll_text2", + /* 148 */ "geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2", + /* 149 */ "geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2", + /* 150 */ "geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2", + /* 151 */ "geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2", + /* 152 */ "geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2", + /* 153 */ + "geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2", + /* 154 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 155 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 156 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 157 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 158 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 159 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 160 */ + "geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET", + /* 161 */ "geocoll_textm2 ::=", + /* 162 */ "geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2", + /* 163 */ "geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2", + /* 164 */ "geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2", + /* 165 */ "geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2", + /* 166 */ "geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2", + /* 167 */ "geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2", + /* 168 */ + "geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", + /* 169 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 170 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 171 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 172 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 173 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 174 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 175 */ + "geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET", + /* 176 */ "geocoll_textz2 ::=", + /* 177 */ "geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2", + /* 178 */ "geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2", + /* 179 */ "geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2", + /* 180 */ "geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2", + /* 181 */ "geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2", + /* 182 */ "geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2", + /* 183 */ + "geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2", + /* 184 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 185 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 186 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 187 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 188 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 189 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 190 */ + "geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET", + /* 191 */ "geocoll_textzm2 ::=", + /* 192 */ "geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2", + /* 193 */ "geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2", + /* 194 */ "geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2", + /* 195 */ "geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2", + /* 196 */ + "geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2", + /* 197 */ "geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2", + /* 198 */ + "geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ @@ -740,22 +846,26 @@ static const char *const yyRuleName[] = { /* ** Try to increase the size of the parser stack. */ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; +static void +yyGrowStack (yyParser * p) +{ + int newSize; + yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; + newSize = p->yystksz * 2 + 100; + pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); + if (pNew) + { + p->yystack = pNew; + p->yystksz = newSize; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", + yyTracePrompt, p->yystksz); + } #endif - } + } } #endif @@ -771,21 +881,24 @@ static void yyGrowStack(yyParser *p){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); - if( pParser ){ - pParser->yyidx = -1; +void * +ParseAlloc (void *(*mallocProc) (size_t)) +{ + yyParser *pParser; + pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); + if (pParser) + { + pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; + pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); + pParser->yystack = NULL; + pParser->yystksz = 0; + yyGrowStack (pParser); #endif - } - return pParser; + } + return pParser; } /* The following function deletes the value associated with a @@ -793,25 +906,28 @@ void *ParseAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - ParseARG_FETCH; - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } +static void +yy_destructor (yyParser * yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE * yypminor /* The object to be destroyed */ + ) +{ + ParseARG_FETCH; + switch (yymajor) + { + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + default: + break; /* If no destructor action specified: do nothing */ + } } /* @@ -822,22 +938,25 @@ static void yy_destructor( ** ** Return the major token number for the symbol popped. */ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int +yy_pop_parser_stack (yyParser * pParser) +{ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - if( pParser->yyidx<0 ) return 0; + if (pParser->yyidx < 0) + return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } + if (yyTraceFILE && pParser->yyidx >= 0) + { + fprintf (yyTraceFILE, "%sPopping %s\n", + yyTracePrompt, yyTokenName[yytos->major]); + } #endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + yymajor = yytos->major; + yy_destructor (pParser, yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; } /* @@ -852,26 +971,31 @@ static int yy_pop_parser_stack(yyParser *pParser){ ** from malloc. ** */ -void ParseFree( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); +void +ParseFree (void *p, /* The parser to be deleted */ + void (*freeProc) (void *) /* Function used to reclaim memory */ + ) +{ + yyParser *pParser = (yyParser *) p; + if (pParser == 0) + return; + while (pParser->yyidx >= 0) + yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 - free(pParser->yystack); + free (pParser->yystack); #endif - (*freeProc)((void*)pParser); + (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH -int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; +int +ParseStackPeak (void *p) +{ + yyParser *pParser = (yyParser *) p; + return pParser->yyidxMax; } #endif @@ -883,52 +1007,66 @@ int ParseStackPeak(void *p){ ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ +static int +yy_find_shift_action (yyParser * pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if (stateno > YY_SHIFT_MAX + || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) + { + return yy_default[stateno]; + } + assert (iLookAhead != YYNOCODE); + i += iLookAhead; + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + if (iLookAhead > 0) + { #ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[iFallback]); + } #endif - return yy_find_shift_action(pParser, iFallback); - } + return yy_find_shift_action (pParser, iFallback); + } #endif #ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j= 0 && j < YY_SZ_ACTTAB + && yy_lookahead[j] == YYWILDCARD) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } #endif /* NDEBUG */ - return yy_action[j]; - } - } + return yy_action[j]; + } + } #endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } + } + return yy_default[stateno]; + } + else + { + return yy_action[i]; + } } /* @@ -939,845 +1077,1426 @@ static int yy_find_shift_action( ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; +static int +yy_find_reduce_action (int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ - return yy_default[stateno]; - } + if (stateno > YY_REDUCE_MAX) + { + return yy_default[stateno]; + } #else - assert( stateno<=YY_REDUCE_MAX ); + assert (stateno <= YY_REDUCE_MAX); #endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; + i = yy_reduce_ofst[stateno]; + assert (i != YY_REDUCE_USE_DFLT); + assert (iLookAhead != YYNOCODE); + i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + return yy_default[stateno]; + } #else - assert( i>=0 && i= 0 && i < YY_SZ_ACTTAB); + assert (yy_lookahead[i] == iLookAhead); #endif - return yy_action[i]; + return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ -static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ - ParseARG_FETCH; - yypParser->yyidx--; +static void +yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) +{ + ParseARG_FETCH; + yypParser->yyidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ - spatialite_e( "Giving up. Parser stack overflow\n"); - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ + spatialite_e ("Giving up. Parser stack overflow\n"); + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; +static void +yy_shift (yyParser * yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ + ) +{ + yyStackEntry *yytos; + yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } + if (yypParser->yyidx > yypParser->yyidxMax) + { + yypParser->yyidxMax = yypParser->yyidx; + } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } +#if YYSTACKDEPTH>0 + if (yypParser->yyidx >= YYSTACKDEPTH) + { + yyStackOverflow (yypParser, yypMinor); + return; + } #else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } + if (yypParser->yyidx >= yypParser->yystksz) + { + yyGrowStack (yypParser); + if (yypParser->yyidx >= yypParser->yystksz) + { + yyStackOverflow (yypParser, yypMinor); + return; + } + } #endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = (YYACTIONTYPE) yyNewState; + yytos->major = (YYCODETYPE) yyMajor; + yytos->minor = *yypMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } + if (yyTraceFILE && yypParser->yyidx > 0) + { + int i; + fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); + fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); + for (i = 1; i <= yypParser->yyidx; i++) + fprintf (yyTraceFILE, " %s", + yyTokenName[yypParser->yystack[i].major]); + fprintf (yyTraceFILE, "\n"); + } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { - { 21, 1 }, - { 22, 0 }, - { 22, 3 }, - { 23, 1 }, - { 24, 1 }, - { 24, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 26, 1 }, - { 26, 1 }, - { 26, 1 }, - { 26, 1 }, - { 26, 1 }, - { 26, 1 }, - { 26, 1 }, - { 27, 4 }, - { 28, 4 }, - { 48, 4 }, - { 29, 4 }, - { 59, 4 }, - { 61, 5 }, - { 62, 5 }, - { 63, 6 }, - { 55, 2 }, - { 57, 3 }, - { 56, 3 }, - { 58, 4 }, - { 60, 1 }, - { 64, 0 }, - { 64, 3 }, - { 65, 0 }, - { 65, 3 }, - { 66, 0 }, - { 66, 3 }, - { 67, 0 }, - { 67, 3 }, - { 68, 0 }, - { 68, 3 }, - { 69, 0 }, - { 69, 3 }, - { 70, 0 }, - { 70, 3 }, - { 71, 0 }, - { 71, 3 }, - { 30, 2 }, - { 49, 2 }, - { 31, 2 }, - { 32, 2 }, - { 72, 6 }, - { 73, 6 }, - { 74, 6 }, - { 75, 6 }, - { 33, 2 }, - { 50, 2 }, - { 34, 2 }, - { 35, 2 }, - { 76, 4 }, - { 77, 4 }, - { 78, 4 }, - { 79, 4 }, - { 80, 10 }, - { 81, 0 }, - { 81, 3 }, - { 82, 10 }, - { 83, 0 }, - { 83, 3 }, - { 84, 10 }, - { 85, 0 }, - { 85, 3 }, - { 86, 10 }, - { 87, 0 }, - { 87, 3 }, - { 36, 2 }, - { 51, 2 }, - { 37, 2 }, - { 38, 2 }, - { 88, 4 }, - { 89, 4 }, - { 90, 4 }, - { 91, 4 }, - { 88, 4 }, - { 89, 4 }, - { 90, 4 }, - { 91, 4 }, - { 39, 2 }, - { 52, 2 }, - { 40, 2 }, - { 41, 2 }, - { 92, 4 }, - { 96, 0 }, - { 96, 3 }, - { 93, 4 }, - { 97, 0 }, - { 97, 3 }, - { 94, 4 }, - { 98, 0 }, - { 98, 3 }, - { 95, 4 }, - { 99, 0 }, - { 99, 3 }, - { 42, 2 }, - { 53, 2 }, - { 43, 2 }, - { 44, 2 }, - { 100, 4 }, - { 104, 0 }, - { 104, 3 }, - { 101, 4 }, - { 105, 0 }, - { 105, 3 }, - { 102, 4 }, - { 106, 0 }, - { 106, 3 }, - { 103, 4 }, - { 107, 0 }, - { 107, 3 }, - { 45, 2 }, - { 54, 2 }, - { 46, 2 }, - { 47, 2 }, - { 108, 4 }, - { 108, 4 }, - { 108, 4 }, - { 108, 4 }, - { 108, 4 }, - { 108, 4 }, - { 108, 5 }, - { 112, 0 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 3 }, - { 112, 4 }, - { 109, 4 }, - { 109, 4 }, - { 109, 4 }, - { 109, 4 }, - { 109, 4 }, - { 109, 4 }, - { 109, 5 }, - { 113, 0 }, - { 113, 3 }, - { 113, 3 }, - { 113, 3 }, - { 113, 3 }, - { 113, 3 }, - { 113, 3 }, - { 113, 4 }, - { 110, 4 }, - { 110, 4 }, - { 110, 4 }, - { 110, 4 }, - { 110, 4 }, - { 110, 4 }, - { 110, 5 }, - { 114, 0 }, - { 114, 3 }, - { 114, 3 }, - { 114, 3 }, - { 114, 3 }, - { 114, 3 }, - { 114, 3 }, - { 114, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 4 }, - { 111, 5 }, - { 115, 0 }, - { 115, 3 }, - { 115, 3 }, - { 115, 3 }, - { 115, 3 }, - { 115, 3 }, - { 115, 3 }, - { 115, 4 }, -}; +static const struct +{ + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = +{ + { + 21, 1}, + { + 22, 0}, + { + 22, 3}, + { + 23, 1}, + { + 24, 1}, + { + 24, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 25, 1}, + { + 26, 1}, + { + 26, 1}, + { + 26, 1}, + { + 26, 1}, + { + 26, 1}, + { + 26, 1}, + { + 26, 1}, + { + 27, 4}, + { + 28, 4}, + { + 48, 4}, + { + 29, 4}, + { + 59, 4}, + { + 61, 5}, + { + 62, 5}, + { + 63, 6}, + { + 55, 2}, + { + 57, 3}, + { + 56, 3}, + { + 58, 4}, + { + 60, 1}, + { + 64, 0}, + { + 64, 3}, + { + 65, 0}, + { + 65, 3}, + { + 66, 0}, + { + 66, 3}, + { + 67, 0}, + { + 67, 3}, + { + 68, 0}, + { + 68, 3}, + { + 69, 0}, + { + 69, 3}, + { + 70, 0}, + { + 70, 3}, + { + 71, 0}, + { + 71, 3}, + { + 30, 2}, + { + 49, 2}, + { + 31, 2}, + { + 32, 2}, + { + 72, 6}, + { + 73, 6}, + { + 74, 6}, + { + 75, 6}, + { + 33, 2}, + { + 50, 2}, + { + 34, 2}, + { + 35, 2}, + { + 76, 4}, + { + 77, 4}, + { + 78, 4}, + { + 79, 4}, + { + 80, 10}, + { + 81, 0}, + { + 81, 3}, + { + 82, 10}, + { + 83, 0}, + { + 83, 3}, + { + 84, 10}, + { + 85, 0}, + { + 85, 3}, + { + 86, 10}, + { + 87, 0}, + { + 87, 3}, + { + 36, 2}, + { + 51, 2}, + { + 37, 2}, + { + 38, 2}, + { + 88, 4}, + { + 89, 4}, + { + 90, 4}, + { + 91, 4}, + { + 88, 4}, + { + 89, 4}, + { + 90, 4}, + { + 91, 4}, + { + 39, 2}, + { + 52, 2}, + { + 40, 2}, + { + 41, 2}, + { + 92, 4}, + { + 96, 0}, + { + 96, 3}, + { + 93, 4}, + { + 97, 0}, + { + 97, 3}, + { + 94, 4}, + { + 98, 0}, + { + 98, 3}, + { + 95, 4}, + { + 99, 0}, + { + 99, 3}, + { + 42, 2}, + { + 53, 2}, + { + 43, 2}, + { + 44, 2}, + { + 100, 4}, + { + 104, 0}, + { + 104, 3}, + { + 101, 4}, + { + 105, 0}, + { + 105, 3}, + { + 102, 4}, + { + 106, 0}, + { + 106, 3}, + { + 103, 4}, + { + 107, 0}, + { + 107, 3}, + { + 45, 2}, + { + 54, 2}, + { + 46, 2}, + { + 47, 2}, + { + 108, 4}, + { + 108, 4}, + { + 108, 4}, + { + 108, 4}, + { + 108, 4}, + { + 108, 4}, + { + 108, 5}, + { + 112, 0}, + { + 112, 3}, + { + 112, 3}, + { + 112, 3}, + { + 112, 3}, + { + 112, 3}, + { + 112, 3}, + { + 112, 4}, + { + 109, 4}, + { + 109, 4}, + { + 109, 4}, + { + 109, 4}, + { + 109, 4}, + { + 109, 4}, + { + 109, 5}, + { + 113, 0}, + { + 113, 3}, + { + 113, 3}, + { + 113, 3}, + { + 113, 3}, + { + 113, 3}, + { + 113, 3}, + { + 113, 4}, + { + 110, 4}, + { + 110, 4}, + { + 110, 4}, + { + 110, 4}, + { + 110, 4}, + { + 110, 4}, + { + 110, 5}, + { + 114, 0}, + { + 114, 3}, + { + 114, 3}, + { + 114, 3}, + { + 114, 3}, + { + 114, 3}, + { + 114, 3}, + { + 114, 4}, + { + 111, 4}, + { + 111, 4}, + { + 111, 4}, + { + 111, 4}, + { + 111, 4}, + { + 111, 4}, + { + 111, 5}, + { + 115, 0}, + { + 115, 3}, + { + 115, 3}, + { + 115, 3}, + { + 115, 3}, + { + 115, 3}, + { + 115, 3}, + { +115, 4},}; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; +static void +yy_reduce (yyParser * yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ + ) +{ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } + if (yyTraceFILE && yyruleno >= 0 + && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) + { + fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } #endif /* NDEBUG */ - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&yygotominor, 0, sizeof(yygotominor)); */ + yygotominor = yyzerominor; - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line - ** { ... } // User supplied code - ** #line - ** break; - */ - case 6: /* geo_text ::= point */ - case 7: /* geo_text ::= pointz */ yytestcase(yyruleno==7); - case 8: /* geo_text ::= pointzm */ yytestcase(yyruleno==8); - case 9: /* geo_text ::= linestring */ yytestcase(yyruleno==9); - case 10: /* geo_text ::= linestringz */ yytestcase(yyruleno==10); - case 11: /* geo_text ::= linestringzm */ yytestcase(yyruleno==11); - case 12: /* geo_text ::= polygon */ yytestcase(yyruleno==12); - case 13: /* geo_text ::= polygonz */ yytestcase(yyruleno==13); - case 14: /* geo_text ::= polygonzm */ yytestcase(yyruleno==14); - case 15: /* geo_text ::= multipoint */ yytestcase(yyruleno==15); - case 16: /* geo_text ::= multipointz */ yytestcase(yyruleno==16); - case 17: /* geo_text ::= multipointzm */ yytestcase(yyruleno==17); - case 18: /* geo_text ::= multilinestring */ yytestcase(yyruleno==18); - case 19: /* geo_text ::= multilinestringz */ yytestcase(yyruleno==19); - case 20: /* geo_text ::= multilinestringzm */ yytestcase(yyruleno==20); - case 21: /* geo_text ::= multipolygon */ yytestcase(yyruleno==21); - case 22: /* geo_text ::= multipolygonz */ yytestcase(yyruleno==22); - case 23: /* geo_text ::= multipolygonzm */ yytestcase(yyruleno==23); - case 24: /* geo_text ::= geocoll */ yytestcase(yyruleno==24); - case 25: /* geo_text ::= geocollz */ yytestcase(yyruleno==25); - case 26: /* geo_text ::= geocollzm */ yytestcase(yyruleno==26); - case 27: /* geo_textm ::= pointm */ yytestcase(yyruleno==27); - case 28: /* geo_textm ::= linestringm */ yytestcase(yyruleno==28); - case 29: /* geo_textm ::= polygonm */ yytestcase(yyruleno==29); - case 30: /* geo_textm ::= multipointm */ yytestcase(yyruleno==30); - case 31: /* geo_textm ::= multilinestringm */ yytestcase(yyruleno==31); - case 32: /* geo_textm ::= multipolygonm */ yytestcase(yyruleno==32); - case 33: /* geo_textm ::= geocollm */ yytestcase(yyruleno==33); -{ p_data->result = yymsp[0].minor.yy0; } - break; - case 34: /* point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET */ - case 35: /* pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==35); - case 37: /* pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==37); -{ yygotominor.yy0 = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 36: /* pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET */ -{ yygotominor.yy0 = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 38: /* point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) ewkt_point_xy( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 39: /* point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) ewkt_point_xym( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 40: /* point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) ewkt_point_xyz( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 41: /* point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) ewkt_point_xyzm( p_data, (double *)yymsp[-4].minor.yy0, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 42: /* point_coordxy ::= coord coord */ -{ yygotominor.yy0 = (void *) ewkt_point_xy( p_data, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 43: /* point_coordxym ::= coord coord coord */ -{ yygotominor.yy0 = (void *) ewkt_point_xym( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 44: /* point_coordxyz ::= coord coord coord */ -{ yygotominor.yy0 = (void *) ewkt_point_xyz( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 45: /* point_coordxyzm ::= coord coord coord coord */ -{ yygotominor.yy0 = (void *) ewkt_point_xyzm( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 46: /* coord ::= EWKT_NUM */ - case 91: /* multipoint ::= EWKT_MULTIPOINT multipoint_text */ yytestcase(yyruleno==91); - case 92: /* multipointm ::= EWKT_MULTIPOINT_M multipoint_textm */ yytestcase(yyruleno==92); - case 93: /* multipointz ::= EWKT_MULTIPOINT multipoint_textz */ yytestcase(yyruleno==93); - case 94: /* multipointzm ::= EWKT_MULTIPOINT multipoint_textzm */ yytestcase(yyruleno==94); - case 103: /* multilinestring ::= EWKT_MULTILINESTRING multilinestring_text */ yytestcase(yyruleno==103); - case 104: /* multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm */ yytestcase(yyruleno==104); - case 105: /* multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz */ yytestcase(yyruleno==105); - case 106: /* multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm */ yytestcase(yyruleno==106); - case 119: /* multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text */ yytestcase(yyruleno==119); - case 120: /* multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm */ yytestcase(yyruleno==120); - case 121: /* multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz */ yytestcase(yyruleno==121); - case 122: /* multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm */ yytestcase(yyruleno==122); - case 135: /* geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text */ yytestcase(yyruleno==135); - case 136: /* geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase(yyruleno==136); - case 137: /* geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz */ yytestcase(yyruleno==137); - case 138: /* geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm */ yytestcase(yyruleno==138); -{ yygotominor.yy0 = yymsp[0].minor.yy0; } - break; - case 47: /* extra_brkt_pointsxy ::= */ - case 49: /* extra_brkt_pointsxym ::= */ yytestcase(yyruleno==49); - case 51: /* extra_brkt_pointsxyz ::= */ yytestcase(yyruleno==51); - case 53: /* extra_brkt_pointsxyzm ::= */ yytestcase(yyruleno==53); - case 55: /* extra_pointsxy ::= */ yytestcase(yyruleno==55); - case 57: /* extra_pointsxym ::= */ yytestcase(yyruleno==57); - case 59: /* extra_pointsxyz ::= */ yytestcase(yyruleno==59); - case 61: /* extra_pointsxyzm ::= */ yytestcase(yyruleno==61); - case 80: /* extra_rings ::= */ yytestcase(yyruleno==80); - case 83: /* extra_ringsm ::= */ yytestcase(yyruleno==83); - case 86: /* extra_ringsz ::= */ yytestcase(yyruleno==86); - case 89: /* extra_ringszm ::= */ yytestcase(yyruleno==89); - case 108: /* multilinestring_text2 ::= */ yytestcase(yyruleno==108); - case 111: /* multilinestring_textm2 ::= */ yytestcase(yyruleno==111); - case 114: /* multilinestring_textz2 ::= */ yytestcase(yyruleno==114); - case 117: /* multilinestring_textzm2 ::= */ yytestcase(yyruleno==117); - case 124: /* multipolygon_text2 ::= */ yytestcase(yyruleno==124); - case 127: /* multipolygon_textm2 ::= */ yytestcase(yyruleno==127); - case 130: /* multipolygon_textz2 ::= */ yytestcase(yyruleno==130); - case 133: /* multipolygon_textzm2 ::= */ yytestcase(yyruleno==133); - case 146: /* geocoll_text2 ::= */ yytestcase(yyruleno==146); - case 161: /* geocoll_textm2 ::= */ yytestcase(yyruleno==161); - case 176: /* geocoll_textz2 ::= */ yytestcase(yyruleno==176); - case 191: /* geocoll_textzm2 ::= */ yytestcase(yyruleno==191); -{ yygotominor.yy0 = NULL; } - break; - case 48: /* extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy */ - case 50: /* extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase(yyruleno==50); - case 52: /* extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase(yyruleno==52); - case 54: /* extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase(yyruleno==54); - case 56: /* extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy */ yytestcase(yyruleno==56); - case 58: /* extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym */ yytestcase(yyruleno==58); - case 60: /* extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz */ yytestcase(yyruleno==60); - case 62: /* extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase(yyruleno==62); -{ ((gaiaPointPtr)yymsp[-1].minor.yy0)->Next = (gaiaPointPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 63: /* linestring ::= EWKT_LINESTRING linestring_text */ - case 64: /* linestringm ::= EWKT_LINESTRING_M linestring_textm */ yytestcase(yyruleno==64); - case 65: /* linestringz ::= EWKT_LINESTRING linestring_textz */ yytestcase(yyruleno==65); - case 66: /* linestringzm ::= EWKT_LINESTRING linestring_textzm */ yytestcase(yyruleno==66); -{ yygotominor.yy0 = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)yymsp[0].minor.yy0); } - break; - case 67: /* linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) ewkt_linestring_xy( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 68: /* linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) ewkt_linestring_xym( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 69: /* linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) ewkt_linestring_xyz( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 70: /* linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) ewkt_linestring_xyzm( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 71: /* polygon ::= EWKT_POLYGON polygon_text */ - case 72: /* polygonm ::= EWKT_POLYGON_M polygon_textm */ yytestcase(yyruleno==72); - case 73: /* polygonz ::= EWKT_POLYGON polygon_textz */ yytestcase(yyruleno==73); - case 74: /* polygonzm ::= EWKT_POLYGON polygon_textzm */ yytestcase(yyruleno==74); -{ yygotominor.yy0 = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)yymsp[0].minor.yy0); } - break; - case 75: /* polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_polygon_xy( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 76: /* polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_polygon_xym( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 77: /* polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_polygon_xyz( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 78: /* polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_polygon_xyzm( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 79: /* ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_ring_xy( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 81: /* extra_rings ::= EWKT_COMMA ring extra_rings */ - case 84: /* extra_ringsm ::= EWKT_COMMA ringm extra_ringsm */ yytestcase(yyruleno==84); - case 87: /* extra_ringsz ::= EWKT_COMMA ringz extra_ringsz */ yytestcase(yyruleno==87); - case 90: /* extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm */ yytestcase(yyruleno==90); -{ - ((gaiaRingPtr)yymsp[-1].minor.yy0)->Next = (gaiaRingPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 82: /* ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_ring_xym( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 85: /* ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_ring_xyz( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 88: /* ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_ring_xyzm( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 95: /* multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ - case 99: /* multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==99); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipoint_xy( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 96: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ - case 100: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==100); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipoint_xym( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 97: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ - case 101: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==101); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipoint_xyz( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 98: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ - case 102: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==102); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipoint_xyzm( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 107: /* multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multilinestring_xy( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 109: /* multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2 */ - case 112: /* multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2 */ yytestcase(yyruleno==112); - case 115: /* multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2 */ yytestcase(yyruleno==115); - case 118: /* multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase(yyruleno==118); -{ ((gaiaLinestringPtr)yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 110: /* multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multilinestring_xym( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 113: /* multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multilinestring_xyz( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 116: /* multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multilinestring_xyzm( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 123: /* multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipolygon_xy( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 125: /* multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2 */ - case 128: /* multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2 */ yytestcase(yyruleno==128); - case 131: /* multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2 */ yytestcase(yyruleno==131); - case 134: /* multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase(yyruleno==134); -{ ((gaiaPolygonPtr)yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 126: /* multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipolygon_xym( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 129: /* multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipolygon_xyz( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 132: /* multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_multipolygon_xyzm( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 139: /* geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET */ - case 140: /* geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==140); - case 141: /* geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==141); - case 142: /* geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==142); - case 143: /* geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==143); - case 144: /* geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==144); - case 145: /* geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==145); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 147: /* geocoll_text2 ::= EWKT_COMMA point geocoll_text2 */ - case 148: /* geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2 */ yytestcase(yyruleno==148); - case 149: /* geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2 */ yytestcase(yyruleno==149); - case 150: /* geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2 */ yytestcase(yyruleno==150); - case 151: /* geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2 */ yytestcase(yyruleno==151); - case 152: /* geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2 */ yytestcase(yyruleno==152); - case 153: /* geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase(yyruleno==153); - case 162: /* geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2 */ yytestcase(yyruleno==162); - case 163: /* geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2 */ yytestcase(yyruleno==163); - case 164: /* geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2 */ yytestcase(yyruleno==164); - case 165: /* geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2 */ yytestcase(yyruleno==165); - case 166: /* geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2 */ yytestcase(yyruleno==166); - case 167: /* geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2 */ yytestcase(yyruleno==167); - case 168: /* geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase(yyruleno==168); - case 177: /* geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2 */ yytestcase(yyruleno==177); - case 178: /* geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2 */ yytestcase(yyruleno==178); - case 179: /* geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2 */ yytestcase(yyruleno==179); - case 180: /* geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2 */ yytestcase(yyruleno==180); - case 181: /* geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2 */ yytestcase(yyruleno==181); - case 182: /* geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2 */ yytestcase(yyruleno==182); - case 183: /* geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 */ yytestcase(yyruleno==183); - case 192: /* geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2 */ yytestcase(yyruleno==192); - case 193: /* geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2 */ yytestcase(yyruleno==193); - case 194: /* geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2 */ yytestcase(yyruleno==194); - case 195: /* geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2 */ yytestcase(yyruleno==195); - case 196: /* geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2 */ yytestcase(yyruleno==196); - case 197: /* geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2 */ yytestcase(yyruleno==197); - case 198: /* geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 */ yytestcase(yyruleno==198); -{ - ((gaiaGeomCollPtr)yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 154: /* geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET */ - case 155: /* geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==155); - case 156: /* geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==156); - case 157: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==157); - case 158: /* geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==158); - case 159: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==159); - case 160: /* geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==160); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 169: /* geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET */ - case 170: /* geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==170); - case 171: /* geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==171); - case 172: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==172); - case 173: /* geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==173); - case 174: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==174); - case 175: /* geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==175); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 184: /* geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ - case 185: /* geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==185); - case 186: /* geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==186); - case 187: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==187); - case 188: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==188); - case 189: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==189); - case 190: /* geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase(yyruleno==190); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; + switch (yyruleno) + { + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 6: /* geo_text ::= point */ + case 7: /* geo_text ::= pointz */ + yytestcase (yyruleno == 7); + case 8: /* geo_text ::= pointzm */ + yytestcase (yyruleno == 8); + case 9: /* geo_text ::= linestring */ + yytestcase (yyruleno == 9); + case 10: /* geo_text ::= linestringz */ + yytestcase (yyruleno == 10); + case 11: /* geo_text ::= linestringzm */ + yytestcase (yyruleno == 11); + case 12: /* geo_text ::= polygon */ + yytestcase (yyruleno == 12); + case 13: /* geo_text ::= polygonz */ + yytestcase (yyruleno == 13); + case 14: /* geo_text ::= polygonzm */ + yytestcase (yyruleno == 14); + case 15: /* geo_text ::= multipoint */ + yytestcase (yyruleno == 15); + case 16: /* geo_text ::= multipointz */ + yytestcase (yyruleno == 16); + case 17: /* geo_text ::= multipointzm */ + yytestcase (yyruleno == 17); + case 18: /* geo_text ::= multilinestring */ + yytestcase (yyruleno == 18); + case 19: /* geo_text ::= multilinestringz */ + yytestcase (yyruleno == 19); + case 20: /* geo_text ::= multilinestringzm */ + yytestcase (yyruleno == 20); + case 21: /* geo_text ::= multipolygon */ + yytestcase (yyruleno == 21); + case 22: /* geo_text ::= multipolygonz */ + yytestcase (yyruleno == 22); + case 23: /* geo_text ::= multipolygonzm */ + yytestcase (yyruleno == 23); + case 24: /* geo_text ::= geocoll */ + yytestcase (yyruleno == 24); + case 25: /* geo_text ::= geocollz */ + yytestcase (yyruleno == 25); + case 26: /* geo_text ::= geocollzm */ + yytestcase (yyruleno == 26); + case 27: /* geo_textm ::= pointm */ + yytestcase (yyruleno == 27); + case 28: /* geo_textm ::= linestringm */ + yytestcase (yyruleno == 28); + case 29: /* geo_textm ::= polygonm */ + yytestcase (yyruleno == 29); + case 30: /* geo_textm ::= multipointm */ + yytestcase (yyruleno == 30); + case 31: /* geo_textm ::= multilinestringm */ + yytestcase (yyruleno == 31); + case 32: /* geo_textm ::= multipolygonm */ + yytestcase (yyruleno == 32); + case 33: /* geo_textm ::= geocollm */ + yytestcase (yyruleno == 33); + { + p_data->result = yymsp[0].minor.yy0; + } + break; + case 34: /* point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET */ + case 35: /* pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 35); + case 37: /* pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 37); + { + yygotominor.yy0 = + ewkt_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor.yy0); + } + break; + case 36: /* pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET */ + { + yygotominor.yy0 = + ewkt_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor.yy0); + } + break; + case 38: /* point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) ewkt_point_xy (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 39: /* point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) ewkt_point_xym (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 40: /* point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) ewkt_point_xyz (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 41: /* point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) ewkt_point_xyzm (p_data, + (double *) yymsp[-4].minor.yy0, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 42: /* point_coordxy ::= coord coord */ + { + yygotominor.yy0 = + (void *) ewkt_point_xy (p_data, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 43: /* point_coordxym ::= coord coord coord */ + { + yygotominor.yy0 = + (void *) ewkt_point_xym (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 44: /* point_coordxyz ::= coord coord coord */ + { + yygotominor.yy0 = + (void *) ewkt_point_xyz (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 45: /* point_coordxyzm ::= coord coord coord coord */ + { + yygotominor.yy0 = + (void *) ewkt_point_xyzm (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 46: /* coord ::= EWKT_NUM */ + case 91: /* multipoint ::= EWKT_MULTIPOINT multipoint_text */ + yytestcase (yyruleno == 91); + case 92: /* multipointm ::= EWKT_MULTIPOINT_M multipoint_textm */ + yytestcase (yyruleno == 92); + case 93: /* multipointz ::= EWKT_MULTIPOINT multipoint_textz */ + yytestcase (yyruleno == 93); + case 94: /* multipointzm ::= EWKT_MULTIPOINT multipoint_textzm */ + yytestcase (yyruleno == 94); + case 103: /* multilinestring ::= EWKT_MULTILINESTRING multilinestring_text */ + yytestcase (yyruleno == 103); + case 104: /* multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm */ + yytestcase (yyruleno == 104); + case 105: /* multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz */ + yytestcase (yyruleno == 105); + case 106: /* multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm */ + yytestcase (yyruleno == 106); + case 119: /* multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text */ + yytestcase (yyruleno == 119); + case 120: /* multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm */ + yytestcase (yyruleno == 120); + case 121: /* multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz */ + yytestcase (yyruleno == 121); + case 122: /* multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm */ + yytestcase (yyruleno == 122); + case 135: /* geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text */ + yytestcase (yyruleno == 135); + case 136: /* geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm */ + yytestcase (yyruleno == 136); + case 137: /* geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz */ + yytestcase (yyruleno == 137); + case 138: /* geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm */ + yytestcase (yyruleno == 138); + { + yygotominor.yy0 = yymsp[0].minor.yy0; + } + break; + case 47: /* extra_brkt_pointsxy ::= */ + case 49: /* extra_brkt_pointsxym ::= */ + yytestcase (yyruleno == 49); + case 51: /* extra_brkt_pointsxyz ::= */ + yytestcase (yyruleno == 51); + case 53: /* extra_brkt_pointsxyzm ::= */ + yytestcase (yyruleno == 53); + case 55: /* extra_pointsxy ::= */ + yytestcase (yyruleno == 55); + case 57: /* extra_pointsxym ::= */ + yytestcase (yyruleno == 57); + case 59: /* extra_pointsxyz ::= */ + yytestcase (yyruleno == 59); + case 61: /* extra_pointsxyzm ::= */ + yytestcase (yyruleno == 61); + case 80: /* extra_rings ::= */ + yytestcase (yyruleno == 80); + case 83: /* extra_ringsm ::= */ + yytestcase (yyruleno == 83); + case 86: /* extra_ringsz ::= */ + yytestcase (yyruleno == 86); + case 89: /* extra_ringszm ::= */ + yytestcase (yyruleno == 89); + case 108: /* multilinestring_text2 ::= */ + yytestcase (yyruleno == 108); + case 111: /* multilinestring_textm2 ::= */ + yytestcase (yyruleno == 111); + case 114: /* multilinestring_textz2 ::= */ + yytestcase (yyruleno == 114); + case 117: /* multilinestring_textzm2 ::= */ + yytestcase (yyruleno == 117); + case 124: /* multipolygon_text2 ::= */ + yytestcase (yyruleno == 124); + case 127: /* multipolygon_textm2 ::= */ + yytestcase (yyruleno == 127); + case 130: /* multipolygon_textz2 ::= */ + yytestcase (yyruleno == 130); + case 133: /* multipolygon_textzm2 ::= */ + yytestcase (yyruleno == 133); + case 146: /* geocoll_text2 ::= */ + yytestcase (yyruleno == 146); + case 161: /* geocoll_textm2 ::= */ + yytestcase (yyruleno == 161); + case 176: /* geocoll_textz2 ::= */ + yytestcase (yyruleno == 176); + case 191: /* geocoll_textzm2 ::= */ + yytestcase (yyruleno == 191); + { + yygotominor.yy0 = NULL; + } + break; + case 48: /* extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy */ + case 50: /* extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym */ + yytestcase (yyruleno == 50); + case 52: /* extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ + yytestcase (yyruleno == 52); + case 54: /* extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ + yytestcase (yyruleno == 54); + case 56: /* extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy */ + yytestcase (yyruleno == 56); + case 58: /* extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym */ + yytestcase (yyruleno == 58); + case 60: /* extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz */ + yytestcase (yyruleno == 60); + case 62: /* extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm */ + yytestcase (yyruleno == 62); + { + ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPointPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 63: /* linestring ::= EWKT_LINESTRING linestring_text */ + case 64: /* linestringm ::= EWKT_LINESTRING_M linestring_textm */ + yytestcase (yyruleno == 64); + case 65: /* linestringz ::= EWKT_LINESTRING linestring_textz */ + yytestcase (yyruleno == 65); + case 66: /* linestringzm ::= EWKT_LINESTRING linestring_textzm */ + yytestcase (yyruleno == 66); + { + yygotominor.yy0 = + ewkt_buildGeomFromLinestring (p_data, + (gaiaLinestringPtr) + yymsp[0].minor.yy0); + } + break; + case 67: /* linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_linestring_xy (p_data, + (gaiaPointPtr) yymsp[-4].minor. + yy0); + } + break; + case 68: /* linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_linestring_xym (p_data, + (gaiaPointPtr) yymsp[-4].minor. + yy0); + } + break; + case 69: /* linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_linestring_xyz (p_data, + (gaiaPointPtr) yymsp[-4].minor. + yy0); + } + break; + case 70: /* linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_linestring_xyzm (p_data, + (gaiaPointPtr) yymsp[-4].minor. + yy0); + } + break; + case 71: /* polygon ::= EWKT_POLYGON polygon_text */ + case 72: /* polygonm ::= EWKT_POLYGON_M polygon_textm */ + yytestcase (yyruleno == 72); + case 73: /* polygonz ::= EWKT_POLYGON polygon_textz */ + yytestcase (yyruleno == 73); + case 74: /* polygonzm ::= EWKT_POLYGON polygon_textzm */ + yytestcase (yyruleno == 74); + { + yygotominor.yy0 = + ewkt_buildGeomFromPolygon (p_data, + (gaiaPolygonPtr) yymsp[0].minor. + yy0); + } + break; + case 75: /* polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_polygon_xy (p_data, + (gaiaRingPtr) yymsp[-2].minor.yy0); + } + break; + case 76: /* polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_polygon_xym (p_data, + (gaiaRingPtr) yymsp[-2].minor.yy0); + } + break; + case 77: /* polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_polygon_xyz (p_data, + (gaiaRingPtr) yymsp[-2].minor.yy0); + } + break; + case 78: /* polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_polygon_xyzm (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 79: /* ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_ring_xy (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 81: /* extra_rings ::= EWKT_COMMA ring extra_rings */ + case 84: /* extra_ringsm ::= EWKT_COMMA ringm extra_ringsm */ + yytestcase (yyruleno == 84); + case 87: /* extra_ringsz ::= EWKT_COMMA ringz extra_ringsz */ + yytestcase (yyruleno == 87); + case 90: /* extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm */ + yytestcase (yyruleno == 90); + { + ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = + (gaiaRingPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 82: /* ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_ring_xym (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 85: /* ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_ring_xyz (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 88: /* ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_ring_xyzm (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 95: /* multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ + case 99: /* multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 99); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipoint_xy (p_data, + (gaiaPointPtr) yymsp[-2].minor. + yy0); + } + break; + case 96: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ + case 100: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 100); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipoint_xym (p_data, + (gaiaPointPtr) yymsp[-2].minor. + yy0); + } + break; + case 97: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ + case 101: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 101); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipoint_xyz (p_data, + (gaiaPointPtr) yymsp[-2].minor. + yy0); + } + break; + case 98: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ + case 102: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 102); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipoint_xyzm (p_data, + (gaiaPointPtr) yymsp[-2].minor. + yy0); + } + break; + case 107: /* multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multilinestring_xy (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 109: /* multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2 */ + case 112: /* multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2 */ + yytestcase (yyruleno == 112); + case 115: /* multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2 */ + yytestcase (yyruleno == 115); + case 118: /* multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2 */ + yytestcase (yyruleno == 118); + { + ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 110: /* multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multilinestring_xym (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 113: /* multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multilinestring_xyz (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 116: /* multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multilinestring_xyzm (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 123: /* multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipolygon_xy (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 125: /* multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2 */ + case 128: /* multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2 */ + yytestcase (yyruleno == 128); + case 131: /* multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2 */ + yytestcase (yyruleno == 131); + case 134: /* multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2 */ + yytestcase (yyruleno == 134); + { + ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 126: /* multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipolygon_xym (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 129: /* multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipolygon_xyz (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 132: /* multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_multipolygon_xyzm (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 139: /* geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET */ + case 140: /* geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 140); + case 141: /* geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 141); + case 142: /* geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 142); + case 143: /* geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 143); + case 144: /* geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 144); + case 145: /* geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 145); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_geomColl_xy (p_data, + (gaiaGeomCollPtr) yymsp[-2].minor. + yy0); + } + break; + case 147: /* geocoll_text2 ::= EWKT_COMMA point geocoll_text2 */ + case 148: /* geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2 */ + yytestcase (yyruleno == 148); + case 149: /* geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2 */ + yytestcase (yyruleno == 149); + case 150: /* geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2 */ + yytestcase (yyruleno == 150); + case 151: /* geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2 */ + yytestcase (yyruleno == 151); + case 152: /* geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2 */ + yytestcase (yyruleno == 152); + case 153: /* geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ + yytestcase (yyruleno == 153); + case 162: /* geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2 */ + yytestcase (yyruleno == 162); + case 163: /* geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2 */ + yytestcase (yyruleno == 163); + case 164: /* geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2 */ + yytestcase (yyruleno == 164); + case 165: /* geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2 */ + yytestcase (yyruleno == 165); + case 166: /* geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2 */ + yytestcase (yyruleno == 166); + case 167: /* geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2 */ + yytestcase (yyruleno == 167); + case 168: /* geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ + yytestcase (yyruleno == 168); + case 177: /* geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2 */ + yytestcase (yyruleno == 177); + case 178: /* geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2 */ + yytestcase (yyruleno == 178); + case 179: /* geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2 */ + yytestcase (yyruleno == 179); + case 180: /* geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2 */ + yytestcase (yyruleno == 180); + case 181: /* geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2 */ + yytestcase (yyruleno == 181); + case 182: /* geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2 */ + yytestcase (yyruleno == 182); + case 183: /* geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 */ + yytestcase (yyruleno == 183); + case 192: /* geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2 */ + yytestcase (yyruleno == 192); + case 193: /* geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2 */ + yytestcase (yyruleno == 193); + case 194: /* geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2 */ + yytestcase (yyruleno == 194); + case 195: /* geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2 */ + yytestcase (yyruleno == 195); + case 196: /* geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2 */ + yytestcase (yyruleno == 196); + case 197: /* geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2 */ + yytestcase (yyruleno == 197); + case 198: /* geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 */ + yytestcase (yyruleno == 198); + { + ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 154: /* geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET */ + case 155: /* geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 155); + case 156: /* geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 156); + case 157: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 157); + case 158: /* geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 158); + case 159: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 159); + case 160: /* geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 160); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_geomColl_xym (p_data, + (gaiaGeomCollPtr) yymsp[-2].minor. + yy0); + } + break; + case 169: /* geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET */ + case 170: /* geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 170); + case 171: /* geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 171); + case 172: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 172); + case 173: /* geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 173); + case 174: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 174); + case 175: /* geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 175); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_geomColl_xyz (p_data, + (gaiaGeomCollPtr) yymsp[-2].minor. + yy0); + } + break; + case 184: /* geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + case 185: /* geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 185); + case 186: /* geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 186); + case 187: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 187); + case 188: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 188); + case 189: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 189); + case 190: /* geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ + yytestcase (yyruleno == 190); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) ewkt_geomColl_xyzm (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; default: - /* (0) main ::= in */ yytestcase(yyruleno==0); - /* (1) in ::= */ yytestcase(yyruleno==1); - /* (2) in ::= in state EWKT_NEWLINE */ yytestcase(yyruleno==2); - /* (3) state ::= program */ yytestcase(yyruleno==3); - /* (4) program ::= geo_text */ yytestcase(yyruleno==4); - /* (5) program ::= geo_textm */ yytestcase(yyruleno==5); - break; - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ + /* (0) main ::= in */ yytestcase (yyruleno == 0); + /* (1) in ::= */ yytestcase (yyruleno == 1); + /* (2) in ::= in state EWKT_NEWLINE */ yytestcase (yyruleno == 2); + /* (3) state ::= program */ yytestcase (yyruleno == 3); + /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); + /* (5) program ::= geo_textm */ yytestcase (yyruleno == 5); + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); + if (yyact < YYNSTATE) + { #ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if (yysize) + { + yypParser->yyidx++; + yymsp -= yysize - 1; + yymsp->stateno = (YYACTIONTYPE) yyact; + yymsp->major = (YYCODETYPE) yygoto; + yymsp->minor = yygotominor; + } + else #endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } + { + yy_shift (yypParser, yyact, yygoto, &yygotominor); + } + } + else + { + assert (yyact == YYNSTATE + YYNRULE + 1); + yy_accept (yypParser); + } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_parse_failed (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; +static void +yy_syntax_error (yyParser * yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ + ) +{ + ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ - p_data->ewkt_parse_error = 1; - p_data->result = NULL; - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + p_data->ewkt_parse_error = 1; + p_data->result = NULL; + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_accept (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -1799,153 +2518,179 @@ static void yy_accept( ** Outputs: ** None. */ -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ +void +Parse (void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ + ) +{ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser *) yyp; + if (yypParser->yyidx < 0) + { #if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } + if (yypParser->yystksz <= 0) + { + /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ + yyminorunion = yyzerominor; + yyStackOverflow (yypParser, &yyminorunion); + return; + } #endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor == 0); + ParseARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, + yyTokenName[yymajor]); + } #endif - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyactyyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); + do + { + yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); + if (yyact < YYNSTATE) + { + assert (!yyendofinput); /* Impossible to shift the $ token */ + yy_shift (yypParser, yyact, yymajor, &yyminorunion); + yypParser->yyerrcnt--; + yymajor = YYNOCODE; + } + else if (yyact < YYNSTATE + YYNRULE) + { + yy_reduce (yypParser, yyact - YYNSTATE); + } + else + { + assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL - int yymx; + int yymx; #endif #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); + } #endif #ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if (yypParser->yyerrcnt < 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if (yymx == YYERRORSYMBOL || yyerrorhit) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sDiscard input token %s\n", + yyTracePrompt, yyTokenName[yymajor]); + } #endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yymajor = YYNOCODE; + } + else + { + while (yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = + yy_find_reduce_action (yypParser->yystack + [yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= + YYNSTATE) + { + yy_pop_parser_stack (yypParser); + } + if (yypParser->yyidx < 0 || yymajor == 0) + { + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yy_parse_failed (yypParser); + yymajor = YYNOCODE; + } + else if (yymx != YYERRORSYMBOL) + { + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error (yypParser, yymajor, yyminorunion); + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if (yypParser->yyerrcnt <= 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + if (yyendofinput) + { + yy_parse_failed (yypParser); + } + yymajor = YYNOCODE; #endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; + } + } + while (yymajor != YYNOCODE && yypParser->yyidx >= 0); + return; } diff --git a/src/spatialite/src/gaiageo/Gml.c b/src/spatialite/src/gaiageo/Gml.c index 13e39da..9a3daa5 100644 --- a/src/spatialite/src/gaiageo/Gml.c +++ b/src/spatialite/src/gaiageo/Gml.c @@ -18,7 +18,7 @@ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE -# define INTERFACE 1 +#define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -58,17 +58,18 @@ #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * -typedef union { - int yyinit; - ParseTOKENTYPE yy0; +typedef union +{ + int yyinit; + ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct gml_data *p_data ; -#define ParseARG_PDECL , struct gml_data *p_data -#define ParseARG_FETCH struct gml_data *p_data = yypParser->p_data -#define ParseARG_STORE yypParser->p_data = p_data +#define ParseARG_PDECL , struct gml_data *p_data +#define ParseARG_FETCH struct gml_data *p_data = yypParser->p_data +#define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) @@ -88,7 +89,7 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** for testing. */ #ifndef yytestcase -# define yytestcase(X) +#define yytestcase(X) #endif @@ -140,43 +141,48 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, - /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, - /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, - /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, - /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, - /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, - /* 60 */ 39, 44, 24, + /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, + /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, + /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, + /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, + /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, + /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, + /* 60 */ 39, 44, 24, }; + static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, - /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, - /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, - /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, - /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, - /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, - /* 60 */ 3, 3, 6, + /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, + /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, + /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, + /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, + /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, + /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, + /* 60 */ 3, 3, 6, }; + #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { - /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, - /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, - /* 20 */ 54, 53, 55, 56, 52, 57, 58, + /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, + /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, + /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; + #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { - /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, - /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, + /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, + /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; + static const YYACTIONTYPE yy_default[] = { - /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, - /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, - /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, - /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, - /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, + /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, + /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, + /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, + /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, + /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; + #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct @@ -206,29 +212,31 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ +struct yyStackEntry +{ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ +struct yyParser +{ + int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ + int yyidxMax; /* Maximum value of yyidx */ #endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ + int yyerrcnt; /* Shifts left before out of the error */ + ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ #else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; @@ -257,25 +265,29 @@ static char *yyTracePrompt = 0; ** Outputs: ** None. */ -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; +void +ParseTrace (FILE * TraceFILE, char *zTracePrompt) +{ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if (yyTraceFILE == 0) + yyTracePrompt = 0; + else if (yyTracePrompt == 0) + yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { - "$", "GML_NEWLINE", "GML_END", "GML_CLOSE", - "GML_OPEN", "GML_KEYWORD", "GML_EQ", "GML_VALUE", - "GML_COORD", "error", "main", "in", - "state", "program", "gml_tree", "node", - "node_chain", "open_tag", "attr", "attributes", - "coord", "coord_chain", "close_tag", "keyword", - "extra_nodes", "extra_attr", "extra_coord", +static const char *const yyTokenName[] = { + "$", "GML_NEWLINE", "GML_END", "GML_CLOSE", + "GML_OPEN", "GML_KEYWORD", "GML_EQ", "GML_VALUE", + "GML_COORD", "error", "main", "in", + "state", "program", "gml_tree", "node", + "node_chain", "open_tag", "attr", "attributes", + "coord", "coord_chain", "close_tag", "keyword", + "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ @@ -283,40 +295,40 @@ static const char *const yyTokenName[] = { /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { - /* 0 */ "main ::= in", - /* 1 */ "in ::=", - /* 2 */ "in ::= in state GML_NEWLINE", - /* 3 */ "state ::= program", - /* 4 */ "program ::= gml_tree", - /* 5 */ "gml_tree ::= node", - /* 6 */ "gml_tree ::= node_chain", - /* 7 */ "node ::= open_tag GML_END GML_CLOSE", - /* 8 */ "node ::= open_tag attr GML_END GML_CLOSE", - /* 9 */ "node ::= open_tag attributes GML_END GML_CLOSE", - /* 10 */ "node ::= open_tag GML_CLOSE", - /* 11 */ "node ::= open_tag attr GML_CLOSE", - /* 12 */ "node ::= open_tag attributes GML_CLOSE", - /* 13 */ "node ::= open_tag GML_CLOSE coord", - /* 14 */ "node ::= open_tag GML_CLOSE coord_chain", - /* 15 */ "node ::= open_tag attr GML_CLOSE coord", - /* 16 */ "node ::= open_tag attr GML_CLOSE coord_chain", - /* 17 */ "node ::= open_tag attributes GML_CLOSE coord", - /* 18 */ "node ::= open_tag attributes GML_CLOSE coord_chain", - /* 19 */ "node ::= close_tag", - /* 20 */ "open_tag ::= GML_OPEN keyword", - /* 21 */ "close_tag ::= GML_OPEN GML_END keyword GML_CLOSE", - /* 22 */ "keyword ::= GML_KEYWORD", - /* 23 */ "extra_nodes ::=", - /* 24 */ "extra_nodes ::= node extra_nodes", - /* 25 */ "node_chain ::= node node extra_nodes", - /* 26 */ "attr ::= GML_KEYWORD GML_EQ GML_VALUE", - /* 27 */ "extra_attr ::=", - /* 28 */ "extra_attr ::= attr extra_attr", - /* 29 */ "attributes ::= attr attr extra_attr", - /* 30 */ "coord ::= GML_COORD", - /* 31 */ "extra_coord ::=", - /* 32 */ "extra_coord ::= coord extra_coord", - /* 33 */ "coord_chain ::= coord coord extra_coord", + /* 0 */ "main ::= in", + /* 1 */ "in ::=", + /* 2 */ "in ::= in state GML_NEWLINE", + /* 3 */ "state ::= program", + /* 4 */ "program ::= gml_tree", + /* 5 */ "gml_tree ::= node", + /* 6 */ "gml_tree ::= node_chain", + /* 7 */ "node ::= open_tag GML_END GML_CLOSE", + /* 8 */ "node ::= open_tag attr GML_END GML_CLOSE", + /* 9 */ "node ::= open_tag attributes GML_END GML_CLOSE", + /* 10 */ "node ::= open_tag GML_CLOSE", + /* 11 */ "node ::= open_tag attr GML_CLOSE", + /* 12 */ "node ::= open_tag attributes GML_CLOSE", + /* 13 */ "node ::= open_tag GML_CLOSE coord", + /* 14 */ "node ::= open_tag GML_CLOSE coord_chain", + /* 15 */ "node ::= open_tag attr GML_CLOSE coord", + /* 16 */ "node ::= open_tag attr GML_CLOSE coord_chain", + /* 17 */ "node ::= open_tag attributes GML_CLOSE coord", + /* 18 */ "node ::= open_tag attributes GML_CLOSE coord_chain", + /* 19 */ "node ::= close_tag", + /* 20 */ "open_tag ::= GML_OPEN keyword", + /* 21 */ "close_tag ::= GML_OPEN GML_END keyword GML_CLOSE", + /* 22 */ "keyword ::= GML_KEYWORD", + /* 23 */ "extra_nodes ::=", + /* 24 */ "extra_nodes ::= node extra_nodes", + /* 25 */ "node_chain ::= node node extra_nodes", + /* 26 */ "attr ::= GML_KEYWORD GML_EQ GML_VALUE", + /* 27 */ "extra_attr ::=", + /* 28 */ "extra_attr ::= attr extra_attr", + /* 29 */ "attributes ::= attr attr extra_attr", + /* 30 */ "coord ::= GML_COORD", + /* 31 */ "extra_coord ::=", + /* 32 */ "extra_coord ::= coord extra_coord", + /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ @@ -325,22 +337,26 @@ static const char *const yyRuleName[] = { /* ** Try to increase the size of the parser stack. */ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; +static void +yyGrowStack (yyParser * p) +{ + int newSize; + yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; + newSize = p->yystksz * 2 + 100; + pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); + if (pNew) + { + p->yystack = pNew; + p->yystksz = newSize; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", + yyTracePrompt, p->yystksz); + } #endif - } + } } #endif @@ -356,21 +372,24 @@ static void yyGrowStack(yyParser *p){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); - if( pParser ){ - pParser->yyidx = -1; +void * +ParseAlloc (void *(*mallocProc) (size_t)) +{ + yyParser *pParser; + pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); + if (pParser) + { + pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; + pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); + pParser->yystack = NULL; + pParser->yystksz = 0; + yyGrowStack (pParser); #endif - } - return pParser; + } + return pParser; } /* The following function deletes the value associated with a @@ -378,24 +397,27 @@ void *ParseAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } +static void +yy_destructor (yyParser * yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE * yypminor /* The object to be destroyed */ + ) +{ + switch (yymajor) + { + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + default: + break; /* If no destructor action specified: do nothing */ + } } /* @@ -406,22 +428,25 @@ static void yy_destructor( ** ** Return the major token number for the symbol popped. */ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int +yy_pop_parser_stack (yyParser * pParser) +{ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - if( pParser->yyidx<0 ) return 0; + if (pParser->yyidx < 0) + return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } + if (yyTraceFILE && pParser->yyidx >= 0) + { + fprintf (yyTraceFILE, "%sPopping %s\n", + yyTracePrompt, yyTokenName[yytos->major]); + } #endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + yymajor = yytos->major; + yy_destructor (pParser, yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; } /* @@ -436,26 +461,31 @@ static int yy_pop_parser_stack(yyParser *pParser){ ** from malloc. ** */ -void ParseFree( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); +void +ParseFree (void *p, /* The parser to be deleted */ + void (*freeProc) (void *) /* Function used to reclaim memory */ + ) +{ + yyParser *pParser = (yyParser *) p; + if (pParser == 0) + return; + while (pParser->yyidx >= 0) + yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 - free(pParser->yystack); + free (pParser->yystack); #endif - (*freeProc)((void*)pParser); + (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH -int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; +int +ParseStackPeak (void *p) +{ + yyParser *pParser = (yyParser *) p; + return pParser->yyidxMax; } #endif @@ -467,52 +497,66 @@ int ParseStackPeak(void *p){ ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ +static int +yy_find_shift_action (yyParser * pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if (stateno > YY_SHIFT_MAX + || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) + { + return yy_default[stateno]; + } + assert (iLookAhead != YYNOCODE); + i += iLookAhead; + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + if (iLookAhead > 0) + { #ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[iFallback]); + } #endif - return yy_find_shift_action(pParser, iFallback); - } + return yy_find_shift_action (pParser, iFallback); + } #endif #ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j= 0 && j < YY_SZ_ACTTAB + && yy_lookahead[j] == YYWILDCARD) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } #endif /* NDEBUG */ - return yy_action[j]; - } - } + return yy_action[j]; + } + } #endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } + } + return yy_default[stateno]; + } + else + { + return yy_action[i]; + } } /* @@ -523,363 +567,498 @@ static int yy_find_shift_action( ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; +static int +yy_find_reduce_action (int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ - return yy_default[stateno]; - } + if (stateno > YY_REDUCE_MAX) + { + return yy_default[stateno]; + } #else - assert( stateno<=YY_REDUCE_MAX ); + assert (stateno <= YY_REDUCE_MAX); #endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; + i = yy_reduce_ofst[stateno]; + assert (i != YY_REDUCE_USE_DFLT); + assert (iLookAhead != YYNOCODE); + i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + return yy_default[stateno]; + } #else - assert( i>=0 && i= 0 && i < YY_SZ_ACTTAB); + assert (yy_lookahead[i] == iLookAhead); #endif - return yy_action[i]; + return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ -static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ - ParseARG_FETCH; - yypParser->yyidx--; +static void +yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) +{ + ParseARG_FETCH; + yypParser->yyidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ - spatialite_e( "Giving up. Parser stack overflow\n"); - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ + spatialite_e ("Giving up. Parser stack overflow\n"); + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; +static void +yy_shift (yyParser * yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ + ) +{ + yyStackEntry *yytos; + yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } + if (yypParser->yyidx > yypParser->yyidxMax) + { + yypParser->yyidxMax = yypParser->yyidx; + } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } +#if YYSTACKDEPTH>0 + if (yypParser->yyidx >= YYSTACKDEPTH) + { + yyStackOverflow (yypParser, yypMinor); + return; + } #else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } + if (yypParser->yyidx >= yypParser->yystksz) + { + yyGrowStack (yypParser); + if (yypParser->yyidx >= yypParser->yystksz) + { + yyStackOverflow (yypParser, yypMinor); + return; + } + } #endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = (YYACTIONTYPE) yyNewState; + yytos->major = (YYCODETYPE) yyMajor; + yytos->minor = *yypMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } + if (yyTraceFILE && yypParser->yyidx > 0) + { + int i; + fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); + fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); + for (i = 1; i <= yypParser->yyidx; i++) + fprintf (yyTraceFILE, " %s", + yyTokenName[yypParser->yystack[i].major]); + fprintf (yyTraceFILE, "\n"); + } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { - { 10, 1 }, - { 11, 0 }, - { 11, 3 }, - { 12, 1 }, - { 13, 1 }, - { 14, 1 }, - { 14, 1 }, - { 15, 3 }, - { 15, 4 }, - { 15, 4 }, - { 15, 2 }, - { 15, 3 }, - { 15, 3 }, - { 15, 3 }, - { 15, 3 }, - { 15, 4 }, - { 15, 4 }, - { 15, 4 }, - { 15, 4 }, - { 15, 1 }, - { 17, 2 }, - { 22, 4 }, - { 23, 1 }, - { 24, 0 }, - { 24, 2 }, - { 16, 3 }, - { 18, 3 }, - { 25, 0 }, - { 25, 2 }, - { 19, 3 }, - { 20, 1 }, - { 26, 0 }, - { 26, 2 }, - { 21, 3 }, -}; +static const struct +{ + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = +{ + { + 10, 1}, + { + 11, 0}, + { + 11, 3}, + { + 12, 1}, + { + 13, 1}, + { + 14, 1}, + { + 14, 1}, + { + 15, 3}, + { + 15, 4}, + { + 15, 4}, + { + 15, 2}, + { + 15, 3}, + { + 15, 3}, + { + 15, 3}, + { + 15, 3}, + { + 15, 4}, + { + 15, 4}, + { + 15, 4}, + { + 15, 4}, + { + 15, 1}, + { + 17, 2}, + { + 22, 4}, + { + 23, 1}, + { + 24, 0}, + { + 24, 2}, + { + 16, 3}, + { + 18, 3}, + { + 25, 0}, + { + 25, 2}, + { + 19, 3}, + { + 20, 1}, + { + 26, 0}, + { + 26, 2}, + { +21, 3},}; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; +static void +yy_reduce (yyParser * yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ + ) +{ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } + if (yyTraceFILE && yyruleno >= 0 + && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) + { + fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } #endif /* NDEBUG */ - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&yygotominor, 0, sizeof(yygotominor)); */ + yygotominor = yyzerominor; - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line - ** { ... } // User supplied code - ** #line - ** break; - */ - case 5: /* gml_tree ::= node */ - case 6: /* gml_tree ::= node_chain */ yytestcase(yyruleno==6); -{ p_data->result = yymsp[0].minor.yy0; } - break; - case 7: /* node ::= open_tag GML_END GML_CLOSE */ -{ yygotominor.yy0 = gml_createSelfClosedNode( p_data, (void *)yymsp[-2].minor.yy0, NULL); } - break; - case 8: /* node ::= open_tag attr GML_END GML_CLOSE */ - case 9: /* node ::= open_tag attributes GML_END GML_CLOSE */ yytestcase(yyruleno==9); -{ yygotominor.yy0 = gml_createSelfClosedNode( p_data, (void *)yymsp[-3].minor.yy0, (void *)yymsp[-2].minor.yy0); } - break; - case 10: /* node ::= open_tag GML_CLOSE */ -{ yygotominor.yy0 = gml_createNode( p_data, (void *)yymsp[-1].minor.yy0, NULL, NULL); } - break; - case 11: /* node ::= open_tag attr GML_CLOSE */ - case 12: /* node ::= open_tag attributes GML_CLOSE */ yytestcase(yyruleno==12); -{ yygotominor.yy0 = gml_createNode( p_data, (void *)yymsp[-2].minor.yy0, (void *)yymsp[-1].minor.yy0, NULL); } - break; - case 13: /* node ::= open_tag GML_CLOSE coord */ - case 14: /* node ::= open_tag GML_CLOSE coord_chain */ yytestcase(yyruleno==14); -{ yygotominor.yy0 = gml_createNode( p_data, (void *)yymsp[-2].minor.yy0, NULL, (void *)yymsp[0].minor.yy0); } - break; - case 15: /* node ::= open_tag attr GML_CLOSE coord */ - case 16: /* node ::= open_tag attr GML_CLOSE coord_chain */ yytestcase(yyruleno==16); - case 17: /* node ::= open_tag attributes GML_CLOSE coord */ yytestcase(yyruleno==17); - case 18: /* node ::= open_tag attributes GML_CLOSE coord_chain */ yytestcase(yyruleno==18); -{ yygotominor.yy0 = gml_createNode( p_data, (void *)yymsp[-3].minor.yy0, (void *)yymsp[-2].minor.yy0, (void *)yymsp[0].minor.yy0); } - break; - case 19: /* node ::= close_tag */ -{ yygotominor.yy0 = gml_closingNode( p_data, (void *)yymsp[0].minor.yy0); } - break; - case 20: /* open_tag ::= GML_OPEN keyword */ - case 22: /* keyword ::= GML_KEYWORD */ yytestcase(yyruleno==22); -{ yygotominor.yy0 = yymsp[0].minor.yy0; } - break; - case 21: /* close_tag ::= GML_OPEN GML_END keyword GML_CLOSE */ -{ yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 23: /* extra_nodes ::= */ - case 27: /* extra_attr ::= */ yytestcase(yyruleno==27); - case 31: /* extra_coord ::= */ yytestcase(yyruleno==31); -{ yygotominor.yy0 = NULL; } - break; - case 24: /* extra_nodes ::= node extra_nodes */ -{ ((gmlNodePtr)yymsp[-1].minor.yy0)->Next = (gmlNodePtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 25: /* node_chain ::= node node extra_nodes */ -{ - ((gmlNodePtr)yymsp[-1].minor.yy0)->Next = (gmlNodePtr)yymsp[0].minor.yy0; - ((gmlNodePtr)yymsp[-2].minor.yy0)->Next = (gmlNodePtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; - case 26: /* attr ::= GML_KEYWORD GML_EQ GML_VALUE */ -{ yygotominor.yy0 = gml_attribute( p_data, (void *)yymsp[-2].minor.yy0, (void *)yymsp[0].minor.yy0); } - break; - case 28: /* extra_attr ::= attr extra_attr */ -{ ((gmlAttrPtr)yymsp[-1].minor.yy0)->Next = (gmlAttrPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 29: /* attributes ::= attr attr extra_attr */ -{ - ((gmlAttrPtr)yymsp[-1].minor.yy0)->Next = (gmlAttrPtr)yymsp[0].minor.yy0; - ((gmlAttrPtr)yymsp[-2].minor.yy0)->Next = (gmlAttrPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; - case 30: /* coord ::= GML_COORD */ -{ yygotominor.yy0 = gml_coord( p_data, (void *)yymsp[0].minor.yy0); } - break; - case 32: /* extra_coord ::= coord extra_coord */ -{ ((gmlCoordPtr)yymsp[-1].minor.yy0)->Next = (gmlCoordPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 33: /* coord_chain ::= coord coord extra_coord */ -{ - ((gmlCoordPtr)yymsp[-1].minor.yy0)->Next = (gmlCoordPtr)yymsp[0].minor.yy0; - ((gmlCoordPtr)yymsp[-2].minor.yy0)->Next = (gmlCoordPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; + switch (yyruleno) + { + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 5: /* gml_tree ::= node */ + case 6: /* gml_tree ::= node_chain */ + yytestcase (yyruleno == 6); + { + p_data->result = yymsp[0].minor.yy0; + } + break; + case 7: /* node ::= open_tag GML_END GML_CLOSE */ + { + yygotominor.yy0 = + gml_createSelfClosedNode (p_data, + (void *) yymsp[-2].minor.yy0, NULL); + } + break; + case 8: /* node ::= open_tag attr GML_END GML_CLOSE */ + case 9: /* node ::= open_tag attributes GML_END GML_CLOSE */ + yytestcase (yyruleno == 9); + { + yygotominor.yy0 = + gml_createSelfClosedNode (p_data, + (void *) yymsp[-3].minor.yy0, + (void *) yymsp[-2].minor.yy0); + } + break; + case 10: /* node ::= open_tag GML_CLOSE */ + { + yygotominor.yy0 = + gml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, + NULL); + } + break; + case 11: /* node ::= open_tag attr GML_CLOSE */ + case 12: /* node ::= open_tag attributes GML_CLOSE */ + yytestcase (yyruleno == 12); + { + yygotominor.yy0 = + gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, + (void *) yymsp[-1].minor.yy0, NULL); + } + break; + case 13: /* node ::= open_tag GML_CLOSE coord */ + case 14: /* node ::= open_tag GML_CLOSE coord_chain */ + yytestcase (yyruleno == 14); + { + yygotominor.yy0 = + gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, + (void *) yymsp[0].minor.yy0); + } + break; + case 15: /* node ::= open_tag attr GML_CLOSE coord */ + case 16: /* node ::= open_tag attr GML_CLOSE coord_chain */ + yytestcase (yyruleno == 16); + case 17: /* node ::= open_tag attributes GML_CLOSE coord */ + yytestcase (yyruleno == 17); + case 18: /* node ::= open_tag attributes GML_CLOSE coord_chain */ + yytestcase (yyruleno == 18); + { + yygotominor.yy0 = + gml_createNode (p_data, (void *) yymsp[-3].minor.yy0, + (void *) yymsp[-2].minor.yy0, + (void *) yymsp[0].minor.yy0); + } + break; + case 19: /* node ::= close_tag */ + { + yygotominor.yy0 = + gml_closingNode (p_data, (void *) yymsp[0].minor.yy0); + } + break; + case 20: /* open_tag ::= GML_OPEN keyword */ + case 22: /* keyword ::= GML_KEYWORD */ + yytestcase (yyruleno == 22); + { + yygotominor.yy0 = yymsp[0].minor.yy0; + } + break; + case 21: /* close_tag ::= GML_OPEN GML_END keyword GML_CLOSE */ + { + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 23: /* extra_nodes ::= */ + case 27: /* extra_attr ::= */ + yytestcase (yyruleno == 27); + case 31: /* extra_coord ::= */ + yytestcase (yyruleno == 31); + { + yygotominor.yy0 = NULL; + } + break; + case 24: /* extra_nodes ::= node extra_nodes */ + { + ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = + (gmlNodePtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 25: /* node_chain ::= node node extra_nodes */ + { + ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = + (gmlNodePtr) yymsp[0].minor.yy0; + ((gmlNodePtr) yymsp[-2].minor.yy0)->Next = + (gmlNodePtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; + case 26: /* attr ::= GML_KEYWORD GML_EQ GML_VALUE */ + { + yygotominor.yy0 = + gml_attribute (p_data, (void *) yymsp[-2].minor.yy0, + (void *) yymsp[0].minor.yy0); + } + break; + case 28: /* extra_attr ::= attr extra_attr */ + { + ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = + (gmlAttrPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 29: /* attributes ::= attr attr extra_attr */ + { + ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = + (gmlAttrPtr) yymsp[0].minor.yy0; + ((gmlAttrPtr) yymsp[-2].minor.yy0)->Next = + (gmlAttrPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; + case 30: /* coord ::= GML_COORD */ + { + yygotominor.yy0 = gml_coord (p_data, (void *) yymsp[0].minor.yy0); + } + break; + case 32: /* extra_coord ::= coord extra_coord */ + { + ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = + (gmlCoordPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 33: /* coord_chain ::= coord coord extra_coord */ + { + ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = + (gmlCoordPtr) yymsp[0].minor.yy0; + ((gmlCoordPtr) yymsp[-2].minor.yy0)->Next = + (gmlCoordPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; default: - /* (0) main ::= in */ yytestcase(yyruleno==0); - /* (1) in ::= */ yytestcase(yyruleno==1); - /* (2) in ::= in state GML_NEWLINE */ yytestcase(yyruleno==2); - /* (3) state ::= program */ yytestcase(yyruleno==3); - /* (4) program ::= gml_tree */ yytestcase(yyruleno==4); - break; - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ + /* (0) main ::= in */ yytestcase (yyruleno == 0); + /* (1) in ::= */ yytestcase (yyruleno == 1); + /* (2) in ::= in state GML_NEWLINE */ yytestcase (yyruleno == 2); + /* (3) state ::= program */ yytestcase (yyruleno == 3); + /* (4) program ::= gml_tree */ yytestcase (yyruleno == 4); + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); + if (yyact < YYNSTATE) + { #ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if (yysize) + { + yypParser->yyidx++; + yymsp -= yysize - 1; + yymsp->stateno = (YYACTIONTYPE) yyact; + yymsp->major = (YYCODETYPE) yygoto; + yymsp->minor = yygotominor; + } + else #endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } + { + yy_shift (yypParser, yyact, yygoto, &yygotominor); + } + } + else + { + assert (yyact == YYNSTATE + YYNRULE + 1); + yy_accept (yypParser); + } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_parse_failed (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; +static void +yy_syntax_error (yyParser * yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ + ) +{ + ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ - p_data->gml_parse_error = 1; - p_data->result = NULL; - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + p_data->gml_parse_error = 1; + p_data->result = NULL; + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_accept (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -901,153 +1080,179 @@ static void yy_accept( ** Outputs: ** None. */ -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ +void +Parse (void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ + ) +{ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser *) yyp; + if (yypParser->yyidx < 0) + { #if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } + if (yypParser->yystksz <= 0) + { + /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ + yyminorunion = yyzerominor; + yyStackOverflow (yypParser, &yyminorunion); + return; + } #endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor == 0); + ParseARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, + yyTokenName[yymajor]); + } #endif - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyactyyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); + do + { + yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); + if (yyact < YYNSTATE) + { + assert (!yyendofinput); /* Impossible to shift the $ token */ + yy_shift (yypParser, yyact, yymajor, &yyminorunion); + yypParser->yyerrcnt--; + yymajor = YYNOCODE; + } + else if (yyact < YYNSTATE + YYNRULE) + { + yy_reduce (yypParser, yyact - YYNSTATE); + } + else + { + assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL - int yymx; + int yymx; #endif #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); + } #endif #ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if (yypParser->yyerrcnt < 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if (yymx == YYERRORSYMBOL || yyerrorhit) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sDiscard input token %s\n", + yyTracePrompt, yyTokenName[yymajor]); + } #endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yymajor = YYNOCODE; + } + else + { + while (yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = + yy_find_reduce_action (yypParser->yystack + [yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= + YYNSTATE) + { + yy_pop_parser_stack (yypParser); + } + if (yypParser->yyidx < 0 || yymajor == 0) + { + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yy_parse_failed (yypParser); + yymajor = YYNOCODE; + } + else if (yymx != YYERRORSYMBOL) + { + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error (yypParser, yymajor, yyminorunion); + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if (yypParser->yyerrcnt <= 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + if (yyendofinput) + { + yy_parse_failed (yypParser); + } + yymajor = YYNOCODE; #endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; + } + } + while (yymajor != YYNOCODE && yypParser->yyidx >= 0); + return; } diff --git a/src/spatialite/src/gaiageo/Kml.c b/src/spatialite/src/gaiageo/Kml.c index e1b64f4..fc425be 100644 --- a/src/spatialite/src/gaiageo/Kml.c +++ b/src/spatialite/src/gaiageo/Kml.c @@ -18,7 +18,7 @@ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE -# define INTERFACE 1 +#define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -58,17 +58,18 @@ #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * -typedef union { - int yyinit; - ParseTOKENTYPE yy0; +typedef union +{ + int yyinit; + ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct kml_data *p_data ; -#define ParseARG_PDECL , struct kml_data *p_data -#define ParseARG_FETCH struct kml_data *p_data = yypParser->p_data -#define ParseARG_STORE yypParser->p_data = p_data +#define ParseARG_PDECL , struct kml_data *p_data +#define ParseARG_FETCH struct kml_data *p_data = yypParser->p_data +#define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) @@ -88,7 +89,7 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** for testing. */ #ifndef yytestcase -# define yytestcase(X) +#define yytestcase(X) #endif @@ -140,43 +141,48 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, - /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, - /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, - /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, - /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, - /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, - /* 60 */ 39, 44, 24, + /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, + /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, + /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, + /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, + /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, + /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, + /* 60 */ 39, 44, 24, }; + static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, - /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, - /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, - /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, - /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, - /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, - /* 60 */ 3, 3, 6, + /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, + /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, + /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, + /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, + /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, + /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, + /* 60 */ 3, 3, 6, }; + #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { - /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, - /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, - /* 20 */ 54, 53, 55, 56, 52, 57, 58, + /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, + /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, + /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; + #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { - /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, - /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, + /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, + /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; + static const YYACTIONTYPE yy_default[] = { - /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, - /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, - /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, - /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, - /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, + /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, + /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, + /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, + /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, + /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; + #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct @@ -206,29 +212,31 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ +struct yyStackEntry +{ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ +struct yyParser +{ + int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ + int yyidxMax; /* Maximum value of yyidx */ #endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ + int yyerrcnt; /* Shifts left before out of the error */ + ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ #else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; @@ -257,25 +265,29 @@ static char *yyTracePrompt = 0; ** Outputs: ** None. */ -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; +void +ParseTrace (FILE * TraceFILE, char *zTracePrompt) +{ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if (yyTraceFILE == 0) + yyTracePrompt = 0; + else if (yyTracePrompt == 0) + yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { - "$", "KML_NEWLINE", "KML_END", "KML_CLOSE", - "KML_OPEN", "KML_KEYWORD", "KML_EQ", "KML_VALUE", - "KML_COORD", "error", "main", "in", - "state", "program", "kml_tree", "node", - "node_chain", "open_tag", "attr", "attributes", - "coord", "coord_chain", "close_tag", "keyword", - "extra_nodes", "extra_attr", "extra_coord", +static const char *const yyTokenName[] = { + "$", "KML_NEWLINE", "KML_END", "KML_CLOSE", + "KML_OPEN", "KML_KEYWORD", "KML_EQ", "KML_VALUE", + "KML_COORD", "error", "main", "in", + "state", "program", "kml_tree", "node", + "node_chain", "open_tag", "attr", "attributes", + "coord", "coord_chain", "close_tag", "keyword", + "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ @@ -283,40 +295,40 @@ static const char *const yyTokenName[] = { /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { - /* 0 */ "main ::= in", - /* 1 */ "in ::=", - /* 2 */ "in ::= in state KML_NEWLINE", - /* 3 */ "state ::= program", - /* 4 */ "program ::= kml_tree", - /* 5 */ "kml_tree ::= node", - /* 6 */ "kml_tree ::= node_chain", - /* 7 */ "node ::= open_tag KML_END KML_CLOSE", - /* 8 */ "node ::= open_tag attr KML_END KML_CLOSE", - /* 9 */ "node ::= open_tag attributes KML_END KML_CLOSE", - /* 10 */ "node ::= open_tag KML_CLOSE", - /* 11 */ "node ::= open_tag attr KML_CLOSE", - /* 12 */ "node ::= open_tag attributes KML_CLOSE", - /* 13 */ "node ::= open_tag KML_CLOSE coord", - /* 14 */ "node ::= open_tag KML_CLOSE coord_chain", - /* 15 */ "node ::= open_tag attr KML_CLOSE coord", - /* 16 */ "node ::= open_tag attr KML_CLOSE coord_chain", - /* 17 */ "node ::= open_tag attributes KML_CLOSE coord", - /* 18 */ "node ::= open_tag attributes KML_CLOSE coord_chain", - /* 19 */ "node ::= close_tag", - /* 20 */ "open_tag ::= KML_OPEN keyword", - /* 21 */ "close_tag ::= KML_OPEN KML_END keyword KML_CLOSE", - /* 22 */ "keyword ::= KML_KEYWORD", - /* 23 */ "extra_nodes ::=", - /* 24 */ "extra_nodes ::= node extra_nodes", - /* 25 */ "node_chain ::= node node extra_nodes", - /* 26 */ "attr ::= KML_KEYWORD KML_EQ KML_VALUE", - /* 27 */ "extra_attr ::=", - /* 28 */ "extra_attr ::= attr extra_attr", - /* 29 */ "attributes ::= attr attr extra_attr", - /* 30 */ "coord ::= KML_COORD", - /* 31 */ "extra_coord ::=", - /* 32 */ "extra_coord ::= coord extra_coord", - /* 33 */ "coord_chain ::= coord coord extra_coord", + /* 0 */ "main ::= in", + /* 1 */ "in ::=", + /* 2 */ "in ::= in state KML_NEWLINE", + /* 3 */ "state ::= program", + /* 4 */ "program ::= kml_tree", + /* 5 */ "kml_tree ::= node", + /* 6 */ "kml_tree ::= node_chain", + /* 7 */ "node ::= open_tag KML_END KML_CLOSE", + /* 8 */ "node ::= open_tag attr KML_END KML_CLOSE", + /* 9 */ "node ::= open_tag attributes KML_END KML_CLOSE", + /* 10 */ "node ::= open_tag KML_CLOSE", + /* 11 */ "node ::= open_tag attr KML_CLOSE", + /* 12 */ "node ::= open_tag attributes KML_CLOSE", + /* 13 */ "node ::= open_tag KML_CLOSE coord", + /* 14 */ "node ::= open_tag KML_CLOSE coord_chain", + /* 15 */ "node ::= open_tag attr KML_CLOSE coord", + /* 16 */ "node ::= open_tag attr KML_CLOSE coord_chain", + /* 17 */ "node ::= open_tag attributes KML_CLOSE coord", + /* 18 */ "node ::= open_tag attributes KML_CLOSE coord_chain", + /* 19 */ "node ::= close_tag", + /* 20 */ "open_tag ::= KML_OPEN keyword", + /* 21 */ "close_tag ::= KML_OPEN KML_END keyword KML_CLOSE", + /* 22 */ "keyword ::= KML_KEYWORD", + /* 23 */ "extra_nodes ::=", + /* 24 */ "extra_nodes ::= node extra_nodes", + /* 25 */ "node_chain ::= node node extra_nodes", + /* 26 */ "attr ::= KML_KEYWORD KML_EQ KML_VALUE", + /* 27 */ "extra_attr ::=", + /* 28 */ "extra_attr ::= attr extra_attr", + /* 29 */ "attributes ::= attr attr extra_attr", + /* 30 */ "coord ::= KML_COORD", + /* 31 */ "extra_coord ::=", + /* 32 */ "extra_coord ::= coord extra_coord", + /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ @@ -325,22 +337,26 @@ static const char *const yyRuleName[] = { /* ** Try to increase the size of the parser stack. */ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; +static void +yyGrowStack (yyParser * p) +{ + int newSize; + yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; + newSize = p->yystksz * 2 + 100; + pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); + if (pNew) + { + p->yystack = pNew; + p->yystksz = newSize; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", + yyTracePrompt, p->yystksz); + } #endif - } + } } #endif @@ -356,21 +372,24 @@ static void yyGrowStack(yyParser *p){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); - if( pParser ){ - pParser->yyidx = -1; +void * +ParseAlloc (void *(*mallocProc) (size_t)) +{ + yyParser *pParser; + pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); + if (pParser) + { + pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; + pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); + pParser->yystack = NULL; + pParser->yystksz = 0; + yyGrowStack (pParser); #endif - } - return pParser; + } + return pParser; } /* The following function deletes the value associated with a @@ -378,24 +397,27 @@ void *ParseAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } +static void +yy_destructor (yyParser * yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE * yypminor /* The object to be destroyed */ + ) +{ + switch (yymajor) + { + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + default: + break; /* If no destructor action specified: do nothing */ + } } /* @@ -406,22 +428,25 @@ static void yy_destructor( ** ** Return the major token number for the symbol popped. */ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int +yy_pop_parser_stack (yyParser * pParser) +{ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - if( pParser->yyidx<0 ) return 0; + if (pParser->yyidx < 0) + return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } + if (yyTraceFILE && pParser->yyidx >= 0) + { + fprintf (yyTraceFILE, "%sPopping %s\n", + yyTracePrompt, yyTokenName[yytos->major]); + } #endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + yymajor = yytos->major; + yy_destructor (pParser, yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; } /* @@ -436,26 +461,31 @@ static int yy_pop_parser_stack(yyParser *pParser){ ** from malloc. ** */ -void ParseFree( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); +void +ParseFree (void *p, /* The parser to be deleted */ + void (*freeProc) (void *) /* Function used to reclaim memory */ + ) +{ + yyParser *pParser = (yyParser *) p; + if (pParser == 0) + return; + while (pParser->yyidx >= 0) + yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 - free(pParser->yystack); + free (pParser->yystack); #endif - (*freeProc)((void*)pParser); + (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH -int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; +int +ParseStackPeak (void *p) +{ + yyParser *pParser = (yyParser *) p; + return pParser->yyidxMax; } #endif @@ -467,52 +497,66 @@ int ParseStackPeak(void *p){ ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ +static int +yy_find_shift_action (yyParser * pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if (stateno > YY_SHIFT_MAX + || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) + { + return yy_default[stateno]; + } + assert (iLookAhead != YYNOCODE); + i += iLookAhead; + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + if (iLookAhead > 0) + { #ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[iFallback]); + } #endif - return yy_find_shift_action(pParser, iFallback); - } + return yy_find_shift_action (pParser, iFallback); + } #endif #ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j= 0 && j < YY_SZ_ACTTAB + && yy_lookahead[j] == YYWILDCARD) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } #endif /* NDEBUG */ - return yy_action[j]; - } - } + return yy_action[j]; + } + } #endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } + } + return yy_default[stateno]; + } + else + { + return yy_action[i]; + } } /* @@ -523,363 +567,498 @@ static int yy_find_shift_action( ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; +static int +yy_find_reduce_action (int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ - return yy_default[stateno]; - } + if (stateno > YY_REDUCE_MAX) + { + return yy_default[stateno]; + } #else - assert( stateno<=YY_REDUCE_MAX ); + assert (stateno <= YY_REDUCE_MAX); #endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; + i = yy_reduce_ofst[stateno]; + assert (i != YY_REDUCE_USE_DFLT); + assert (iLookAhead != YYNOCODE); + i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + return yy_default[stateno]; + } #else - assert( i>=0 && i= 0 && i < YY_SZ_ACTTAB); + assert (yy_lookahead[i] == iLookAhead); #endif - return yy_action[i]; + return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ -static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ - ParseARG_FETCH; - yypParser->yyidx--; +static void +yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) +{ + ParseARG_FETCH; + yypParser->yyidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ - spatialite_e( "Giving up. Parser stack overflow\n"); - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ + spatialite_e ("Giving up. Parser stack overflow\n"); + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; +static void +yy_shift (yyParser * yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ + ) +{ + yyStackEntry *yytos; + yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } + if (yypParser->yyidx > yypParser->yyidxMax) + { + yypParser->yyidxMax = yypParser->yyidx; + } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } +#if YYSTACKDEPTH>0 + if (yypParser->yyidx >= YYSTACKDEPTH) + { + yyStackOverflow (yypParser, yypMinor); + return; + } #else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } + if (yypParser->yyidx >= yypParser->yystksz) + { + yyGrowStack (yypParser); + if (yypParser->yyidx >= yypParser->yystksz) + { + yyStackOverflow (yypParser, yypMinor); + return; + } + } #endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = (YYACTIONTYPE) yyNewState; + yytos->major = (YYCODETYPE) yyMajor; + yytos->minor = *yypMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } + if (yyTraceFILE && yypParser->yyidx > 0) + { + int i; + fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); + fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); + for (i = 1; i <= yypParser->yyidx; i++) + fprintf (yyTraceFILE, " %s", + yyTokenName[yypParser->yystack[i].major]); + fprintf (yyTraceFILE, "\n"); + } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { - { 10, 1 }, - { 11, 0 }, - { 11, 3 }, - { 12, 1 }, - { 13, 1 }, - { 14, 1 }, - { 14, 1 }, - { 15, 3 }, - { 15, 4 }, - { 15, 4 }, - { 15, 2 }, - { 15, 3 }, - { 15, 3 }, - { 15, 3 }, - { 15, 3 }, - { 15, 4 }, - { 15, 4 }, - { 15, 4 }, - { 15, 4 }, - { 15, 1 }, - { 17, 2 }, - { 22, 4 }, - { 23, 1 }, - { 24, 0 }, - { 24, 2 }, - { 16, 3 }, - { 18, 3 }, - { 25, 0 }, - { 25, 2 }, - { 19, 3 }, - { 20, 1 }, - { 26, 0 }, - { 26, 2 }, - { 21, 3 }, -}; +static const struct +{ + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = +{ + { + 10, 1}, + { + 11, 0}, + { + 11, 3}, + { + 12, 1}, + { + 13, 1}, + { + 14, 1}, + { + 14, 1}, + { + 15, 3}, + { + 15, 4}, + { + 15, 4}, + { + 15, 2}, + { + 15, 3}, + { + 15, 3}, + { + 15, 3}, + { + 15, 3}, + { + 15, 4}, + { + 15, 4}, + { + 15, 4}, + { + 15, 4}, + { + 15, 1}, + { + 17, 2}, + { + 22, 4}, + { + 23, 1}, + { + 24, 0}, + { + 24, 2}, + { + 16, 3}, + { + 18, 3}, + { + 25, 0}, + { + 25, 2}, + { + 19, 3}, + { + 20, 1}, + { + 26, 0}, + { + 26, 2}, + { +21, 3},}; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; +static void +yy_reduce (yyParser * yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ + ) +{ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } + if (yyTraceFILE && yyruleno >= 0 + && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) + { + fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } #endif /* NDEBUG */ - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&yygotominor, 0, sizeof(yygotominor)); */ + yygotominor = yyzerominor; - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line - ** { ... } // User supplied code - ** #line - ** break; - */ - case 5: /* kml_tree ::= node */ - case 6: /* kml_tree ::= node_chain */ yytestcase(yyruleno==6); -{ p_data->result = yymsp[0].minor.yy0; } - break; - case 7: /* node ::= open_tag KML_END KML_CLOSE */ -{ yygotominor.yy0 = kml_createSelfClosedNode( p_data, (void *)yymsp[-2].minor.yy0, NULL); } - break; - case 8: /* node ::= open_tag attr KML_END KML_CLOSE */ - case 9: /* node ::= open_tag attributes KML_END KML_CLOSE */ yytestcase(yyruleno==9); -{ yygotominor.yy0 = kml_createSelfClosedNode( p_data, (void *)yymsp[-3].minor.yy0, (void *)yymsp[-2].minor.yy0); } - break; - case 10: /* node ::= open_tag KML_CLOSE */ -{ yygotominor.yy0 = kml_createNode( p_data, (void *)yymsp[-1].minor.yy0, NULL, NULL); } - break; - case 11: /* node ::= open_tag attr KML_CLOSE */ - case 12: /* node ::= open_tag attributes KML_CLOSE */ yytestcase(yyruleno==12); -{ yygotominor.yy0 = kml_createNode( p_data, (void *)yymsp[-2].minor.yy0, (void *)yymsp[-1].minor.yy0, NULL); } - break; - case 13: /* node ::= open_tag KML_CLOSE coord */ - case 14: /* node ::= open_tag KML_CLOSE coord_chain */ yytestcase(yyruleno==14); -{ yygotominor.yy0 = kml_createNode( p_data, (void *)yymsp[-2].minor.yy0, NULL, (void *)yymsp[0].minor.yy0); } - break; - case 15: /* node ::= open_tag attr KML_CLOSE coord */ - case 16: /* node ::= open_tag attr KML_CLOSE coord_chain */ yytestcase(yyruleno==16); - case 17: /* node ::= open_tag attributes KML_CLOSE coord */ yytestcase(yyruleno==17); - case 18: /* node ::= open_tag attributes KML_CLOSE coord_chain */ yytestcase(yyruleno==18); -{ yygotominor.yy0 = kml_createNode( p_data, (void *)yymsp[-3].minor.yy0, (void *)yymsp[-2].minor.yy0, (void *)yymsp[0].minor.yy0); } - break; - case 19: /* node ::= close_tag */ -{ yygotominor.yy0 = kml_closingNode( p_data, (void *)yymsp[0].minor.yy0); } - break; - case 20: /* open_tag ::= KML_OPEN keyword */ - case 22: /* keyword ::= KML_KEYWORD */ yytestcase(yyruleno==22); -{ yygotominor.yy0 = yymsp[0].minor.yy0; } - break; - case 21: /* close_tag ::= KML_OPEN KML_END keyword KML_CLOSE */ -{ yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 23: /* extra_nodes ::= */ - case 27: /* extra_attr ::= */ yytestcase(yyruleno==27); - case 31: /* extra_coord ::= */ yytestcase(yyruleno==31); -{ yygotominor.yy0 = NULL; } - break; - case 24: /* extra_nodes ::= node extra_nodes */ -{ ((kmlNodePtr)yymsp[-1].minor.yy0)->Next = (kmlNodePtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 25: /* node_chain ::= node node extra_nodes */ -{ - ((kmlNodePtr)yymsp[-1].minor.yy0)->Next = (kmlNodePtr)yymsp[0].minor.yy0; - ((kmlNodePtr)yymsp[-2].minor.yy0)->Next = (kmlNodePtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; - case 26: /* attr ::= KML_KEYWORD KML_EQ KML_VALUE */ -{ yygotominor.yy0 = kml_attribute( p_data, (void *)yymsp[-2].minor.yy0, (void *)yymsp[0].minor.yy0); } - break; - case 28: /* extra_attr ::= attr extra_attr */ -{ ((kmlAttrPtr)yymsp[-1].minor.yy0)->Next = (kmlAttrPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 29: /* attributes ::= attr attr extra_attr */ -{ - ((kmlAttrPtr)yymsp[-1].minor.yy0)->Next = (kmlAttrPtr)yymsp[0].minor.yy0; - ((kmlAttrPtr)yymsp[-2].minor.yy0)->Next = (kmlAttrPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; - case 30: /* coord ::= KML_COORD */ -{ yygotominor.yy0 = kml_coord( p_data, (void *)yymsp[0].minor.yy0); } - break; - case 32: /* extra_coord ::= coord extra_coord */ -{ ((kmlCoordPtr)yymsp[-1].minor.yy0)->Next = (kmlCoordPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 33: /* coord_chain ::= coord coord extra_coord */ -{ - ((kmlCoordPtr)yymsp[-1].minor.yy0)->Next = (kmlCoordPtr)yymsp[0].minor.yy0; - ((kmlCoordPtr)yymsp[-2].minor.yy0)->Next = (kmlCoordPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = yymsp[-2].minor.yy0; - } - break; + switch (yyruleno) + { + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 5: /* kml_tree ::= node */ + case 6: /* kml_tree ::= node_chain */ + yytestcase (yyruleno == 6); + { + p_data->result = yymsp[0].minor.yy0; + } + break; + case 7: /* node ::= open_tag KML_END KML_CLOSE */ + { + yygotominor.yy0 = + kml_createSelfClosedNode (p_data, + (void *) yymsp[-2].minor.yy0, NULL); + } + break; + case 8: /* node ::= open_tag attr KML_END KML_CLOSE */ + case 9: /* node ::= open_tag attributes KML_END KML_CLOSE */ + yytestcase (yyruleno == 9); + { + yygotominor.yy0 = + kml_createSelfClosedNode (p_data, + (void *) yymsp[-3].minor.yy0, + (void *) yymsp[-2].minor.yy0); + } + break; + case 10: /* node ::= open_tag KML_CLOSE */ + { + yygotominor.yy0 = + kml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, + NULL); + } + break; + case 11: /* node ::= open_tag attr KML_CLOSE */ + case 12: /* node ::= open_tag attributes KML_CLOSE */ + yytestcase (yyruleno == 12); + { + yygotominor.yy0 = + kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, + (void *) yymsp[-1].minor.yy0, NULL); + } + break; + case 13: /* node ::= open_tag KML_CLOSE coord */ + case 14: /* node ::= open_tag KML_CLOSE coord_chain */ + yytestcase (yyruleno == 14); + { + yygotominor.yy0 = + kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, + (void *) yymsp[0].minor.yy0); + } + break; + case 15: /* node ::= open_tag attr KML_CLOSE coord */ + case 16: /* node ::= open_tag attr KML_CLOSE coord_chain */ + yytestcase (yyruleno == 16); + case 17: /* node ::= open_tag attributes KML_CLOSE coord */ + yytestcase (yyruleno == 17); + case 18: /* node ::= open_tag attributes KML_CLOSE coord_chain */ + yytestcase (yyruleno == 18); + { + yygotominor.yy0 = + kml_createNode (p_data, (void *) yymsp[-3].minor.yy0, + (void *) yymsp[-2].minor.yy0, + (void *) yymsp[0].minor.yy0); + } + break; + case 19: /* node ::= close_tag */ + { + yygotominor.yy0 = + kml_closingNode (p_data, (void *) yymsp[0].minor.yy0); + } + break; + case 20: /* open_tag ::= KML_OPEN keyword */ + case 22: /* keyword ::= KML_KEYWORD */ + yytestcase (yyruleno == 22); + { + yygotominor.yy0 = yymsp[0].minor.yy0; + } + break; + case 21: /* close_tag ::= KML_OPEN KML_END keyword KML_CLOSE */ + { + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 23: /* extra_nodes ::= */ + case 27: /* extra_attr ::= */ + yytestcase (yyruleno == 27); + case 31: /* extra_coord ::= */ + yytestcase (yyruleno == 31); + { + yygotominor.yy0 = NULL; + } + break; + case 24: /* extra_nodes ::= node extra_nodes */ + { + ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = + (kmlNodePtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 25: /* node_chain ::= node node extra_nodes */ + { + ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = + (kmlNodePtr) yymsp[0].minor.yy0; + ((kmlNodePtr) yymsp[-2].minor.yy0)->Next = + (kmlNodePtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; + case 26: /* attr ::= KML_KEYWORD KML_EQ KML_VALUE */ + { + yygotominor.yy0 = + kml_attribute (p_data, (void *) yymsp[-2].minor.yy0, + (void *) yymsp[0].minor.yy0); + } + break; + case 28: /* extra_attr ::= attr extra_attr */ + { + ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = + (kmlAttrPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 29: /* attributes ::= attr attr extra_attr */ + { + ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = + (kmlAttrPtr) yymsp[0].minor.yy0; + ((kmlAttrPtr) yymsp[-2].minor.yy0)->Next = + (kmlAttrPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; + case 30: /* coord ::= KML_COORD */ + { + yygotominor.yy0 = kml_coord (p_data, (void *) yymsp[0].minor.yy0); + } + break; + case 32: /* extra_coord ::= coord extra_coord */ + { + ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = + (kmlCoordPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 33: /* coord_chain ::= coord coord extra_coord */ + { + ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = + (kmlCoordPtr) yymsp[0].minor.yy0; + ((kmlCoordPtr) yymsp[-2].minor.yy0)->Next = + (kmlCoordPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; default: - /* (0) main ::= in */ yytestcase(yyruleno==0); - /* (1) in ::= */ yytestcase(yyruleno==1); - /* (2) in ::= in state KML_NEWLINE */ yytestcase(yyruleno==2); - /* (3) state ::= program */ yytestcase(yyruleno==3); - /* (4) program ::= kml_tree */ yytestcase(yyruleno==4); - break; - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ + /* (0) main ::= in */ yytestcase (yyruleno == 0); + /* (1) in ::= */ yytestcase (yyruleno == 1); + /* (2) in ::= in state KML_NEWLINE */ yytestcase (yyruleno == 2); + /* (3) state ::= program */ yytestcase (yyruleno == 3); + /* (4) program ::= kml_tree */ yytestcase (yyruleno == 4); + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); + if (yyact < YYNSTATE) + { #ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if (yysize) + { + yypParser->yyidx++; + yymsp -= yysize - 1; + yymsp->stateno = (YYACTIONTYPE) yyact; + yymsp->major = (YYCODETYPE) yygoto; + yymsp->minor = yygotominor; + } + else #endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } + { + yy_shift (yypParser, yyact, yygoto, &yygotominor); + } + } + else + { + assert (yyact == YYNSTATE + YYNRULE + 1); + yy_accept (yypParser); + } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_parse_failed (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; +static void +yy_syntax_error (yyParser * yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ + ) +{ + ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ - p_data->kml_parse_error = 1; - p_data->result = NULL; - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + p_data->kml_parse_error = 1; + p_data->result = NULL; + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_accept (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -901,153 +1080,179 @@ static void yy_accept( ** Outputs: ** None. */ -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ +void +Parse (void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ + ) +{ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser *) yyp; + if (yypParser->yyidx < 0) + { #if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } + if (yypParser->yystksz <= 0) + { + /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ + yyminorunion = yyzerominor; + yyStackOverflow (yypParser, &yyminorunion); + return; + } #endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor == 0); + ParseARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, + yyTokenName[yymajor]); + } #endif - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyactyyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); + do + { + yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); + if (yyact < YYNSTATE) + { + assert (!yyendofinput); /* Impossible to shift the $ token */ + yy_shift (yypParser, yyact, yymajor, &yyminorunion); + yypParser->yyerrcnt--; + yymajor = YYNOCODE; + } + else if (yyact < YYNSTATE + YYNRULE) + { + yy_reduce (yypParser, yyact - YYNSTATE); + } + else + { + assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL - int yymx; + int yymx; #endif #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); + } #endif #ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if (yypParser->yyerrcnt < 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if (yymx == YYERRORSYMBOL || yyerrorhit) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sDiscard input token %s\n", + yyTracePrompt, yyTokenName[yymajor]); + } #endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yymajor = YYNOCODE; + } + else + { + while (yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = + yy_find_reduce_action (yypParser->yystack + [yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= + YYNSTATE) + { + yy_pop_parser_stack (yypParser); + } + if (yypParser->yyidx < 0 || yymajor == 0) + { + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yy_parse_failed (yypParser); + yymajor = YYNOCODE; + } + else if (yymx != YYERRORSYMBOL) + { + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error (yypParser, yymajor, yyminorunion); + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if (yypParser->yyerrcnt <= 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + if (yyendofinput) + { + yy_parse_failed (yypParser); + } + yymajor = YYNOCODE; #endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; + } + } + while (yymajor != YYNOCODE && yypParser->yyidx >= 0); + return; } diff --git a/src/spatialite/src/gaiageo/Makefile.am b/src/spatialite/src/gaiageo/Makefile.am index c54ece5..7020fb7 100644 --- a/src/spatialite/src/gaiageo/Makefile.am +++ b/src/spatialite/src/gaiageo/Makefile.am @@ -1,17 +1,18 @@ SUBDIRS = flex lemon -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiageo.la +noinst_LTLIBRARIES = libgaiageo.la gaiageo.la -libgaiageo_la_SOURCES = gg_advanced.c \ +GAIAGEO_COMMON_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ + gg_relations_ext.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ @@ -23,7 +24,18 @@ libgaiageo_la_SOURCES = gg_advanced.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ - gg_voronoj.c + gg_voronoj.c \ + gg_xml.c + +libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) + +gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) + +gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ +gaiageo_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +gaiageo_la_CPPFLAGS += -DLOADABLE_EXTENSION +gaiageo_la_LDFLAGS = -module +gaiageo_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/gaiageo/Makefile.in b/src/spatialite/src/gaiageo/Makefile.in index e4d4c43..5005e65 100644 --- a/src/spatialite/src/gaiageo/Makefile.in +++ b/src/spatialite/src/gaiageo/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -65,35 +93,78 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) +gaiageo_la_LIBADD = +am__objects_1 = gaiageo_la-gg_advanced.lo gaiageo_la-gg_endian.lo \ + gaiageo_la-gg_geodesic.lo gaiageo_la-gg_geometries.lo \ + gaiageo_la-gg_geoscvt.lo gaiageo_la-gg_relations.lo \ + gaiageo_la-gg_relations_ext.lo gaiageo_la-gg_lwgeom.lo \ + gaiageo_la-gg_extras.lo gaiageo_la-gg_shape.lo \ + gaiageo_la-gg_transform.lo gaiageo_la-gg_wkb.lo \ + gaiageo_la-gg_wkt.lo gaiageo_la-gg_vanuatu.lo \ + gaiageo_la-gg_ewkt.lo gaiageo_la-gg_geoJSON.lo \ + gaiageo_la-gg_kml.lo gaiageo_la-gg_gml.lo \ + gaiageo_la-gg_voronoj.lo gaiageo_la-gg_xml.lo +am_gaiageo_la_OBJECTS = $(am__objects_1) +gaiageo_la_OBJECTS = $(am_gaiageo_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +gaiageo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(gaiageo_la_LDFLAGS) $(LDFLAGS) -o $@ libgaiageo_la_LIBADD = -am_libgaiageo_la_OBJECTS = gg_advanced.lo gg_endian.lo gg_geodesic.lo \ - gg_geometries.lo gg_geoscvt.lo gg_relations.lo gg_lwgeom.lo \ - gg_extras.lo gg_shape.lo gg_transform.lo gg_wkb.lo gg_wkt.lo \ - gg_vanuatu.lo gg_ewkt.lo gg_geoJSON.lo gg_kml.lo gg_gml.lo \ - gg_voronoj.lo +am__objects_2 = gg_advanced.lo gg_endian.lo gg_geodesic.lo \ + gg_geometries.lo gg_geoscvt.lo gg_relations.lo \ + gg_relations_ext.lo gg_lwgeom.lo gg_extras.lo gg_shape.lo \ + gg_transform.lo gg_wkb.lo gg_wkt.lo gg_vanuatu.lo gg_ewkt.lo \ + gg_geoJSON.lo gg_kml.lo gg_gml.lo gg_voronoj.lo gg_xml.lo +am_libgaiageo_la_OBJECTS = $(am__objects_2) libgaiageo_la_OBJECTS = $(am_libgaiageo_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libgaiageo_la_SOURCES) -DIST_SOURCES = $(libgaiageo_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES) +DIST_SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -101,9 +172,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -135,6 +226,7 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -176,6 +268,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -197,6 +291,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -257,14 +354,16 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = flex lemon -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libgaiageo.la -libgaiageo_la_SOURCES = gg_advanced.c \ +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libgaiageo.la gaiageo.la +GAIAGEO_COMMON_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ + gg_relations_ext.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ @@ -276,8 +375,15 @@ libgaiageo_la_SOURCES = gg_advanced.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ - gg_voronoj.c - + gg_voronoj.c \ + gg_xml.c + +libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) +gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) +gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION +gaiageo_la_LDFLAGS = -module +gaiageo_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \ geoJSON.h geoJSON.c lex.GeoJson.c \ @@ -322,14 +428,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +gaiageo.la: $(gaiageo_la_OBJECTS) $(gaiageo_la_DEPENDENCIES) $(EXTRA_gaiageo_la_DEPENDENCIES) + $(AM_V_CCLD)$(gaiageo_la_LINK) $(gaiageo_la_OBJECTS) $(gaiageo_la_LIBADD) $(LIBS) + libgaiageo.la: $(libgaiageo_la_OBJECTS) $(libgaiageo_la_DEPENDENCIES) $(EXTRA_libgaiageo_la_DEPENDENCIES) - $(LINK) $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -337,6 +449,26 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_advanced.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_endian.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_ewkt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_extras.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geoJSON.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geodesic.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geometries.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geoscvt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_gml.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_kml.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_lwgeom.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_relations.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_relations_ext.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_shape.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_transform.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_vanuatu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_voronoj.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_wkb.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_wkt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_xml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_advanced.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_endian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_ewkt.Plo@am__quote@ @@ -349,33 +481,175 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_kml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_lwgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_relations.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_relations_ext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_shape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_vanuatu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_voronoj.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_xml.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +gaiageo_la-gg_advanced.lo: gg_advanced.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_advanced.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_advanced.Tpo -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_advanced.Tpo $(DEPDIR)/gaiageo_la-gg_advanced.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_advanced.c' object='gaiageo_la-gg_advanced.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c + +gaiageo_la-gg_endian.lo: gg_endian.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_endian.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_endian.Tpo -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_endian.Tpo $(DEPDIR)/gaiageo_la-gg_endian.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_endian.c' object='gaiageo_la-gg_endian.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c + +gaiageo_la-gg_geodesic.lo: gg_geodesic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geodesic.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo $(DEPDIR)/gaiageo_la-gg_geodesic.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geodesic.c' object='gaiageo_la-gg_geodesic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c + +gaiageo_la-gg_geometries.lo: gg_geometries.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geometries.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geometries.Tpo -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geometries.Tpo $(DEPDIR)/gaiageo_la-gg_geometries.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geometries.c' object='gaiageo_la-gg_geometries.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c + +gaiageo_la-gg_geoscvt.lo: gg_geoscvt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoscvt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo $(DEPDIR)/gaiageo_la-gg_geoscvt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geoscvt.c' object='gaiageo_la-gg_geoscvt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c + +gaiageo_la-gg_relations.lo: gg_relations.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations.Tpo -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations.Tpo $(DEPDIR)/gaiageo_la-gg_relations.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_relations.c' object='gaiageo_la-gg_relations.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c + +gaiageo_la-gg_relations_ext.lo: gg_relations_ext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations_ext.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo $(DEPDIR)/gaiageo_la-gg_relations_ext.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_relations_ext.c' object='gaiageo_la-gg_relations_ext.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c + +gaiageo_la-gg_lwgeom.lo: gg_lwgeom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_lwgeom.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo $(DEPDIR)/gaiageo_la-gg_lwgeom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_lwgeom.c' object='gaiageo_la-gg_lwgeom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c + +gaiageo_la-gg_extras.lo: gg_extras.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_extras.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_extras.Tpo -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_extras.Tpo $(DEPDIR)/gaiageo_la-gg_extras.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_extras.c' object='gaiageo_la-gg_extras.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c + +gaiageo_la-gg_shape.lo: gg_shape.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_shape.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_shape.Tpo -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_shape.Tpo $(DEPDIR)/gaiageo_la-gg_shape.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_shape.c' object='gaiageo_la-gg_shape.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c + +gaiageo_la-gg_transform.lo: gg_transform.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_transform.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_transform.Tpo -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_transform.Tpo $(DEPDIR)/gaiageo_la-gg_transform.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_transform.c' object='gaiageo_la-gg_transform.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c + +gaiageo_la-gg_wkb.lo: gg_wkb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkb.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkb.Tpo -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkb.Tpo $(DEPDIR)/gaiageo_la-gg_wkb.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_wkb.c' object='gaiageo_la-gg_wkb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c + +gaiageo_la-gg_wkt.lo: gg_wkt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkt.Tpo -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkt.Tpo $(DEPDIR)/gaiageo_la-gg_wkt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_wkt.c' object='gaiageo_la-gg_wkt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c + +gaiageo_la-gg_vanuatu.lo: gg_vanuatu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_vanuatu.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo $(DEPDIR)/gaiageo_la-gg_vanuatu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_vanuatu.c' object='gaiageo_la-gg_vanuatu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c + +gaiageo_la-gg_ewkt.lo: gg_ewkt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_ewkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo $(DEPDIR)/gaiageo_la-gg_ewkt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_ewkt.c' object='gaiageo_la-gg_ewkt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c + +gaiageo_la-gg_geoJSON.lo: gg_geoJSON.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoJSON.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo $(DEPDIR)/gaiageo_la-gg_geoJSON.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geoJSON.c' object='gaiageo_la-gg_geoJSON.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c + +gaiageo_la-gg_kml.lo: gg_kml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_kml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_kml.Tpo -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_kml.Tpo $(DEPDIR)/gaiageo_la-gg_kml.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_kml.c' object='gaiageo_la-gg_kml.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c + +gaiageo_la-gg_gml.lo: gg_gml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_gml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_gml.Tpo -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_gml.Tpo $(DEPDIR)/gaiageo_la-gg_gml.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_gml.c' object='gaiageo_la-gg_gml.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c + +gaiageo_la-gg_voronoj.lo: gg_voronoj.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_voronoj.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo $(DEPDIR)/gaiageo_la-gg_voronoj.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_voronoj.c' object='gaiageo_la-gg_voronoj.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c + +gaiageo_la-gg_xml.lo: gg_xml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_xml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_xml.Tpo -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_xml.Tpo $(DEPDIR)/gaiageo_la-gg_xml.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_xml.c' object='gaiageo_la-gg_xml.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c mostlyclean-libtool: -rm -f *.lo @@ -384,22 +658,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -414,57 +691,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -480,12 +712,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -497,15 +724,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -514,6 +737,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -680,12 +918,11 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -695,8 +932,8 @@ uninstall-am: install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiageo/flex/Makefile.in b/src/spatialite/src/gaiageo/flex/Makefile.in index a6edc0f..77119d6 100644 --- a/src/spatialite/src/gaiageo/flex/Makefile.in +++ b/src/spatialite/src/gaiageo/flex/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +78,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/flex -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -63,6 +90,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -70,9 +109,11 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -114,6 +155,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -135,6 +178,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -236,11 +282,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -376,15 +422,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiageo/flex/ewktLexer.l b/src/spatialite/src/gaiageo/flex/ewktLexer.l index e61148b..2d3e45d 100644 --- a/src/spatialite/src/gaiageo/flex/ewktLexer.l +++ b/src/spatialite/src/gaiageo/flex/ewktLexer.l @@ -57,24 +57,24 @@ the terms of any one of the MPL, the GPL or the LGPL. * of the two tokens, FLEX will match POINTM. */ %% --?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); EwktLval.dval = atof(yytext); return EWKT_NUM; } -"," { EwktLval.dval = 0; return EWKT_COMMA; } -"(" { EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } -")" { EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } -(?i:"point") { EwktLval.dval = 0; return EWKT_POINT; } -(?i:"pointm") { EwktLval.dval = 0; return EWKT_POINT_M; } -(?i:"linestring") { EwktLval.dval = 0; return EWKT_LINESTRING; } -(?i:"linestringm") { EwktLval.dval = 0; return EWKT_LINESTRING_M; } -(?i:"polygon") { EwktLval.dval = 0; return EWKT_POLYGON; } -(?i:"polygonm") { EwktLval.dval = 0; return EWKT_POLYGON_M; } -(?i:"multipoint") { EwktLval.dval = 0; return EWKT_MULTIPOINT; } -(?i:"multipointm") { EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } -(?i:"multilinestring") { EwktLval.dval = 0; return EWKT_MULTILINESTRING; } -(?i:"multilinestringm") { EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } -(?i:"multipolygon") { EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } -(?i:"multipolygonm") { EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } -(?i:"geometrycollection") { EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } -(?i:"geometrycollectionm") { EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } +-?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); Ewktget_extra(yyscanner)->EwktLval.dval = atof(yytext); return EWKT_NUM; } +"," { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_COMMA; } +"(" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } +")" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } +(?i:"point") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT; } +(?i:"pointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT_M; } +(?i:"linestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING; } +(?i:"linestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING_M; } +(?i:"polygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON; } +(?i:"polygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON_M; } +(?i:"multipoint") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT; } +(?i:"multipointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } +(?i:"multilinestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING; } +(?i:"multilinestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } +(?i:"multipolygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } +(?i:"multipolygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } +(?i:"geometrycollection") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } +(?i:"geometrycollectionm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } [ \t] { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); } /* ignore but count white space */ diff --git a/src/spatialite/src/gaiageo/flex/geoJsonLexer.l b/src/spatialite/src/gaiageo/flex/geoJsonLexer.l index 4a13446..27fb569 100644 --- a/src/spatialite/src/gaiageo/flex/geoJsonLexer.l +++ b/src/spatialite/src/gaiageo/flex/geoJsonLexer.l @@ -57,29 +57,29 @@ the terms of any one of the MPL, the GPL or the LGPL. * of the two tokens, FLEX will match POINTM. */ %% --?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.dval = atof(yytext); return GEOJSON_NUM; } --?"\""EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.ival = atoi(yytext+6); return GEOJSON_SHORT_SRID; } --?"\""urn:ogc:def:crs:EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.ival = atoi(yytext+22); return GEOJSON_LONG_SRID; } -"," { GeoJsonLval.dval = 0; return GEOJSON_COMMA; } -":" { GeoJsonLval.dval = 0; return GEOJSON_COLON; } -"{" { GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } -"}" { GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } -"[" { GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } -"]" { GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } -(?-i:"\"type\"") { GeoJsonLval.dval = 0; return GEOJSON_TYPE; } -(?-i:"\"coordinates\"") { GeoJsonLval.dval = 0; return GEOJSON_COORDS; } -(?-i:"\"geometries\"") { GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } -(?-i:"\"bbox\"") { GeoJsonLval.dval = 0; return GEOJSON_BBOX; } -(?-i:"\"name\"") { GeoJsonLval.dval = 0; return GEOJSON_NAME; } -(?-i:"\"properties\"") { GeoJsonLval.dval = 0; return GEOJSON_PROPS; } -(?-i:"\"crs\"") { GeoJsonLval.dval = 0; return GEOJSON_CRS; } -(?-i:"\"Point\"") { GeoJsonLval.dval = 0; return GEOJSON_POINT; } -(?-i:"\"LineString\"") { GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } -(?-i:"\"Polygon\"") { GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } -(?-i:"\"MultiPoint\"") { GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } -(?-i:"\"MultiLineString\"") { GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } -(?-i:"\"MultiPolygon\"") { GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } -(?-i:"\"GeometryCollection\"") { GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } +-?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = atof(yytext); return GEOJSON_NUM; } +-?"\""EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+6); return GEOJSON_SHORT_SRID; } +-?"\""urn:ogc:def:crs:EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+22); return GEOJSON_LONG_SRID; } +"," { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COMMA; } +":" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COLON; } +"{" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } +"}" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } +"[" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } +"]" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } +(?-i:"\"type\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_TYPE; } +(?-i:"\"coordinates\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COORDS; } +(?-i:"\"geometries\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } +(?-i:"\"bbox\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_BBOX; } +(?-i:"\"name\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_NAME; } +(?-i:"\"properties\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_PROPS; } +(?-i:"\"crs\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CRS; } +(?-i:"\"Point\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POINT; } +(?-i:"\"LineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } +(?-i:"\"Polygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } +(?-i:"\"MultiPoint\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } +(?-i:"\"MultiLineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } +(?-i:"\"MultiPolygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } +(?-i:"\"GeometryCollection\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } [ \t] { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); } /* ignore but count white space */ diff --git a/src/spatialite/src/gaiageo/flex/gmlLexer.l b/src/spatialite/src/gaiageo/flex/gmlLexer.l index 827d3ca..6609f60 100644 --- a/src/spatialite/src/gaiageo/flex/gmlLexer.l +++ b/src/spatialite/src/gaiageo/flex/gmlLexer.l @@ -57,19 +57,19 @@ the terms of any one of the MPL, the GPL or the LGPL. * of the two tokens, FLEX will match POINTM. */ %% -"/" { gml_freeString(&(GmlLval.pval)); return GML_END; } -"=" { gml_freeString(&(GmlLval.pval)); return GML_EQ; } -"<" { gml_freeString(&(GmlLval.pval)); return GML_OPEN; } -">" { gml_freeString(&(GmlLval.pval)); return GML_CLOSE; } -[0-9,\.\+-]* { gml_saveString(&(GmlLval.pval), yytext); return GML_COORD; } -\"[^<>\"]*\" { gml_saveString(&(GmlLval.pval), yytext); return GML_VALUE; } -[a-zA-Z_][a-zA-Z_:0-9]* { gml_saveString(&(GmlLval.pval), yytext); return GML_KEYWORD; } +"/" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_END; } +"=" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_EQ; } +"<" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_OPEN; } +">" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_CLOSE; } +[0-9,\.\+-]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_COORD; } +\"[^<>\"]*\" { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_VALUE; } +[a-zA-Z_][a-zA-Z_:0-9]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_KEYWORD; } -[ \t] { gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); } /* ignore but count white space */ +[ \t] { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); } /* ignore but count white space */ -\n { gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col = 0; Gmlget_extra(yyscanner)->gml_line++; } +\n { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col = 0; Gmlget_extra(yyscanner)->gml_line++; } -. { gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); return -1; } +. { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) diff --git a/src/spatialite/src/gaiageo/flex/kmlLexer.l b/src/spatialite/src/gaiageo/flex/kmlLexer.l index 5e374eb..e6e7e7e 100644 --- a/src/spatialite/src/gaiageo/flex/kmlLexer.l +++ b/src/spatialite/src/gaiageo/flex/kmlLexer.l @@ -57,19 +57,19 @@ the terms of any one of the MPL, the GPL or the LGPL. * of the two tokens, FLEX will match POINTM. */ %% -"/" { kml_freeString(&(KmlLval.pval)); return KML_END; } -"=" { kml_freeString(&(KmlLval.pval)); return KML_EQ; } -"<" { kml_freeString(&(KmlLval.pval)); return KML_OPEN; } -">" { kml_freeString(&(KmlLval.pval)); return KML_CLOSE; } -[0-9,\.\+-]* { kml_saveString(&(KmlLval.pval), yytext); return KML_COORD; } -\"[^<>\"]*\" { kml_saveString(&(KmlLval.pval), yytext); return KML_VALUE; } -[a-zA-Z_][a-zA-Z_:0-9]* { kml_saveString(&(KmlLval.pval), yytext); return KML_KEYWORD; } +"/" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_END; } +"=" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_EQ; } +"<" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_OPEN; } +">" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_CLOSE; } +[0-9,\.\+-]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_COORD; } +\"[^<>\"]*\" { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_VALUE; } +[a-zA-Z_][a-zA-Z_:0-9]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_KEYWORD; } -[ \t] { kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); } /* ignore but count white space */ +[ \t] { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); } /* ignore but count white space */ -\n { kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col = 0; Kmlget_extra(yyscanner)->kml_line++; } +\n { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col = 0; Kmlget_extra(yyscanner)->kml_line++; } -. { kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); return -1; } +. { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) diff --git a/src/spatialite/src/gaiageo/flex/vanuatuLexer.l b/src/spatialite/src/gaiageo/flex/vanuatuLexer.l index ca9f033..b79e385 100644 --- a/src/spatialite/src/gaiageo/flex/vanuatuLexer.l +++ b/src/spatialite/src/gaiageo/flex/vanuatuLexer.l @@ -79,38 +79,38 @@ Greg Wilson gvwilson@cs.toronto.ca * of the two tokens, FLEX will match POINT ZM. */ %% --?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); VanuatuWktlval.dval = atof(yytext); return VANUATU_NUM; } -"," { VanuatuWktlval.dval = 0; return VANUATU_COMMA; } -"(" { VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } -")" { VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } -(?i:"point") { VanuatuWktlval.dval = 0; return VANUATU_POINT; } -(?i:"point"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } -(?i:"point"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } -(?i:"point"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } -(?i:"linestring") { VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } -(?i:"linestring"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } -(?i:"linestring"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } -(?i:"linestring"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } -(?i:"polygon") { VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } -(?i:"polygon"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } -(?i:"polygon"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } -(?i:"polygon"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } -(?i:"multipoint") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } -(?i:"multipoint"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } -(?i:"multipoint"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } -(?i:"multipoint"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } -(?i:"multilinestring") { VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } -(?i:"multilinestring"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } -(?i:"multilinestring"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } -(?i:"multilinestring"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } -(?i:"multipolygon") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } -(?i:"multipolygon"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } -(?i:"multipolygon"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } -(?i:"multipolygon"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } -(?i:"geometrycollection") { VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } -(?i:"geometrycollection"[ \t\n]*"z") { VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } -(?i:"geometrycollection"[ \t\n]*"m") { VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } -(?i:"geometrycollection"[ \t\n]*"zm") { VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } +-?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = atof(yytext); return VANUATU_NUM; } +"," { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_COMMA; } +"(" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } +")" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } +(?i:"point") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT; } +(?i:"point"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } +(?i:"point"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } +(?i:"point"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } +(?i:"linestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } +(?i:"linestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } +(?i:"linestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } +(?i:"linestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } +(?i:"polygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } +(?i:"polygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } +(?i:"polygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } +(?i:"polygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } +(?i:"multipoint") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } +(?i:"multipoint"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } +(?i:"multipoint"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } +(?i:"multipoint"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } +(?i:"multilinestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } +(?i:"multilinestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } +(?i:"multilinestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } +(?i:"multilinestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } +(?i:"multipolygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } +(?i:"multipolygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } +(?i:"multipolygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } +(?i:"multipolygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } +(?i:"geometrycollection") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } +(?i:"geometrycollection"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } +(?i:"geometrycollection"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } +(?i:"geometrycollection"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } [ \t] { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); } /* ignore but count white space */ diff --git a/src/spatialite/src/gaiageo/geoJSON.c b/src/spatialite/src/gaiageo/geoJSON.c index 79bf7c3..42f1eda 100644 --- a/src/spatialite/src/gaiageo/geoJSON.c +++ b/src/spatialite/src/gaiageo/geoJSON.c @@ -18,7 +18,7 @@ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE -# define INTERFACE 1 +#define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -58,17 +58,18 @@ #define YYNOCODE 84 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * -typedef union { - int yyinit; - ParseTOKENTYPE yy0; +typedef union +{ + int yyinit; + ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct geoJson_data *p_data ; -#define ParseARG_PDECL , struct geoJson_data *p_data -#define ParseARG_FETCH struct geoJson_data *p_data = yypParser->p_data -#define ParseARG_STORE yypParser->p_data = p_data +#define ParseARG_PDECL , struct geoJson_data *p_data +#define ParseARG_FETCH struct geoJson_data *p_data = yypParser->p_data +#define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 679 #define YYNRULE 159 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) @@ -88,7 +89,7 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** for testing. */ #ifndef yytestcase -# define yytestcase(X) +#define yytestcase(X) #endif @@ -140,323 +141,328 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 184, 533, 534, 535, 536, 537, 538, 539, 540, 541, - /* 10 */ 542, 543, 544, 545, 546, 547, 548, 187, 139, 189, - /* 20 */ 146, 147, 148, 190, 155, 156, 679, 104, 185, 112, - /* 30 */ 242, 287, 334, 373, 412, 451, 139, 195, 146, 147, - /* 40 */ 140, 201, 141, 142, 512, 149, 88, 150, 151, 157, - /* 50 */ 148, 551, 155, 156, 496, 188, 243, 193, 254, 509, - /* 60 */ 204, 262, 455, 288, 335, 301, 340, 471, 309, 348, - /* 70 */ 507, 374, 413, 379, 418, 457, 387, 426, 482, 191, - /* 80 */ 498, 480, 452, 567, 568, 839, 1, 169, 461, 465, - /* 90 */ 93, 486, 490, 501, 504, 238, 240, 211, 199, 207, - /* 100 */ 86, 201, 200, 208, 101, 244, 245, 215, 205, 217, - /* 110 */ 553, 216, 223, 219, 227, 99, 201, 220, 228, 246, - /* 120 */ 229, 19, 256, 250, 263, 275, 201, 260, 261, 95, - /* 130 */ 30, 269, 31, 265, 266, 201, 273, 274, 277, 278, - /* 140 */ 281, 285, 286, 42, 201, 292, 289, 290, 303, 297, - /* 150 */ 307, 308, 201, 310, 322, 312, 313, 96, 316, 328, - /* 160 */ 320, 321, 201, 201, 324, 325, 332, 333, 206, 120, - /* 170 */ 209, 336, 337, 121, 342, 192, 349, 361, 201, 53, - /* 180 */ 346, 347, 351, 352, 355, 64, 359, 360, 201, 363, - /* 190 */ 364, 367, 375, 376, 2, 201, 381, 371, 372, 394, - /* 200 */ 201, 122, 126, 201, 385, 386, 388, 400, 390, 391, - /* 210 */ 414, 415, 398, 399, 402, 403, 406, 410, 411, 420, - /* 220 */ 201, 130, 134, 201, 424, 425, 427, 439, 433, 429, - /* 230 */ 430, 218, 201, 221, 437, 438, 441, 442, 445, 477, - /* 240 */ 478, 202, 201, 449, 450, 473, 460, 468, 493, 201, - /* 250 */ 485, 464, 489, 508, 520, 514, 510, 511, 524, 201, - /* 260 */ 518, 519, 522, 523, 526, 203, 530, 531, 201, 264, - /* 270 */ 276, 267, 279, 521, 311, 323, 314, 326, 350, 362, - /* 280 */ 353, 365, 389, 401, 392, 404, 428, 440, 431, 443, - /* 290 */ 556, 247, 248, 97, 99, 251, 249, 571, 102, 105, - /* 300 */ 252, 253, 103, 292, 106, 573, 291, 295, 113, 293, - /* 310 */ 294, 111, 123, 114, 110, 589, 125, 124, 296, 297, - /* 320 */ 119, 127, 298, 299, 377, 840, 118, 620, 592, 128, - /* 330 */ 246, 131, 300, 132, 338, 135, 339, 250, 136, 4, - /* 340 */ 3, 5, 129, 532, 6, 158, 186, 133, 8, 552, - /* 350 */ 104, 378, 159, 549, 460, 622, 137, 550, 112, 87, - /* 360 */ 416, 194, 9, 10, 197, 464, 636, 196, 417, 468, - /* 370 */ 485, 638, 198, 453, 554, 555, 489, 454, 89, 90, - /* 380 */ 651, 652, 493, 91, 653, 11, 170, 469, 12, 470, - /* 390 */ 557, 558, 210, 213, 479, 13, 662, 663, 664, 214, - /* 400 */ 212, 14, 494, 559, 560, 678, 171, 495, 15, 561, - /* 410 */ 562, 222, 225, 16, 17, 226, 224, 563, 230, 564, - /* 420 */ 231, 236, 235, 233, 20, 232, 7, 234, 456, 239, - /* 430 */ 840, 565, 241, 237, 566, 569, 160, 18, 840, 551, - /* 440 */ 570, 92, 94, 98, 100, 572, 88, 255, 840, 21, - /* 450 */ 258, 840, 574, 257, 259, 22, 575, 270, 576, 172, - /* 460 */ 23, 268, 577, 578, 271, 25, 840, 272, 26, 24, - /* 470 */ 579, 580, 173, 581, 280, 840, 582, 840, 283, 27, - /* 480 */ 284, 28, 282, 583, 32, 29, 161, 584, 840, 840, - /* 490 */ 585, 586, 107, 108, 109, 587, 304, 840, 840, 115, - /* 500 */ 116, 117, 588, 590, 302, 33, 840, 591, 305, 840, - /* 510 */ 306, 840, 593, 594, 174, 34, 36, 35, 840, 39, - /* 520 */ 315, 476, 595, 596, 318, 37, 75, 840, 317, 840, - /* 530 */ 319, 329, 597, 598, 599, 175, 40, 38, 327, 600, - /* 540 */ 840, 330, 840, 331, 41, 601, 602, 603, 162, 840, - /* 550 */ 840, 341, 604, 840, 840, 840, 605, 606, 43, 344, - /* 560 */ 343, 840, 44, 356, 345, 45, 840, 607, 608, 176, - /* 570 */ 46, 358, 840, 609, 354, 840, 610, 357, 48, 47, - /* 580 */ 611, 49, 840, 612, 177, 366, 840, 613, 614, 840, - /* 590 */ 840, 369, 50, 370, 163, 368, 51, 615, 52, 840, - /* 600 */ 840, 616, 840, 617, 618, 840, 380, 840, 619, 621, - /* 610 */ 382, 383, 840, 178, 54, 55, 384, 840, 623, 56, - /* 620 */ 624, 57, 625, 393, 626, 840, 840, 59, 396, 840, - /* 630 */ 58, 397, 395, 627, 840, 179, 628, 60, 405, 629, - /* 640 */ 630, 840, 840, 62, 408, 840, 61, 409, 407, 631, - /* 650 */ 840, 164, 632, 63, 840, 633, 634, 419, 840, 840, - /* 660 */ 481, 635, 840, 637, 65, 423, 840, 421, 422, 66, - /* 670 */ 840, 81, 639, 67, 640, 840, 180, 68, 69, 840, - /* 680 */ 840, 432, 641, 642, 840, 435, 70, 840, 840, 434, - /* 690 */ 436, 840, 643, 181, 644, 71, 517, 840, 645, 444, - /* 700 */ 840, 646, 840, 183, 72, 447, 840, 446, 647, 448, - /* 710 */ 73, 840, 674, 648, 165, 138, 840, 649, 166, 143, - /* 720 */ 840, 650, 458, 84, 840, 459, 462, 654, 840, 463, - /* 730 */ 144, 655, 840, 466, 145, 467, 840, 840, 840, 656, - /* 740 */ 472, 840, 840, 657, 840, 658, 474, 475, 529, 840, - /* 750 */ 74, 840, 659, 85, 660, 167, 665, 840, 661, 483, - /* 760 */ 152, 840, 484, 487, 153, 840, 488, 154, 840, 666, - /* 770 */ 491, 840, 492, 840, 497, 667, 840, 168, 840, 668, - /* 780 */ 840, 669, 499, 670, 76, 500, 840, 840, 502, 77, - /* 790 */ 503, 840, 505, 840, 78, 79, 506, 840, 840, 182, - /* 800 */ 80, 513, 840, 671, 840, 840, 82, 516, 840, 840, - /* 810 */ 840, 515, 672, 840, 840, 673, 83, 840, 840, 527, - /* 820 */ 525, 675, 840, 528, 840, 840, 840, 840, 676, 677, + /* 0 */ 184, 533, 534, 535, 536, 537, 538, 539, 540, 541, + /* 10 */ 542, 543, 544, 545, 546, 547, 548, 187, 139, 189, + /* 20 */ 146, 147, 148, 190, 155, 156, 679, 104, 185, 112, + /* 30 */ 242, 287, 334, 373, 412, 451, 139, 195, 146, 147, + /* 40 */ 140, 201, 141, 142, 512, 149, 88, 150, 151, 157, + /* 50 */ 148, 551, 155, 156, 496, 188, 243, 193, 254, 509, + /* 60 */ 204, 262, 455, 288, 335, 301, 340, 471, 309, 348, + /* 70 */ 507, 374, 413, 379, 418, 457, 387, 426, 482, 191, + /* 80 */ 498, 480, 452, 567, 568, 839, 1, 169, 461, 465, + /* 90 */ 93, 486, 490, 501, 504, 238, 240, 211, 199, 207, + /* 100 */ 86, 201, 200, 208, 101, 244, 245, 215, 205, 217, + /* 110 */ 553, 216, 223, 219, 227, 99, 201, 220, 228, 246, + /* 120 */ 229, 19, 256, 250, 263, 275, 201, 260, 261, 95, + /* 130 */ 30, 269, 31, 265, 266, 201, 273, 274, 277, 278, + /* 140 */ 281, 285, 286, 42, 201, 292, 289, 290, 303, 297, + /* 150 */ 307, 308, 201, 310, 322, 312, 313, 96, 316, 328, + /* 160 */ 320, 321, 201, 201, 324, 325, 332, 333, 206, 120, + /* 170 */ 209, 336, 337, 121, 342, 192, 349, 361, 201, 53, + /* 180 */ 346, 347, 351, 352, 355, 64, 359, 360, 201, 363, + /* 190 */ 364, 367, 375, 376, 2, 201, 381, 371, 372, 394, + /* 200 */ 201, 122, 126, 201, 385, 386, 388, 400, 390, 391, + /* 210 */ 414, 415, 398, 399, 402, 403, 406, 410, 411, 420, + /* 220 */ 201, 130, 134, 201, 424, 425, 427, 439, 433, 429, + /* 230 */ 430, 218, 201, 221, 437, 438, 441, 442, 445, 477, + /* 240 */ 478, 202, 201, 449, 450, 473, 460, 468, 493, 201, + /* 250 */ 485, 464, 489, 508, 520, 514, 510, 511, 524, 201, + /* 260 */ 518, 519, 522, 523, 526, 203, 530, 531, 201, 264, + /* 270 */ 276, 267, 279, 521, 311, 323, 314, 326, 350, 362, + /* 280 */ 353, 365, 389, 401, 392, 404, 428, 440, 431, 443, + /* 290 */ 556, 247, 248, 97, 99, 251, 249, 571, 102, 105, + /* 300 */ 252, 253, 103, 292, 106, 573, 291, 295, 113, 293, + /* 310 */ 294, 111, 123, 114, 110, 589, 125, 124, 296, 297, + /* 320 */ 119, 127, 298, 299, 377, 840, 118, 620, 592, 128, + /* 330 */ 246, 131, 300, 132, 338, 135, 339, 250, 136, 4, + /* 340 */ 3, 5, 129, 532, 6, 158, 186, 133, 8, 552, + /* 350 */ 104, 378, 159, 549, 460, 622, 137, 550, 112, 87, + /* 360 */ 416, 194, 9, 10, 197, 464, 636, 196, 417, 468, + /* 370 */ 485, 638, 198, 453, 554, 555, 489, 454, 89, 90, + /* 380 */ 651, 652, 493, 91, 653, 11, 170, 469, 12, 470, + /* 390 */ 557, 558, 210, 213, 479, 13, 662, 663, 664, 214, + /* 400 */ 212, 14, 494, 559, 560, 678, 171, 495, 15, 561, + /* 410 */ 562, 222, 225, 16, 17, 226, 224, 563, 230, 564, + /* 420 */ 231, 236, 235, 233, 20, 232, 7, 234, 456, 239, + /* 430 */ 840, 565, 241, 237, 566, 569, 160, 18, 840, 551, + /* 440 */ 570, 92, 94, 98, 100, 572, 88, 255, 840, 21, + /* 450 */ 258, 840, 574, 257, 259, 22, 575, 270, 576, 172, + /* 460 */ 23, 268, 577, 578, 271, 25, 840, 272, 26, 24, + /* 470 */ 579, 580, 173, 581, 280, 840, 582, 840, 283, 27, + /* 480 */ 284, 28, 282, 583, 32, 29, 161, 584, 840, 840, + /* 490 */ 585, 586, 107, 108, 109, 587, 304, 840, 840, 115, + /* 500 */ 116, 117, 588, 590, 302, 33, 840, 591, 305, 840, + /* 510 */ 306, 840, 593, 594, 174, 34, 36, 35, 840, 39, + /* 520 */ 315, 476, 595, 596, 318, 37, 75, 840, 317, 840, + /* 530 */ 319, 329, 597, 598, 599, 175, 40, 38, 327, 600, + /* 540 */ 840, 330, 840, 331, 41, 601, 602, 603, 162, 840, + /* 550 */ 840, 341, 604, 840, 840, 840, 605, 606, 43, 344, + /* 560 */ 343, 840, 44, 356, 345, 45, 840, 607, 608, 176, + /* 570 */ 46, 358, 840, 609, 354, 840, 610, 357, 48, 47, + /* 580 */ 611, 49, 840, 612, 177, 366, 840, 613, 614, 840, + /* 590 */ 840, 369, 50, 370, 163, 368, 51, 615, 52, 840, + /* 600 */ 840, 616, 840, 617, 618, 840, 380, 840, 619, 621, + /* 610 */ 382, 383, 840, 178, 54, 55, 384, 840, 623, 56, + /* 620 */ 624, 57, 625, 393, 626, 840, 840, 59, 396, 840, + /* 630 */ 58, 397, 395, 627, 840, 179, 628, 60, 405, 629, + /* 640 */ 630, 840, 840, 62, 408, 840, 61, 409, 407, 631, + /* 650 */ 840, 164, 632, 63, 840, 633, 634, 419, 840, 840, + /* 660 */ 481, 635, 840, 637, 65, 423, 840, 421, 422, 66, + /* 670 */ 840, 81, 639, 67, 640, 840, 180, 68, 69, 840, + /* 680 */ 840, 432, 641, 642, 840, 435, 70, 840, 840, 434, + /* 690 */ 436, 840, 643, 181, 644, 71, 517, 840, 645, 444, + /* 700 */ 840, 646, 840, 183, 72, 447, 840, 446, 647, 448, + /* 710 */ 73, 840, 674, 648, 165, 138, 840, 649, 166, 143, + /* 720 */ 840, 650, 458, 84, 840, 459, 462, 654, 840, 463, + /* 730 */ 144, 655, 840, 466, 145, 467, 840, 840, 840, 656, + /* 740 */ 472, 840, 840, 657, 840, 658, 474, 475, 529, 840, + /* 750 */ 74, 840, 659, 85, 660, 167, 665, 840, 661, 483, + /* 760 */ 152, 840, 484, 487, 153, 840, 488, 154, 840, 666, + /* 770 */ 491, 840, 492, 840, 497, 667, 840, 168, 840, 668, + /* 780 */ 840, 669, 499, 670, 76, 500, 840, 840, 502, 77, + /* 790 */ 503, 840, 505, 840, 78, 79, 506, 840, 840, 182, + /* 800 */ 80, 513, 840, 671, 840, 840, 82, 516, 840, 840, + /* 810 */ 840, 515, 672, 840, 840, 673, 83, 840, 840, 527, + /* 820 */ 525, 675, 840, 528, 840, 840, 840, 840, 676, 677, }; + static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - /* 10 */ 38, 39, 40, 41, 42, 43, 44, 5, 75, 45, - /* 20 */ 77, 78, 79, 49, 81, 82, 0, 59, 2, 61, - /* 30 */ 18, 19, 20, 21, 22, 23, 75, 46, 77, 78, - /* 40 */ 75, 50, 77, 78, 9, 79, 6, 81, 82, 23, - /* 50 */ 79, 11, 81, 82, 2, 7, 7, 9, 9, 24, - /* 60 */ 12, 12, 2, 7, 7, 9, 9, 9, 12, 12, - /* 70 */ 12, 7, 7, 9, 9, 5, 12, 12, 5, 50, - /* 80 */ 5, 2, 24, 16, 17, 26, 27, 50, 18, 19, - /* 90 */ 10, 18, 19, 18, 19, 51, 52, 46, 45, 45, - /* 100 */ 10, 50, 49, 49, 49, 55, 56, 45, 47, 48, - /* 110 */ 15, 49, 46, 45, 45, 10, 50, 49, 49, 45, - /* 120 */ 2, 10, 46, 49, 47, 48, 50, 55, 56, 45, - /* 130 */ 10, 46, 10, 55, 56, 50, 55, 56, 55, 56, - /* 140 */ 46, 55, 56, 10, 50, 45, 57, 58, 46, 49, - /* 150 */ 57, 58, 50, 47, 48, 57, 58, 6, 46, 46, - /* 160 */ 57, 58, 50, 50, 57, 58, 57, 58, 7, 45, - /* 170 */ 9, 63, 64, 49, 46, 50, 47, 48, 50, 10, - /* 180 */ 63, 64, 63, 64, 46, 10, 63, 64, 50, 63, - /* 190 */ 64, 46, 65, 66, 10, 50, 46, 63, 64, 46, - /* 200 */ 50, 55, 56, 50, 65, 66, 47, 48, 65, 66, - /* 210 */ 69, 70, 65, 66, 65, 66, 46, 65, 66, 46, - /* 220 */ 50, 57, 58, 50, 69, 70, 47, 48, 46, 69, - /* 230 */ 70, 7, 50, 9, 69, 70, 69, 70, 46, 73, - /* 240 */ 74, 50, 50, 69, 70, 46, 45, 57, 58, 50, - /* 250 */ 49, 55, 56, 47, 48, 46, 73, 74, 9, 50, - /* 260 */ 73, 74, 73, 74, 46, 50, 73, 74, 50, 7, - /* 270 */ 7, 9, 9, 24, 7, 7, 9, 9, 7, 7, - /* 280 */ 9, 9, 7, 7, 9, 9, 7, 7, 9, 9, - /* 290 */ 50, 50, 50, 45, 10, 50, 53, 53, 6, 6, - /* 300 */ 50, 54, 49, 45, 10, 54, 60, 53, 6, 45, - /* 310 */ 45, 59, 6, 10, 45, 60, 55, 10, 62, 49, - /* 320 */ 61, 6, 49, 49, 67, 83, 49, 67, 62, 10, - /* 330 */ 45, 6, 54, 10, 53, 6, 54, 49, 10, 6, - /* 340 */ 10, 6, 56, 1, 10, 4, 3, 57, 4, 11, - /* 350 */ 59, 68, 6, 8, 45, 68, 58, 8, 61, 6, - /* 360 */ 71, 4, 10, 4, 6, 55, 71, 11, 72, 57, - /* 370 */ 49, 72, 7, 73, 8, 8, 56, 76, 6, 6, - /* 380 */ 76, 76, 58, 6, 76, 4, 6, 76, 4, 76, - /* 390 */ 8, 8, 4, 6, 80, 10, 80, 80, 80, 7, - /* 400 */ 11, 4, 80, 8, 8, 74, 6, 80, 4, 8, - /* 410 */ 8, 4, 6, 10, 4, 7, 11, 8, 3, 8, - /* 420 */ 4, 2, 4, 6, 10, 13, 4, 14, 3, 8, - /* 430 */ 83, 8, 8, 13, 8, 8, 6, 4, 83, 11, - /* 440 */ 8, 6, 6, 6, 6, 11, 6, 4, 83, 4, - /* 450 */ 6, 83, 11, 11, 7, 4, 8, 11, 8, 6, - /* 460 */ 4, 4, 8, 8, 6, 4, 83, 7, 4, 10, - /* 470 */ 8, 8, 6, 8, 4, 83, 8, 83, 6, 10, - /* 480 */ 7, 4, 11, 8, 10, 4, 6, 8, 83, 83, - /* 490 */ 8, 8, 6, 6, 6, 11, 11, 83, 83, 6, - /* 500 */ 6, 6, 11, 11, 4, 4, 83, 11, 6, 83, - /* 510 */ 7, 83, 8, 8, 6, 4, 10, 4, 83, 10, - /* 520 */ 4, 24, 8, 8, 6, 4, 4, 83, 11, 83, - /* 530 */ 7, 11, 8, 8, 8, 6, 4, 4, 4, 8, - /* 540 */ 83, 6, 83, 7, 4, 8, 8, 8, 6, 83, - /* 550 */ 83, 4, 8, 83, 83, 83, 11, 11, 10, 6, - /* 560 */ 11, 83, 4, 11, 7, 4, 83, 8, 8, 6, - /* 570 */ 4, 7, 83, 8, 4, 83, 8, 6, 4, 10, - /* 580 */ 8, 4, 83, 8, 6, 4, 83, 8, 8, 83, - /* 590 */ 83, 6, 10, 7, 6, 11, 4, 8, 4, 83, - /* 600 */ 83, 8, 83, 8, 8, 83, 4, 83, 11, 11, - /* 610 */ 11, 6, 83, 6, 10, 4, 7, 83, 8, 4, - /* 620 */ 8, 4, 8, 4, 8, 83, 83, 4, 6, 83, - /* 630 */ 10, 7, 11, 8, 83, 6, 8, 4, 4, 8, - /* 640 */ 8, 83, 83, 4, 6, 83, 10, 7, 11, 8, - /* 650 */ 83, 6, 8, 4, 83, 8, 8, 4, 83, 83, - /* 660 */ 3, 11, 83, 11, 10, 7, 83, 11, 6, 4, - /* 670 */ 83, 10, 8, 4, 8, 83, 6, 4, 10, 83, - /* 680 */ 83, 4, 8, 8, 83, 6, 4, 83, 83, 11, - /* 690 */ 7, 83, 8, 6, 8, 4, 24, 83, 8, 4, - /* 700 */ 83, 8, 83, 6, 10, 6, 83, 11, 8, 7, - /* 710 */ 4, 83, 8, 8, 6, 4, 83, 8, 4, 4, - /* 720 */ 83, 11, 6, 10, 83, 7, 6, 8, 83, 7, - /* 730 */ 4, 8, 83, 6, 4, 7, 83, 83, 83, 8, - /* 740 */ 4, 83, 83, 11, 83, 11, 11, 6, 24, 83, - /* 750 */ 10, 83, 8, 4, 8, 4, 8, 83, 11, 6, - /* 760 */ 4, 83, 7, 6, 4, 83, 7, 4, 83, 8, - /* 770 */ 6, 83, 7, 83, 3, 8, 83, 4, 83, 11, - /* 780 */ 83, 11, 6, 8, 4, 7, 83, 83, 6, 4, - /* 790 */ 7, 83, 6, 83, 4, 4, 7, 83, 83, 6, - /* 800 */ 4, 4, 83, 8, 83, 83, 4, 6, 83, 83, - /* 810 */ 83, 11, 8, 83, 83, 8, 4, 83, 83, 11, - /* 820 */ 4, 8, 83, 6, 83, 83, 83, 83, 8, 8, + /* 0 */ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + /* 10 */ 38, 39, 40, 41, 42, 43, 44, 5, 75, 45, + /* 20 */ 77, 78, 79, 49, 81, 82, 0, 59, 2, 61, + /* 30 */ 18, 19, 20, 21, 22, 23, 75, 46, 77, 78, + /* 40 */ 75, 50, 77, 78, 9, 79, 6, 81, 82, 23, + /* 50 */ 79, 11, 81, 82, 2, 7, 7, 9, 9, 24, + /* 60 */ 12, 12, 2, 7, 7, 9, 9, 9, 12, 12, + /* 70 */ 12, 7, 7, 9, 9, 5, 12, 12, 5, 50, + /* 80 */ 5, 2, 24, 16, 17, 26, 27, 50, 18, 19, + /* 90 */ 10, 18, 19, 18, 19, 51, 52, 46, 45, 45, + /* 100 */ 10, 50, 49, 49, 49, 55, 56, 45, 47, 48, + /* 110 */ 15, 49, 46, 45, 45, 10, 50, 49, 49, 45, + /* 120 */ 2, 10, 46, 49, 47, 48, 50, 55, 56, 45, + /* 130 */ 10, 46, 10, 55, 56, 50, 55, 56, 55, 56, + /* 140 */ 46, 55, 56, 10, 50, 45, 57, 58, 46, 49, + /* 150 */ 57, 58, 50, 47, 48, 57, 58, 6, 46, 46, + /* 160 */ 57, 58, 50, 50, 57, 58, 57, 58, 7, 45, + /* 170 */ 9, 63, 64, 49, 46, 50, 47, 48, 50, 10, + /* 180 */ 63, 64, 63, 64, 46, 10, 63, 64, 50, 63, + /* 190 */ 64, 46, 65, 66, 10, 50, 46, 63, 64, 46, + /* 200 */ 50, 55, 56, 50, 65, 66, 47, 48, 65, 66, + /* 210 */ 69, 70, 65, 66, 65, 66, 46, 65, 66, 46, + /* 220 */ 50, 57, 58, 50, 69, 70, 47, 48, 46, 69, + /* 230 */ 70, 7, 50, 9, 69, 70, 69, 70, 46, 73, + /* 240 */ 74, 50, 50, 69, 70, 46, 45, 57, 58, 50, + /* 250 */ 49, 55, 56, 47, 48, 46, 73, 74, 9, 50, + /* 260 */ 73, 74, 73, 74, 46, 50, 73, 74, 50, 7, + /* 270 */ 7, 9, 9, 24, 7, 7, 9, 9, 7, 7, + /* 280 */ 9, 9, 7, 7, 9, 9, 7, 7, 9, 9, + /* 290 */ 50, 50, 50, 45, 10, 50, 53, 53, 6, 6, + /* 300 */ 50, 54, 49, 45, 10, 54, 60, 53, 6, 45, + /* 310 */ 45, 59, 6, 10, 45, 60, 55, 10, 62, 49, + /* 320 */ 61, 6, 49, 49, 67, 83, 49, 67, 62, 10, + /* 330 */ 45, 6, 54, 10, 53, 6, 54, 49, 10, 6, + /* 340 */ 10, 6, 56, 1, 10, 4, 3, 57, 4, 11, + /* 350 */ 59, 68, 6, 8, 45, 68, 58, 8, 61, 6, + /* 360 */ 71, 4, 10, 4, 6, 55, 71, 11, 72, 57, + /* 370 */ 49, 72, 7, 73, 8, 8, 56, 76, 6, 6, + /* 380 */ 76, 76, 58, 6, 76, 4, 6, 76, 4, 76, + /* 390 */ 8, 8, 4, 6, 80, 10, 80, 80, 80, 7, + /* 400 */ 11, 4, 80, 8, 8, 74, 6, 80, 4, 8, + /* 410 */ 8, 4, 6, 10, 4, 7, 11, 8, 3, 8, + /* 420 */ 4, 2, 4, 6, 10, 13, 4, 14, 3, 8, + /* 430 */ 83, 8, 8, 13, 8, 8, 6, 4, 83, 11, + /* 440 */ 8, 6, 6, 6, 6, 11, 6, 4, 83, 4, + /* 450 */ 6, 83, 11, 11, 7, 4, 8, 11, 8, 6, + /* 460 */ 4, 4, 8, 8, 6, 4, 83, 7, 4, 10, + /* 470 */ 8, 8, 6, 8, 4, 83, 8, 83, 6, 10, + /* 480 */ 7, 4, 11, 8, 10, 4, 6, 8, 83, 83, + /* 490 */ 8, 8, 6, 6, 6, 11, 11, 83, 83, 6, + /* 500 */ 6, 6, 11, 11, 4, 4, 83, 11, 6, 83, + /* 510 */ 7, 83, 8, 8, 6, 4, 10, 4, 83, 10, + /* 520 */ 4, 24, 8, 8, 6, 4, 4, 83, 11, 83, + /* 530 */ 7, 11, 8, 8, 8, 6, 4, 4, 4, 8, + /* 540 */ 83, 6, 83, 7, 4, 8, 8, 8, 6, 83, + /* 550 */ 83, 4, 8, 83, 83, 83, 11, 11, 10, 6, + /* 560 */ 11, 83, 4, 11, 7, 4, 83, 8, 8, 6, + /* 570 */ 4, 7, 83, 8, 4, 83, 8, 6, 4, 10, + /* 580 */ 8, 4, 83, 8, 6, 4, 83, 8, 8, 83, + /* 590 */ 83, 6, 10, 7, 6, 11, 4, 8, 4, 83, + /* 600 */ 83, 8, 83, 8, 8, 83, 4, 83, 11, 11, + /* 610 */ 11, 6, 83, 6, 10, 4, 7, 83, 8, 4, + /* 620 */ 8, 4, 8, 4, 8, 83, 83, 4, 6, 83, + /* 630 */ 10, 7, 11, 8, 83, 6, 8, 4, 4, 8, + /* 640 */ 8, 83, 83, 4, 6, 83, 10, 7, 11, 8, + /* 650 */ 83, 6, 8, 4, 83, 8, 8, 4, 83, 83, + /* 660 */ 3, 11, 83, 11, 10, 7, 83, 11, 6, 4, + /* 670 */ 83, 10, 8, 4, 8, 83, 6, 4, 10, 83, + /* 680 */ 83, 4, 8, 8, 83, 6, 4, 83, 83, 11, + /* 690 */ 7, 83, 8, 6, 8, 4, 24, 83, 8, 4, + /* 700 */ 83, 8, 83, 6, 10, 6, 83, 11, 8, 7, + /* 710 */ 4, 83, 8, 8, 6, 4, 83, 8, 4, 4, + /* 720 */ 83, 11, 6, 10, 83, 7, 6, 8, 83, 7, + /* 730 */ 4, 8, 83, 6, 4, 7, 83, 83, 83, 8, + /* 740 */ 4, 83, 83, 11, 83, 11, 11, 6, 24, 83, + /* 750 */ 10, 83, 8, 4, 8, 4, 8, 83, 11, 6, + /* 760 */ 4, 83, 7, 6, 4, 83, 7, 4, 83, 8, + /* 770 */ 6, 83, 7, 83, 3, 8, 83, 4, 83, 11, + /* 780 */ 83, 11, 6, 8, 4, 7, 83, 83, 6, 4, + /* 790 */ 7, 83, 6, 83, 4, 4, 7, 83, 83, 6, + /* 800 */ 4, 4, 83, 8, 83, 83, 4, 6, 83, 83, + /* 810 */ 83, 11, 8, 83, 83, 8, 4, 83, 83, 11, + /* 820 */ 4, 8, 83, 6, 83, 83, 83, 83, 8, 8, }; + #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 531 static const short yy_shift_ofst[] = { - /* 0 */ -1, 26, 52, 60, 60, 79, 79, 67, 90, 95, - /* 10 */ 90, 118, 90, 95, 90, 90, 95, 90, 111, 90, - /* 20 */ 95, 111, 118, 111, 95, 111, 111, 95, 111, 120, - /* 30 */ 122, 90, 95, 120, 118, 120, 95, 120, 120, 95, - /* 40 */ 120, 133, 90, 95, 133, 118, 133, 95, 133, 133, - /* 50 */ 95, 133, 169, 111, 95, 169, 118, 169, 95, 169, - /* 60 */ 169, 95, 169, 175, 120, 95, 175, 118, 175, 95, - /* 70 */ 175, 175, 95, 175, 95, 184, 90, 111, 120, 118, - /* 80 */ 184, 95, 184, 184, 95, 184, 95, 95, 95, 95, - /* 90 */ 95, 95, 80, 95, 95, 151, 80, 151, 284, 95, - /* 100 */ 95, 292, 105, 292, 293, 294, 80, 80, 80, 80, - /* 110 */ 151, 293, 302, 303, 105, 105, 105, 105, 292, 302, - /* 120 */ 151, 292, 306, 307, 80, 306, 315, 319, 105, 315, - /* 130 */ 325, 323, 294, 325, 329, 328, 303, 329, 330, 333, - /* 140 */ 333, 333, 333, 80, 307, 323, 333, 333, 335, 335, - /* 150 */ 335, 335, 105, 319, 328, 335, 335, 334, 12, 48, - /* 160 */ 49, 56, 57, 64, 65, 58, 70, 73, 75, 40, - /* 170 */ 161, 224, 262, 263, 267, 268, 271, 272, 275, 276, - /* 180 */ 279, 280, 35, 249, 342, 343, 341, 346, 344, 345, - /* 190 */ 349, 353, 338, 357, 352, 356, 358, 365, 359, 366, - /* 200 */ 367, 372, 373, 377, 381, 380, 384, 382, 383, 388, - /* 210 */ 385, 389, 387, 392, 397, 395, 396, 400, 404, 401, - /* 220 */ 402, 407, 403, 405, 406, 408, 410, 409, 411, 415, - /* 230 */ 416, 412, 417, 413, 418, 419, 420, 422, 421, 423, - /* 240 */ 424, 426, 430, 433, 427, 432, 435, 436, 428, 434, - /* 250 */ 437, 438, 440, 441, 443, 414, 442, 444, 447, 445, - /* 260 */ 448, 450, 451, 453, 456, 454, 455, 457, 459, 446, - /* 270 */ 458, 460, 461, 462, 463, 466, 464, 465, 468, 470, - /* 280 */ 469, 471, 472, 473, 477, 475, 479, 480, 481, 482, - /* 290 */ 483, 484, 486, 487, 488, 491, 492, 493, 494, 495, - /* 300 */ 496, 500, 474, 485, 502, 503, 501, 504, 505, 511, - /* 310 */ 508, 513, 514, 515, 516, 506, 517, 518, 523, 521, - /* 320 */ 524, 525, 529, 533, 526, 531, 534, 509, 520, 535, - /* 330 */ 536, 532, 537, 538, 542, 540, 539, 544, 545, 546, - /* 340 */ 547, 548, 549, 553, 557, 558, 559, 560, 561, 563, - /* 350 */ 566, 565, 568, 570, 569, 552, 571, 564, 574, 572, - /* 360 */ 575, 578, 577, 579, 580, 581, 582, 584, 585, 586, - /* 370 */ 592, 589, 593, 588, 594, 595, 596, 597, 598, 602, - /* 380 */ 604, 599, 605, 609, 611, 610, 612, 615, 607, 617, - /* 390 */ 614, 616, 619, 620, 621, 622, 624, 623, 625, 628, - /* 400 */ 629, 633, 631, 632, 634, 636, 637, 638, 640, 639, - /* 410 */ 641, 644, 645, 649, 647, 648, 650, 652, 653, 654, - /* 420 */ 656, 662, 658, 665, 664, 666, 669, 670, 673, 674, - /* 430 */ 675, 677, 668, 678, 679, 683, 682, 684, 686, 687, - /* 440 */ 691, 690, 693, 695, 694, 696, 699, 702, 706, 700, - /* 450 */ 705, 708, 711, 709, 710, 425, 714, 716, 718, 715, - /* 460 */ 719, 720, 722, 726, 723, 727, 728, 730, 731, 732, - /* 470 */ 734, 736, 740, 735, 741, 497, 522, 744, 746, 747, - /* 480 */ 657, 751, 753, 755, 756, 748, 757, 759, 760, 761, - /* 490 */ 764, 765, 763, 767, 768, 770, 771, 773, 776, 778, - /* 500 */ 780, 782, 783, 785, 786, 789, 790, 791, 793, 796, - /* 510 */ 775, 795, 797, 661, 800, 801, 672, 802, 804, 807, - /* 520 */ 697, 812, 704, 813, 816, 713, 808, 817, 724, 749, - /* 530 */ 820, 821, + /* 0 */ -1, 26, 52, 60, 60, 79, 79, 67, 90, 95, + /* 10 */ 90, 118, 90, 95, 90, 90, 95, 90, 111, 90, + /* 20 */ 95, 111, 118, 111, 95, 111, 111, 95, 111, 120, + /* 30 */ 122, 90, 95, 120, 118, 120, 95, 120, 120, 95, + /* 40 */ 120, 133, 90, 95, 133, 118, 133, 95, 133, 133, + /* 50 */ 95, 133, 169, 111, 95, 169, 118, 169, 95, 169, + /* 60 */ 169, 95, 169, 175, 120, 95, 175, 118, 175, 95, + /* 70 */ 175, 175, 95, 175, 95, 184, 90, 111, 120, 118, + /* 80 */ 184, 95, 184, 184, 95, 184, 95, 95, 95, 95, + /* 90 */ 95, 95, 80, 95, 95, 151, 80, 151, 284, 95, + /* 100 */ 95, 292, 105, 292, 293, 294, 80, 80, 80, 80, + /* 110 */ 151, 293, 302, 303, 105, 105, 105, 105, 292, 302, + /* 120 */ 151, 292, 306, 307, 80, 306, 315, 319, 105, 315, + /* 130 */ 325, 323, 294, 325, 329, 328, 303, 329, 330, 333, + /* 140 */ 333, 333, 333, 80, 307, 323, 333, 333, 335, 335, + /* 150 */ 335, 335, 105, 319, 328, 335, 335, 334, 12, 48, + /* 160 */ 49, 56, 57, 64, 65, 58, 70, 73, 75, 40, + /* 170 */ 161, 224, 262, 263, 267, 268, 271, 272, 275, 276, + /* 180 */ 279, 280, 35, 249, 342, 343, 341, 346, 344, 345, + /* 190 */ 349, 353, 338, 357, 352, 356, 358, 365, 359, 366, + /* 200 */ 367, 372, 373, 377, 381, 380, 384, 382, 383, 388, + /* 210 */ 385, 389, 387, 392, 397, 395, 396, 400, 404, 401, + /* 220 */ 402, 407, 403, 405, 406, 408, 410, 409, 411, 415, + /* 230 */ 416, 412, 417, 413, 418, 419, 420, 422, 421, 423, + /* 240 */ 424, 426, 430, 433, 427, 432, 435, 436, 428, 434, + /* 250 */ 437, 438, 440, 441, 443, 414, 442, 444, 447, 445, + /* 260 */ 448, 450, 451, 453, 456, 454, 455, 457, 459, 446, + /* 270 */ 458, 460, 461, 462, 463, 466, 464, 465, 468, 470, + /* 280 */ 469, 471, 472, 473, 477, 475, 479, 480, 481, 482, + /* 290 */ 483, 484, 486, 487, 488, 491, 492, 493, 494, 495, + /* 300 */ 496, 500, 474, 485, 502, 503, 501, 504, 505, 511, + /* 310 */ 508, 513, 514, 515, 516, 506, 517, 518, 523, 521, + /* 320 */ 524, 525, 529, 533, 526, 531, 534, 509, 520, 535, + /* 330 */ 536, 532, 537, 538, 542, 540, 539, 544, 545, 546, + /* 340 */ 547, 548, 549, 553, 557, 558, 559, 560, 561, 563, + /* 350 */ 566, 565, 568, 570, 569, 552, 571, 564, 574, 572, + /* 360 */ 575, 578, 577, 579, 580, 581, 582, 584, 585, 586, + /* 370 */ 592, 589, 593, 588, 594, 595, 596, 597, 598, 602, + /* 380 */ 604, 599, 605, 609, 611, 610, 612, 615, 607, 617, + /* 390 */ 614, 616, 619, 620, 621, 622, 624, 623, 625, 628, + /* 400 */ 629, 633, 631, 632, 634, 636, 637, 638, 640, 639, + /* 410 */ 641, 644, 645, 649, 647, 648, 650, 652, 653, 654, + /* 420 */ 656, 662, 658, 665, 664, 666, 669, 670, 673, 674, + /* 430 */ 675, 677, 668, 678, 679, 683, 682, 684, 686, 687, + /* 440 */ 691, 690, 693, 695, 694, 696, 699, 702, 706, 700, + /* 450 */ 705, 708, 711, 709, 710, 425, 714, 716, 718, 715, + /* 460 */ 719, 720, 722, 726, 723, 727, 728, 730, 731, 732, + /* 470 */ 734, 736, 740, 735, 741, 497, 522, 744, 746, 747, + /* 480 */ 657, 751, 753, 755, 756, 748, 757, 759, 760, 761, + /* 490 */ 764, 765, 763, 767, 768, 770, 771, 773, 776, 778, + /* 500 */ 780, 782, 783, 785, 786, 789, 790, 791, 793, 796, + /* 510 */ 775, 795, 797, 661, 800, 801, 672, 802, 804, 807, + /* 520 */ 697, 812, 704, 813, 816, 713, 808, 817, 724, 749, + /* 530 */ 820, 821, }; + #define YY_REDUCE_USE_DFLT (-58) #define YY_REDUCE_MAX 157 static const short yy_reduce_ofst[] = { - /* 0 */ 59, -28, -57, -39, -35, -34, -29, 44, -26, -9, - /* 10 */ 53, 61, 54, 51, 62, 68, 66, 69, 50, 74, - /* 20 */ 76, 72, 77, 78, 85, 81, 83, 94, 86, 89, - /* 30 */ -32, 100, 102, 93, 106, 98, 112, 103, 107, 113, - /* 40 */ 109, 108, 124, 128, 117, 129, 119, 138, 123, 126, - /* 50 */ 145, 134, 127, 146, 150, 139, 159, 143, 153, 147, - /* 60 */ 149, 170, 152, 141, 164, 173, 155, 179, 160, 182, - /* 70 */ 165, 167, 192, 174, 199, 166, 201, 196, 190, 206, - /* 80 */ 183, 209, 187, 189, 218, 193, 29, 37, 125, 191, - /* 90 */ 215, 240, 84, 241, 242, 243, 248, 244, 55, 245, - /* 100 */ 250, 247, 253, 251, 246, 252, 258, 264, 265, 269, - /* 110 */ 254, 255, 256, 259, 270, 273, 274, 277, 278, 266, - /* 120 */ 281, 282, 257, 261, 285, 260, 283, 286, 288, 287, - /* 130 */ 289, 290, 291, 295, 296, 298, 297, 299, 300, 301, - /* 140 */ 304, 305, 308, 309, 310, 312, 311, 313, 314, 316, - /* 150 */ 317, 318, 321, 320, 324, 322, 327, 331, + /* 0 */ 59, -28, -57, -39, -35, -34, -29, 44, -26, -9, + /* 10 */ 53, 61, 54, 51, 62, 68, 66, 69, 50, 74, + /* 20 */ 76, 72, 77, 78, 85, 81, 83, 94, 86, 89, + /* 30 */ -32, 100, 102, 93, 106, 98, 112, 103, 107, 113, + /* 40 */ 109, 108, 124, 128, 117, 129, 119, 138, 123, 126, + /* 50 */ 145, 134, 127, 146, 150, 139, 159, 143, 153, 147, + /* 60 */ 149, 170, 152, 141, 164, 173, 155, 179, 160, 182, + /* 70 */ 165, 167, 192, 174, 199, 166, 201, 196, 190, 206, + /* 80 */ 183, 209, 187, 189, 218, 193, 29, 37, 125, 191, + /* 90 */ 215, 240, 84, 241, 242, 243, 248, 244, 55, 245, + /* 100 */ 250, 247, 253, 251, 246, 252, 258, 264, 265, 269, + /* 110 */ 254, 255, 256, 259, 270, 273, 274, 277, 278, 266, + /* 120 */ 281, 282, 257, 261, 285, 260, 283, 286, 288, 287, + /* 130 */ 289, 290, 291, 295, 296, 298, 297, 299, 300, 301, + /* 140 */ 304, 305, 308, 309, 310, 312, 311, 313, 314, 316, + /* 150 */ 317, 318, 321, 320, 324, 322, 327, 331, }; + static const YYACTIONTYPE yy_default[] = { - /* 0 */ 680, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 10 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 20 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 30 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 40 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 50 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 60 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 70 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 80 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 90 */ 838, 838, 838, 838, 838, 718, 838, 718, 838, 838, - /* 100 */ 838, 720, 838, 720, 751, 838, 838, 838, 838, 838, - /* 110 */ 718, 751, 754, 838, 838, 838, 838, 838, 720, 754, - /* 120 */ 718, 720, 783, 838, 838, 783, 786, 838, 838, 786, - /* 130 */ 801, 838, 838, 801, 804, 838, 838, 804, 838, 821, - /* 140 */ 821, 821, 821, 838, 838, 838, 821, 821, 828, 828, - /* 150 */ 828, 828, 838, 838, 838, 828, 828, 838, 838, 838, - /* 160 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 170 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 180 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 190 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 200 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 210 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 220 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 230 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 240 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 250 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 260 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 270 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 280 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 290 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 300 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 310 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 320 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 330 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 340 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 350 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 360 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 370 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 380 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 390 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 400 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 410 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 420 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 430 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 440 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 450 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 460 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 470 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 480 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 490 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 500 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 510 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 520 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - /* 530 */ 838, 838, 681, 682, 683, 684, 685, 686, 687, 688, - /* 540 */ 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - /* 550 */ 704, 713, 714, 715, 699, 705, 710, 700, 706, 702, - /* 560 */ 708, 701, 707, 703, 709, 711, 712, 716, 717, 722, - /* 570 */ 728, 719, 734, 721, 735, 723, 729, 724, 730, 726, - /* 580 */ 732, 725, 731, 727, 733, 736, 742, 748, 750, 752, - /* 590 */ 749, 753, 755, 737, 743, 738, 744, 740, 746, 739, - /* 600 */ 745, 741, 747, 756, 762, 768, 769, 757, 763, 758, - /* 610 */ 764, 760, 766, 759, 765, 761, 767, 770, 776, 782, - /* 620 */ 784, 785, 787, 771, 777, 772, 778, 774, 780, 773, - /* 630 */ 779, 775, 781, 788, 794, 800, 802, 803, 805, 789, - /* 640 */ 795, 790, 796, 792, 798, 791, 797, 793, 799, 806, - /* 650 */ 818, 822, 823, 824, 832, 834, 836, 819, 820, 807, - /* 660 */ 813, 825, 829, 830, 831, 833, 835, 837, 826, 827, - /* 670 */ 808, 814, 810, 816, 809, 815, 811, 817, 812, + /* 0 */ 680, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 10 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 20 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 30 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 40 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 50 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 60 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 70 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 80 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 90 */ 838, 838, 838, 838, 838, 718, 838, 718, 838, 838, + /* 100 */ 838, 720, 838, 720, 751, 838, 838, 838, 838, 838, + /* 110 */ 718, 751, 754, 838, 838, 838, 838, 838, 720, 754, + /* 120 */ 718, 720, 783, 838, 838, 783, 786, 838, 838, 786, + /* 130 */ 801, 838, 838, 801, 804, 838, 838, 804, 838, 821, + /* 140 */ 821, 821, 821, 838, 838, 838, 821, 821, 828, 828, + /* 150 */ 828, 828, 838, 838, 838, 828, 828, 838, 838, 838, + /* 160 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 170 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 180 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 190 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 200 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 210 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 220 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 230 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 240 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 250 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 260 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 270 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 280 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 290 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 300 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 310 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 320 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 330 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 340 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 350 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 360 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 370 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 380 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 390 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 400 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 410 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 420 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 430 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 440 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 450 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 460 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 470 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 480 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 490 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 500 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 510 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 520 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + /* 530 */ 838, 838, 681, 682, 683, 684, 685, 686, 687, 688, + /* 540 */ 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + /* 550 */ 704, 713, 714, 715, 699, 705, 710, 700, 706, 702, + /* 560 */ 708, 701, 707, 703, 709, 711, 712, 716, 717, 722, + /* 570 */ 728, 719, 734, 721, 735, 723, 729, 724, 730, 726, + /* 580 */ 732, 725, 731, 727, 733, 736, 742, 748, 750, 752, + /* 590 */ 749, 753, 755, 737, 743, 738, 744, 740, 746, 739, + /* 600 */ 745, 741, 747, 756, 762, 768, 769, 757, 763, 758, + /* 610 */ 764, 760, 766, 759, 765, 761, 767, 770, 776, 782, + /* 620 */ 784, 785, 787, 771, 777, 772, 778, 774, 780, 773, + /* 630 */ 779, 775, 781, 788, 794, 800, 802, 803, 805, 789, + /* 640 */ 795, 790, 796, 792, 798, 791, 797, 793, 799, 806, + /* 650 */ 818, 822, 823, 824, 832, 834, 836, 819, 820, 807, + /* 660 */ 813, 825, 829, 830, 831, 833, 835, 837, 826, 827, + /* 670 */ 808, 814, 810, 816, 809, 815, 811, 817, 812, }; + #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct @@ -486,29 +492,31 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ +struct yyStackEntry +{ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ +struct yyParser +{ + int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ + int yyidxMax; /* Maximum value of yyidx */ #endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ + int yyerrcnt; /* Shifts left before out of the error */ + ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ #else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; @@ -537,39 +545,48 @@ static char *yyTracePrompt = 0; ** Outputs: ** None. */ -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; +void +ParseTrace (FILE * TraceFILE, char *zTracePrompt) +{ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if (yyTraceFILE == 0) + yyTracePrompt = 0; + else if (yyTracePrompt == 0) + yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { - "$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE", - "GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS", - "GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET", "GEOJSON_CLOSE_BRACKET", - "GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM", - "GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING", "GEOJSON_POLYGON", - "GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON", "GEOJSON_GEOMETRYCOLLECTION", - "GEOJSON_GEOMS", "error", "main", "in", - "state", "program", "geo_text", "point", - "pointz", "linestring", "linestringz", "polygon", - "polygonz", "multipoint", "multipointz", "multilinestring", - "multilinestringz", "multipolygon", "multipolygonz", "geocoll", - "geocollz", "point_coordxy", "bbox", "short_crs", - "long_crs", "point_coordxyz", "coord", "short_srid", - "long_srid", "extra_pointsxy", "extra_pointsxyz", "linestring_text", - "linestring_textz", "polygon_text", "polygon_textz", "ring", - "extra_rings", "ringz", "extra_ringsz", "multipoint_text", - "multipoint_textz", "multilinestring_text", "multilinestring_textz", "multilinestring_text2", - "multilinestring_textz2", "multipolygon_text", "multipolygon_textz", "multipolygon_text2", - "multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point", - "geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz", - "geocoll_textz2", "coll_linestringz", "coll_polygonz", +static const char *const yyTokenName[] = { + "$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE", + "GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS", + "GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET", + "GEOJSON_CLOSE_BRACKET", + "GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM", + "GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING", + "GEOJSON_POLYGON", + "GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON", + "GEOJSON_GEOMETRYCOLLECTION", + "GEOJSON_GEOMS", "error", "main", "in", + "state", "program", "geo_text", "point", + "pointz", "linestring", "linestringz", "polygon", + "polygonz", "multipoint", "multipointz", "multilinestring", + "multilinestringz", "multipolygon", "multipolygonz", "geocoll", + "geocollz", "point_coordxy", "bbox", "short_crs", + "long_crs", "point_coordxyz", "coord", "short_srid", + "long_srid", "extra_pointsxy", "extra_pointsxyz", "linestring_text", + "linestring_textz", "polygon_text", "polygon_textz", "ring", + "extra_rings", "ringz", "extra_ringsz", "multipoint_text", + "multipoint_textz", "multilinestring_text", "multilinestring_textz", + "multilinestring_text2", + "multilinestring_textz2", "multipolygon_text", "multipolygon_textz", + "multipolygon_text2", + "multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point", + "geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz", + "geocoll_textz2", "coll_linestringz", "coll_polygonz", }; #endif /* NDEBUG */ @@ -577,165 +594,283 @@ static const char *const yyTokenName[] = { /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { - /* 0 */ "main ::= in", - /* 1 */ "in ::=", - /* 2 */ "in ::= in state GEOJSON_NEWLINE", - /* 3 */ "state ::= program", - /* 4 */ "program ::= geo_text", - /* 5 */ "geo_text ::= point", - /* 6 */ "geo_text ::= pointz", - /* 7 */ "geo_text ::= linestring", - /* 8 */ "geo_text ::= linestringz", - /* 9 */ "geo_text ::= polygon", - /* 10 */ "geo_text ::= polygonz", - /* 11 */ "geo_text ::= multipoint", - /* 12 */ "geo_text ::= multipointz", - /* 13 */ "geo_text ::= multilinestring", - /* 14 */ "geo_text ::= multilinestringz", - /* 15 */ "geo_text ::= multipolygon", - /* 16 */ "geo_text ::= multipolygonz", - /* 17 */ "geo_text ::= geocoll", - /* 18 */ "geo_text ::= geocollz", - /* 19 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 20 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 21 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 22 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 23 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 24 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 25 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 26 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 27 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 28 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 29 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 30 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 31 */ "bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord", - /* 32 */ "short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", - /* 33 */ "long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", - /* 34 */ "point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", - /* 35 */ "point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", - /* 36 */ "coord ::= GEOJSON_NUM", - /* 37 */ "short_srid ::= GEOJSON_SHORT_SRID", - /* 38 */ "long_srid ::= GEOJSON_LONG_SRID", - /* 39 */ "extra_pointsxy ::=", - /* 40 */ "extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy", - /* 41 */ "extra_pointsxyz ::=", - /* 42 */ "extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz", - /* 43 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 44 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 45 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 46 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 47 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 48 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 49 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 50 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 51 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 52 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 53 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 54 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 55 */ "linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", - /* 56 */ "linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", - /* 57 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 58 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 59 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 60 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 61 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 62 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 63 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 64 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 65 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 66 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 67 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 68 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", - /* 69 */ "polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET", - /* 70 */ "polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET", - /* 71 */ "ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", - /* 72 */ "extra_rings ::=", - /* 73 */ "extra_rings ::= GEOJSON_COMMA ring extra_rings", - /* 74 */ "ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", - /* 75 */ "extra_ringsz ::=", - /* 76 */ "extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz", - /* 77 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 78 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 79 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 80 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 81 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 82 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", - /* 83 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 84 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 85 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 86 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 87 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 88 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", - /* 89 */ "multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", - /* 90 */ "multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", - /* 91 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 92 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 93 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 94 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 95 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 96 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", - /* 97 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 98 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 99 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 100 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 101 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 102 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", - /* 103 */ "multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET", - /* 104 */ "multilinestring_text2 ::=", - /* 105 */ "multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2", - /* 106 */ "multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET", - /* 107 */ "multilinestring_textz2 ::=", - /* 108 */ "multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2", - /* 109 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 110 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 111 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 112 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 113 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 114 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", - /* 115 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 116 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 117 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 118 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 119 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 120 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", - /* 121 */ "multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET", - /* 122 */ "multipolygon_text2 ::=", - /* 123 */ "multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2", - /* 124 */ "multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET", - /* 125 */ "multipolygon_textz2 ::=", - /* 126 */ "multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2", - /* 127 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 128 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 129 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 130 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 131 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 132 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", - /* 133 */ "geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz", - /* 134 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", - /* 135 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", - /* 136 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", - /* 137 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", - /* 138 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", - /* 139 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET", - /* 140 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET", - /* 141 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET", - /* 142 */ "geocoll_text2 ::=", - /* 143 */ "geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2", - /* 144 */ "geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2", - /* 145 */ "geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2", - /* 146 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET", - /* 147 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET", - /* 148 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET", - /* 149 */ "geocoll_textz2 ::=", - /* 150 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2", - /* 151 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2", - /* 152 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2", - /* 153 */ "coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", - /* 154 */ "coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", - /* 155 */ "coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", - /* 156 */ "coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", - /* 157 */ "coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", - /* 158 */ "coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 0 */ "main ::= in", + /* 1 */ "in ::=", + /* 2 */ "in ::= in state GEOJSON_NEWLINE", + /* 3 */ "state ::= program", + /* 4 */ "program ::= geo_text", + /* 5 */ "geo_text ::= point", + /* 6 */ "geo_text ::= pointz", + /* 7 */ "geo_text ::= linestring", + /* 8 */ "geo_text ::= linestringz", + /* 9 */ "geo_text ::= polygon", + /* 10 */ "geo_text ::= polygonz", + /* 11 */ "geo_text ::= multipoint", + /* 12 */ "geo_text ::= multipointz", + /* 13 */ "geo_text ::= multilinestring", + /* 14 */ "geo_text ::= multilinestringz", + /* 15 */ "geo_text ::= multipolygon", + /* 16 */ "geo_text ::= multipolygonz", + /* 17 */ "geo_text ::= geocoll", + /* 18 */ "geo_text ::= geocollz", + /* 19 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 20 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 21 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 22 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 23 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 24 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 25 */ + "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 26 */ + "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 27 */ + "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 28 */ + "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 29 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 30 */ + "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 31 */ + "bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord", + /* 32 */ + "short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", + /* 33 */ + "long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", + /* 34 */ + "point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", + /* 35 */ + "point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", + /* 36 */ "coord ::= GEOJSON_NUM", + /* 37 */ "short_srid ::= GEOJSON_SHORT_SRID", + /* 38 */ "long_srid ::= GEOJSON_LONG_SRID", + /* 39 */ "extra_pointsxy ::=", + /* 40 */ "extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy", + /* 41 */ "extra_pointsxyz ::=", + /* 42 */ + "extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz", + /* 43 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 44 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 45 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 46 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 47 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 48 */ + "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 49 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 50 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 51 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 52 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 53 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 54 */ + "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 55 */ + "linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", + /* 56 */ + "linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", + /* 57 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 58 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 59 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 60 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 61 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 62 */ + "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 63 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 64 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 65 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 66 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 67 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 68 */ + "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", + /* 69 */ + "polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET", + /* 70 */ + "polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET", + /* 71 */ + "ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", + /* 72 */ "extra_rings ::=", + /* 73 */ "extra_rings ::= GEOJSON_COMMA ring extra_rings", + /* 74 */ + "ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", + /* 75 */ "extra_ringsz ::=", + /* 76 */ "extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz", + /* 77 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 78 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 79 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 80 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 81 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 82 */ + "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", + /* 83 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 84 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 85 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 86 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 87 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 88 */ + "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", + /* 89 */ + "multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", + /* 90 */ + "multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", + /* 91 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 92 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 93 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 94 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 95 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 96 */ + "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", + /* 97 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 98 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 99 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 100 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 101 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 102 */ + "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", + /* 103 */ + "multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET", + /* 104 */ "multilinestring_text2 ::=", + /* 105 */ + "multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2", + /* 106 */ + "multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET", + /* 107 */ "multilinestring_textz2 ::=", + /* 108 */ + "multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2", + /* 109 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 110 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 111 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 112 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 113 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 114 */ + "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", + /* 115 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 116 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 117 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 118 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 119 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 120 */ + "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", + /* 121 */ + "multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET", + /* 122 */ "multipolygon_text2 ::=", + /* 123 */ + "multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2", + /* 124 */ + "multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET", + /* 125 */ "multipolygon_textz2 ::=", + /* 126 */ + "multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2", + /* 127 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 128 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 129 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 130 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 131 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 132 */ + "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", + /* 133 */ "geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz", + /* 134 */ + "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", + /* 135 */ + "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", + /* 136 */ + "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", + /* 137 */ + "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", + /* 138 */ + "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", + /* 139 */ + "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET", + /* 140 */ + "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET", + /* 141 */ + "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET", + /* 142 */ "geocoll_text2 ::=", + /* 143 */ "geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2", + /* 144 */ "geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2", + /* 145 */ "geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2", + /* 146 */ + "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET", + /* 147 */ + "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET", + /* 148 */ + "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET", + /* 149 */ "geocoll_textz2 ::=", + /* 150 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2", + /* 151 */ + "geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2", + /* 152 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2", + /* 153 */ + "coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", + /* 154 */ + "coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", + /* 155 */ + "coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", + /* 156 */ + "coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", + /* 157 */ + "coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", + /* 158 */ + "coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", }; #endif /* NDEBUG */ @@ -744,22 +879,26 @@ static const char *const yyRuleName[] = { /* ** Try to increase the size of the parser stack. */ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; +static void +yyGrowStack (yyParser * p) +{ + int newSize; + yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; + newSize = p->yystksz * 2 + 100; + pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); + if (pNew) + { + p->yystack = pNew; + p->yystksz = newSize; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", + yyTracePrompt, p->yystksz); + } #endif - } + } } #endif @@ -775,21 +914,24 @@ static void yyGrowStack(yyParser *p){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); - if( pParser ){ - pParser->yyidx = -1; +void * +ParseAlloc (void *(*mallocProc) (size_t)) +{ + yyParser *pParser; + pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); + if (pParser) + { + pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; + pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); + pParser->yystack = NULL; + pParser->yystksz = 0; + yyGrowStack (pParser); #endif - } - return pParser; + } + return pParser; } /* The following function deletes the value associated with a @@ -797,24 +939,27 @@ void *ParseAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } +static void +yy_destructor (yyParser * yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE * yypminor /* The object to be destroyed */ + ) +{ + switch (yymajor) + { + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + default: + break; /* If no destructor action specified: do nothing */ + } } /* @@ -825,22 +970,25 @@ static void yy_destructor( ** ** Return the major token number for the symbol popped. */ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int +yy_pop_parser_stack (yyParser * pParser) +{ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - if( pParser->yyidx<0 ) return 0; + if (pParser->yyidx < 0) + return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } + if (yyTraceFILE && pParser->yyidx >= 0) + { + fprintf (yyTraceFILE, "%sPopping %s\n", + yyTracePrompt, yyTokenName[yytos->major]); + } #endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + yymajor = yytos->major; + yy_destructor (pParser, yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; } /* @@ -855,26 +1003,31 @@ static int yy_pop_parser_stack(yyParser *pParser){ ** from malloc. ** */ -void ParseFree( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); +void +ParseFree (void *p, /* The parser to be deleted */ + void (*freeProc) (void *) /* Function used to reclaim memory */ + ) +{ + yyParser *pParser = (yyParser *) p; + if (pParser == 0) + return; + while (pParser->yyidx >= 0) + yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 - free(pParser->yystack); + free (pParser->yystack); #endif - (*freeProc)((void*)pParser); + (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH -int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; +int +ParseStackPeak (void *p) +{ + yyParser *pParser = (yyParser *) p; + return pParser->yyidxMax; } #endif @@ -886,52 +1039,66 @@ int ParseStackPeak(void *p){ ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ +static int +yy_find_shift_action (yyParser * pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if (stateno > YY_SHIFT_MAX + || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) + { + return yy_default[stateno]; + } + assert (iLookAhead != YYNOCODE); + i += iLookAhead; + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + if (iLookAhead > 0) + { #ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[iFallback]); + } #endif - return yy_find_shift_action(pParser, iFallback); - } + return yy_find_shift_action (pParser, iFallback); + } #endif #ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j= 0 && j < YY_SZ_ACTTAB + && yy_lookahead[j] == YYWILDCARD) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } #endif /* NDEBUG */ - return yy_action[j]; - } - } + return yy_action[j]; + } + } #endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } + } + return yy_default[stateno]; + } + else + { + return yy_action[i]; + } } /* @@ -942,699 +1109,1178 @@ static int yy_find_shift_action( ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; +static int +yy_find_reduce_action (int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ - return yy_default[stateno]; - } + if (stateno > YY_REDUCE_MAX) + { + return yy_default[stateno]; + } #else - assert( stateno<=YY_REDUCE_MAX ); + assert (stateno <= YY_REDUCE_MAX); #endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; + i = yy_reduce_ofst[stateno]; + assert (i != YY_REDUCE_USE_DFLT); + assert (iLookAhead != YYNOCODE); + i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + return yy_default[stateno]; + } #else - assert( i>=0 && i= 0 && i < YY_SZ_ACTTAB); + assert (yy_lookahead[i] == iLookAhead); #endif - return yy_action[i]; + return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ -static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ - ParseARG_FETCH; - yypParser->yyidx--; +static void +yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) +{ + ParseARG_FETCH; + yypParser->yyidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ - spatialite_e( "Giving up. Parser stack overflow\n"); - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ + spatialite_e ("Giving up. Parser stack overflow\n"); + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; +static void +yy_shift (yyParser * yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ + ) +{ + yyStackEntry *yytos; + yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } + if (yypParser->yyidx > yypParser->yyidxMax) + { + yypParser->yyidxMax = yypParser->yyidx; + } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } +#if YYSTACKDEPTH>0 + if (yypParser->yyidx >= YYSTACKDEPTH) + { + yyStackOverflow (yypParser, yypMinor); + return; + } #else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } + if (yypParser->yyidx >= yypParser->yystksz) + { + yyGrowStack (yypParser); + if (yypParser->yyidx >= yypParser->yystksz) + { + yyStackOverflow (yypParser, yypMinor); + return; + } + } #endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = (YYACTIONTYPE) yyNewState; + yytos->major = (YYCODETYPE) yyMajor; + yytos->minor = *yypMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } + if (yyTraceFILE && yypParser->yyidx > 0) + { + int i; + fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); + fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); + for (i = 1; i <= yypParser->yyidx; i++) + fprintf (yyTraceFILE, " %s", + yyTokenName[yypParser->yystack[i].major]); + fprintf (yyTraceFILE, "\n"); + } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { - { 26, 1 }, - { 27, 0 }, - { 27, 3 }, - { 28, 1 }, - { 29, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 30, 1 }, - { 31, 9 }, - { 31, 15 }, - { 31, 13 }, - { 31, 13 }, - { 31, 19 }, - { 31, 19 }, - { 32, 9 }, - { 32, 15 }, - { 32, 13 }, - { 32, 13 }, - { 31, 19 }, - { 31, 19 }, - { 46, 7 }, - { 47, 13 }, - { 48, 13 }, - { 45, 5 }, - { 49, 7 }, - { 50, 1 }, - { 51, 1 }, - { 52, 1 }, - { 53, 0 }, - { 53, 3 }, - { 54, 0 }, - { 54, 3 }, - { 33, 9 }, - { 33, 15 }, - { 33, 13 }, - { 33, 13 }, - { 33, 19 }, - { 33, 19 }, - { 34, 9 }, - { 34, 15 }, - { 34, 13 }, - { 34, 13 }, - { 34, 19 }, - { 34, 19 }, - { 55, 6 }, - { 56, 6 }, - { 35, 9 }, - { 35, 15 }, - { 35, 13 }, - { 35, 13 }, - { 35, 19 }, - { 35, 19 }, - { 36, 9 }, - { 36, 15 }, - { 36, 13 }, - { 36, 13 }, - { 36, 19 }, - { 36, 19 }, - { 57, 4 }, - { 58, 4 }, - { 59, 10 }, - { 60, 0 }, - { 60, 3 }, - { 61, 10 }, - { 62, 0 }, - { 62, 3 }, - { 37, 9 }, - { 37, 15 }, - { 37, 13 }, - { 37, 13 }, - { 37, 19 }, - { 37, 19 }, - { 38, 9 }, - { 38, 15 }, - { 38, 13 }, - { 38, 13 }, - { 38, 19 }, - { 38, 19 }, - { 63, 4 }, - { 64, 4 }, - { 39, 9 }, - { 39, 15 }, - { 39, 13 }, - { 39, 13 }, - { 39, 19 }, - { 39, 19 }, - { 40, 9 }, - { 40, 15 }, - { 40, 13 }, - { 40, 13 }, - { 40, 19 }, - { 40, 19 }, - { 65, 4 }, - { 67, 0 }, - { 67, 3 }, - { 66, 4 }, - { 68, 0 }, - { 68, 3 }, - { 41, 9 }, - { 41, 15 }, - { 41, 13 }, - { 41, 13 }, - { 41, 19 }, - { 41, 19 }, - { 42, 9 }, - { 42, 15 }, - { 42, 13 }, - { 42, 13 }, - { 42, 19 }, - { 42, 19 }, - { 69, 4 }, - { 71, 0 }, - { 71, 3 }, - { 70, 4 }, - { 72, 0 }, - { 72, 3 }, - { 43, 9 }, - { 43, 15 }, - { 43, 13 }, - { 43, 13 }, - { 43, 19 }, - { 43, 19 }, - { 44, 2 }, - { 44, 15 }, - { 44, 13 }, - { 44, 13 }, - { 44, 19 }, - { 44, 19 }, - { 73, 4 }, - { 73, 4 }, - { 73, 4 }, - { 76, 0 }, - { 76, 3 }, - { 76, 3 }, - { 76, 3 }, - { 74, 4 }, - { 74, 4 }, - { 74, 4 }, - { 80, 0 }, - { 80, 3 }, - { 80, 3 }, - { 80, 3 }, - { 75, 9 }, - { 79, 9 }, - { 77, 9 }, - { 81, 9 }, - { 78, 9 }, - { 82, 9 }, -}; +static const struct +{ + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = +{ + { + 26, 1}, + { + 27, 0}, + { + 27, 3}, + { + 28, 1}, + { + 29, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 30, 1}, + { + 31, 9}, + { + 31, 15}, + { + 31, 13}, + { + 31, 13}, + { + 31, 19}, + { + 31, 19}, + { + 32, 9}, + { + 32, 15}, + { + 32, 13}, + { + 32, 13}, + { + 31, 19}, + { + 31, 19}, + { + 46, 7}, + { + 47, 13}, + { + 48, 13}, + { + 45, 5}, + { + 49, 7}, + { + 50, 1}, + { + 51, 1}, + { + 52, 1}, + { + 53, 0}, + { + 53, 3}, + { + 54, 0}, + { + 54, 3}, + { + 33, 9}, + { + 33, 15}, + { + 33, 13}, + { + 33, 13}, + { + 33, 19}, + { + 33, 19}, + { + 34, 9}, + { + 34, 15}, + { + 34, 13}, + { + 34, 13}, + { + 34, 19}, + { + 34, 19}, + { + 55, 6}, + { + 56, 6}, + { + 35, 9}, + { + 35, 15}, + { + 35, 13}, + { + 35, 13}, + { + 35, 19}, + { + 35, 19}, + { + 36, 9}, + { + 36, 15}, + { + 36, 13}, + { + 36, 13}, + { + 36, 19}, + { + 36, 19}, + { + 57, 4}, + { + 58, 4}, + { + 59, 10}, + { + 60, 0}, + { + 60, 3}, + { + 61, 10}, + { + 62, 0}, + { + 62, 3}, + { + 37, 9}, + { + 37, 15}, + { + 37, 13}, + { + 37, 13}, + { + 37, 19}, + { + 37, 19}, + { + 38, 9}, + { + 38, 15}, + { + 38, 13}, + { + 38, 13}, + { + 38, 19}, + { + 38, 19}, + { + 63, 4}, + { + 64, 4}, + { + 39, 9}, + { + 39, 15}, + { + 39, 13}, + { + 39, 13}, + { + 39, 19}, + { + 39, 19}, + { + 40, 9}, + { + 40, 15}, + { + 40, 13}, + { + 40, 13}, + { + 40, 19}, + { + 40, 19}, + { + 65, 4}, + { + 67, 0}, + { + 67, 3}, + { + 66, 4}, + { + 68, 0}, + { + 68, 3}, + { + 41, 9}, + { + 41, 15}, + { + 41, 13}, + { + 41, 13}, + { + 41, 19}, + { + 41, 19}, + { + 42, 9}, + { + 42, 15}, + { + 42, 13}, + { + 42, 13}, + { + 42, 19}, + { + 42, 19}, + { + 69, 4}, + { + 71, 0}, + { + 71, 3}, + { + 70, 4}, + { + 72, 0}, + { + 72, 3}, + { + 43, 9}, + { + 43, 15}, + { + 43, 13}, + { + 43, 13}, + { + 43, 19}, + { + 43, 19}, + { + 44, 2}, + { + 44, 15}, + { + 44, 13}, + { + 44, 13}, + { + 44, 19}, + { + 44, 19}, + { + 73, 4}, + { + 73, 4}, + { + 73, 4}, + { + 76, 0}, + { + 76, 3}, + { + 76, 3}, + { + 76, 3}, + { + 74, 4}, + { + 74, 4}, + { + 74, 4}, + { + 80, 0}, + { + 80, 3}, + { + 80, 3}, + { + 80, 3}, + { + 75, 9}, + { + 79, 9}, + { + 77, 9}, + { + 81, 9}, + { + 78, 9}, + { +82, 9},}; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; +static void +yy_reduce (yyParser * yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ + ) +{ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } + if (yyTraceFILE && yyruleno >= 0 + && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) + { + fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } #endif /* NDEBUG */ - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&yygotominor, 0, sizeof(yygotominor)); */ + yygotominor = yyzerominor; - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line - ** { ... } // User supplied code - ** #line - ** break; - */ - case 5: /* geo_text ::= point */ - case 6: /* geo_text ::= pointz */ yytestcase(yyruleno==6); - case 7: /* geo_text ::= linestring */ yytestcase(yyruleno==7); - case 8: /* geo_text ::= linestringz */ yytestcase(yyruleno==8); - case 9: /* geo_text ::= polygon */ yytestcase(yyruleno==9); - case 10: /* geo_text ::= polygonz */ yytestcase(yyruleno==10); - case 11: /* geo_text ::= multipoint */ yytestcase(yyruleno==11); - case 12: /* geo_text ::= multipointz */ yytestcase(yyruleno==12); - case 13: /* geo_text ::= multilinestring */ yytestcase(yyruleno==13); - case 14: /* geo_text ::= multilinestringz */ yytestcase(yyruleno==14); - case 15: /* geo_text ::= multipolygon */ yytestcase(yyruleno==15); - case 16: /* geo_text ::= multipolygonz */ yytestcase(yyruleno==16); - case 17: /* geo_text ::= geocoll */ yytestcase(yyruleno==17); - case 18: /* geo_text ::= geocollz */ yytestcase(yyruleno==18); -{ p_data->result = yymsp[0].minor.yy0; } - break; - case 19: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ - case 20: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==20); - case 25: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==25); - case 26: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==26); -{ yygotominor.yy0 = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 21: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ - case 22: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==22); - case 27: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==27); - case 28: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==28); -{ yygotominor.yy0 = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0, (int *)yymsp[-5].minor.yy0); } - break; - case 23: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ - case 24: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==24); - case 29: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==29); - case 30: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==30); -{ yygotominor.yy0 = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0, (int *)yymsp[-11].minor.yy0); } - break; - case 32: /* short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ - case 33: /* long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==33); -{ yygotominor.yy0 = yymsp[-2].minor.yy0; } - break; - case 34: /* point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) geoJSON_point_xy( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 35: /* point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) geoJSON_point_xyz( p_data, (double *)yymsp[-5].minor.yy0, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 36: /* coord ::= GEOJSON_NUM */ - case 37: /* short_srid ::= GEOJSON_SHORT_SRID */ yytestcase(yyruleno==37); - case 38: /* long_srid ::= GEOJSON_LONG_SRID */ yytestcase(yyruleno==38); - case 133: /* geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz */ yytestcase(yyruleno==133); -{ yygotominor.yy0 = yymsp[0].minor.yy0; } - break; - case 39: /* extra_pointsxy ::= */ - case 41: /* extra_pointsxyz ::= */ yytestcase(yyruleno==41); - case 72: /* extra_rings ::= */ yytestcase(yyruleno==72); - case 75: /* extra_ringsz ::= */ yytestcase(yyruleno==75); - case 104: /* multilinestring_text2 ::= */ yytestcase(yyruleno==104); - case 107: /* multilinestring_textz2 ::= */ yytestcase(yyruleno==107); - case 122: /* multipolygon_text2 ::= */ yytestcase(yyruleno==122); - case 125: /* multipolygon_textz2 ::= */ yytestcase(yyruleno==125); - case 142: /* geocoll_text2 ::= */ yytestcase(yyruleno==142); - case 149: /* geocoll_textz2 ::= */ yytestcase(yyruleno==149); -{ yygotominor.yy0 = NULL; } - break; - case 40: /* extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy */ - case 42: /* extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz */ yytestcase(yyruleno==42); -{ ((gaiaPointPtr)yymsp[-1].minor.yy0)->Next = (gaiaPointPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 43: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ - case 44: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==44); - case 49: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==49); - case 50: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==50); -{ yygotominor.yy0 = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)yymsp[-1].minor.yy0); } - break; - case 45: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ - case 46: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==46); - case 51: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==51); - case 52: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==52); -{ yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)yymsp[-1].minor.yy0, (int *)yymsp[-5].minor.yy0); } - break; - case 47: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ - case 48: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==48); - case 53: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==53); - case 54: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==54); -{ yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)yymsp[-1].minor.yy0, (int *)yymsp[-11].minor.yy0); } - break; - case 55: /* linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_linestring_xy( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 56: /* linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_linestring_xyz( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 57: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ - case 58: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==58); - case 63: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==63); - case 64: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==64); -{ yygotominor.yy0 = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)yymsp[-1].minor.yy0); } - break; - case 59: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ - case 60: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==60); - case 65: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==65); - case 66: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==66); -{ yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)yymsp[-1].minor.yy0, (int *)yymsp[-5].minor.yy0); } - break; - case 61: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ - case 62: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==62); - case 67: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==67); - case 68: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==68); -{ yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)yymsp[-1].minor.yy0, (int *)yymsp[-11].minor.yy0); } - break; - case 69: /* polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_polygon_xy(p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 70: /* polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_polygon_xyz(p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 71: /* ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_ring_xy(p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 73: /* extra_rings ::= GEOJSON_COMMA ring extra_rings */ - case 76: /* extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz */ yytestcase(yyruleno==76); -{ - ((gaiaRingPtr)yymsp[-1].minor.yy0)->Next = (gaiaRingPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 74: /* ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_ring_xyz(p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 77: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ - case 78: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==78); - case 83: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==83); - case 84: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==84); - case 91: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==91); - case 92: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==92); - case 97: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==97); - case 98: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==98); - case 109: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==109); - case 110: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==110); - case 115: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==115); - case 116: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==116); - case 127: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==127); - case 128: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==128); - case 134: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==134); -{ yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 79: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ - case 80: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==80); - case 85: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==85); - case 86: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==86); - case 93: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==93); - case 94: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==94); - case 99: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==99); - case 100: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==100); - case 111: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==111); - case 112: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==112); - case 117: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==117); - case 118: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==118); - case 129: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==129); - case 130: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==130); - case 135: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==135); - case 136: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==136); -{ yygotominor.yy0 = (void *) geoJSON_setSrid((gaiaGeomCollPtr)yymsp[-1].minor.yy0, (int *)yymsp[-5].minor.yy0); } - break; - case 81: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ - case 82: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==82); - case 87: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==87); - case 88: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==88); - case 95: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==95); - case 96: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==96); - case 101: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==101); - case 102: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==102); - case 113: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==113); - case 114: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==114); - case 119: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==119); - case 120: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==120); - case 131: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==131); - case 132: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==132); - case 137: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==137); - case 138: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==138); -{ yygotominor.yy0 = (void *) geoJSON_setSrid((gaiaGeomCollPtr)yymsp[-1].minor.yy0, (int *)yymsp[-11].minor.yy0); } - break; - case 89: /* multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multipoint_xy(p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 90: /* multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multipoint_xyz(p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 103: /* multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multilinestring_xy( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 105: /* multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2 */ - case 108: /* multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2 */ yytestcase(yyruleno==108); -{ ((gaiaLinestringPtr)yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 106: /* multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multilinestring_xyz(p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 121: /* multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multipolygon_xy(p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 123: /* multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2 */ - case 126: /* multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2 */ yytestcase(yyruleno==126); -{ ((gaiaPolygonPtr)yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 124: /* multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_multipolygon_xyz(p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 139: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET */ - case 140: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase(yyruleno==140); - case 141: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase(yyruleno==141); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 143: /* geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2 */ - case 144: /* geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2 */ yytestcase(yyruleno==144); - case 145: /* geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2 */ yytestcase(yyruleno==145); - case 150: /* geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2 */ yytestcase(yyruleno==150); - case 151: /* geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2 */ yytestcase(yyruleno==151); - case 152: /* geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2 */ yytestcase(yyruleno==152); -{ - ((gaiaGeomCollPtr)yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 146: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ - case 147: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase(yyruleno==147); - case 148: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase(yyruleno==148); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 153: /* coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ - case 154: /* coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==154); -{ yygotominor.yy0 = geoJSON_buildGeomFromPoint(p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 155: /* coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ - case 156: /* coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==156); -{ yygotominor.yy0 = geoJSON_buildGeomFromLinestring(p_data, (gaiaLinestringPtr)yymsp[-1].minor.yy0); } - break; - case 157: /* coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ - case 158: /* coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase(yyruleno==158); -{ yygotominor.yy0 = geoJSON_buildGeomFromPolygon(p_data, (gaiaPolygonPtr)yymsp[-1].minor.yy0); } - break; + switch (yyruleno) + { + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 5: /* geo_text ::= point */ + case 6: /* geo_text ::= pointz */ + yytestcase (yyruleno == 6); + case 7: /* geo_text ::= linestring */ + yytestcase (yyruleno == 7); + case 8: /* geo_text ::= linestringz */ + yytestcase (yyruleno == 8); + case 9: /* geo_text ::= polygon */ + yytestcase (yyruleno == 9); + case 10: /* geo_text ::= polygonz */ + yytestcase (yyruleno == 10); + case 11: /* geo_text ::= multipoint */ + yytestcase (yyruleno == 11); + case 12: /* geo_text ::= multipointz */ + yytestcase (yyruleno == 12); + case 13: /* geo_text ::= multilinestring */ + yytestcase (yyruleno == 13); + case 14: /* geo_text ::= multilinestringz */ + yytestcase (yyruleno == 14); + case 15: /* geo_text ::= multipolygon */ + yytestcase (yyruleno == 15); + case 16: /* geo_text ::= multipolygonz */ + yytestcase (yyruleno == 16); + case 17: /* geo_text ::= geocoll */ + yytestcase (yyruleno == 17); + case 18: /* geo_text ::= geocollz */ + yytestcase (yyruleno == 18); + { + p_data->result = yymsp[0].minor.yy0; + } + break; + case 19: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + case 20: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 20); + case 25: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 25); + case 26: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 26); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor. + yy0); + } + break; + case 21: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + case 22: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 22); + case 27: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 27); + case 28: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 28); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPointSrid (p_data, + (gaiaPointPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-5].minor.yy0); + } + break; + case 23: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + case 24: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 24); + case 29: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 29); + case 30: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 30); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPointSrid (p_data, + (gaiaPointPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-11].minor.yy0); + } + break; + case 32: /* short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ + case 33: /* long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 33); + { + yygotominor.yy0 = yymsp[-2].minor.yy0; + } + break; + case 34: /* point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) geoJSON_point_xy (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 35: /* point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) geoJSON_point_xyz (p_data, + (double *) yymsp[-5].minor.yy0, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 36: /* coord ::= GEOJSON_NUM */ + case 37: /* short_srid ::= GEOJSON_SHORT_SRID */ + yytestcase (yyruleno == 37); + case 38: /* long_srid ::= GEOJSON_LONG_SRID */ + yytestcase (yyruleno == 38); + case 133: /* geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz */ + yytestcase (yyruleno == 133); + { + yygotominor.yy0 = yymsp[0].minor.yy0; + } + break; + case 39: /* extra_pointsxy ::= */ + case 41: /* extra_pointsxyz ::= */ + yytestcase (yyruleno == 41); + case 72: /* extra_rings ::= */ + yytestcase (yyruleno == 72); + case 75: /* extra_ringsz ::= */ + yytestcase (yyruleno == 75); + case 104: /* multilinestring_text2 ::= */ + yytestcase (yyruleno == 104); + case 107: /* multilinestring_textz2 ::= */ + yytestcase (yyruleno == 107); + case 122: /* multipolygon_text2 ::= */ + yytestcase (yyruleno == 122); + case 125: /* multipolygon_textz2 ::= */ + yytestcase (yyruleno == 125); + case 142: /* geocoll_text2 ::= */ + yytestcase (yyruleno == 142); + case 149: /* geocoll_textz2 ::= */ + yytestcase (yyruleno == 149); + { + yygotominor.yy0 = NULL; + } + break; + case 40: /* extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy */ + case 42: /* extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz */ + yytestcase (yyruleno == 42); + { + ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPointPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 43: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + case 44: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 44); + case 49: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 49); + case 50: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 50); + { + yygotominor.yy0 = + geoJSON_buildGeomFromLinestring (p_data, + (gaiaLinestringPtr) + yymsp[-1].minor.yy0); + } + break; + case 45: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + case 46: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 46); + case 51: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 51); + case 52: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 52); + { + yygotominor.yy0 = + geoJSON_buildGeomFromLinestringSrid (p_data, + (gaiaLinestringPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-5].minor. + yy0); + } + break; + case 47: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + case 48: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 48); + case 53: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 53); + case 54: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 54); + { + yygotominor.yy0 = + geoJSON_buildGeomFromLinestringSrid (p_data, + (gaiaLinestringPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-11].minor. + yy0); + } + break; + case 55: /* linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_linestring_xy (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 56: /* linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_linestring_xyz (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 57: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + case 58: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 58); + case 63: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 63); + case 64: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 64); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPolygon (p_data, + (gaiaPolygonPtr) + yymsp[-1].minor.yy0); + } + break; + case 59: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + case 60: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 60); + case 65: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 65); + case 66: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 66); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPolygonSrid (p_data, + (gaiaPolygonPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-5].minor. + yy0); + } + break; + case 61: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + case 62: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 62); + case 67: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 67); + case 68: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 68); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPolygonSrid (p_data, + (gaiaPolygonPtr) + yymsp[-1].minor.yy0, + (int *) yymsp[-11].minor. + yy0); + } + break; + case 69: /* polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_polygon_xy (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 70: /* polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_polygon_xyz (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 71: /* ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_ring_xy (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 73: /* extra_rings ::= GEOJSON_COMMA ring extra_rings */ + case 76: /* extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz */ + yytestcase (yyruleno == 76); + { + ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = + (gaiaRingPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 74: /* ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_ring_xyz (p_data, + (gaiaPointPtr) yymsp[-8].minor. + yy0); + } + break; + case 77: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + case 78: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 78); + case 83: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 83); + case 84: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 84); + case 91: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 91); + case 92: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 92); + case 97: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 97); + case 98: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 98); + case 109: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 109); + case 110: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 110); + case 115: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 115); + case 116: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 116); + case 127: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 127); + case 128: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 128); + case 134: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 134); + { + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 79: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + case 80: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 80); + case 85: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 85); + case 86: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 86); + case 93: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 93); + case 94: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 94); + case 99: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 99); + case 100: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 100); + case 111: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 111); + case 112: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 112); + case 117: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 117); + case 118: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 118); + case 129: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 129); + case 130: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 130); + case 135: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 135); + case 136: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 136); + { + yygotominor.yy0 = + (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. + yy0, (int *) yymsp[-5].minor.yy0); + } + break; + case 81: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + case 82: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 82); + case 87: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 87); + case 88: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 88); + case 95: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 95); + case 96: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 96); + case 101: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 101); + case 102: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 102); + case 113: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 113); + case 114: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 114); + case 119: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 119); + case 120: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 120); + case 131: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 131); + case 132: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 132); + case 137: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 137); + case 138: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 138); + { + yygotominor.yy0 = + (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. + yy0, (int *) yymsp[-11].minor.yy0); + } + break; + case 89: /* multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multipoint_xy (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 90: /* multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multipoint_xyz (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 103: /* multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multilinestring_xy (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 105: /* multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2 */ + case 108: /* multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2 */ + yytestcase (yyruleno == 108); + { + ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 106: /* multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multilinestring_xyz (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 121: /* multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multipolygon_xy (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 123: /* multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2 */ + case 126: /* multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2 */ + yytestcase (yyruleno == 126); + { + ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 124: /* multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_multipolygon_xyz (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 139: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET */ + case 140: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET */ + yytestcase (yyruleno == 140); + case 141: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET */ + yytestcase (yyruleno == 141); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_geomColl_xy (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; + case 143: /* geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2 */ + case 144: /* geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2 */ + yytestcase (yyruleno == 144); + case 145: /* geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2 */ + yytestcase (yyruleno == 145); + case 150: /* geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2 */ + yytestcase (yyruleno == 150); + case 151: /* geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2 */ + yytestcase (yyruleno == 151); + case 152: /* geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2 */ + yytestcase (yyruleno == 152); + { + ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 146: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ + case 147: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ + yytestcase (yyruleno == 147); + case 148: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ + yytestcase (yyruleno == 148); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) geoJSON_geomColl_xyz (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; + case 153: /* coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ + case 154: /* coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 154); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor. + yy0); + } + break; + case 155: /* coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ + case 156: /* coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 156); + { + yygotominor.yy0 = + geoJSON_buildGeomFromLinestring (p_data, + (gaiaLinestringPtr) + yymsp[-1].minor.yy0); + } + break; + case 157: /* coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ + case 158: /* coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ + yytestcase (yyruleno == 158); + { + yygotominor.yy0 = + geoJSON_buildGeomFromPolygon (p_data, + (gaiaPolygonPtr) + yymsp[-1].minor.yy0); + } + break; default: - /* (0) main ::= in */ yytestcase(yyruleno==0); - /* (1) in ::= */ yytestcase(yyruleno==1); - /* (2) in ::= in state GEOJSON_NEWLINE */ yytestcase(yyruleno==2); - /* (3) state ::= program */ yytestcase(yyruleno==3); - /* (4) program ::= geo_text */ yytestcase(yyruleno==4); - /* (31) bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord */ yytestcase(yyruleno==31); - break; - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ + /* (0) main ::= in */ yytestcase (yyruleno == 0); + /* (1) in ::= */ yytestcase (yyruleno == 1); + /* (2) in ::= in state GEOJSON_NEWLINE */ yytestcase (yyruleno == 2); + /* (3) state ::= program */ yytestcase (yyruleno == 3); + /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); + /* (31) bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord */ + yytestcase (yyruleno == 31); + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); + if (yyact < YYNSTATE) + { #ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if (yysize) + { + yypParser->yyidx++; + yymsp -= yysize - 1; + yymsp->stateno = (YYACTIONTYPE) yyact; + yymsp->major = (YYCODETYPE) yygoto; + yymsp->minor = yygotominor; + } + else #endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } + { + yy_shift (yypParser, yyact, yygoto, &yygotominor); + } + } + else + { + assert (yyact == YYNSTATE + YYNRULE + 1); + yy_accept (yypParser); + } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_parse_failed (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; +static void +yy_syntax_error (yyParser * yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ + ) +{ + ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ - p_data->geoJson_parse_error = 1; - p_data->result = NULL; - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + p_data->geoJson_parse_error = 1; + p_data->result = NULL; + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_accept (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -1656,153 +2302,179 @@ static void yy_accept( ** Outputs: ** None. */ -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ +void +Parse (void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ + ) +{ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser *) yyp; + if (yypParser->yyidx < 0) + { #if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } + if (yypParser->yystksz <= 0) + { + /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ + yyminorunion = yyzerominor; + yyStackOverflow (yypParser, &yyminorunion); + return; + } #endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor == 0); + ParseARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, + yyTokenName[yymajor]); + } #endif - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyactyyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); + do + { + yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); + if (yyact < YYNSTATE) + { + assert (!yyendofinput); /* Impossible to shift the $ token */ + yy_shift (yypParser, yyact, yymajor, &yyminorunion); + yypParser->yyerrcnt--; + yymajor = YYNOCODE; + } + else if (yyact < YYNSTATE + YYNRULE) + { + yy_reduce (yypParser, yyact - YYNSTATE); + } + else + { + assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL - int yymx; + int yymx; #endif #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); + } #endif #ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if (yypParser->yyerrcnt < 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if (yymx == YYERRORSYMBOL || yyerrorhit) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sDiscard input token %s\n", + yyTracePrompt, yyTokenName[yymajor]); + } #endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yymajor = YYNOCODE; + } + else + { + while (yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = + yy_find_reduce_action (yypParser->yystack + [yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= + YYNSTATE) + { + yy_pop_parser_stack (yypParser); + } + if (yypParser->yyidx < 0 || yymajor == 0) + { + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yy_parse_failed (yypParser); + yymajor = YYNOCODE; + } + else if (yymx != YYERRORSYMBOL) + { + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error (yypParser, yymajor, yyminorunion); + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if (yypParser->yyerrcnt <= 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + if (yyendofinput) + { + yy_parse_failed (yypParser); + } + yymajor = YYNOCODE; #endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; + } + } + while (yymajor != YYNOCODE && yypParser->yyidx >= 0); + return; } diff --git a/src/spatialite/src/gaiageo/gg_advanced.c b/src/spatialite/src/gaiageo/gg_advanced.c index a3e8f75..0c54e5f 100644 --- a/src/spatialite/src/gaiageo/gg_advanced.c +++ b/src/spatialite/src/gaiageo/gg_advanced.c @@ -2,7 +2,7 @@ gg_advanced.c -- Gaia advanced geometric operations - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1187,6 +1187,12 @@ gaiaIsToxicRing (gaiaRingPtr ring) GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom) +{ + return gaiaIsToxic_r (NULL, geom); +} + +GAIAGEO_DECLARE int +gaiaIsToxic_r (const void *cache, gaiaGeomCollPtr geom) { /* / identifying toxic geometries @@ -1213,7 +1219,13 @@ gaiaIsToxic (gaiaGeomCollPtr geom) /* checking LINESTRINGs */ if (gaiaIsToxicLinestring (line)) { - gaiaSetGeosErrorMsg ("gaiaIsToxic detected a toxic Linestring"); + if (cache != NULL) + gaiaSetGeosAuxErrorMsg_r + (cache, + "gaiaIsToxic detected a toxic Linestring: < 2 pts"); + else + gaiaSetGeosAuxErrorMsg + ("gaiaIsToxic detected a toxic Linestring: < 2 pts"); return 1; } line = line->Next; @@ -1225,7 +1237,12 @@ gaiaIsToxic (gaiaGeomCollPtr geom) ring = polyg->Exterior; if (gaiaIsToxicRing (ring)) { - gaiaSetGeosErrorMsg ("gaiaIsToxic detected a toxic Ring"); + if (cache != NULL) + gaiaSetGeosAuxErrorMsg_r + (cache, "gaiaIsToxic detected a toxic Ring: < 4 pts"); + else + gaiaSetGeosAuxErrorMsg + ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } for (ib = 0; ib < polyg->NumInteriors; ib++) @@ -1233,7 +1250,13 @@ gaiaIsToxic (gaiaGeomCollPtr geom) ring = polyg->Interiors + ib; if (gaiaIsToxicRing (ring)) { - gaiaSetGeosErrorMsg ("gaiaIsToxic detected a toxic Ring"); + if (cache != NULL) + gaiaSetGeosAuxErrorMsg_r + (cache, + "gaiaIsToxic detected a toxic Ring: < 4 pts"); + else + gaiaSetGeosAuxErrorMsg + ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } } @@ -1244,6 +1267,12 @@ gaiaIsToxic (gaiaGeomCollPtr geom) GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring) +{ + return gaiaIsNotClosedRing_r (NULL, ring); +} + +GAIAGEO_DECLARE int +gaiaIsNotClosedRing_r (const void *cache, gaiaRingPtr ring) { /* checking a Ring for closure */ double x0; @@ -1259,16 +1288,30 @@ gaiaIsNotClosedRing (gaiaRingPtr ring) if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) return 0; else - return 1; + { + if (cache != NULL) + gaiaSetGeosAuxErrorMsg_r (cache, + "gaia detected a not-closed Ring"); + else + gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring"); + return 1; + } } GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom) +{ + return gaiaIsNotClosedGeomColl_r (NULL, geom); +} + +GAIAGEO_DECLARE int +gaiaIsNotClosedGeomColl_r (const void *cache, gaiaGeomCollPtr geom) { /* / identifying not properly closed Rings / i.e. geoms making GEOS to crash !!! */ + int ret; int ib; gaiaPolygonPtr polyg; gaiaRingPtr ring; @@ -1279,12 +1322,20 @@ gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom) { /* checking POLYGONs */ ring = polyg->Exterior; - if (gaiaIsNotClosedRing (ring)) + if (cache != NULL) + ret = gaiaIsNotClosedRing_r (cache, ring); + else + ret = gaiaIsNotClosedRing (ring); + if (ret) return 1; for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; - if (gaiaIsNotClosedRing (ring)) + if (cache != NULL) + ret = gaiaIsNotClosedRing_r (cache, ring); + else + ret = gaiaIsNotClosedRing (ring); + if (ret) return 1; } polyg = polyg->Next; @@ -1872,7 +1923,10 @@ gaiaExtractPointsFromGeomColl (gaiaGeomCollPtr geom) pt = pt->Next; } result->Srid = geom->Srid; - result->DeclaredType = GAIA_MULTIPOINT; + if (pts == 1) + result->DeclaredType = GAIA_POINT; + else + result->DeclaredType = GAIA_MULTIPOINT; return result; } @@ -1939,7 +1993,10 @@ gaiaExtractLinestringsFromGeomColl (gaiaGeomCollPtr geom) ln = ln->Next; } result->Srid = geom->Srid; - result->DeclaredType = GAIA_MULTILINESTRING; + if (lns == 1) + result->DeclaredType = GAIA_LINESTRING; + else + result->DeclaredType = GAIA_MULTILINESTRING; return result; } @@ -2040,6 +2097,9 @@ gaiaExtractPolygonsFromGeomColl (gaiaGeomCollPtr geom) pg = pg->Next; } result->Srid = geom->Srid; - result->DeclaredType = GAIA_MULTIPOLYGON; + if (pgs == 1) + result->DeclaredType = GAIA_POLYGON; + else + result->DeclaredType = GAIA_MULTIPOLYGON; return result; } diff --git a/src/spatialite/src/gaiageo/gg_endian.c b/src/spatialite/src/gaiageo/gg_endian.c index 0f8f3a5..50906a7 100644 --- a/src/spatialite/src/gaiageo/gg_endian.c +++ b/src/spatialite/src/gaiageo/gg_endian.c @@ -2,7 +2,7 @@ gg_endian.c -- Gaia functions for litte/big endian values handling - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -168,6 +168,59 @@ gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch) return convert.int_value; } +GAIAGEO_DECLARE unsigned int +gaiaImportU32 (const unsigned char *p, int little_endian, + int little_endian_arch) +{ +/* fetches a 32bit uint from BLOB respecting declared endiannes */ + union cvt + { + unsigned char byte[4]; + unsigned int int_value; + } convert; + if (little_endian_arch) + { + /* Litte-Endian architecture [e.g. x86] */ + if (!little_endian) + { + /* Big Endian data */ + convert.byte[0] = *(p + 3); + convert.byte[1] = *(p + 2); + convert.byte[2] = *(p + 1); + convert.byte[3] = *(p + 0); + } + else + { + /* Little Endian data */ + convert.byte[0] = *(p + 0); + convert.byte[1] = *(p + 1); + convert.byte[2] = *(p + 2); + convert.byte[3] = *(p + 3); + } + } + else + { + /* Big Endian architecture [e.g. PPC] */ + if (!little_endian) + { + /* Big Endian data */ + convert.byte[0] = *(p + 0); + convert.byte[1] = *(p + 1); + convert.byte[2] = *(p + 2); + convert.byte[3] = *(p + 3); + } + else + { + /* Little Endian data */ + convert.byte[0] = *(p + 3); + convert.byte[1] = *(p + 2); + convert.byte[2] = *(p + 1); + convert.byte[3] = *(p + 0); + } + } + return convert.int_value; +} + GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p, int little_endian, int little_endian_arch) @@ -456,6 +509,59 @@ gaiaExport32 (unsigned char *p, int value, int little_endian, } } +GAIAGEO_DECLARE void +gaiaExportU32 (unsigned char *p, unsigned int value, int little_endian, + int little_endian_arch) +{ +/* stores a 32bit int into a BLOB respecting declared endiannes */ + union cvt + { + unsigned char byte[4]; + unsigned int int_value; + } convert; + convert.int_value = value; + if (little_endian_arch) + { + /* Litte-Endian architecture [e.g. x86] */ + if (!little_endian) + { + /* Big Endian data */ + *(p + 3) = convert.byte[0]; + *(p + 2) = convert.byte[1]; + *(p + 1) = convert.byte[2]; + *(p + 0) = convert.byte[3]; + } + else + { + /* Little Endian data */ + *(p + 0) = convert.byte[0]; + *(p + 1) = convert.byte[1]; + *(p + 2) = convert.byte[2]; + *(p + 3) = convert.byte[3]; + } + } + else + { + /* Big Endian architecture [e.g. PPC] */ + if (!little_endian) + { + /* Big Endian data */ + *(p + 0) = convert.byte[0]; + *(p + 1) = convert.byte[1]; + *(p + 2) = convert.byte[2]; + *(p + 3) = convert.byte[3]; + } + else + { + /* Little Endian data */ + *(p + 3) = convert.byte[0]; + *(p + 2) = convert.byte[1]; + *(p + 1) = convert.byte[2]; + *(p + 0) = convert.byte[3]; + } + } +} + GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value, int little_endian, int little_endian_arch) diff --git a/src/spatialite/src/gaiageo/gg_ewkt.c b/src/spatialite/src/gaiageo/gg_ewkt.c index b85406c..5ae0a14 100644 --- a/src/spatialite/src/gaiageo/gg_ewkt.c +++ b/src/spatialite/src/gaiageo/gg_ewkt.c @@ -2,7 +2,7 @@ gg_ewkt.c -- EWKT parser/lexer - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2011-2012 +Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of @@ -84,6 +84,81 @@ the terms of any one of the MPL, the GPL or the LGPL. #define EWKT_DYN_BLOCK 1024 + + +/* +** CAVEAT: we must redefine any Lemon/Flex own macro +*/ +#define YYMINORTYPE EWKT_MINORTYPE +#define YY_CHAR EWKT_YY_CHAR +#define input ewkt_input +#define ParseAlloc ewktParseAlloc +#define ParseFree ewktParseFree +#define ParseStackPeak ewktParseStackPeak +#define Parse ewktParse +#define yyStackEntry ewkt_yyStackEntry +#define yyzerominor ewkt_yyzerominor +#define yy_accept ewkt_yy_accept +#define yy_action ewkt_yy_action +#define yy_base ewkt_yy_base +#define yy_buffer_stack ewkt_yy_buffer_stack +#define yy_buffer_stack_max ewkt_yy_buffer_stack_max +#define yy_buffer_stack_top ewkt_yy_buffer_stack_top +#define yy_c_buf_p ewkt_yy_c_buf_p +#define yy_chk ewkt_yy_chk +#define yy_def ewkt_yy_def +#define yy_default ewkt_yy_default +#define yy_destructor ewkt_yy_destructor +#define yy_ec ewkt_yy_ec +#define yy_fatal_error ewkt_yy_fatal_error +#define yy_find_reduce_action ewkt_yy_find_reduce_action +#define yy_find_shift_action ewkt_yy_find_shift_action +#define yy_get_next_buffer ewkt_yy_get_next_buffer +#define yy_get_previous_state ewkt_yy_get_previous_state +#define yy_init ewkt_yy_init +#define yy_init_globals ewkt_yy_init_globals +#define yy_lookahead ewkt_yy_lookahead +#define yy_meta ewkt_yy_meta +#define yy_nxt ewkt_yy_nxt +#define yy_parse_failed ewkt_yy_parse_failed +#define yy_pop_parser_stack ewkt_yy_pop_parser_stack +#define yy_reduce ewkt_yy_reduce +#define yy_reduce_ofst ewkt_yy_reduce_ofst +#define yy_shift ewkt_yy_shift +#define yy_shift_ofst ewkt_yy_shift_ofst +#define yy_start ewkt_yy_start +#define yy_state_type ewkt_yy_state_type +#define yy_syntax_error ewkt_yy_syntax_error +#define yy_trans_info ewkt_yy_trans_info +#define yy_try_NUL_trans ewkt_yy_try_NUL_trans +#define yyParser ewkt_yyParser +#define yyStackEntry ewkt_yyStackEntry +#define yyStackOverflow ewkt_yyStackOverflow +#define yyRuleInfo ewkt_yyRuleInfo +#define yyunput ewkt_yyunput +#define yyzerominor ewkt_yyzerominor +#define yyTraceFILE ewkt_yyTraceFILE +#define yyTracePrompt ewkt_yyTracePrompt +#define yyTokenName ewkt_yyTokenName +#define yyRuleName ewkt_yyRuleName +#define ParseTrace ewkt_ParseTrace + +#define yylex ewky_yylex +#define YY_DECL int yylex (yyscan_t yyscanner) + + +/* including LEMON generated header */ +#include "Ewkt.h" + + +typedef union +{ + double dval; + struct symtab *symp; +} ewkt_yystype; +#define YYSTYPE ewkt_yystype + + struct ewkt_dyn_block { /* a struct taking trace of dynamic allocations */ @@ -102,6 +177,7 @@ struct ewkt_data struct ewkt_dyn_block *ewkt_first_dyn_block; struct ewkt_dyn_block *ewkt_last_dyn_block; gaiaGeomCollPtr result; + YYSTYPE EwktLval; }; static struct ewkt_dyn_block * @@ -1694,84 +1770,6 @@ ewkt_geomColl_xyzm (struct ewkt_data *p_data, gaiaGeomCollPtr first) } - -/* -** CAVEAT: we must redefine any Lemon/Flex own macro -*/ -#define YYMINORTYPE EWKT_MINORTYPE -#define YY_CHAR EWKT_YY_CHAR -#define input ewkt_input -#define ParseAlloc ewktParseAlloc -#define ParseFree ewktParseFree -#define ParseStackPeak ewktParseStackPeak -#define Parse ewktParse -#define yyStackEntry ewkt_yyStackEntry -#define yyzerominor ewkt_yyzerominor -#define yy_accept ewkt_yy_accept -#define yy_action ewkt_yy_action -#define yy_base ewkt_yy_base -#define yy_buffer_stack ewkt_yy_buffer_stack -#define yy_buffer_stack_max ewkt_yy_buffer_stack_max -#define yy_buffer_stack_top ewkt_yy_buffer_stack_top -#define yy_c_buf_p ewkt_yy_c_buf_p -#define yy_chk ewkt_yy_chk -#define yy_def ewkt_yy_def -#define yy_default ewkt_yy_default -#define yy_destructor ewkt_yy_destructor -#define yy_ec ewkt_yy_ec -#define yy_fatal_error ewkt_yy_fatal_error -#define yy_find_reduce_action ewkt_yy_find_reduce_action -#define yy_find_shift_action ewkt_yy_find_shift_action -#define yy_get_next_buffer ewkt_yy_get_next_buffer -#define yy_get_previous_state ewkt_yy_get_previous_state -#define yy_init ewkt_yy_init -#define yy_init_globals ewkt_yy_init_globals -#define yy_lookahead ewkt_yy_lookahead -#define yy_meta ewkt_yy_meta -#define yy_nxt ewkt_yy_nxt -#define yy_parse_failed ewkt_yy_parse_failed -#define yy_pop_parser_stack ewkt_yy_pop_parser_stack -#define yy_reduce ewkt_yy_reduce -#define yy_reduce_ofst ewkt_yy_reduce_ofst -#define yy_shift ewkt_yy_shift -#define yy_shift_ofst ewkt_yy_shift_ofst -#define yy_start ewkt_yy_start -#define yy_state_type ewkt_yy_state_type -#define yy_syntax_error ewkt_yy_syntax_error -#define yy_trans_info ewkt_yy_trans_info -#define yy_try_NUL_trans ewkt_yy_try_NUL_trans -#define yyParser ewkt_yyParser -#define yyStackEntry ewkt_yyStackEntry -#define yyStackOverflow ewkt_yyStackOverflow -#define yyRuleInfo ewkt_yyRuleInfo -#define yyunput ewkt_yyunput -#define yyzerominor ewkt_yyzerominor -#define yyTraceFILE ewkt_yyTraceFILE -#define yyTracePrompt ewkt_yyTracePrompt -#define yyTokenName ewkt_yyTokenName -#define yyRuleName ewkt_yyRuleName -#define ParseTrace ewkt_ParseTrace - -#define yylex ewky_yylex -#define YY_DECL int yylex (yyscan_t yyscanner) - - -/* including LEMON generated header */ -#include "Ewkt.h" - - -typedef union -{ - double dval; - struct symtab *symp; -} ewkt_yystype; -#define YYSTYPE ewkt_yystype - -/* extern YYSTYPE yylval; */ -YYSTYPE EwktLval; - - - /* including LEMON generated code */ #include "Ewkt.c" @@ -1924,11 +1922,7 @@ gaiaParseEWKT (const unsigned char *dirty_buffer) } tokens->Next = malloc (sizeof (ewktFlexToken)); tokens->Next->Next = NULL; - /* - /EwktLval is a global variable from FLEX. - /EwktLval is defined in ewktLexglobal.h - */ - tokens->Next->value = EwktLval.dval; + tokens->Next->value = str_data.EwktLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; diff --git a/src/spatialite/src/gaiageo/gg_extras.c b/src/spatialite/src/gaiageo/gg_extras.c index add4411..d502ce2 100644 --- a/src/spatialite/src/gaiageo/gg_extras.c +++ b/src/spatialite/src/gaiageo/gg_extras.c @@ -2,7 +2,7 @@ gg_extras.c -- Gaia extra functions support - version 4.0, 2012 August 19 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2012 +Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -60,10 +60,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #if defined(_WIN32) && !defined(__MINGW32__) -static double -rint(double x) +static double +rint (double x) { - return floor(x + 0.5); + return floor (x + 0.5); } #endif @@ -724,7 +724,7 @@ gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, return result; } -#ifdef GEOS_ADVANCED /* GEOS advanced features */ +#ifndef OMIT_GEOS /* only if GEOS is enabled */ static void get_grid_bbox (gaiaGeomCollPtr geom, double *min_x, double *min_y, @@ -755,9 +755,10 @@ get_grid_base (double min_x, double min_y, double origin_x, double origin_y, *base_y = y; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, - double size, int edges_only) +static gaiaGeomCollPtr +gaiaSquareGridCommon (const void *p_cache, gaiaGeomCollPtr geom, + double origin_x, double origin_y, double size, + int edges_only) { /* creating a regular grid [Square cells] */ double min_x; @@ -780,6 +781,7 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; + int ret; if (size <= 0.0) return NULL; @@ -812,7 +814,12 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x1, y1); - if (gaiaGeomCollIntersects (geom, item) == 1) + gaiaMbrGeometry (item); + if (p_cache != NULL) + ret = gaiaGeomCollIntersects_r (p_cache, geom, item); + else + ret = gaiaGeomCollIntersects (geom, item); + if (ret == 1) { /* ok, inserting a valid cell */ count++; @@ -867,7 +874,10 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } item = result; - result = gaiaUnaryUnion (item); + if (p_cache != NULL) + result = gaiaUnaryUnion_r (p_cache, item); + else + result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; @@ -875,8 +885,63 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, - double size, int edges_only) +gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, + double size, int edges_only) +{ + return gaiaSquareGridCommon (NULL, geom, origin_x, origin_y, size, + edges_only); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSquareGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, + double origin_y, double size, int edges_only) +{ + return gaiaSquareGridCommon (p_cache, geom, origin_x, origin_y, size, + edges_only); +} + +static void +get_trigrid_base (double min_x, double min_y, double origin_x, double origin_y, + double shift_h_odd, double shift_h_even, double shift_v, + int *odd_even, double *base_x, double *base_y) +{ +/* determining the grid base-point [MinX/MinY] for a Triangular Grid */ + double bx = origin_x; + double by = origin_y; + while (1) + { + /* looping on grid rows */ + if (by < min_y) + goto next_scanline; + if (*odd_even) + bx = origin_x - shift_h_odd; + else + bx = origin_x; + while (1) + { + /* looping on grid columns */ + if (bx + shift_h_even > min_x + || bx + shift_h_even + shift_h_odd > min_x) + { + *base_x = bx; + *base_y = by; + return; + } + bx += shift_h_even; + } + next_scanline: + by += shift_v; + if (*odd_even) + *odd_even = 0; + else + *odd_even = 1; + } +} + +static gaiaGeomCollPtr +gaiaTriangularGridCommon (const void *p_cache, gaiaGeomCollPtr geom, + double origin_x, double origin_y, double size, + int edges_only) { /* creating a regular grid [Triangular cells] */ double min_x; @@ -893,6 +958,9 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double y3; double x4; double y4; + double shift_h_odd; + double shift_h_even; + double shift_v; int count = 0; int odd_even = 0; gaiaPolygonPtr pg; @@ -900,27 +968,32 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; + int ret; if (size <= 0.0) return NULL; + shift_h_odd = size / 2.0; + shift_h_even = size; + shift_v = size * sin (3.14159265358979323846 / 3.0); result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); - get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); + get_trigrid_base (min_x, min_y, origin_x, origin_y, shift_h_odd, + shift_h_even, shift_v, &odd_even, &base_x, &base_y); while (base_y < max_y) { /* looping on grid rows */ if (odd_even) - x1 = base_x - (size / 2.0); + x1 = base_x - shift_h_odd; else x1 = base_x; y1 = base_y; - x2 = x1 + size; + x2 = x1 + shift_h_even; y2 = y1; - x3 = x1 + (size / 2.0); - y3 = y1 + (size * sin (3.14159265358979323846 / 3.0)); - x4 = x3 + size; + x3 = x1 + shift_h_odd; + y3 = y1 + shift_v; + x4 = x3 + shift_h_even; y4 = y3; while (x1 < max_x) { @@ -934,7 +1007,12 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x1, y1); - if (gaiaGeomCollIntersects (geom, item) == 1) + gaiaMbrGeometry (item); + if (p_cache != NULL) + ret = gaiaGeomCollIntersects_r (p_cache, geom, item); + else + ret = gaiaGeomCollIntersects (geom, item); + if (ret == 1) { /* ok, inserting a valid cell [pointing upside] */ count++; @@ -973,7 +1051,12 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaSetPoint (rng->Coords, 2, x4, y4); gaiaSetPoint (rng->Coords, 3, x3, y3); - if (gaiaGeomCollIntersects (geom, item) == 1) + gaiaMbrGeometry (item); + if (p_cache != NULL) + ret = gaiaGeomCollIntersects_r (p_cache, geom, item); + else + ret = gaiaGeomCollIntersects (geom, item); + if (ret == 1) { /* ok, inserting a valid cell [pointing downside] */ count++; @@ -1003,12 +1086,12 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } gaiaFreeGeomColl (item); - x1 += size; - x2 += size; - x3 += size; - x4 += size; + x1 += shift_h_even; + x2 += shift_h_even; + x3 += shift_h_even; + x4 += shift_h_even; } - base_y += (size * sin (3.14159265358979323846 / 3.0)); + base_y += shift_v; if (odd_even) odd_even = 0; else @@ -1029,7 +1112,10 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } item = result; - result = gaiaUnaryUnion (item); + if (p_cache != NULL) + result = gaiaUnaryUnion_r (p_cache, item); + else + result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; @@ -1037,8 +1123,63 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, - double size, int edges_only) +gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, + double size, int edges_only) +{ + return gaiaTriangularGridCommon (NULL, geom, origin_x, origin_y, size, + edges_only); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaTriangularGrid_r (const void *p_cache, gaiaGeomCollPtr geom, + double origin_x, double origin_y, double size, + int edges_only) +{ + return gaiaTriangularGridCommon (p_cache, geom, origin_x, origin_y, size, + edges_only); +} + +static void +get_hexgrid_base (double min_x, double min_y, double origin_x, double origin_y, + double shift3, double shift4, double shift, + int *odd_even, double *base_x, double *base_y) +{ +/* determining the grid base-point [MinX/MinY] for am Hexagonal Grid */ + double bx = origin_x; + double by = origin_y; + while (1) + { + /* looping on grid rows */ + if (by < min_y) + goto next_scanline; + if (*odd_even) + bx = origin_x + (shift3 / 2.0); + else + bx = origin_x; + while (1) + { + /* looping on grid columns */ + if (bx + shift4 > min_x) + { + *base_x = bx; + *base_y = by; + return; + } + bx += shift3; + } + next_scanline: + by += shift; + if (*odd_even) + *odd_even = 0; + else + *odd_even = 1; + } +} + +static gaiaGeomCollPtr +gaiaHexagonalGridCommon (const void *p_cache, gaiaGeomCollPtr geom, + double origin_x, double origin_y, double size, + int edges_only) { /* creating a regular grid [Hexagonal cells] */ double min_x; @@ -1067,28 +1208,36 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; double shift; + double shift2; + double shift3; + double shift4; + int ret; if (size <= 0.0) return NULL; shift = size * sin (3.14159265358979323846 / 3.0); + shift2 = size / 2.0; + shift3 = size * 3.0; + shift4 = size * 2.0; result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); - get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); + get_hexgrid_base (min_x, min_y, origin_x, origin_y, shift3, shift4, + shift, &odd_even, &base_x, &base_y); while ((base_y - shift) < max_y) { /* looping on grid rows */ if (odd_even) - x1 = base_x - (size + (size / 2.0)); + x1 = base_x - (shift3 / 2.0); else x1 = base_x; y1 = base_y; - x2 = x1 + (size / 2.0); + x2 = x1 + shift2; y2 = y1 - shift; x3 = x2 + size; y3 = y2; - x4 = x1 + (size * 2.0); + x4 = x1 + shift4; y4 = y1; x5 = x3; y5 = y1 + shift; @@ -1109,7 +1258,12 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, gaiaSetPoint (rng->Coords, 5, x6, y6); gaiaSetPoint (rng->Coords, 6, x1, y1); - if (gaiaGeomCollIntersects (geom, item) == 1) + gaiaMbrGeometry (item); + if (p_cache != NULL) + ret = gaiaGeomCollIntersects_r (p_cache, geom, item); + else + ret = gaiaGeomCollIntersects (geom, item); + if (ret == 1) { /* ok, inserting a valid cell */ count++; @@ -1151,14 +1305,14 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } gaiaFreeGeomColl (item); - x1 += size * 3.0; - x2 += size * 3.0; - x3 += size * 3.0; - x4 += size * 3.0; - x5 += size * 3.0; - x6 += size * 3.0; + x1 += shift3; + x2 += shift3; + x3 += shift3; + x4 += shift3; + x5 += shift3; + x6 += shift3; } - base_y += (size * sin (3.14159265358979323846 / 3.0)); + base_y += shift; if (odd_even) odd_even = 0; else @@ -1179,11 +1333,30 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, } item = result; - result = gaiaUnaryUnion (item); + if (p_cache != NULL) + result = gaiaUnaryUnion_r (p_cache, item); + else + result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, + double size, int edges_only) +{ + return gaiaHexagonalGridCommon (NULL, geom, origin_x, origin_y, size, + edges_only); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaHexagonalGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, + double origin_y, double size, int edges_only) +{ + return gaiaHexagonalGridCommon (p_cache, geom, origin_x, origin_y, size, + edges_only); +} + #endif /* end including GEOS */ diff --git a/src/spatialite/src/gaiageo/gg_geoJSON.c b/src/spatialite/src/gaiageo/gg_geoJSON.c index 2576322..84108f7 100644 --- a/src/spatialite/src/gaiageo/gg_geoJSON.c +++ b/src/spatialite/src/gaiageo/gg_geoJSON.c @@ -2,7 +2,7 @@ gg_geoJSON.c -- GeoJSON parser/lexer - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2011-2012 +Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of @@ -68,6 +68,82 @@ the terms of any one of the MPL, the GPL or the LGPL. #define GEOJSON_DYN_BLOCK 1024 + + +/* +** CAVEAT: we must redefine any Lemon/Flex own macro +*/ +#define YYMINORTYPE GEO_JSON_MINORTYPE +#define YY_CHAR GEO_JSON_YY_CHAR +#define input geoJSON_input +#define ParseAlloc geoJSONParseAlloc +#define ParseFree geoJSONParseFree +#define ParseStackPeak geoJSONParseStackPeak +#define Parse geoJSONParse +#define yyStackEntry geoJSON_yyStackEntry +#define yyzerominor geoJSON_yyzerominor +#define yy_accept geoJSON_yy_accept +#define yy_action geoJSON_yy_action +#define yy_base geoJSON_yy_base +#define yy_buffer_stack geoJSON_yy_buffer_stack +#define yy_buffer_stack_max geoJSON_yy_buffer_stack_max +#define yy_buffer_stack_top geoJSON_yy_buffer_stack_top +#define yy_c_buf_p geoJSON_yy_c_buf_p +#define yy_chk geoJSON_yy_chk +#define yy_def geoJSON_yy_def +#define yy_default geoJSON_yy_default +#define yy_destructor geoJSON_yy_destructor +#define yy_ec geoJSON_yy_ec +#define yy_fatal_error geoJSON_yy_fatal_error +#define yy_find_reduce_action geoJSON_yy_find_reduce_action +#define yy_find_shift_action geoJSON_yy_find_shift_action +#define yy_get_next_buffer geoJSON_yy_get_next_buffer +#define yy_get_previous_state geoJSON_yy_get_previous_state +#define yy_init geoJSON_yy_init +#define yy_init_globals geoJSON_yy_init_globals +#define yy_lookahead geoJSON_yy_lookahead +#define yy_meta geoJSON_yy_meta +#define yy_nxt geoJSON_yy_nxt +#define yy_parse_failed geoJSON_yy_parse_failed +#define yy_pop_parser_stack geoJSON_yy_pop_parser_stack +#define yy_reduce geoJSON_yy_reduce +#define yy_reduce_ofst geoJSON_yy_reduce_ofst +#define yy_shift geoJSON_yy_shift +#define yy_shift_ofst geoJSON_yy_shift_ofst +#define yy_start geoJSON_yy_start +#define yy_state_type geoJSON_yy_state_type +#define yy_syntax_error geoJSON_yy_syntax_error +#define yy_trans_info geoJSON_yy_trans_info +#define yy_try_NUL_trans geoJSON_yy_try_NUL_trans +#define yyParser geoJSON_yyParser +#define yyStackEntry geoJSON_yyStackEntry +#define yyStackOverflow geoJSON_yyStackOverflow +#define yyRuleInfo geoJSON_yyRuleInfo +#define yyunput geoJSON_yyunput +#define yyzerominor geoJSON_yyzerominor +#define yyTraceFILE geoJSON_yyTraceFILE +#define yyTracePrompt geoJSON_yyTracePrompt +#define yyTokenName geoJSON_yyTokenName +#define yyRuleName geoJSON_yyRuleName +#define ParseTrace geoJSON_ParseTrace + +#define yylex geoJSON_yylex +#define YY_DECL int yylex (yyscan_t yyscanner) + + +/* including LEMON generated header */ +#include "geoJSON.h" + + +typedef union +{ + double dval; + int ival; + struct symtab *symp; +} geoJSON_yystype; +#define YYSTYPE geoJSON_yystype + + struct geoJson_dyn_block { /* a struct taking trace of dynamic allocations */ @@ -86,6 +162,7 @@ struct geoJson_data struct geoJson_dyn_block *geoJson_first_dyn_block; struct geoJson_dyn_block *geoJson_last_dyn_block; gaiaGeomCollPtr result; + YYSTYPE GeoJsonLval; }; static struct geoJson_dyn_block * @@ -1153,86 +1230,6 @@ geoJSON_geomColl_xyz (struct geoJson_data *p_data, gaiaGeomCollPtr first) } - -/* -** CAVEAT: we must redefine any Lemon/Flex own macro -*/ -#define YYMINORTYPE GEO_JSON_MINORTYPE -#define YY_CHAR GEO_JSON_YY_CHAR -#define input geoJSON_input -#define ParseAlloc geoJSONParseAlloc -#define ParseFree geoJSONParseFree -#define ParseStackPeak geoJSONParseStackPeak -#define Parse geoJSONParse -#define yyStackEntry geoJSON_yyStackEntry -#define yyzerominor geoJSON_yyzerominor -#define yy_accept geoJSON_yy_accept -#define yy_action geoJSON_yy_action -#define yy_base geoJSON_yy_base -#define yy_buffer_stack geoJSON_yy_buffer_stack -#define yy_buffer_stack_max geoJSON_yy_buffer_stack_max -#define yy_buffer_stack_top geoJSON_yy_buffer_stack_top -#define yy_c_buf_p geoJSON_yy_c_buf_p -#define yy_chk geoJSON_yy_chk -#define yy_def geoJSON_yy_def -#define yy_default geoJSON_yy_default -#define yy_destructor geoJSON_yy_destructor -#define yy_ec geoJSON_yy_ec -#define yy_fatal_error geoJSON_yy_fatal_error -#define yy_find_reduce_action geoJSON_yy_find_reduce_action -#define yy_find_shift_action geoJSON_yy_find_shift_action -#define yy_get_next_buffer geoJSON_yy_get_next_buffer -#define yy_get_previous_state geoJSON_yy_get_previous_state -#define yy_init geoJSON_yy_init -#define yy_init_globals geoJSON_yy_init_globals -#define yy_lookahead geoJSON_yy_lookahead -#define yy_meta geoJSON_yy_meta -#define yy_nxt geoJSON_yy_nxt -#define yy_parse_failed geoJSON_yy_parse_failed -#define yy_pop_parser_stack geoJSON_yy_pop_parser_stack -#define yy_reduce geoJSON_yy_reduce -#define yy_reduce_ofst geoJSON_yy_reduce_ofst -#define yy_shift geoJSON_yy_shift -#define yy_shift_ofst geoJSON_yy_shift_ofst -#define yy_start geoJSON_yy_start -#define yy_state_type geoJSON_yy_state_type -#define yy_syntax_error geoJSON_yy_syntax_error -#define yy_trans_info geoJSON_yy_trans_info -#define yy_try_NUL_trans geoJSON_yy_try_NUL_trans -#define yyParser geoJSON_yyParser -#define yyStackEntry geoJSON_yyStackEntry -#define yyStackOverflow geoJSON_yyStackOverflow -#define yyRuleInfo geoJSON_yyRuleInfo -#define yyunput geoJSON_yyunput -#define yyzerominor geoJSON_yyzerominor -#define yyTraceFILE geoJSON_yyTraceFILE -#define yyTracePrompt geoJSON_yyTracePrompt -#define yyTokenName geoJSON_yyTokenName -#define yyRuleName geoJSON_yyRuleName -#define ParseTrace geoJSON_ParseTrace - -#define yylex geoJSON_yylex -#define YY_DECL int yylex (yyscan_t yyscanner) - - -/* including LEMON generated header */ -#include "geoJSON.h" - - -typedef union -{ - double dval; - int ival; - struct symtab *symp; -} geoJSON_yystype; -#define YYSTYPE geoJSON_yystype - - -/* extern YYSTYPE yylval; */ -YYSTYPE GeoJsonLval; - - - /* including LEMON generated code */ #include "geoJSON.c" @@ -1324,11 +1321,7 @@ gaiaParseGeoJSON (const unsigned char *dirty_buffer) } tokens->Next = malloc (sizeof (geoJsonFlexToken)); tokens->Next->Next = NULL; - /* - /GeoJsonLval is a global variable from FLEX. - /GeoJsonLval is defined in geoJsonLexglobal.h - */ - tokens->Next->value = GeoJsonLval.dval; + tokens->Next->value = str_data.GeoJsonLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; diff --git a/src/spatialite/src/gaiageo/gg_geodesic.c b/src/spatialite/src/gaiageo/gg_geodesic.c index d57ba4c..4065639 100644 --- a/src/spatialite/src/gaiageo/gg_geodesic.c +++ b/src/spatialite/src/gaiageo/gg_geodesic.c @@ -2,7 +2,7 @@ gg_geodesic.c -- Gaia functions for geodesic calculations - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): diff --git a/src/spatialite/src/gaiageo/gg_geometries.c b/src/spatialite/src/gaiageo/gg_geometries.c index ae8ceb2..b95b3b1 100644 --- a/src/spatialite/src/gaiageo/gg_geometries.c +++ b/src/spatialite/src/gaiageo/gg_geometries.c @@ -2,7 +2,7 @@ gg_geometries.c -- Gaia geometric objects - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -3627,6 +3627,13 @@ gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ + return gaiaMergeGeometries_r (NULL, geom1, geom2); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMergeGeometries_r (const void *cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { /* mergine two generic Geometries into a single one */ gaiaGeomCollPtr result; @@ -3649,8 +3656,16 @@ gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) if (geom1 == NULL || geom2 == NULL) return NULL; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) - return NULL; + if (cache != NULL) + { + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return NULL; + } + else + { + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return NULL; + } dims1 = geom1->DimensionModel; dims2 = geom2->DimensionModel; /* building a new Geometry */ @@ -4536,3 +4551,182 @@ gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end) } return new_geom; } + +static int +check_closed_multi_linestring (gaiaGeomCollPtr geom, int single) +{ +/* check if : +/ - this geometry is a (multi) Linestring +/ - all Linestrings are effectively closed +*/ + int pts = 0; + int lns = 0; + int pgs = 0; + int closed = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + if (gaiaIsClosed (ln)) + closed++; + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (closed != lns) + return 0; + if (single) + { + if (pts == 0 && lns == 1 && pgs == 0) + return lns; + } + else + { + if (pts == 0 && lns >= 1 && pgs == 0) + return lns; + } + return 0; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMakePolygon (gaiaGeomCollPtr exterior, gaiaGeomCollPtr interiors) +{ +/* reassembling a Polygon from closed Linestrings */ + gaiaGeomCollPtr geom; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + gaiaLinestringPtr ln; + int iv; + double x; + double y; + double z; + double m; + int num_interiors = 0; + int ib; + + if (exterior == NULL) + return NULL; + if (!check_closed_multi_linestring (exterior, 1)) + return NULL; + if (interiors != NULL) + { + num_interiors = check_closed_multi_linestring (interiors, 0); + if (!num_interiors) + return NULL; + } + +/* reassembling the Polygon */ + if (exterior->DimensionModel == GAIA_XY_Z) + geom = gaiaAllocGeomCollXYZ (); + else if (exterior->DimensionModel == GAIA_XY_M) + geom = gaiaAllocGeomCollXYM (); + else if (exterior->DimensionModel == GAIA_XY_Z_M) + geom = gaiaAllocGeomCollXYZM (); + else + geom = gaiaAllocGeomColl (); + geom->Srid = exterior->Srid; + ln = exterior->FirstLinestring; + pg = gaiaAddPolygonToGeomColl (geom, ln->Points, num_interiors); + rng = pg->Exterior; + for (iv = 0; iv < ln->Points; iv++) + { + /* exterior ring */ + m = 0.0; + z = 0.0; + switch (ln->DimensionModel) + { + case GAIA_XY: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + return 0; + }; + switch (rng->DimensionModel) + { + case GAIA_XY: + gaiaSetPoint (rng->Coords, iv, x, y); + break; + case GAIA_XY_Z: + gaiaSetPointXYZ (rng->Coords, iv, x, y, z); + break; + case GAIA_XY_M: + gaiaSetPointXYM (rng->Coords, iv, x, y, m); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); + break; + }; + } + if (interiors != NULL) + { + /* setting up the interior rings */ + ib = 0; + ln = interiors->FirstLinestring; + while (ln) + { + rng = gaiaAddInteriorRing (pg, ib, ln->Points); + for (iv = 0; iv < ln->Points; iv++) + { + m = 0.0; + z = 0.0; + switch (ln->DimensionModel) + { + case GAIA_XY: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + return 0; + }; + switch (rng->DimensionModel) + { + case GAIA_XY: + gaiaSetPoint (rng->Coords, iv, x, y); + break; + case GAIA_XY_Z: + gaiaSetPointXYZ (rng->Coords, iv, x, y, z); + break; + case GAIA_XY_M: + gaiaSetPointXYM (rng->Coords, iv, x, y, m); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); + break; + }; + } + ib++; + ln = ln->Next; + } + } + return geom; +} diff --git a/src/spatialite/src/gaiageo/gg_geoscvt.c b/src/spatialite/src/gaiageo/gg_geoscvt.c index 0813ec4..12bad90 100644 --- a/src/spatialite/src/gaiageo/gg_geoscvt.c +++ b/src/spatialite/src/gaiageo/gg_geoscvt.c @@ -2,7 +2,7 @@ gg_geoscvt.c -- Gaia / GEOS conversion [Geometry] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -57,6 +57,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #endif +#include #include #include @@ -64,7 +65,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #ifndef OMIT_GEOS /* including GEOS */ static GEOSGeometry * -toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) +toGeosGeometry (const void *cache, GEOSContextHandle_t handle, + const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry */ int pts = 0; @@ -193,57 +195,118 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS) { pt = gaia->FirstPoint; - cs = GEOSCoordSeq_create (1, dims); - switch (gaia->DimensionModel) + if (handle != NULL) { - case GAIA_XY_Z: - case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); - GEOSCoordSeq_setZ (cs, 0, pt->Z); - break; - default: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); - break; - }; - geos = GEOSGeom_createPoint (cs); + cs = GEOSCoordSeq_create_r (handle, 1, dims); + switch (gaia->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); + break; + default: + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + break; + }; + geos = GEOSGeom_createPoint_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (1, dims); + switch (gaia->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + GEOSCoordSeq_setZ (cs, 0, pt->Z); + break; + default: + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + break; + }; + geos = GEOSGeom_createPoint (cs); + } } break; case GAIA_LINESTRING: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS) { ln = gaia->FirstLinestring; - cs = GEOSCoordSeq_create (ln->Points, dims); + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ln->Points, dims); + else + cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; }; } - geos = GEOSGeom_createLineString (cs); + if (handle != NULL) + geos = GEOSGeom_createLineString_r (handle, cs); + else + geos = GEOSGeom_createLineString (cs); } break; case GAIA_POLYGON: @@ -253,9 +316,20 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; - if (gaiaIsNotClosedRing (rng)) - ring_points++; - cs = GEOSCoordSeq_create (ring_points, dims); + if (cache) + { + if (gaiaIsNotClosedRing_r (cache, rng)) + ring_points++; + } + else + { + if (gaiaIsNotClosedRing (rng)) + ring_points++; + } + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ring_points, dims); + else + cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) @@ -269,9 +343,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); @@ -281,8 +364,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); @@ -293,9 +384,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); @@ -305,8 +405,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; }; } @@ -318,17 +426,37 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) { case GAIA_XY_Z: case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); - GEOSCoordSeq_setZ (cs, iv, z0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x0); + GEOSCoordSeq_setY_r (handle, cs, iv, y0); + GEOSCoordSeq_setZ_r (handle, cs, iv, z0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + GEOSCoordSeq_setZ (cs, iv, z0); + } break; default: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x0); + GEOSCoordSeq_setY_r (handle, cs, iv, y0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + } break; }; } - geos_ext = GEOSGeom_createLinearRing (cs); + if (handle != NULL) + geos_ext = GEOSGeom_createLinearRing_r (handle, cs); + else + geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { @@ -339,9 +467,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; - if (gaiaIsNotClosedRing (rng)) - ring_points++; - cs = GEOSCoordSeq_create (ring_points, dims); + if (cache != NULL) + { + if (gaiaIsNotClosedRing_r (cache, rng)) + ring_points++; + } + else + { + if (gaiaIsNotClosedRing (rng)) + ring_points++; + } + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ring_points, + dims); + else + cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) @@ -356,9 +496,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x); + GEOSCoordSeq_setY_r (handle, cs, + iv, y); + GEOSCoordSeq_setZ_r (handle, cs, + iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, @@ -369,8 +521,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x); + GEOSCoordSeq_setY_r (handle, cs, + iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, @@ -382,9 +544,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x); + GEOSCoordSeq_setY_r (handle, cs, + iv, y); + GEOSCoordSeq_setZ_r (handle, cs, + iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); @@ -394,8 +568,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x); + GEOSCoordSeq_setY_r (handle, cs, + iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; }; } @@ -407,23 +591,54 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) { case GAIA_XY_Z: case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); - GEOSCoordSeq_setZ (cs, iv, z0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x0); + GEOSCoordSeq_setY_r (handle, cs, + iv, y0); + GEOSCoordSeq_setZ_r (handle, cs, + iv, z0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + GEOSCoordSeq_setZ (cs, iv, z0); + } break; default: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, + iv, x0); + GEOSCoordSeq_setY_r (handle, cs, + iv, y0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + } break; }; } - geos_int = GEOSGeom_createLinearRing (cs); + if (handle != NULL) + geos_int = + GEOSGeom_createLinearRing_r (handle, cs); + else + geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } - geos = - GEOSGeom_createPolygon (geos_ext, geos_holes, - pg->NumInteriors); + if (handle != NULL) + geos = + GEOSGeom_createPolygon_r (handle, geos_ext, geos_holes, + pg->NumInteriors); + else + geos = + GEOSGeom_createPolygon (geos_ext, geos_holes, + pg->NumInteriors); if (geos_holes) free (geos_holes); } @@ -459,21 +674,44 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) pt = gaia->FirstPoint; while (pt) { - cs = GEOSCoordSeq_create (1, dims); + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, 1, dims); + else + cs = GEOSCoordSeq_create (1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); - GEOSCoordSeq_setZ (cs, 0, pt->Z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); + } + else + { + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + GEOSCoordSeq_setZ (cs, 0, pt->Z); + } break; default: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + } + else + { + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + } break; }; - geos_item = GEOSGeom_createPoint (cs); + if (handle != NULL) + geos_item = GEOSGeom_createPoint_r (handle, cs); + else + geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; pt = pt->Next; } @@ -483,37 +721,77 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) ln = gaia->FirstLinestring; while (ln) { - cs = GEOSCoordSeq_create (ln->Points, dims); + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ln->Points, dims); + else + cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; }; } - geos_item = GEOSGeom_createLineString (cs); + if (handle != NULL) + geos_item = GEOSGeom_createLineString_r (handle, cs); + else + geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; ln = ln->Next; } @@ -526,9 +804,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; - if (gaiaIsNotClosedRing (rng)) - ring_points++; - cs = GEOSCoordSeq_create (ring_points, dims); + if (cache != NULL) + { + if (gaiaIsNotClosedRing_r (handle, rng)) + ring_points++; + } + else + { + if (gaiaIsNotClosedRing (rng)) + ring_points++; + } + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ring_points, + dims); + else + cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) @@ -542,9 +832,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); @@ -554,8 +853,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, @@ -567,9 +874,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); + } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); @@ -579,8 +895,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } break; }; } @@ -592,17 +916,42 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) { case GAIA_XY_Z: case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); - GEOSCoordSeq_setZ (cs, iv, z0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, + x0); + GEOSCoordSeq_setY_r (handle, cs, iv, + y0); + GEOSCoordSeq_setZ_r (handle, cs, iv, + z0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + GEOSCoordSeq_setZ (cs, iv, z0); + } break; default: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, + x0); + GEOSCoordSeq_setY_r (handle, cs, iv, + y0); + } + else + { + GEOSCoordSeq_setX (cs, iv, x0); + GEOSCoordSeq_setY (cs, iv, y0); + } break; }; } - geos_ext = GEOSGeom_createLinearRing (cs); + if (handle != NULL) + geos_ext = GEOSGeom_createLinearRing_r (handle, cs); + else + geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { @@ -614,9 +963,23 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; - if (gaiaIsNotClosedRing (rng)) - ring_points++; - cs = GEOSCoordSeq_create (ring_points, dims); + if (cache != NULL) + { + if (gaiaIsNotClosedRing_r (cache, rng)) + ring_points++; + } + else + { + if (gaiaIsNotClosedRing (rng)) + ring_points++; + } + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, + ring_points, + dims); + else + cs = GEOSCoordSeq_create (ring_points, + dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) @@ -631,9 +994,27 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y); + GEOSCoordSeq_setZ_r (handle, + cs, iv, + z); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x); + GEOSCoordSeq_setY (cs, iv, + y); + GEOSCoordSeq_setZ (cs, iv, + z); + } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, @@ -644,8 +1025,22 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x); + GEOSCoordSeq_setY (cs, iv, + y); + } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, @@ -657,9 +1052,27 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) y0 = y; z0 = z; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y); + GEOSCoordSeq_setZ_r (handle, + cs, iv, + z); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x); + GEOSCoordSeq_setY (cs, iv, + y); + GEOSCoordSeq_setZ (cs, iv, + z); + } break; default: gaiaGetPoint (rng->Coords, iv, &x, @@ -670,8 +1083,22 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) x0 = x; y0 = y; } - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x); + GEOSCoordSeq_setY (cs, iv, + y); + } break; }; } @@ -683,23 +1110,66 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) { case GAIA_XY_Z: case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); - GEOSCoordSeq_setZ (cs, iv, z0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x0); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y0); + GEOSCoordSeq_setZ_r (handle, + cs, iv, + z0); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x0); + GEOSCoordSeq_setY (cs, iv, + y0); + GEOSCoordSeq_setZ (cs, iv, + z0); + } break; default: - GEOSCoordSeq_setX (cs, iv, x0); - GEOSCoordSeq_setY (cs, iv, y0); + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, + cs, iv, + x0); + GEOSCoordSeq_setY_r (handle, + cs, iv, + y0); + } + else + { + GEOSCoordSeq_setX (cs, iv, + x0); + GEOSCoordSeq_setY (cs, iv, + y0); + } break; }; } - geos_int = GEOSGeom_createLinearRing (cs); + if (handle != NULL) + geos_int = + GEOSGeom_createLinearRing_r (handle, + cs); + else + geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } - geos_item = - GEOSGeom_createPolygon (geos_ext, geos_holes, - pg->NumInteriors); + if (handle != NULL) + geos_item = + GEOSGeom_createPolygon_r (handle, geos_ext, + geos_holes, + pg->NumInteriors); + else + geos_item = + GEOSGeom_createPolygon (geos_ext, geos_holes, + pg->NumInteriors); if (geos_holes) free (geos_holes); *(geos_coll + nItem++) = geos_item; @@ -713,7 +1183,12 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) geos_type = GEOS_MULTILINESTRING; if (type == GAIA_MULTIPOLYGON) geos_type = GEOS_MULTIPOLYGON; - geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items); + if (handle != NULL) + geos = + GEOSGeom_createCollection_r (handle, geos_type, geos_coll, + n_items); + else + geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items); if (geos_coll) free (geos_coll); break; @@ -721,12 +1196,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) geos = NULL; }; if (geos) - GEOSSetSRID (geos, gaia->Srid); + { + if (handle != NULL) + GEOSSetSRID_r (handle, geos, gaia->Srid); + else + GEOSSetSRID (geos, gaia->Srid); + } return geos; } static gaiaGeomCollPtr -fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) +fromGeosGeometry (GEOSContextHandle_t handle, const GEOSGeometry * geos, + const int dimension_model) { /* converting a GEOS Geometry into a GAIA Geometry */ int type; @@ -753,7 +1234,10 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) gaiaRingPtr rng; if (!geos) return NULL; - type = GEOSGeomTypeId (geos); + if (handle != NULL) + type = GEOSGeomTypeId_r (handle, geos); + else + type = GEOSGeomTypeId (geos); switch (type) { case GEOS_POINT: @@ -766,19 +1250,45 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POINT; - gaia->Srid = GEOSGetSRID (geos); - cs = GEOSGeom_getCoordSeq (geos); - GEOSCoordSeq_getDimensions (cs, &dims); + if (handle != NULL) + { + gaia->Srid = GEOSGetSRID_r (handle, geos); + cs = GEOSGeom_getCoordSeq_r (handle, geos); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + } + else + { + gaia->Srid = GEOSGetSRID (geos); + cs = GEOSGeom_getCoordSeq (geos); + GEOSCoordSeq_getDimensions (cs, &dims); + } if (dims == 3) { - GEOSCoordSeq_getX (cs, 0, &x); - GEOSCoordSeq_getY (cs, 0, &y); - GEOSCoordSeq_getZ (cs, 0, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, 0, &x); + GEOSCoordSeq_getY_r (handle, cs, 0, &y); + GEOSCoordSeq_getZ_r (handle, cs, 0, &z); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x); + GEOSCoordSeq_getY (cs, 0, &y); + GEOSCoordSeq_getZ (cs, 0, &z); + } } else { - GEOSCoordSeq_getX (cs, 0, &x); - GEOSCoordSeq_getY (cs, 0, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, 0, &x); + GEOSCoordSeq_getY_r (handle, cs, 0, &y); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x); + GEOSCoordSeq_getY (cs, 0, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -800,23 +1310,50 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_LINESTRING; - gaia->Srid = GEOSGetSRID (geos); - cs = GEOSGeom_getCoordSeq (geos); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + gaia->Srid = GEOSGetSRID_r (handle, geos); + cs = GEOSGeom_getCoordSeq_r (handle, geos); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + gaia->Srid = GEOSGetSRID (geos); + cs = GEOSGeom_getCoordSeq (geos); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + GEOSCoordSeq_getZ_r (handle, cs, iv, &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -847,27 +1384,58 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POLYGON; - gaia->Srid = GEOSGetSRID (geos); + if (handle != NULL) + gaia->Srid = GEOSGetSRID_r (handle, geos); + else + gaia->Srid = GEOSGetSRID (geos); /* exterior ring */ - holes = GEOSGetNumInteriorRings (geos); - geos_ring = GEOSGetExteriorRing (geos); - cs = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + holes = GEOSGetNumInteriorRings_r (handle, geos); + geos_ring = GEOSGetExteriorRing_r (handle, geos); + cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + holes = GEOSGetNumInteriorRings (geos); + geos_ring = GEOSGetExteriorRing (geos); + cs = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + GEOSCoordSeq_getZ_r (handle, cs, iv, &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -890,23 +1458,50 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) for (ib = 0; ib < holes; ib++) { /* interior rings */ - geos_ring = GEOSGetInteriorRingN (geos, ib); - cs = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib); + cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + geos_ring = GEOSGetInteriorRingN (geos, ib); + cs = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + GEOSCoordSeq_getZ_r (handle, cs, iv, &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -948,28 +1543,69 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) gaia->DeclaredType = GAIA_MULTIPOLYGON; else gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; - gaia->Srid = GEOSGetSRID (geos); - nItems = GEOSGetNumGeometries (geos); + if (handle != NULL) + { + gaia->Srid = GEOSGetSRID_r (handle, geos); + nItems = GEOSGetNumGeometries_r (handle, geos); + } + else + { + gaia->Srid = GEOSGetSRID (geos); + nItems = GEOSGetNumGeometries (geos); + } for (it = 0; it < nItems; it++) { /* looping on elementaty geometries */ - geos_item = GEOSGetGeometryN (geos, it); - itemType = GEOSGeomTypeId (geos_item); + if (handle != NULL) + { + geos_item = GEOSGetGeometryN_r (handle, geos, it); + itemType = GEOSGeomTypeId_r (handle, geos_item); + } + else + { + geos_item = GEOSGetGeometryN (geos, it); + itemType = GEOSGeomTypeId (geos_item); + } switch (itemType) { case GEOS_POINT: - cs = GEOSGeom_getCoordSeq (geos_item); - GEOSCoordSeq_getDimensions (cs, &dims); + if (handle != NULL) + { + cs = GEOSGeom_getCoordSeq_r (handle, geos_item); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + } + else + { + cs = GEOSGeom_getCoordSeq (geos_item); + GEOSCoordSeq_getDimensions (cs, &dims); + } if (dims == 3) { - GEOSCoordSeq_getX (cs, 0, &x); - GEOSCoordSeq_getY (cs, 0, &y); - GEOSCoordSeq_getZ (cs, 0, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, 0, &x); + GEOSCoordSeq_getY_r (handle, cs, 0, &y); + GEOSCoordSeq_getZ_r (handle, cs, 0, &z); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x); + GEOSCoordSeq_getY (cs, 0, &y); + GEOSCoordSeq_getZ (cs, 0, &z); + } } else { - GEOSCoordSeq_getX (cs, 0, &x); - GEOSCoordSeq_getY (cs, 0, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, 0, &x); + GEOSCoordSeq_getY_r (handle, cs, 0, &y); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x); + GEOSCoordSeq_getY (cs, 0, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -982,22 +1618,53 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) gaiaAddPointToGeomColl (gaia, x, y); break; case GEOS_LINESTRING: - cs = GEOSGeom_getCoordSeq (geos_item); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + cs = GEOSGeom_getCoordSeq_r (handle, geos_item); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + cs = GEOSGeom_getCoordSeq (geos_item); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, + &x); + GEOSCoordSeq_getY_r (handle, cs, iv, + &y); + GEOSCoordSeq_getZ_r (handle, cs, iv, + &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, + &x); + GEOSCoordSeq_getY_r (handle, cs, iv, + &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -1020,28 +1687,68 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) } break; case GEOS_MULTILINESTRING: - nSubItems = GEOSGetNumGeometries (geos_item); + if (handle != NULL) + nSubItems = + GEOSGetNumGeometries_r (handle, geos_item); + else + nSubItems = GEOSGetNumGeometries (geos_item); for (sub_it = 0; sub_it < nSubItems; sub_it++) { /* looping on elementaty geometries */ - geos_sub_item = - GEOSGetGeometryN (geos_item, sub_it); - cs = GEOSGeom_getCoordSeq (geos_sub_item); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + geos_sub_item = + GEOSGetGeometryN_r (handle, geos_item, + sub_it); + cs = GEOSGeom_getCoordSeq_r (handle, + geos_sub_item); + GEOSCoordSeq_getDimensions_r (handle, cs, + &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + geos_sub_item = + GEOSGetGeometryN (geos_item, sub_it); + cs = GEOSGeom_getCoordSeq (geos_sub_item); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, + iv, &x); + GEOSCoordSeq_getY_r (handle, cs, + iv, &y); + GEOSCoordSeq_getZ_r (handle, cs, + iv, &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, + iv, &x); + GEOSCoordSeq_getY_r (handle, cs, + iv, &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -1068,25 +1775,60 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) break; case GEOS_POLYGON: /* exterior ring */ - holes = GEOSGetNumInteriorRings (geos_item); - geos_ring = GEOSGetExteriorRing (geos_item); - cs = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + holes = + GEOSGetNumInteriorRings_r (handle, geos_item); + geos_ring = + GEOSGetExteriorRing_r (handle, geos_item); + cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getDimensions_r (handle, cs, &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + holes = GEOSGetNumInteriorRings (geos_item); + geos_ring = GEOSGetExteriorRing (geos_item); + cs = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, + &x); + GEOSCoordSeq_getY_r (handle, cs, iv, + &y); + GEOSCoordSeq_getZ_r (handle, cs, iv, + &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, iv, + &x); + GEOSCoordSeq_getY_r (handle, cs, iv, + &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -1110,23 +1852,60 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) for (ib = 0; ib < holes; ib++) { /* interior rings */ - geos_ring = GEOSGetInteriorRingN (geos_item, ib); - cs = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (cs, &dims); - GEOSCoordSeq_getSize (cs, &points); + if (handle != NULL) + { + geos_ring = + GEOSGetInteriorRingN_r (handle, geos_item, + ib); + cs = GEOSGeom_getCoordSeq_r (handle, + geos_ring); + GEOSCoordSeq_getDimensions_r (handle, cs, + &dims); + GEOSCoordSeq_getSize_r (handle, cs, &points); + } + else + { + geos_ring = + GEOSGetInteriorRingN (geos_item, ib); + cs = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (cs, &dims); + GEOSCoordSeq_getSize (cs, &points); + } rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - GEOSCoordSeq_getZ (cs, iv, &z); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, + iv, &x); + GEOSCoordSeq_getY_r (handle, cs, + iv, &y); + GEOSCoordSeq_getZ_r (handle, cs, + iv, &z); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + GEOSCoordSeq_getZ (cs, iv, &z); + } } else { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, cs, + iv, &x); + GEOSCoordSeq_getY_r (handle, cs, + iv, &y); + } + else + { + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); + } z = 0.0; } if (dimension_model == GAIA_XY_Z) @@ -1162,7 +1941,25 @@ GAIAGEO_DECLARE void * gaiaToGeos (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry */ - return toGeosGeometry (gaia, GAIA2GEOS_ALL); + return toGeosGeometry (NULL, NULL, gaia, GAIA2GEOS_ALL); +} + +GAIAGEO_DECLARE void * +gaiaToGeos_r (const void *p_cache, const gaiaGeomCollPtr gaia) +{ +/* converting a GAIA Geometry into a GEOS Geometry */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + return toGeosGeometry (cache, handle, gaia, GAIA2GEOS_ALL); } GAIAGEO_DECLARE void * @@ -1174,7 +1971,31 @@ gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode) ; else mode = GAIA2GEOS_ALL; - return toGeosGeometry (gaia, mode); + return toGeosGeometry (NULL, NULL, gaia, mode); +} + +GAIAGEO_DECLARE void * +gaiaToGeosSelective_r (const void *p_cache, const gaiaGeomCollPtr gaia, + int mode) +{ +/* converting a GAIA Geometry into a GEOS Geometry (selected type) */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + if (mode == GAIA2GEOS_ONLY_POINTS || mode == GAIA2GEOS_ONLY_LINESTRINGS + || mode == GAIA2GEOS_ONLY_POLYGONS) + ; + else + mode = GAIA2GEOS_ALL; + return toGeosGeometry (cache, handle, gaia, mode); } GAIAGEO_DECLARE gaiaGeomCollPtr @@ -1182,7 +2003,7 @@ gaiaFromGeos_XY (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XY] */ const GEOSGeometry *geos = xgeos; - return fromGeosGeometry (geos, GAIA_XY); + return fromGeosGeometry (NULL, geos, GAIA_XY); } GAIAGEO_DECLARE gaiaGeomCollPtr @@ -1190,7 +2011,7 @@ gaiaFromGeos_XYZ (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZ] */ const GEOSGeometry *geos = xgeos; - return fromGeosGeometry (geos, GAIA_XY_Z); + return fromGeosGeometry (NULL, geos, GAIA_XY_Z); } GAIAGEO_DECLARE gaiaGeomCollPtr @@ -1198,7 +2019,7 @@ gaiaFromGeos_XYM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYM] */ const GEOSGeometry *geos = xgeos; - return fromGeosGeometry (geos, GAIA_XY_M); + return fromGeosGeometry (NULL, geos, GAIA_XY_M); } GAIAGEO_DECLARE gaiaGeomCollPtr @@ -1206,7 +2027,83 @@ gaiaFromGeos_XYZM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZM] */ const GEOSGeometry *geos = xgeos; - return fromGeosGeometry (geos, GAIA_XY_Z_M); + return fromGeosGeometry (NULL, geos, GAIA_XY_Z_M); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaFromGeos_XY_r (const void *p_cache, const void *xgeos) +{ +/* converting a GEOS Geometry into a GAIA Geometry [XY] */ + const GEOSGeometry *geos = xgeos; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + return fromGeosGeometry (handle, geos, GAIA_XY); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaFromGeos_XYZ_r (const void *p_cache, const void *xgeos) +{ +/* converting a GEOS Geometry into a GAIA Geometry [XYZ] */ + const GEOSGeometry *geos = xgeos; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + return fromGeosGeometry (handle, geos, GAIA_XY_Z); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaFromGeos_XYM_r (const void *p_cache, const void *xgeos) +{ +/* converting a GEOS Geometry into a GAIA Geometry [XYM] */ + const GEOSGeometry *geos = xgeos; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + return fromGeosGeometry (handle, geos, GAIA_XY_M); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaFromGeos_XYZM_r (const void *p_cache, const void *xgeos) +{ +/* converting a GEOS Geometry into a GAIA Geometry [XYZM] */ + const GEOSGeometry *geos = xgeos; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + return fromGeosGeometry (handle, geos, GAIA_XY_Z_M); } #endif /* end including GEOS */ diff --git a/src/spatialite/src/gaiageo/gg_gml.c b/src/spatialite/src/gaiageo/gg_gml.c index 19068f8..66036bb 100644 --- a/src/spatialite/src/gaiageo/gg_gml.c +++ b/src/spatialite/src/gaiageo/gg_gml.c @@ -2,7 +2,7 @@ gg_gml.c -- GML parser/lexer - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2011-2012 +Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of @@ -85,6 +85,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #define GAIA_GML_MULTIPOLYGON 8 #define GAIA_GML_MULTISURFACE 9 #define GAIA_GML_MULTIGEOMETRY 10 +#define GAIA_GML_BOX 11 #define GML_DYN_NONE 0 #define GML_DYN_DYNLINE 1 @@ -96,6 +97,81 @@ the terms of any one of the MPL, the GPL or the LGPL. #define GML_DYN_BLOCK 1024 + + +/* +** CAVEAT: we must redefine any Lemon/Flex own macro +*/ +#define YYMINORTYPE GML_MINORTYPE +#define YY_CHAR GML_YY_CHAR +#define input gml_input +#define ParseAlloc gmlParseAlloc +#define ParseFree gmlParseFree +#define ParseStackPeak gmlParseStackPeak +#define Parse gmlParse +#define yyStackEntry gml_yyStackEntry +#define yyzerominor gml_yyzerominor +#define yy_accept gml_yy_accept +#define yy_action gml_yy_action +#define yy_base gml_yy_base +#define yy_buffer_stack gml_yy_buffer_stack +#define yy_buffer_stack_max gml_yy_buffer_stack_max +#define yy_buffer_stack_top gml_yy_buffer_stack_top +#define yy_c_buf_p gml_yy_c_buf_p +#define yy_chk gml_yy_chk +#define yy_def gml_yy_def +#define yy_default gml_yy_default +#define yy_destructor gml_yy_destructor +#define yy_ec gml_yy_ec +#define yy_fatal_error gml_yy_fatal_error +#define yy_find_reduce_action gml_yy_find_reduce_action +#define yy_find_shift_action gml_yy_find_shift_action +#define yy_get_next_buffer gml_yy_get_next_buffer +#define yy_get_previous_state gml_yy_get_previous_state +#define yy_init gml_yy_init +#define yy_init_globals gml_yy_init_globals +#define yy_lookahead gml_yy_lookahead +#define yy_meta gml_yy_meta +#define yy_nxt gml_yy_nxt +#define yy_parse_failed gml_yy_parse_failed +#define yy_pop_parser_stack gml_yy_pop_parser_stack +#define yy_reduce gml_yy_reduce +#define yy_reduce_ofst gml_yy_reduce_ofst +#define yy_shift gml_yy_shift +#define yy_shift_ofst gml_yy_shift_ofst +#define yy_start gml_yy_start +#define yy_state_type gml_yy_state_type +#define yy_syntax_error gml_yy_syntax_error +#define yy_trans_info gml_yy_trans_info +#define yy_try_NUL_trans gml_yy_try_NUL_trans +#define yyParser gml_yyParser +#define yyStackEntry gml_yyStackEntry +#define yyStackOverflow gml_yyStackOverflow +#define yyRuleInfo gml_yyRuleInfo +#define yyunput gml_yyunput +#define yyzerominor gml_yyzerominor +#define yyTraceFILE gml_yyTraceFILE +#define yyTracePrompt gml_yyTracePrompt +#define yyTokenName gml_yyTokenName +#define yyRuleName gml_yyRuleName +#define ParseTrace gml_ParseTrace + +#define yylex gml_yylex +#define YY_DECL int yylex (yyscan_t yyscanner) + + +/* include LEMON generated header */ +#include "Gml.h" + + +typedef union +{ + char *pval; + struct symtab *symp; +} gml_yystype; +#define YYSTYPE gml_yystype + + /* ** This is a linked-list struct to store all the values for each token. */ @@ -165,6 +241,7 @@ struct gml_data struct gml_dyn_block *gml_first_dyn_block; struct gml_dyn_block *gml_last_dyn_block; gmlNodePtr result; + YYSTYPE GmlLval; }; static struct gml_dyn_block * @@ -612,6 +689,20 @@ guessGmlSrid (gmlNodePtr node) } } } + if (len > 40) + { + if (strncmp + (attr->Value, + "http://www.opengis.net/gml/srs/epsg.xml#", 40) == 0) + { + int i = strlen (attr->Value) - 1; + for (; i >= 0; i--) + { + if (*(attr->Value + i) == '#') + return atoi (attr->Value + i + 1); + } + } + } } attr = attr->Next; } @@ -672,6 +763,8 @@ guessGmlGeometryType (gmlNodePtr node) if (strcmp (node->Tag, "gml:MultiGeometry") == 0 || strcmp (node->Tag, "MultiGeometry") == 0) type = GAIA_GML_MULTIGEOMETRY; + if (strcmp (node->Tag, "gml:Box") == 0 || strcmp (node->Tag, "Box") == 0) + type = GAIA_GML_BOX; return type; } @@ -1140,6 +1233,57 @@ gml_parse_posList (gmlCoordPtr coord, gaiaDynamicLinePtr dyn, int has_z) return 1; } +static int +gml_parse_pos_chain (gmlNodePtr * xnode, gaiaDynamicLinePtr dyn, int *x_has_z) +{ +/* parsing a chain of gml:pos elements */ + int has_z; + int error = 0; + int dim_3d = 0; + double x; + double y; + double z; + int count = 0; + gmlNodePtr last_node = *xnode; + gmlNodePtr node = *xnode; + while (node != NULL) + { + if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + ; + else + break; + if (!gml_parse_point_v3 (node->Coordinates, &x, &y, &z, &has_z)) + return 0; + if (has_z) + { + gml_add_point_to_lineZ (dyn, x, y, z); + dim_3d = 1; + } + else + gml_add_point_to_line (dyn, x, y); + node = node->Next; + if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + last_node = node; + else + { + error = 1; + break; + } + count++; + node = node->Next; + } + if (count >= 2 && error == 0) + { + /* valid sequence found */ + *x_has_z = dim_3d; + *xnode = last_node; + return 1; + } + return 0; +} + static int gml_count_dyn_points (gaiaDynamicLinePtr dyn) { @@ -1154,6 +1298,103 @@ gml_count_dyn_points (gaiaDynamicLinePtr dyn) return iv; } +static int +gml_parse_box (struct gml_data *p_data, gaiaGeomCollPtr geom, + gmlNodePtr node, int srid, gmlNodePtr * next) +{ +/* parsing a */ + gaiaGeomCollPtr last; + gaiaGeomCollPtr pg; + gaiaPolygonPtr new_pg; + gaiaRingPtr ring; + gaiaPointPtr pt; + double minx; + double miny; + double maxx; + double maxy; + int has_z; + int points = 0; + gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); + gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); + + if (strcmp (node->Tag, "gml:coordinates") == 0 + || strcmp (node->Tag, "coordinates") == 0) + { + /* parsing a GML v.2.x */ + if (!gml_parse_coordinates (node->Coordinates, dyn, &has_z)) + goto error; + node = node->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:coordinates") == 0 + || strcmp (node->Tag, "coordinates") == 0) + ; + else + goto error; + node = node->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:Box") == 0 + || strcmp (node->Tag, "Box") == 0) + ; + else + goto error; + *next = node->Next; + goto ok; + } + + ok: +/* ok, GML nodes match as expected */ + points = gml_count_dyn_points (dyn); + if (points != 2) + goto error; + pt = dyn->First; + minx = pt->X; + miny = pt->Y; + maxx = pt->X; + maxy = pt->Y; + while (pt) + { + if (pt->X < minx) + minx = pt->X; + if (pt->Y < miny) + miny = pt->Y; + if (pt->X > maxx) + maxx = pt->X; + if (pt->Y > maxy) + maxy = pt->Y; + pt = pt->Next; + } + pg = gaiaAllocGeomColl (); + gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); + pg->Srid = srid; + new_pg = gaiaAddPolygonToGeomColl (pg, 5, 0); + /* initializing the EXTERIOR RING */ + ring = new_pg->Exterior; + gaiaSetPoint (ring->Coords, 0, minx, miny); + gaiaSetPoint (ring->Coords, 1, maxx, miny); + gaiaSetPoint (ring->Coords, 2, maxx, maxy); + gaiaSetPoint (ring->Coords, 3, minx, maxy); + gaiaSetPoint (ring->Coords, 4, minx, miny); + last = geom; + while (1) + { + /* searching the last Geometry within chain */ + if (last->Next == NULL) + break; + last = last->Next; + } + last->Next = pg; + gmlMapDynClean (p_data, dyn); + gaiaFreeDynamicLine (dyn); + return 1; + + error: + gmlMapDynClean (p_data, dyn); + gaiaFreeDynamicLine (dyn); + return 0; +} + static int gml_parse_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) @@ -1220,7 +1461,23 @@ gml_parse_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, *next = node->Next; goto ok; } - goto error; + if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, &has_z)) + goto error; + node = node2->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:LineString") == 0 + || strcmp (node->Tag, "LineString") == 0) + ; + else + goto error; + *next = node->Next; + goto ok; + } ok: /* ok, GML nodes match as expected */ @@ -1308,18 +1565,32 @@ gml_parse_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) - ; - else - goto error; - has_z = gml_get_srsDimension (node); - if (!gml_parse_posList (node->Coordinates, dyn, has_z)) - goto error; - node = node->Next; - if (node == NULL) - goto error; - if (strcmp (node->Tag, "gml:posList") == 0 - || strcmp (node->Tag, "posList") == 0) - ; + { + /* parsing a GML v.3.x */ + has_z = gml_get_srsDimension (node); + if (!gml_parse_posList (node->Coordinates, dyn, has_z)) + goto error; + node = node->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:posList") == 0 + || strcmp (node->Tag, "posList") == 0) + ; + else + goto error; + + } + else if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, &has_z)) + goto error; + node = node2; + if (node == NULL) + goto error; + } else goto error; node = node->Next; @@ -1460,6 +1731,17 @@ gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, else goto error; } + else if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, has_z)) + goto error; + node = node2; + if (node == NULL) + goto error; + } else goto error; node = node->Next; @@ -1528,6 +1810,17 @@ gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, else goto error; } + else if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, has_z)) + goto error; + node = node2; + if (node == NULL) + goto error; + } else goto error; node = node->Next; @@ -1567,18 +1860,31 @@ gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) - ; - else - goto error; - *has_z = gml_get_srsDimension (node); - if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) - goto error; - node = node->Next; - if (node == NULL) - goto error; - if (strcmp (node->Tag, "gml:posList") == 0 - || strcmp (node->Tag, "posList") == 0) - ; + { + /* parsing a GML v.3.x */ + *has_z = gml_get_srsDimension (node); + if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) + goto error; + node = node->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:posList") == 0 + || strcmp (node->Tag, "posList") == 0) + ; + else + goto error; + } + else if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, has_z)) + goto error; + node = node2; + if (node == NULL) + goto error; + } else goto error; node = node->Next; @@ -1618,18 +1924,31 @@ gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) - ; - else - goto error; - *has_z = gml_get_srsDimension (node); - if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) - goto error; - node = node->Next; - if (node == NULL) - goto error; - if (strcmp (node->Tag, "gml:posList") == 0 - || strcmp (node->Tag, "posList") == 0) - ; + { + /* parsing a GML v.3.x */ + *has_z = gml_get_srsDimension (node); + if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) + goto error; + node = node->Next; + if (node == NULL) + goto error; + if (strcmp (node->Tag, "gml:posList") == 0 + || strcmp (node->Tag, "posList") == 0) + ; + else + goto error; + } + else if (strcmp (node->Tag, "gml:pos") == 0 + || strcmp (node->Tag, "pos") == 0) + { + /* parsing a GML v.3.x */ + gmlNodePtr node2 = node; + if (!gml_parse_pos_chain (&node2, dyn, has_z)) + goto error; + node = node2; + if (node == NULL) + goto error; + } else goto error; node = node->Next; @@ -1845,6 +2164,8 @@ gml_parse_multi_point (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int pts; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -1860,29 +2181,42 @@ gml_parse_multi_point (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:pointMember") == 0 - || strcmp (n->Tag, "pointMember") == 0) + || strcmp (n->Tag, "pointMember") == 0 + || strcmp (n->Tag, "gml:pointMembers") == 0 + || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:Point") == 0 - || strcmp (n->Tag, "Point") == 0) - ; - else - return 0; - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_point (p_data, geom, n, srid, &next)) - return 0; - n = next; - if (n == NULL) + n2 = n->Next; + pts = 0; + while (n2) + { + /* looping on Point(s) */ + if (strcmp (n2->Tag, "gml:Point") == 0 + || strcmp (n2->Tag, "Point") == 0) + ; + else + { + n = n2; + break; + } + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_point (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + if (n2 == NULL) + return 0; + pts++; + } + if (!pts) return 0; if (strcmp (n->Tag, "gml:pointMember") == 0 - || strcmp (n->Tag, "pointMember") == 0) + || strcmp (n->Tag, "pointMember") == 0 + || strcmp (n->Tag, "gml:pointMembers") == 0 + || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; @@ -1897,6 +2231,8 @@ gml_parse_multi_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int lns; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -1912,29 +2248,42 @@ gml_parse_multi_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:lineStringMember") == 0 - || strcmp (n->Tag, "lineStringMember") == 0) + || strcmp (n->Tag, "lineStringMember") == 0 + || strcmp (n->Tag, "gml:lineStringMembers") == 0 + || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:LineString") == 0 - || strcmp (n->Tag, "LineString") == 0) - ; - else - return 0; - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_linestring (p_data, geom, n, srid, &next)) - return 0; - n = next; - if (n == NULL) + n2 = n->Next; + lns = 0; + while (n2) + { + /* looping on Linestring(s) */ + if (strcmp (n2->Tag, "gml:LineString") == 0 + || strcmp (n2->Tag, "LineString") == 0) + ; + else + { + n = n2; + break; + } + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + if (n2 == NULL) + return 0; + lns++; + } + if (!lns) return 0; if (strcmp (n->Tag, "gml:lineStringMember") == 0 - || strcmp (n->Tag, "lineStringMember") == 0) + || strcmp (n->Tag, "lineStringMember") == 0 + || strcmp (n->Tag, "gml:lineStringMembers") == 0 + || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; @@ -1949,6 +2298,8 @@ gml_parse_multi_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int lns; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -1964,29 +2315,42 @@ gml_parse_multi_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:curveMember") == 0 - || strcmp (n->Tag, "curveMember") == 0) + || strcmp (n->Tag, "curveMember") == 0 + || strcmp (n->Tag, "gml:curveMembers") == 0 + || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:Curve") == 0 - || strcmp (n->Tag, "Curve") == 0) - ; - else - return 0; - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_curve (p_data, geom, n, srid, &next)) - return 0; - n = next; - if (n == NULL) + n2 = n->Next; + lns = 0; + while (n2) + { + /* looping on Curve(s) */ + if (strcmp (n2->Tag, "gml:Curve") == 0 + || strcmp (n2->Tag, "Curve") == 0) + ; + else + { + n = n2; + break; + } + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_curve (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + if (n2 == NULL) + return 0; + lns++; + } + if (!lns) return 0; if (strcmp (n->Tag, "gml:curveMember") == 0 - || strcmp (n->Tag, "curveMember") == 0) + || strcmp (n->Tag, "curveMember") == 0 + || strcmp (n->Tag, "gml:curveMembers") == 0 + || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; @@ -2001,6 +2365,8 @@ gml_parse_multi_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int pgs; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -2016,29 +2382,42 @@ gml_parse_multi_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:polygonMember") == 0 - || strcmp (n->Tag, "polygonMember") == 0) + || strcmp (n->Tag, "polygonMember") == 0 + || strcmp (n->Tag, "gml:polygonMembers") == 0 + || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:Polygon") == 0 - || strcmp (n->Tag, "Polygon") == 0) - ; - else - return 0; - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_polygon (p_data, geom, n, srid, &next)) - return 0; - n = next; - if (n == NULL) + n2 = n->Next; + pgs = 0; + while (n2) + { + /* looping on Polygon(s) */ + if (strcmp (n2->Tag, "gml:Polygon") == 0 + || strcmp (n2->Tag, "Polygon") == 0) + ; + else + { + n = n2; + break; + } + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + if (n2 == NULL) + return 0; + pgs++; + } + if (!pgs) return 0; if (strcmp (n->Tag, "gml:polygonMember") == 0 - || strcmp (n->Tag, "polygonMember") == 0) + || strcmp (n->Tag, "polygonMember") == 0 + || strcmp (n->Tag, "gml:polygonMembers") == 0 + || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; @@ -2053,6 +2432,8 @@ gml_parse_multi_surface (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int pgs; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -2068,29 +2449,42 @@ gml_parse_multi_surface (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:surfaceMember") == 0 - || strcmp (n->Tag, "surfaceMember") == 0) - ; - else - return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:Polygon") == 0 - || strcmp (n->Tag, "Polygon") == 0) + || strcmp (n->Tag, "surfaceMember") == 0 + || strcmp (n->Tag, "gml:surfaceMembers") == 0 + || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_polygon (p_data, geom, n, srid, &next)) - return 0; - n = next; - if (n == NULL) + n2 = n->Next; + pgs = 0; + while (n2) + { + /* looping on Polygon(s) */ + if (strcmp (n2->Tag, "gml:Polygon") == 0 + || strcmp (n2->Tag, "Polygon") == 0) + ; + else + { + n = n2; + break; + } + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + if (n2 == NULL) + return 0; + pgs++; + } + if (!pgs) return 0; if (strcmp (n->Tag, "gml:surfaceMember") == 0 - || strcmp (n->Tag, "surfaceMember") == 0) + || strcmp (n->Tag, "surfaceMember") == 0 + || strcmp (n->Tag, "gml:surfaceMembers") == 0 + || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; @@ -2105,6 +2499,8 @@ gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom, { /* parsing a */ int srid; + int elems; + gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) @@ -2120,63 +2516,74 @@ gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom, return 0; } if (strcmp (n->Tag, "gml:geometryMember") == 0 - || strcmp (n->Tag, "geometryMember") == 0) + || strcmp (n->Tag, "geometryMember") == 0 + || strcmp (n->Tag, "gml:geometryMembers") == 0 + || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; - n = n->Next; - if (n == NULL) - return 0; - if (strcmp (n->Tag, "gml:Point") == 0 - || strcmp (n->Tag, "Point") == 0) - { - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_point (p_data, geom, n, srid, &next)) - return 0; - n = next; - } - else if (strcmp (n->Tag, "gml:LineString") == 0 - || strcmp (n->Tag, "LineString") == 0) - { - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_linestring (p_data, geom, n, srid, &next)) - return 0; - n = next; - } - else if (strcmp (n->Tag, "gml:Curve") == 0 - || strcmp (n->Tag, "Curve") == 0) + n2 = n->Next; + elems = 0; + while (n2) { - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_curve (p_data, geom, n, srid, &next)) - return 0; - n = next; - } - else if (strcmp (n->Tag, "gml:Polygon") == 0 - || strcmp (n->Tag, "Polygon") == 0) - { - srid = guessGmlSrid (n); - n = n->Next; - if (n == NULL) - return 0; - if (!gml_parse_polygon (p_data, geom, n, srid, &next)) - return 0; - n = next; + /* looping on elements */ + if (strcmp (n2->Tag, "gml:Point") == 0 + || strcmp (n2->Tag, "Point") == 0) + { + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_point (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + } + else if (strcmp (n2->Tag, "gml:LineString") == 0 + || strcmp (n2->Tag, "LineString") == 0) + { + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + } + else if (strcmp (n2->Tag, "gml:Curve") == 0 + || strcmp (n2->Tag, "Curve") == 0) + { + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_curve (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + } + else if (strcmp (n2->Tag, "gml:Polygon") == 0 + || strcmp (n2->Tag, "Polygon") == 0) + { + srid = guessGmlSrid (n2); + n2 = n2->Next; + if (n2 == NULL) + return 0; + if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) + return 0; + n2 = next; + } + else + { + n = n2; + break; + } + elems++; } - else - return 0; - if (n == NULL) + if (!elems) return 0; if (strcmp (n->Tag, "gml:geometryMember") == 0 - || strcmp (n->Tag, "geometryMember") == 0) + || strcmp (n->Tag, "geometryMember") == 0 + || strcmp (n->Tag, "gml:geometryMembers") == 0 + || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; @@ -2186,8 +2593,8 @@ gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom, } static gaiaGeomCollPtr -gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, - sqlite3 * sqlite_handle) +gml_validate_geometry (const void *cache, struct gml_data *p_data, + gaiaGeomCollPtr chain, sqlite3 * sqlite_handle) { int xy = 0; int xyz = 0; @@ -2373,7 +2780,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2431,7 +2843,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2494,7 +2911,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2554,7 +2976,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2618,7 +3045,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2689,7 +3121,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2761,7 +3198,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2843,7 +3285,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, ; else { - g2 = gaiaTransform (g, proj_from, proj_to); + if (cache != NULL) + g2 = gaiaTransform_r (cache, g, proj_from, + proj_to); + else + g2 = gaiaTransform (g, proj_from, + proj_to); if (!g2) g2 = g; else @@ -2917,7 +3364,7 @@ gml_free_geom_chain (struct gml_data *p_data, gaiaGeomCollPtr geom) } static gaiaGeomCollPtr -gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree, +gml_build_geometry (const void *cache, struct gml_data *p_data, gmlNodePtr tree, sqlite3 * sqlite_handle) { /* attempting to build a geometry from GML nodes */ @@ -2994,10 +3441,15 @@ gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree, if (!gml_parse_multi_geometry (p_data, geom, tree->Next)) goto error; break; + case GAIA_GML_BOX: + geom->DeclaredType = GAIA_POLYGON; + if (!gml_parse_box (p_data, geom, tree->Next, geom->Srid, &next)) + goto error; + break; }; /* attempting to build the final geometry */ - result = gml_validate_geometry (p_data, geom, sqlite_handle); + result = gml_validate_geometry (cache, p_data, geom, sqlite_handle); if (result == NULL) goto error; gml_free_geom_chain (p_data, geom); @@ -3009,85 +3461,6 @@ gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree, } - -/* -** CAVEAT: we must redefine any Lemon/Flex own macro -*/ -#define YYMINORTYPE GML_MINORTYPE -#define YY_CHAR GML_YY_CHAR -#define input gml_input -#define ParseAlloc gmlParseAlloc -#define ParseFree gmlParseFree -#define ParseStackPeak gmlParseStackPeak -#define Parse gmlParse -#define yyStackEntry gml_yyStackEntry -#define yyzerominor gml_yyzerominor -#define yy_accept gml_yy_accept -#define yy_action gml_yy_action -#define yy_base gml_yy_base -#define yy_buffer_stack gml_yy_buffer_stack -#define yy_buffer_stack_max gml_yy_buffer_stack_max -#define yy_buffer_stack_top gml_yy_buffer_stack_top -#define yy_c_buf_p gml_yy_c_buf_p -#define yy_chk gml_yy_chk -#define yy_def gml_yy_def -#define yy_default gml_yy_default -#define yy_destructor gml_yy_destructor -#define yy_ec gml_yy_ec -#define yy_fatal_error gml_yy_fatal_error -#define yy_find_reduce_action gml_yy_find_reduce_action -#define yy_find_shift_action gml_yy_find_shift_action -#define yy_get_next_buffer gml_yy_get_next_buffer -#define yy_get_previous_state gml_yy_get_previous_state -#define yy_init gml_yy_init -#define yy_init_globals gml_yy_init_globals -#define yy_lookahead gml_yy_lookahead -#define yy_meta gml_yy_meta -#define yy_nxt gml_yy_nxt -#define yy_parse_failed gml_yy_parse_failed -#define yy_pop_parser_stack gml_yy_pop_parser_stack -#define yy_reduce gml_yy_reduce -#define yy_reduce_ofst gml_yy_reduce_ofst -#define yy_shift gml_yy_shift -#define yy_shift_ofst gml_yy_shift_ofst -#define yy_start gml_yy_start -#define yy_state_type gml_yy_state_type -#define yy_syntax_error gml_yy_syntax_error -#define yy_trans_info gml_yy_trans_info -#define yy_try_NUL_trans gml_yy_try_NUL_trans -#define yyParser gml_yyParser -#define yyStackEntry gml_yyStackEntry -#define yyStackOverflow gml_yyStackOverflow -#define yyRuleInfo gml_yyRuleInfo -#define yyunput gml_yyunput -#define yyzerominor gml_yyzerominor -#define yyTraceFILE gml_yyTraceFILE -#define yyTracePrompt gml_yyTracePrompt -#define yyTokenName gml_yyTokenName -#define yyRuleName gml_yyRuleName -#define ParseTrace gml_ParseTrace - -#define yylex gml_yylex -#define YY_DECL int yylex (yyscan_t yyscanner) - - -/* include LEMON generated header */ -#include "Gml.h" - - -typedef union -{ - char *pval; - struct symtab *symp; -} gml_yystype; -#define YYSTYPE gml_yystype - - -/* extern YYSTYPE yylval; */ -YYSTYPE GmlLval; - - - /* including LEMON generated code */ #include "Gml.c" @@ -3107,8 +3480,9 @@ YYSTYPE GmlLval; -gaiaGeomCollPtr -gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) +static gaiaGeomCollPtr +gaiaParseGmlCommon (const void *cache, const unsigned char *dirty_buffer, + sqlite3 * sqlite_handle) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ @@ -3131,7 +3505,7 @@ gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) /* initializing the scanner state */ Gmllex_init_extra (&str_data, &scanner); - GmlLval.pval = NULL; + str_data.GmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Gml_scan_string ((char *) dirty_buffer, scanner); @@ -3149,11 +3523,7 @@ gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) } tokens->Next = malloc (sizeof (gmlFlexToken)); tokens->Next->Next = NULL; - /* - /GmlLval is a global variable from FLEX. - /GmlLval is defined in gmlLexglobal.h - */ - gml_xferString (&(tokens->Next->value), GmlLval.pval); + gml_xferString (&(tokens->Next->value), str_data.GmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; @@ -3166,7 +3536,7 @@ gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; gml_cleanup (head); - gml_freeString (&(GmlLval.pval)); + gml_freeString (&(str_data.GmlLval.pval)); if (str_data.gml_parse_error) { @@ -3191,12 +3561,26 @@ gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) } /* attempting to build a geometry from GML */ - geom = gml_build_geometry (&str_data, str_data.result, sqlite_handle); + geom = + gml_build_geometry (cache, &str_data, str_data.result, sqlite_handle); gml_freeTree (&str_data, str_data.result); gmlCleanMapDynAlloc (&str_data, 0); return geom; } +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) +{ + return gaiaParseGmlCommon (NULL, dirty_buffer, sqlite_handle); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaParseGml_r (const void *p_cache, const unsigned char *dirty_buffer, + sqlite3 * sqlite_handle) +{ + return gaiaParseGmlCommon (p_cache, dirty_buffer, sqlite_handle); +} + /* ** CAVEAT: we must now undefine any Lemon/Flex own macro diff --git a/src/spatialite/src/gaiageo/gg_kml.c b/src/spatialite/src/gaiageo/gg_kml.c index 4879b1f..9cf48a7 100644 --- a/src/spatialite/src/gaiageo/gg_kml.c +++ b/src/spatialite/src/gaiageo/gg_kml.c @@ -2,7 +2,7 @@ gg_kml.c -- KML parser/lexer - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2011-2012 +Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of @@ -89,6 +89,81 @@ the terms of any one of the MPL, the GPL or the LGPL. #define KML_DYN_BLOCK 1024 + + +/* +** CAVEAT: we must redefine any Lemon/Flex own macro +*/ +#define YYMINORTYPE KML_MINORTYPE +#define YY_CHAR KML_YY_CHAR +#define input kml_input +#define ParseAlloc kmlParseAlloc +#define ParseFree kmlParseFree +#define ParseStackPeak kmlParseStackPeak +#define Parse kmlParse +#define yyStackEntry kml_yyStackEntry +#define yyzerominor kml_yyzerominor +#define yy_accept kml_yy_accept +#define yy_action kml_yy_action +#define yy_base kml_yy_base +#define yy_buffer_stack kml_yy_buffer_stack +#define yy_buffer_stack_max kml_yy_buffer_stack_max +#define yy_buffer_stack_top kml_yy_buffer_stack_top +#define yy_c_buf_p kml_yy_c_buf_p +#define yy_chk kml_yy_chk +#define yy_def kml_yy_def +#define yy_default kml_yy_default +#define yy_destructor kml_yy_destructor +#define yy_ec kml_yy_ec +#define yy_fatal_error kml_yy_fatal_error +#define yy_find_reduce_action kml_yy_find_reduce_action +#define yy_find_shift_action kml_yy_find_shift_action +#define yy_get_next_buffer kml_yy_get_next_buffer +#define yy_get_previous_state kml_yy_get_previous_state +#define yy_init kml_yy_init +#define yy_init_globals kml_yy_init_globals +#define yy_lookahead kml_yy_lookahead +#define yy_meta kml_yy_meta +#define yy_nxt kml_yy_nxt +#define yy_parse_failed kml_yy_parse_failed +#define yy_pop_parser_stack kml_yy_pop_parser_stack +#define yy_reduce kml_yy_reduce +#define yy_reduce_ofst kml_yy_reduce_ofst +#define yy_shift kml_yy_shift +#define yy_shift_ofst kml_yy_shift_ofst +#define yy_start kml_yy_start +#define yy_state_type kml_yy_state_type +#define yy_syntax_error kml_yy_syntax_error +#define yy_trans_info kml_yy_trans_info +#define yy_try_NUL_trans kml_yy_try_NUL_trans +#define yyParser kml_yyParser +#define yyStackEntry kml_yyStackEntry +#define yyStackOverflow kml_yyStackOverflow +#define yyRuleInfo kml_yyRuleInfo +#define yyunput kml_yyunput +#define yyzerominor kml_yyzerominor +#define yyTraceFILE kml_yyTraceFILE +#define yyTracePrompt kml_yyTracePrompt +#define yyTokenName kml_yyTokenName +#define yyRuleName kml_yyRuleName +#define ParseTrace kml_ParseTrace + +#define yylex kml_yylex +#define YY_DECL int yylex (yyscan_t yyscanner) + + +/* including LEMON generated header */ +#include "Kml.h" + + +typedef union +{ + char *pval; + struct symtab *symp; +} kml_yystype; +#define YYSTYPE kml_yystype + + /* ** This is a linked-list struct to store all the values for each token. */ @@ -159,6 +234,7 @@ struct kml_data struct kml_dyn_block *kml_first_dyn_block; struct kml_dyn_block *kml_last_dyn_block; kmlNodePtr result; + YYSTYPE KmlLval; }; static struct kml_dyn_block * @@ -1830,85 +1906,6 @@ kml_build_geometry (struct kml_data *p_data, kmlNodePtr tree) } - -/* -** CAVEAT: we must redefine any Lemon/Flex own macro -*/ -#define YYMINORTYPE KML_MINORTYPE -#define YY_CHAR KML_YY_CHAR -#define input kml_input -#define ParseAlloc kmlParseAlloc -#define ParseFree kmlParseFree -#define ParseStackPeak kmlParseStackPeak -#define Parse kmlParse -#define yyStackEntry kml_yyStackEntry -#define yyzerominor kml_yyzerominor -#define yy_accept kml_yy_accept -#define yy_action kml_yy_action -#define yy_base kml_yy_base -#define yy_buffer_stack kml_yy_buffer_stack -#define yy_buffer_stack_max kml_yy_buffer_stack_max -#define yy_buffer_stack_top kml_yy_buffer_stack_top -#define yy_c_buf_p kml_yy_c_buf_p -#define yy_chk kml_yy_chk -#define yy_def kml_yy_def -#define yy_default kml_yy_default -#define yy_destructor kml_yy_destructor -#define yy_ec kml_yy_ec -#define yy_fatal_error kml_yy_fatal_error -#define yy_find_reduce_action kml_yy_find_reduce_action -#define yy_find_shift_action kml_yy_find_shift_action -#define yy_get_next_buffer kml_yy_get_next_buffer -#define yy_get_previous_state kml_yy_get_previous_state -#define yy_init kml_yy_init -#define yy_init_globals kml_yy_init_globals -#define yy_lookahead kml_yy_lookahead -#define yy_meta kml_yy_meta -#define yy_nxt kml_yy_nxt -#define yy_parse_failed kml_yy_parse_failed -#define yy_pop_parser_stack kml_yy_pop_parser_stack -#define yy_reduce kml_yy_reduce -#define yy_reduce_ofst kml_yy_reduce_ofst -#define yy_shift kml_yy_shift -#define yy_shift_ofst kml_yy_shift_ofst -#define yy_start kml_yy_start -#define yy_state_type kml_yy_state_type -#define yy_syntax_error kml_yy_syntax_error -#define yy_trans_info kml_yy_trans_info -#define yy_try_NUL_trans kml_yy_try_NUL_trans -#define yyParser kml_yyParser -#define yyStackEntry kml_yyStackEntry -#define yyStackOverflow kml_yyStackOverflow -#define yyRuleInfo kml_yyRuleInfo -#define yyunput kml_yyunput -#define yyzerominor kml_yyzerominor -#define yyTraceFILE kml_yyTraceFILE -#define yyTracePrompt kml_yyTracePrompt -#define yyTokenName kml_yyTokenName -#define yyRuleName kml_yyRuleName -#define ParseTrace kml_ParseTrace - -#define yylex kml_yylex -#define YY_DECL int yylex (yyscan_t yyscanner) - - -/* including LEMON generated header */ -#include "Kml.h" - - -typedef union -{ - char *pval; - struct symtab *symp; -} kml_yystype; -#define YYSTYPE kml_yystype - - -/* extern YYSTYPE yylval; */ -YYSTYPE KmlLval; - - - /* including LEMON generated code */ #include "Kml.c" @@ -1952,7 +1949,7 @@ gaiaParseKml (const unsigned char *dirty_buffer) /* initializing the scanner state */ Kmllex_init_extra (&str_data, &scanner); - KmlLval.pval = NULL; + str_data.KmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Kml_scan_string ((char *) dirty_buffer, scanner); @@ -1970,11 +1967,7 @@ gaiaParseKml (const unsigned char *dirty_buffer) } tokens->Next = malloc (sizeof (kmlFlexToken)); tokens->Next->Next = NULL; - /* - /KmlLval is a global variable from FLEX. - /KmlLval is defined in kmlLexglobal.h - */ - kml_xferString (&(tokens->Next->value), KmlLval.pval); + kml_xferString (&(tokens->Next->value), str_data.KmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; @@ -1987,7 +1980,7 @@ gaiaParseKml (const unsigned char *dirty_buffer) /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; kml_cleanup (head); - kml_freeString (&(KmlLval.pval)); + kml_freeString (&(str_data.KmlLval.pval)); if (str_data.kml_parse_error) { diff --git a/src/spatialite/src/gaiageo/gg_lwgeom.c b/src/spatialite/src/gaiageo/gg_lwgeom.c index 11875a5..15c9748 100644 --- a/src/spatialite/src/gaiageo/gg_lwgeom.c +++ b/src/spatialite/src/gaiageo/gg_lwgeom.c @@ -2,7 +2,7 @@ gg_lwgeom.c -- Gaia LWGEOM support - version 4.0, 2012 August 19 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2012 +Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -52,8 +52,6 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ -#include "config.h" - #include #include #include @@ -66,15 +64,21 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale #include "config.h" #endif +#include #include -#include #include -#include +#include + +#include #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ #include +/* GLOBAL variables */ +char *gaia_lwgeom_error_msg = NULL; +char *gaia_lwgeom_warning_msg = NULL; + const char splitelwgeomversion[] = LIBLWGEOM_VERSION; SPATIALITE_PRIVATE const char * @@ -83,6 +87,36 @@ splite_lwgeom_version (void) return splitelwgeomversion; } +static void +lwgaia_noticereporter (const char *fmt, va_list ap) +{ + char *msg; + if (!lw_vasprintf (&msg, fmt, ap)) + { + va_end (ap); + return; + } + spatialite_e ("LWGEOM notice: %s\n", msg); + gaiaSetLwGeomWarningMsg (msg); + free (msg); +} + +static void +lwgaia_errorreporter (const char *fmt, va_list ap) +{ + char *msg; + if (!lw_vasprintf (&msg, fmt, ap)) + { + va_end (ap); + return; + } + spatialite_e ("LWGEOM error: %s\n", msg); + gaiaSetLwGeomErrorMsg (msg); + free (msg); +} + +#ifndef POSTGIS_2_1 +/* liblwgeom initializion function: required by PostGIS 2.0.x */ void lwgeom_init_allocators (void) { @@ -91,8 +125,123 @@ lwgeom_init_allocators (void) lwalloc_var = default_allocator; lwrealloc_var = default_reallocator; lwfree_var = default_freeor; - lwnotice_var = default_noticereporter; - lwerror_var = default_errorreporter; + lwnotice_var = lwgaia_noticereporter; + lwerror_var = lwgaia_errorreporter; +} +#else +/* liblwgeom initialization function: required by PostGIS 2.1.x */ +SPATIALITE_PRIVATE void +splite_lwgeom_init (void) +{ + lwgeom_set_handlers (NULL, NULL, NULL, lwgaia_errorreporter, + lwgaia_noticereporter); +} +#endif + +GAIAGEO_DECLARE void +gaiaResetLwGeomMsg () +{ +/* resets the LWGEOM error and warning messages */ + if (gaia_lwgeom_error_msg != NULL) + free (gaia_lwgeom_error_msg); + if (gaia_lwgeom_warning_msg != NULL) + free (gaia_lwgeom_warning_msg); + gaia_lwgeom_error_msg = NULL; + gaia_lwgeom_warning_msg = NULL; +} + +GAIAGEO_DECLARE const char * +gaiaGetLwGeomErrorMsg () +{ +/* setting the latest LWGEOM error message */ + return gaia_lwgeom_error_msg; +} + +GAIAGEO_DECLARE const char * +gaiaGetLwGeomWarningMsg () +{ +/* return the latest LWGEOM error message */ + return gaia_lwgeom_warning_msg; +} + +GAIAGEO_DECLARE void +gaiaSetLwGeomErrorMsg (const char *msg) +{ +/* setting the latest LWGEOM error message */ + int len; + if (gaia_lwgeom_error_msg != NULL) + free (gaia_lwgeom_error_msg); + gaia_lwgeom_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + gaia_lwgeom_error_msg = malloc (len + 1); + strcpy (gaia_lwgeom_error_msg, msg); +} + +GAIAGEO_DECLARE void +gaiaSetLwGeomWarningMsg (const char *msg) +{ +/* return the latest LWGEOM error message */ + int len; + if (gaia_lwgeom_warning_msg != NULL) + free (gaia_lwgeom_warning_msg); + gaia_lwgeom_warning_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + gaia_lwgeom_warning_msg = malloc (len + 1); + strcpy (gaia_lwgeom_warning_msg, msg); +} + +static int +check_unclosed_ring (gaiaRingPtr rng) +{ +/* checks if a Ring is closed or not */ + double x0; + double y0; + double z0 = 0.0; + double m0 = 0.0; + double x1; + double y1; + double z1 = 0.0; + double m1 = 0.0; + int last = rng->Points - 1; + if (rng->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x0, &y0, &z0); + } + else if (rng->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x0, &y0, &m0); + } + else if (rng->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x0, &y0, &z0, &m0); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x0, &y0); + } + if (rng->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, last, &x1, &y1, &z1); + } + else if (rng->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, last, &x1, &y1, &m1); + } + else if (rng->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, last, &x1, &y1, &z1, &m1); + } + else + { + gaiaGetPoint (rng->Coords, last, &x1, &y1); + } + if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) + return 0; + return 1; } static LWGEOM * @@ -113,6 +262,7 @@ toLWGeom (const gaiaGeomCollPtr gaia) double y; double z; double m; + int close_ring; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; @@ -227,7 +377,11 @@ toLWGeom (const gaiaGeomCollPtr gaia) ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; - ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ @@ -255,11 +409,44 @@ toLWGeom (const gaiaGeomCollPtr gaia) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (gaia->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (gaia->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (gaia->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[0], rng->Points, &point); + } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; - ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[1 + ib] = + ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[1 + ib] = + ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) @@ -286,6 +473,33 @@ toLWGeom (const gaiaGeomCollPtr gaia) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (gaia->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (gaia->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (gaia->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[1 + ib], rng->Points, &point); + } } return (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, ppaa); @@ -414,7 +628,11 @@ toLWGeom (const gaiaGeomCollPtr gaia) ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; - ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ @@ -442,12 +660,44 @@ toLWGeom (const gaiaGeomCollPtr gaia) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (gaia->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (gaia->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (gaia->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[0], rng->Points, &point); + } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; - ppaa[1 + ib] = - ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[1 + ib] = + ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[1 + ib] = + ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) @@ -475,6 +725,35 @@ toLWGeom (const gaiaGeomCollPtr gaia) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (gaia->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (gaia->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (gaia->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, + &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[1 + ib], rng->Points, + &point); + } } geoms[numg++] = (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, @@ -936,6 +1215,60 @@ fromLWGeom (const LWGEOM * lwgeom, const int dimension_model, return gaia; } +static int +check_valid_type (const LWGEOM * lwgeom, int declared_type) +{ +/* checking if the geometry type is a valid one */ + int ret = 0; + switch (lwgeom->type) + { + case POINTTYPE: + case MULTIPOINTTYPE: + if (declared_type == GAIA_POINT || declared_type == GAIA_POINTZ + || declared_type == GAIA_POINTM || declared_type == GAIA_POINTZM) + ret = 1; + if (declared_type == GAIA_MULTIPOINT + || declared_type == GAIA_MULTIPOINTZ + || declared_type == GAIA_MULTIPOINTM + || declared_type == GAIA_MULTIPOINTZM) + ret = 1; + break; + case LINETYPE: + case MULTILINETYPE: + if (declared_type == GAIA_LINESTRING + || declared_type == GAIA_LINESTRINGZ + || declared_type == GAIA_LINESTRINGM + || declared_type == GAIA_LINESTRINGZM) + ret = 1; + if (declared_type == GAIA_MULTILINESTRING + || declared_type == GAIA_MULTILINESTRINGZ + || declared_type == GAIA_MULTILINESTRINGM + || declared_type == GAIA_MULTILINESTRINGZM) + ret = 1; + break; + case POLYGONTYPE: + case MULTIPOLYGONTYPE: + if (declared_type == GAIA_POLYGON || declared_type == GAIA_POLYGONZ + || declared_type == GAIA_POLYGONM + || declared_type == GAIA_POLYGONZM) + ret = 1; + if (declared_type == GAIA_MULTIPOLYGON + || declared_type == GAIA_MULTIPOLYGONZ + || declared_type == GAIA_MULTIPOLYGONM + || declared_type == GAIA_MULTIPOLYGONZM) + ret = 1; + break; + case COLLECTIONTYPE: + if (declared_type == GAIA_GEOMETRYCOLLECTION + || declared_type == GAIA_GEOMETRYCOLLECTIONZ + || declared_type == GAIA_GEOMETRYCOLLECTIONM + || declared_type == GAIA_GEOMETRYCOLLECTIONZM) + ret = 1; + break; + }; + return ret; +} + static gaiaGeomCollPtr fromLWGeomValidated (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) @@ -962,14 +1295,44 @@ fromLWGeomValidated (const LWGEOM * lwgeom, const int dimension_model, if (ngeoms <= 2) { lwg2 = lwc->geoms[0]; - gaia = fromLWGeom (lwg2, dimension_model, declared_type); + if (check_valid_type (lwg2, declared_type)) + gaia = fromLWGeom (lwg2, dimension_model, declared_type); } break; default: - gaia = fromLWGeom (lwgeom, dimension_model, declared_type); + if (check_valid_type (lwgeom, declared_type)) + gaia = fromLWGeom (lwgeom, dimension_model, declared_type); + if (gaia == NULL) + { + /* Andrea Peri: 2013-05-02 returning anyway the LWGEOM geometry, + / even if it has a mismatching type */ + int type = -1; + switch (lwgeom->type) + { + case POINTTYPE: + type = GAIA_POINT; + break; + case LINETYPE: + type = GAIA_LINESTRING; + break; + case POLYGONTYPE: + type = GAIA_POLYGON; + break; + case MULTIPOINTTYPE: + type = GAIA_MULTIPOINT; + break; + case MULTILINETYPE: + type = GAIA_MULTILINESTRING; + break; + case MULTIPOLYGONTYPE: + type = GAIA_MULTIPOLYGON; + break; + }; + if (type >= 0) + gaia = fromLWGeom (lwgeom, dimension_model, type); + } break; } - return gaia; } @@ -985,6 +1348,7 @@ fromLWGeomDiscarded (const LWGEOM * lwgeom, const int dimension_model, LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; + int ig; if (lwgeom == NULL) return NULL; @@ -993,15 +1357,31 @@ fromLWGeomDiscarded (const LWGEOM * lwgeom, const int dimension_model, if (lwgeom->type == COLLECTIONTYPE) { + if (dimension_model == GAIA_XY_Z) + gaia = gaiaAllocGeomCollXYZ (); + else if (dimension_model == GAIA_XY_M) + gaia = gaiaAllocGeomCollXYM (); + else if (dimension_model == GAIA_XY_Z_M) + gaia = gaiaAllocGeomCollXYZM (); + else + gaia = gaiaAllocGeomColl (); lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; - if (ngeoms >= 2) + for (ig = 0; ig < ngeoms; ig++) { - lwg2 = lwc->geoms[1]; - gaia = fromLWGeom (lwg2, dimension_model, declared_type); + lwg2 = lwc->geoms[ig]; + if (!check_valid_type (lwg2, declared_type)) + fromLWGeomIncremental (gaia, lwg2); } } +/* +Andrea Peri: 2013-05-02 +when a single geometry is returned by LWGEOM it's always "valid" +and there are no discarded items at all + else if (!check_valid_type (lwgeom, declared_type)) + gaia = fromLWGeom (lwgeom, dimension_model, declared_type); +*/ return gaia; } @@ -1011,24 +1391,32 @@ gaiaMakeValid (gaiaGeomCollPtr geom) /* wrapping LWGEOM MakeValid [collecting valid items] */ LWGEOM *g1; LWGEOM *g2; - gaiaGeomCollPtr result; + gaiaGeomCollPtr result = NULL; if (!geom) return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); - return NULL; + goto done; } result = fromLWGeomValidated (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) - return NULL; + goto done; result->Srid = geom->Srid; + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1038,24 +1426,32 @@ gaiaMakeValidDiscarded (gaiaGeomCollPtr geom) /* wrapping LWGEOM MakeValid [collecting discarder items] */ LWGEOM *g1; LWGEOM *g2; - gaiaGeomCollPtr result; + gaiaGeomCollPtr result = NULL; if (!geom) return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); - return NULL; + goto done; } result = fromLWGeomDiscarded (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) - return NULL; + goto done; result->Srid = geom->Srid; + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1065,26 +1461,34 @@ gaiaSegmentize (gaiaGeomCollPtr geom, double dist) /* wrapping LWGEOM Segmentize */ LWGEOM *g1; LWGEOM *g2; - gaiaGeomCollPtr result; + gaiaGeomCollPtr result = NULL; if (!geom) return NULL; if (dist <= 0.0) return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + g1 = toLWGeom (geom); g2 = lwgeom_segmentize2d (g1, dist); if (!g2) { lwgeom_free (g1); - return NULL; + goto done; } result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) - return NULL; + goto done; result->Srid = geom->Srid; + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1315,6 +1719,7 @@ toLWGeomPolygon (gaiaPolygonPtr pg, int srid) int ngeoms; int has_z = 0; int has_m = 0; + int close_ring; gaiaRingPtr rng; POINTARRAY **ppaa; POINT4D point; @@ -1326,7 +1731,11 @@ toLWGeomPolygon (gaiaPolygonPtr pg, int srid) ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; - ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ @@ -1354,11 +1763,42 @@ toLWGeomPolygon (gaiaPolygonPtr pg, int srid) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (pg->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (pg->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (pg->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[0], rng->Points, &point); + } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; - ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); + close_ring = check_unclosed_ring (rng); + if (close_ring) + ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); + else + ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (pg->DimensionModel == GAIA_XY_Z) @@ -1385,6 +1825,33 @@ toLWGeomPolygon (gaiaPolygonPtr pg, int srid) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } + if (close_ring) + { + /* making an unclosed ring to be closed */ + if (pg->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); + } + else if (pg->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); + } + else if (pg->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (rng->Coords, 0, &x, &y); + } + point.x = x; + point.y = y; + if (has_z) + point.z = z; + if (has_m) + point.m = m; + ptarray_set_point4d (ppaa[0], rng->Points, &point); + } } return (LWGEOM *) lwpoly_construct (srid, NULL, ngeoms + 1, ppaa); } @@ -1460,11 +1927,14 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; - gaiaGeomCollPtr result; + gaiaGeomCollPtr result = NULL; if (!check_split_args (input, blade)) return NULL; +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + g1 = toLWGeom (input); g2 = toLWGeom (blade); g3 = lwgeom_split (g1, g2); @@ -1472,7 +1942,7 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { lwgeom_free (g1); lwgeom_free (g2); - return NULL; + goto done; } result = fromLWGeom (g3, input->DimensionModel, input->DeclaredType); spatialite_init_geos (); @@ -1480,9 +1950,13 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) lwgeom_free (g2); lwgeom_free (g3); if (result == NULL) - return NULL; + goto done; result->Srid = input->Srid; set_split_gtype (result); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1500,6 +1974,9 @@ gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) if (!check_split_args (input, blade)) return NULL; +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) @@ -1544,15 +2021,20 @@ gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) lwgeom_free (g2); if (result == NULL) - return NULL; + goto done; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); - return NULL; + result = NULL; + goto done; } result->Srid = input->Srid; set_split_gtype (result); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1570,6 +2052,9 @@ gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) if (!check_split_args (input, blade)) return NULL; +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) @@ -1614,15 +2099,20 @@ gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) lwgeom_free (g2); if (result == NULL) - return NULL; + goto done; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); - return NULL; + result = NULL; + goto done; } result->Srid = input->Srid; set_split_gtype (result); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return result; } @@ -1633,14 +2123,115 @@ gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth) POINT2D pt1; POINT2D pt2; double az; + int ret = 1; pt1.x = xa; pt1.y = ya; pt2.x = xb; pt2.y = yb; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + if (!azimuth_pt_pt (&pt1, &pt2, &az)) - return 0; + ret = 0; *azimuth = az; - return 1; + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; +} + +GAIAGEO_DECLARE int +gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a, + double b, double *azimuth) +{ +/* wrapping LWGEOM AzimuthSpheroid */ + LWPOINT *pt1 = lwpoint_make2d (0, xa, ya); + LWPOINT *pt2 = lwpoint_make2d (0, xb, yb); + SPHEROID ellips; + int ret = 1; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + + spheroid_init (&ellips, a, b); + *azimuth = lwgeom_azumith_spheroid (pt1, pt2, &ellips); + lwpoint_free (pt1); + lwpoint_free (pt2); + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; +} + +GAIAGEO_DECLARE int +gaiaProjectedPoint (double x1, double y1, double a, double b, double distance, + double azimuth, double *x2, double *y2) +{ +/* wrapping LWGEOM Project */ + LWPOINT *pt1 = lwpoint_make2d (0, x1, y1); + LWPOINT *pt2; + SPHEROID ellips; + int ret = 0; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + + spheroid_init (&ellips, a, b); + pt2 = lwgeom_project_spheroid (pt1, &ellips, distance, azimuth); + lwpoint_free (pt1); + if (pt2 != NULL) + { + *x2 = lwpoint_get_x (pt2); + *y2 = lwpoint_get_y (pt2); + lwpoint_free (pt2); + ret = 1; + } + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, + double *area) +{ +/* wrapping LWGEOM AreaSphere and AreaSpheroid */ + LWGEOM *g = toLWGeom (geom); + SPHEROID ellips; + GBOX gbox; + double tolerance = 1e-12; + int ret = 1; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + + spheroid_init (&ellips, a, b); + if (g == NULL) + { + ret = 0; + goto done; + } + lwgeom_calculate_gbox_geodetic (g, &gbox); + if (use_ellipsoid) + { + /* testing for "forbidden" calculations on the ellipsoid */ + if ((gbox.zmax + tolerance) >= 1.0 || (gbox.zmin - tolerance) <= -1.0) + use_ellipsoid = 0; /* can't circle the poles */ + if (gbox.zmax > 0.0 && gbox.zmin < 0.0) + use_ellipsoid = 0; /* can't cross the equator */ + } + if (use_ellipsoid) + *area = lwgeom_area_spheroid (g, &ellips); + else + *area = lwgeom_area_sphere (g, &ellips); + lwgeom_free (g); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; } GAIAGEO_DECLARE char * @@ -1649,7 +2240,7 @@ gaiaGeoHash (gaiaGeomCollPtr geom, int precision) /* wrapping LWGEOM GeoHash */ LWGEOM *g; char *result; - char *geo_hash; + char *geo_hash = NULL; int len; if (!geom) @@ -1658,20 +2249,28 @@ gaiaGeoHash (gaiaGeomCollPtr geom, int precision) if (geom->MinX < -180.0 || geom->MaxX > 180.0 || geom->MinY < -90.0 || geom->MaxY > 90.0) return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + g = toLWGeom (geom); result = lwgeom_geohash (g, precision); lwgeom_free (g); if (result == NULL) - return NULL; + goto done; len = strlen (result); if (len == 0) { lwfree (result); - return NULL; + goto done; } geo_hash = malloc (len + 1); strcpy (geo_hash, result); lwfree (result); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return geo_hash; } @@ -1682,26 +2281,34 @@ gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, /* wrapping LWGEOM AsX3D */ LWGEOM *g; char *result; - char *x3d; + char *x3d = NULL; int len; if (!geom) return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + gaiaMbrGeometry (geom); g = toLWGeom (geom); result = lwgeom_to_x3d3 (g, (char *) srs, precision, options, defid); lwgeom_free (g); if (result == NULL) - return NULL; + goto done; len = strlen (result); if (len == 0) { lwfree (result); - return NULL; + goto done; } x3d = malloc (len + 1); strcpy (x3d, result); lwfree (result); + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); return x3d; } @@ -1712,6 +2319,10 @@ gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) LWGEOM *g1; LWGEOM *g2; double d; + int ret = 1; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); @@ -1720,7 +2331,10 @@ gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) lwgeom_free (g1); lwgeom_free (g2); *dist = d; - return 1; + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; } GAIAGEO_DECLARE int @@ -1730,6 +2344,10 @@ gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) LWGEOM *g1; LWGEOM *g2; double d; + int ret = 1; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); @@ -1738,7 +2356,10 @@ gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) lwgeom_free (g1); lwgeom_free (g2); *dist = d; - return 1; + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; } GAIAGEO_DECLARE int @@ -1748,6 +2369,10 @@ gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) LWGEOM *g1; LWGEOM *g2; double d; + int ret = 1; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); @@ -1756,7 +2381,45 @@ gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) lwgeom_free (g1); lwgeom_free (g2); *dist = d; - return 1; + +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return ret; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaNodeLines (gaiaGeomCollPtr geom) +{ +/* wrapping LWGEOM lwgeom_node */ + LWGEOM *g1; + LWGEOM *g2; + gaiaGeomCollPtr result = NULL; + + if (!geom) + return NULL; + +/* locking the semaphore */ + splite_lwgeom_semaphore_lock (); + + g1 = toLWGeom (geom); + g2 = lwgeom_node (g1); + if (!g2) + { + lwgeom_free (g1); + goto done; + } + result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType); + spatialite_init_geos (); + lwgeom_free (g1); + lwgeom_free (g2); + if (result == NULL) + goto done; + result->Srid = geom->Srid; + + done: +/* unlocking the semaphore */ + splite_lwgeom_semaphore_unlock (); + return result; } #endif /* end enabling LWGEOM support */ diff --git a/src/spatialite/src/gaiageo/gg_relations.c b/src/spatialite/src/gaiageo/gg_relations.c index bf11f32..45539d0 100644 --- a/src/spatialite/src/gaiageo/gg_relations.c +++ b/src/spatialite/src/gaiageo/gg_relations.c @@ -2,7 +2,7 @@ gg_relations.c -- Gaia spatial relations - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -65,15 +65,70 @@ the terms of any one of the MPL, the GPL or the LGPL. #include /* GLOBAL variables */ -char gaia_geos_error_msg[2048]; -char gaia_geos_warning_msg[2048]; +char *gaia_geos_error_msg = NULL; +char *gaia_geos_warning_msg = NULL; +char *gaia_geosaux_error_msg = NULL; + +SPATIALITE_PRIVATE void +splite_free_geos_cache_item (struct splite_geos_cache_item *p) +{ +#ifndef OMIT_GEOS /* including GEOS */ + if (p->preparedGeosGeom) + GEOSPreparedGeom_destroy (p->preparedGeosGeom); + if (p->geosGeom) + GEOSGeom_destroy (p->geosGeom); +#endif + p->geosGeom = NULL; + p->preparedGeosGeom = NULL; +} + +SPATIALITE_PRIVATE void +splite_free_geos_cache_item_r (const void *p_cache, + struct splite_geos_cache_item *p) +{ +#ifndef OMIT_GEOS /* including GEOS */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + { + splite_free_geos_cache_item (p); + return; + } + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + { + splite_free_geos_cache_item (p); + return; + } + handle = cache->GEOS_handle; + if (handle == NULL) + { + splite_free_geos_cache_item (p); + return; + } + if (p->preparedGeosGeom) + GEOSPreparedGeom_destroy_r (handle, p->preparedGeosGeom); + if (p->geosGeom) + GEOSGeom_destroy_r (handle, p->geosGeom); +#endif + p->geosGeom = NULL; + p->preparedGeosGeom = NULL; +} GAIAGEO_DECLARE void gaiaResetGeosMsg () { /* resets the GEOS error and warning messages */ - *gaia_geos_error_msg = '\0'; - *gaia_geos_warning_msg = '\0'; + if (gaia_geos_error_msg != NULL) + free (gaia_geos_error_msg); + if (gaia_geos_warning_msg != NULL) + free (gaia_geos_warning_msg); + if (gaia_geosaux_error_msg != NULL) + free (gaia_geosaux_error_msg); + gaia_geos_error_msg = NULL; + gaia_geos_warning_msg = NULL; + gaia_geosaux_error_msg = NULL; } GAIAGEO_DECLARE const char * @@ -90,20 +145,58 @@ gaiaGetGeosWarningMsg () return gaia_geos_warning_msg; } +GAIAGEO_DECLARE const char * +gaiaGetGeosAuxErrorMsg () +{ +/* return the latest GEOS (auxialiary) error message */ + return gaia_geosaux_error_msg; +} + GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg) { -/* return the latest GEOS error message */ +/* setting the latest GEOS error message */ + int len; + if (gaia_geos_error_msg != NULL) + free (gaia_geos_error_msg); + gaia_geos_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + gaia_geos_error_msg = malloc (len + 1); strcpy (gaia_geos_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg) { -/* return the latest GEOS error message */ +/* setting the latest GEOS error message */ + int len; + if (gaia_geos_warning_msg != NULL) + free (gaia_geos_warning_msg); + gaia_geos_warning_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + gaia_geos_warning_msg = malloc (len + 1); strcpy (gaia_geos_warning_msg, msg); } +GAIAGEO_DECLARE void +gaiaSetGeosAuxErrorMsg (const char *msg) +{ +/* setting the latest GEOS (auxiliary) error message */ + int len; + if (gaia_geosaux_error_msg != NULL) + free (gaia_geosaux_error_msg); + gaia_geosaux_error_msg = NULL; + if (msg == NULL) + return; + len = strlen (msg); + gaia_geosaux_error_msg = malloc (len + 1); + strcpy (gaia_geosaux_error_msg, msg); +} + static int check_point (double *coords, int points, double x, double y) { @@ -195,6 +288,196 @@ gaiaPolygonEquals (gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2) #ifndef OMIT_GEOS /* including GEOS */ +static int +splite_mbr_overlaps (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) +{ +/* checks if two MBRs do overlap */ + if (g1->MaxX < g2->MinX) + return 0; + if (g1->MinX > g2->MaxX) + return 0; + if (g1->MaxY < g2->MinY) + return 0; + if (g1->MinY > g2->MaxY) + return 0; + return 1; +} + +static int +splite_mbr_contains (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) +{ +/* checks if MBR#1 fully contains MBR#2 */ + if (g2->MinX < g1->MinX) + return 0; + if (g2->MaxX > g1->MaxX) + return 0; + if (g2->MinY < g1->MinY) + return 0; + if (g2->MaxY > g1->MaxY) + return 0; + return 1; +} + +static int +splite_mbr_within (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) +{ +/* checks if MBR#1 is fully contained within MBR#2 */ + if (g1->MinX < g2->MinX) + return 0; + if (g1->MaxX > g2->MaxX) + return 0; + if (g1->MinY < g2->MinY) + return 0; + if (g1->MaxY > g2->MaxY) + return 0; + return 1; +} + +static int +splite_mbr_equals (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) +{ +/* checks if MBR#1 equals MBR#2 */ + if (g1->MinX != g2->MinX) + return 0; + if (g1->MaxX != g2->MaxX) + return 0; + if (g1->MinY != g2->MinY) + return 0; + if (g1->MaxY != g2->MaxY) + return 0; + return 1; +} + +static int +evalGeosCacheItem (unsigned char *blob, int blob_size, uLong crc, + struct splite_geos_cache_item *p) +{ +/* evaluting if this one could be a valid cache hit */ + if (blob_size != p->gaiaBlobSize) + { + /* surely not a match; different size */ + return 0; + } + if (crc != p->crc32) + { + /* surely not a match: different CRC32 */ + return 0; + } + +/* the first 46 bytes of the BLOB contain the MBR, + the SRID and the Type; so are assumed to represent + a valid signature */ + if (memcmp (blob, p->gaiaBlob, 46) == 0) + return 1; + return 0; +} + +static int +evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, + unsigned char *blob2, int size2, GEOSPreparedGeometry ** gPrep, + gaiaGeomCollPtr * geom) +{ +/* handling the internal GEOS cache */ + struct splite_geos_cache_item *p1 = &(cache->cacheItem1); + struct splite_geos_cache_item *p2 = &(cache->cacheItem2); + uLong crc1 = crc32 (0L, blob1, size1); + uLong crc2 = crc32 (0L, blob2, size2); + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + handle = cache->GEOS_handle; + if (handle == NULL) + return 0; + +/* checking the first cache item */ + if (evalGeosCacheItem (blob1, size1, crc1, p1)) + { + /* found a matching item */ + if (p1->preparedGeosGeom == NULL) + { + /* preparing the GeosGeometries */ + p1->geosGeom = gaiaToGeos_r (cache, geom1); + if (p1->geosGeom) + { + p1->preparedGeosGeom = + (void *) GEOSPrepare_r (handle, p1->geosGeom); + if (p1->preparedGeosGeom == NULL) + { + /* unexpected failure */ + GEOSGeom_destroy_r (handle, p1->geosGeom); + p1->geosGeom = NULL; + } + } + } + if (p1->preparedGeosGeom) + { + /* returning the corresponding GeosPreparedGeometry */ + *gPrep = p1->preparedGeosGeom; + *geom = geom2; + return 1; + } + return 0; + } + +/* checking the second cache item */ + if (evalGeosCacheItem (blob2, size2, crc2, p2)) + { + /* found a matching item */ + if (p2->preparedGeosGeom == NULL) + { + /* preparing the GeosGeometries */ + p2->geosGeom = gaiaToGeos_r (cache, geom2); + if (p2->geosGeom) + { + p2->preparedGeosGeom = + (void *) GEOSPrepare_r (handle, p2->geosGeom); + if (p2->preparedGeosGeom == NULL) + { + /* unexpected failure */ + GEOSGeom_destroy_r (handle, p2->geosGeom); + p2->geosGeom = NULL; + } + } + } + if (p2->preparedGeosGeom) + { + /* returning the corresponding GeosPreparedGeometry */ + *gPrep = p2->preparedGeosGeom; + *geom = geom1; + return 1; + } + return 0; + } + +/* updating the GEOS cache item#1 */ + memcpy (p1->gaiaBlob, blob1, 46); + p1->gaiaBlobSize = size1; + p1->crc32 = crc1; + if (p1->preparedGeosGeom) + GEOSPreparedGeom_destroy_r (handle, p1->preparedGeosGeom); + if (p1->geosGeom) + GEOSGeom_destroy_r (handle, p1->geosGeom); + p1->geosGeom = NULL; + p1->preparedGeosGeom = NULL; + +/* updating the GEOS cache item#2 */ + memcpy (p2->gaiaBlob, blob2, 46); + p2->gaiaBlobSize = size2; + p2->crc32 = crc2; + if (p2->preparedGeosGeom) + GEOSPreparedGeom_destroy_r (handle, p2->preparedGeosGeom); + if (p2->geosGeom) + GEOSGeom_destroy_r (handle, p2->geosGeom); + p2->geosGeom = NULL; + p2->preparedGeosGeom = NULL; + + return 0; +} + GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { @@ -202,10 +485,16 @@ gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) int ret; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_equals (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSEquals (g1, g2); @@ -215,1033 +504,1419 @@ gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) } GAIAGEO_DECLARE int -gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollEquals_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* checks if two Geometries do "spatially intersects" */ +/* checks if two Geometries are "spatially equal" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSIntersects (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + +/* quick check based on MBRs comparison */ + if (!splite_mbr_equals (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSEquals_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* checks if two Geometries are "spatially disjoint" */ +/* checks if two Geometries do "spatially intersects" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - ret = GEOSDisjoint (g1, g2); + ret = GEOSIntersects (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollIntersects_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* checks if two Geometries do "spatially overlaps" */ +/* checks if two Geometries do "spatially intersects" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSOverlaps (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSIntersects_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollPreparedIntersects (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) { -/* checks if two Geometries do "spatially crosses" */ +/* checks if two Geometries do "spatially intersects" */ int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSCrosses (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + ret = GEOSPreparedIntersects_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; + } + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSIntersects_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* checks if two Geometries do "spatially touches" */ +/* checks if two Geometries are "spatially disjoint" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 1; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - ret = GEOSTouches (g1, g2); + ret = GEOSDisjoint (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollDisjoint_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* checks if GEOM-1 is completely contained within GEOM-2 */ +/* checks if two Geometries are "spatially disjoint" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSWithin (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 1; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSDisjoint_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeomCollPreparedDisjoint (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) { -/* checks if GEOM-1 completely contains GEOM-2 */ +/* checks if two Geometries are "spatially disjoint" */ int ret; + GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSContains (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 1; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + ret = GEOSPreparedDisjoint_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; + } + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSDisjoint_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, - const char *pattern) +gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ +/* checks if two Geometries do "spatially overlaps" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - ret = GEOSRelatePattern (g1, g2, pattern); + ret = GEOSOverlaps (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (ret == 2) - return -1; return ret; } GAIAGEO_DECLARE int -gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength) +gaiaGeomCollOverlaps_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* computes the total length for this Geometry */ - double length; +/* checks if two Geometries do "spatially overlaps" */ int ret; - GEOSGeometry *g; - if (!geom) - return 0; - if (gaiaIsToxic (geom)) + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) return 0; - g = gaiaToGeos (geom); - ret = GEOSLength (g, &length); - GEOSGeom_destroy (g); - if (ret) - *xlength = length; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSOverlaps_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, - double *xlength) +gaiaGeomCollPreparedOverlaps (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) { -/* computes the total length or perimeter for this Geometry */ - double length; +/* checks if two Geometries do "spatially overlaps" */ int ret; - GEOSGeometry *g; - int mode = GAIA2GEOS_ONLY_LINESTRINGS; - if (perimeter) - mode = GAIA2GEOS_ONLY_POLYGONS; - if (!geom) - return 0; - if (gaiaIsToxic (geom)) + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) return 0; - g = gaiaToGeosSelective (geom, mode); - if (g == NULL) + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { - *xlength = 0.0; - return 1; + g2 = gaiaToGeos_r (cache, geom); + ret = GEOSPreparedOverlaps_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; } - ret = GEOSLength (g, &length); - GEOSGeom_destroy (g); - if (ret) - *xlength = length; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSOverlaps_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea) +gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* computes the total area for this Geometry */ - double area; +/* checks if two Geometries do "spatially crosses" */ int ret; - GEOSGeometry *g; - if (!geom) - return 0; - if (gaiaIsToxic (geom)) + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) return 0; - g = gaiaToGeos (geom); - ret = GEOSArea (g, &area); - GEOSGeom_destroy (g); - if (ret) - *xarea = area; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSCrosses (g1, g2); + GEOSGeom_destroy (g1); + GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int -gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, - double *xdist) +gaiaGeomCollCrosses_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ - double dist; +/* checks if two Geometries do "spatially crosses" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) return 0; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCrosses_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollPreparedCrosses (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) +{ +/* checks if two Geometries do "spatially crosses" */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) return 0; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSDistance (g1, g2, &dist); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); - if (ret) - *xdist = dist; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + ret = GEOSPreparedCrosses_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; + } + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCrosses_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE int +gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ - gaiaGeomCollPtr geo; +/* checks if two Geometries do "spatially touches" */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSGeometry *g3; + gaiaResetGeosMsg (); if (!geom1 || !geom2) - return NULL; + return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) - return NULL; + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - g3 = GEOSIntersection (g1, g2); + ret = GEOSTouches (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (!g3) - return NULL; - if (geom1->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g3); - else if (geom1->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g3); - else if (geom1->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g3); - else - geo = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); - if (geo == NULL) - return NULL; - geo->Srid = geom1->Srid; - return geo; + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE int +gaiaGeomCollTouches_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ - gaiaGeomCollPtr geo; +/* checks if two Geometries do "spatially touches" */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) - return NULL; - if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) - return NULL; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - g3 = GEOSUnion (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); - if (geom1->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g3); - else if (geom1->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g3); - else if (geom1->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g3); - else - geo = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); - if (geo == NULL) - return NULL; - geo->Srid = geom1->Srid; - if (geo->DeclaredType == GAIA_POINT && - geom1->DeclaredType == GAIA_MULTIPOINT) - geo->DeclaredType = GAIA_MULTIPOINT; - if (geo->DeclaredType == GAIA_LINESTRING && - geom1->DeclaredType == GAIA_MULTILINESTRING) - geo->DeclaredType = GAIA_MULTILINESTRING; - if (geo->DeclaredType == GAIA_POLYGON && - geom1->DeclaredType == GAIA_MULTIPOLYGON) - geo->DeclaredType = GAIA_MULTIPOLYGON; - return geo; + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSTouches_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaUnionCascaded (gaiaGeomCollPtr geom) +GAIAGEO_DECLARE int +gaiaGeomCollPreparedTouches (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) { -/* UnionCascaded (single Collection of polygons) */ +/* checks if two Geometries do "spatially touches" */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; GEOSGeometry *g1; GEOSGeometry *g2; - gaiaGeomCollPtr result; - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - if (!geom) - return NULL; - if (gaiaIsToxic (geom)) - return NULL; + GEOSPreparedGeometry *gPrep; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; -/* testing if geom only contains Polygons */ - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - lns++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return 0; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { - pgs++; - pg = pg->Next; + g2 = gaiaToGeos_r (cache, geom); + ret = GEOSPreparedTouches_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; } - if (pts || lns) - return NULL; - if (!pgs) - return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSUnionCascaded (g1); - GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); - else - result = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (result == NULL) - return NULL; - result->Srid = geom->Srid; - return result; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSTouches_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE int +gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ - gaiaGeomCollPtr geo; +/* checks if GEOM-1 is completely contained within GEOM-2 */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSGeometry *g3; + gaiaResetGeosMsg (); if (!geom1 || !geom2) - return NULL; + return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) - return NULL; + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - g3 = GEOSDifference (g1, g2); + ret = GEOSWithin (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (!g3) - return NULL; - if (geom1->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g3); - else if (geom1->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g3); - else if (geom1->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g3); - else - geo = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); - if (geo == NULL) - return NULL; - geo->Srid = geom1->Srid; - return geo; + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE int +gaiaGeomCollWithin_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ - gaiaGeomCollPtr geo; +/* checks if GEOM-1 is completely contained within GEOM-2 */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) - return NULL; + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSWithin_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollPreparedWithin (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) +{ +/* checks if GEOM-1 is completely contained within GEOM-2 */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + if (geom == geom2) + ret = GEOSPreparedWithin_r (handle, gPrep, g2); + else + ret = GEOSPreparedContains_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; + } + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSWithin_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* checks if GEOM-1 completely contains GEOM-2 */ + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) - return NULL; + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) + return 0; + g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - g3 = GEOSSymDifference (g1, g2); + ret = GEOSContains (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (!g3) - return NULL; - if (geom1->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g3); - else if (geom1->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g3); - else if (geom1->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g3); - else - geo = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); - if (geo == NULL) - return NULL; - geo->Srid = geom1->Srid; - return geo; + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaBoundary (gaiaGeomCollPtr geom) +GAIAGEO_DECLARE int +gaiaGeomCollContains_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* builds a new geometry representing the combinatorial boundary of GEOM */ - gaiaGeomCollPtr geo; +/* checks if GEOM-1 completely contains GEOM-2 */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) - return NULL; - if (gaiaIsToxic (geom)) - return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSBoundary (g1); - GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (geo == NULL) - return NULL; - geo->Srid = geom->Srid; - return geo; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSContains_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; } GAIAGEO_DECLARE int -gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y) +gaiaGeomCollPreparedContains (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) { -/* returns a Point representing the centroid for this Geometry */ - gaiaGeomCollPtr geo; +/* checks if GEOM-1 completely contains GEOM-2 */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) - return 0; - if (gaiaIsToxic (geom)) - { - return 0; - } - g1 = gaiaToGeos (geom); - g2 = GEOSGetCentroid (g1); - GEOSGeom_destroy (g1); - if (!g2) - return 0; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (geo == NULL) + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) return 0; - if (geo->FirstPoint) + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { - *x = geo->FirstPoint->X; - *y = geo->FirstPoint->Y; - gaiaFreeGeomColl (geo); - return 1; + g2 = gaiaToGeos_r (cache, geom); + if (geom == geom2) + ret = GEOSPreparedContains_r (handle, gPrep, g2); + else + ret = GEOSPreparedWithin_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + return ret; } - gaiaFreeGeomColl (geo); - return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSContains_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return ret; } GAIAGEO_DECLARE int -gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y) +gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, + const char *pattern) { -/* returns a Point guaranteed to lie on the Surface */ - gaiaGeomCollPtr geo; +/* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) - return 0; - if (gaiaIsToxic (geom)) - { - return 0; - } - g1 = gaiaToGeos (geom); - g2 = GEOSPointOnSurface (g1); + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return -1; + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSRelatePattern (g1, g2, pattern); GEOSGeom_destroy (g1); - if (!g2) - return 0; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (geo == NULL) - return 0; - if (geo->FirstPoint) - { - *x = geo->FirstPoint->X; - *y = geo->FirstPoint->Y; - gaiaFreeGeomColl (geo); - return 1; - } - gaiaFreeGeomColl (geo); - return 0; + if (ret == 2) + return -1; + return ret; } GAIAGEO_DECLARE int -gaiaIsSimple (gaiaGeomCollPtr geom) +gaiaGeomCollRelate_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, const char *pattern) { -/* checks if this GEOMETRYCOLLECTION is a simple one */ +/* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return -1; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSRelatePattern_r (handle, g1, g2, pattern); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength) +{ +/* computes the total length for this Geometry */ + double length; int ret; GEOSGeometry *g; + gaiaResetGeosMsg (); if (!geom) - return -1; + return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); - ret = GEOSisSimple (g); + ret = GEOSLength (g, &length); GEOSGeom_destroy (g); - if (ret == 2) - return -1; + if (ret) + *xlength = length; return ret; } GAIAGEO_DECLARE int -gaiaIsRing (gaiaLinestringPtr line) +gaiaGeomCollLength_r (const void *p_cache, gaiaGeomCollPtr geom, + double *xlength) { -/* checks if this LINESTRING can be a valid RING */ - gaiaGeomCollPtr geo; - gaiaLinestringPtr line2; +/* computes the total length for this Geometry */ + double length; int ret; - int iv; - double x; - double y; - double z; - double m; GEOSGeometry *g; - if (!line) + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) return -1; - if (line->DimensionModel == GAIA_XY_Z) - geo = gaiaAllocGeomCollXYZ (); - else if (line->DimensionModel == GAIA_XY_M) - geo = gaiaAllocGeomCollXYM (); - else if (line->DimensionModel == GAIA_XY_Z_M) - geo = gaiaAllocGeomCollXYZM (); - else - geo = gaiaAllocGeomColl (); - line2 = gaiaAddLinestringToGeomColl (geo, line->Points); - for (iv = 0; iv < line2->Points; iv++) - { - z = 0.0; - m = 0.0; - if (line->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); - } - else if (line->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); - } - else if (line->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); - } - else - { - gaiaGetPoint (line->Coords, iv, &x, &y); - } - if (line2->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (line2->Coords, iv, x, y, z); - } - else if (line2->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (line2->Coords, iv, x, y, m); - } - else if (line2->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); - } - else - { - gaiaSetPoint (line2->Coords, iv, x, y); - } - } - if (gaiaIsToxic (geo)) - { - gaiaFreeGeomColl (geo); - return -1; - } - g = gaiaToGeos (geo); - gaiaFreeGeomColl (geo); - ret = GEOSisRing (g); - GEOSGeom_destroy (g); - if (ret == 2) + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom) + return 0; + if (gaiaIsToxic_r (cache, geom)) + return 0; + g = gaiaToGeos_r (cache, geom); + ret = GEOSLength_r (handle, g, &length); + GEOSGeom_destroy_r (handle, g); + if (ret) + *xlength = length; return ret; } GAIAGEO_DECLARE int -gaiaIsValid (gaiaGeomCollPtr geom) +gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, + double *xlength) { -/* checks if this GEOMETRYCOLLECTION is a valid one */ +/* computes the total length or perimeter for this Geometry */ + double length; int ret; GEOSGeometry *g; + int mode = GAIA2GEOS_ONLY_LINESTRINGS; + if (perimeter) + mode = GAIA2GEOS_ONLY_POLYGONS; gaiaResetGeosMsg (); if (!geom) - return -1; - if (gaiaIsToxic (geom)) return 0; - if (gaiaIsNotClosedGeomColl (geom)) + if (gaiaIsToxic (geom)) return 0; - g = gaiaToGeos (geom); - ret = GEOSisValid (g); + g = gaiaToGeosSelective (geom, mode); + if (g == NULL) + { + *xlength = 0.0; + return 1; + } + ret = GEOSLength (g, &length); GEOSGeom_destroy (g); - if (ret == 2) + if (ret) + *xlength = length; + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, gaiaGeomCollPtr geom, + int perimeter, double *xlength) +{ +/* computes the total length or perimeter for this Geometry */ + double length; + int ret; + int mode = GAIA2GEOS_ONLY_LINESTRINGS; + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + if (perimeter) + mode = GAIA2GEOS_ONLY_POLYGONS; + gaiaResetGeosMsg_r (cache); + if (!geom) + return 0; + if (gaiaIsToxic_r (cache, geom)) + return 0; + g = gaiaToGeosSelective_r (cache, geom, mode); + if (g == NULL) + { + *xlength = 0.0; + return 1; + } + ret = GEOSLength_r (handle, g, &length); + GEOSGeom_destroy_r (handle, g); + if (ret) + *xlength = length; return ret; } GAIAGEO_DECLARE int -gaiaIsClosedGeom (gaiaGeomCollPtr geom) +gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea) { -/* checks if this geometry is a closed linestring (or multilinestring) */ - int ret = 0; - gaiaLinestringPtr ln; +/* computes the total area for this Geometry */ + double area; + int ret; + GEOSGeometry *g; + gaiaResetGeosMsg (); if (!geom) - return -1; + return 0; if (gaiaIsToxic (geom)) return 0; - ln = geom->FirstLinestring; - while (ln) - { - /* unhappily GEOS v3.2.2 [system package on Debian Lenny and Ubuntu 12.04] - * doesn't exposes the GEOSisClosed() API at all !!!! - * - GEOSGeometry *g; - gaiaGeomCollPtr geoColl = gaiaAllocGeomColl(); - gaiaInsertLinestringInGeomColl(geoColl, gaiaCloneLinestring(ln)); - g = gaiaToGeos (geoColl); - ret = GEOSisClosed (g); - GEOSGeom_destroy (g); - gaiaFreeGeomColl(geoColl); - */ + g = gaiaToGeos (geom); + ret = GEOSArea (g, &area); + GEOSGeom_destroy (g); + if (ret) + *xarea = area; + return ret; +} - /* so we'll use this internal default in order to circumvent the above issue */ - double x1; - double y1; - double z1; - double m1; - double x2; - double y2; - double z2; - double m2; - gaiaLineGetPoint (ln, 0, &x1, &y1, &z1, &m1); - gaiaLineGetPoint (ln, ln->Points - 1, &x2, &y2, &z2, &m2); - if (x1 == x2 && y1 == y2 && z1 == z2) - ret = 1; - else - ret = 0; - if (ret == 0) - { - /* this line isn't closed, so we don't need to continue */ - break; - } - ln = ln->Next; - } - if (ret == 2) +GAIAGEO_DECLARE int +gaiaGeomCollArea_r (const void *p_cache, gaiaGeomCollPtr geom, double *xarea) +{ +/* computes the total area for this Geometry */ + double area; + int ret; + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom) + return 0; + if (gaiaIsToxic_r (cache, geom)) + return 0; + g = gaiaToGeos_r (cache, geom); + ret = GEOSArea_r (handle, g, &area); + GEOSGeom_destroy_r (handle, g); + if (ret) + *xarea = area; return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance) +GAIAGEO_DECLARE int +gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, + double *xdist) { -/* builds a simplified geometry using the Douglas-Peuker algorihtm */ - gaiaGeomCollPtr geo; +/* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ + double dist; + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) - return NULL; - if (gaiaIsToxic (geom)) - return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSSimplify (g1, tolerance); + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return 0; + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return 0; + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSDistance (g1, g2, &dist); GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (geo == NULL) - return NULL; - geo->Srid = geom->Srid; - return geo; + if (ret) + *xdist = dist; + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, double *xdist) +{ +/* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ + double dist; + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return 0; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return 0; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSDistance_r (handle, g1, g2, &dist); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret) + *xdist = dist; + return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance) +gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ +/* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) - return NULL; - if (gaiaIsToxic (geom)) + GEOSGeometry *g3; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSTopologyPreserveSimplify (g1, tolerance); + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return NULL; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return NULL; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + g3 = GEOSIntersection (g1, g2); GEOSGeom_destroy (g1); - if (!g2) + GEOSGeom_destroy (g2); + if (!g3) return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g3); else - geo = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); + geo = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); if (geo == NULL) return NULL; - geo->Srid = geom->Srid; + geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaConvexHull (gaiaGeomCollPtr geom) +gaiaGeometryIntersection_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* builds a geometry that is the convex hull of GEOM */ +/* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom) + GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) return NULL; - if (gaiaIsToxic (geom)) + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSConvexHull (g1); - GEOSGeom_destroy (g1); - if (!g2) + handle = cache->GEOS_handle; + if (handle == NULL) return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return NULL; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return NULL; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_overlaps (geom1, geom2)) + return NULL; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + g3 = GEOSIntersection_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g3); else - geo = gaiaFromGeos_XY (g2); + geo = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSGeometry *g3; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return NULL; + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return NULL; + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + g3 = GEOSUnion (g1, g2); + GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g3); + else + geo = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); if (geo == NULL) return NULL; - geo->Srid = geom->Srid; + geo->Srid = geom1->Srid; + if (geo->DeclaredType == GAIA_POINT && + geom1->DeclaredType == GAIA_MULTIPOINT) + geo->DeclaredType = GAIA_MULTIPOINT; + if (geo->DeclaredType == GAIA_LINESTRING && + geom1->DeclaredType == GAIA_MULTILINESTRING) + geo->DeclaredType = GAIA_MULTILINESTRING; + if (geo->DeclaredType == GAIA_POLYGON && + geom1->DeclaredType == GAIA_MULTIPOLYGON) + geo->DeclaredType = GAIA_MULTIPOLYGON; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points) +gaiaGeometryUnion_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* builds a geometry that is the GIS buffer of GEOM */ +/* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; + GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return NULL; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return NULL; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + g3 = GEOSUnion_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g3); + else + geo = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + if (geo->DeclaredType == GAIA_POINT && + geom1->DeclaredType == GAIA_MULTIPOINT) + geo->DeclaredType = GAIA_MULTIPOINT; + if (geo->DeclaredType == GAIA_LINESTRING && + geom1->DeclaredType == GAIA_MULTILINESTRING) + geo->DeclaredType = GAIA_MULTILINESTRING; + if (geo->DeclaredType == GAIA_POLYGON && + geom1->DeclaredType == GAIA_MULTIPOLYGON) + geo->DeclaredType = GAIA_MULTIPOLYGON; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaUnionCascaded (gaiaGeomCollPtr geom) +{ +/* UnionCascaded (single Collection of polygons) */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; + +/* testing if geom only contains Polygons */ + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts || lns) + return NULL; + if (!pgs) + return NULL; + g1 = gaiaToGeos (geom); - g2 = GEOSBuffer (g1, radius, points); + g2 = GEOSUnionCascaded (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); + result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); + result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); + result = gaiaFromGeos_XYZM (g2); else - geo = gaiaFromGeos_XY (g2); + result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (geo == NULL) + if (result == NULL) return NULL; - geo->Srid = geom->Srid; - return geo; + result->Srid = geom->Srid; + return result; } -static void -auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result) +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaUnionCascaded_r (const void *p_cache, gaiaGeomCollPtr geom) { -/* converting a Polygon from GEOS to SpatiaLite */ - const GEOSGeometry *geos_ring; - const GEOSCoordSequence *coords; - unsigned int pts; - unsigned int geos_dims; - int interiors; - int iv; - int ib; - double x; - double y; - double z; +/* UnionCascaded (single Collection of polygons) */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; gaiaPolygonPtr pg; - gaiaRingPtr rng; - - geos_ring = GEOSGetExteriorRing (geos); - interiors = GEOSGetNumInteriorRings (geos); - coords = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (coords, &geos_dims); - GEOSCoordSeq_getSize (coords, &pts); + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; - pg = gaiaAddPolygonToGeomColl (result, pts, interiors); -/* setting up the Exterior ring */ - rng = pg->Exterior; - for (iv = 0; iv < (int) pts; iv++) +/* testing if geom only contains Polygons */ + pt = geom->FirstPoint; + while (pt) { - if (geos_dims == 3) - { - GEOSCoordSeq_getX (coords, iv, &x); - GEOSCoordSeq_getY (coords, iv, &y); - GEOSCoordSeq_getZ (coords, iv, &z); - } - else - { - GEOSCoordSeq_getX (coords, iv, &x); - GEOSCoordSeq_getY (coords, iv, &y); - z = 0.0; - } - if (rng->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (rng->Coords, iv, x, y, z); - } - else if (rng->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); - } - else if (rng->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); - } - else - { - gaiaSetPoint (rng->Coords, iv, x, y); - } + pts++; + pt = pt->Next; } - - for (ib = 0; ib < interiors; ib++) + ln = geom->FirstLinestring; + while (ln) { - /* setting up any interior ring */ - geos_ring = GEOSGetInteriorRingN (geos, ib); - coords = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getDimensions (coords, &geos_dims); - GEOSCoordSeq_getSize (coords, &pts); - rng = gaiaAddInteriorRing (pg, ib, pts); - for (iv = 0; iv < (int) pts; iv++) - { - if (geos_dims == 3) - { - GEOSCoordSeq_getX (coords, iv, &x); - GEOSCoordSeq_getY (coords, iv, &y); - GEOSCoordSeq_getZ (coords, iv, &z); - } - else - { - GEOSCoordSeq_getX (coords, iv, &x); - GEOSCoordSeq_getY (coords, iv, &y); - z = 0.0; - } - if (rng->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (rng->Coords, iv, x, y, z); - } - else if (rng->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); - } - else if (rng->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); - } - else - { - gaiaSetPoint (rng->Coords, iv, x, y); - } - } - } -} - -static void -auxGeosMbr (const GEOSCoordSequence * cs, unsigned int pts, double *min_x, - double *min_y, double *max_x, double *max_y) -{ -/* computing the MBR */ - int iv; - double x; - double y; - *min_x = DBL_MAX; - *min_y = DBL_MAX; - *max_x = 0 - DBL_MAX; - *max_y = 0 - DBL_MAX; - for (iv = 0; iv < (int) pts; iv++) - { - GEOSCoordSeq_getX (cs, iv, &x); - GEOSCoordSeq_getY (cs, iv, &y); - if (x < *min_x) - *min_x = x; - if (x > *max_x) - *max_x = x; - if (y < *min_y) - *min_y = y; - if (y > *max_y) - *max_y = y; - } -} - -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi) -{ -/* attempts to rearrange a generic Geometry into a (multi)polygon */ - int ig; - int ib; - int iv; - int interiors; - int geos_dims = 2; - int pts = 0; - int lns = 0; - int pgs = 0; - int items; - int error; - double x; - double y; - double z; - double m; - gaiaGeomCollPtr result = NULL; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - GEOSCoordSequence *cs; - const GEOSGeometry *const *geos_list = NULL; - GEOSGeometry **p_item; - GEOSGeometry *geos; - const GEOSGeometry *geos_item; - const GEOSGeometry *geos_item2; - const GEOSGeometry *geos_ring; - char *valid_polygons = NULL; - const GEOSCoordSequence *coords; - unsigned int pts1; - unsigned int pts2; - double min_x1; - double max_x1; - double min_y1; - double max_y1; - double min_x2; - double max_x2; - double min_y2; - double max_y2; - - if (!geom) - return NULL; - if (gaiaIsToxic (geom)) - return NULL; - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; + lns++; + ln = ln->Next; } pg = geom->FirstPolygon; while (pg) @@ -1249,3019 +1924,2065 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi) pgs++; pg = pg->Next; } - if (pts || pgs) + if (pts || lns) return NULL; - ln = geom->FirstLinestring; - while (ln) - { - lns++; - ln = ln->Next; - } - if (!lns) + if (!pgs) return NULL; - if (geom->DimensionModel == GAIA_XY_Z - || geom->DimensionModel == GAIA_XY_Z_M) - geos_dims = 3; - -/* allocating GEOS linestrings */ - geos_list = malloc (sizeof (const GEOSGeometry * const *) * lns); - p_item = (GEOSGeometry **) geos_list; - for (iv = 0; iv < lns; iv++) - { - /* initializing to NULL */ - *p_item++ = NULL; - } - p_item = (GEOSGeometry **) geos_list; - -/* initializing GEOS linestrings */ - ln = geom->FirstLinestring; - while (ln) - { - cs = GEOSCoordSeq_create (ln->Points, geos_dims); - for (iv = 0; iv < ln->Points; iv++) - { - /* exterior ring segments */ - z = 0.0; - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - if (geos_dims == 3) - { - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - GEOSCoordSeq_setZ (cs, iv, z); - } - else - { - GEOSCoordSeq_setX (cs, iv, x); - GEOSCoordSeq_setY (cs, iv, y); - } - } - *p_item++ = GEOSGeom_createLineString (cs); - ln = ln->Next; - } - -/* calling GEOSPolygonize */ - geos = GEOSPolygonize (geos_list, lns); - if (geos == NULL) - goto cleanup; - -/* -/ -/ GEOSPolygonize is expected to return a collection of Polygons -/ -/ CAVEAT: internal holes are returned as such (interior rings in -/ some Polygon), but are returned as distinct Polygons too -/ -/ we must check this, so to *not* return Polygons representing holes -/ -*/ - error = 0; - items = GEOSGetNumGeometries (geos); - for (ig = 0; ig < items; ig++) - { - /* looping on elementaty GEOS geometries */ - geos_item = GEOSGetGeometryN (geos, ig); - if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON) - { - /* not a Polygon ... ouch ... */ - error = 1; - goto cleanup; - } - } - -/* identifying valid Polygons [excluding holes] */ - valid_polygons = malloc (items); - for (ig = 0; ig < items; ig++) - valid_polygons[ig] = 'Y'; - for (ig = 0; ig < items; ig++) - { - /* looping on elementaty GEOS Polygons */ - geos_item = GEOSGetGeometryN (geos, ig); - interiors = GEOSGetNumInteriorRings (geos_item); - for (ib = 0; ib < interiors; ib++) - { - /* looping on any interior ring */ - geos_ring = GEOSGetInteriorRingN (geos_item, ib); - coords = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getSize (coords, &pts1); - auxGeosMbr (coords, pts1, &min_x1, &min_y1, &max_x1, &max_y1); - for (iv = 0; iv < items; iv++) - { - if (iv == ig) - { - /* skipping the Polygon itself */ - continue; - } - if (valid_polygons[iv] == 'N') - { - /* skipping any already invalid Polygon */ - continue; - } - geos_item2 = GEOSGetGeometryN (geos, iv); - if (GEOSGetNumInteriorRings (geos_item2) > 0) - { - /* this Polygon contains holes [surely valid] */ - continue; - } - geos_ring = GEOSGetExteriorRing (geos_item2); - coords = GEOSGeom_getCoordSeq (geos_ring); - GEOSCoordSeq_getSize (coords, &pts2); - if (pts1 == pts2) - { - auxGeosMbr (coords, pts2, &min_x2, &min_y2, &max_x2, - &max_y2); - if (min_x1 == min_x2 && min_y1 == min_y2 - && max_x1 == max_x2 && max_y1 == max_y2) - { - /* same #points, same MBRs: invalidating */ - valid_polygons[iv] = 'N'; - } - } - } - } - } -/* creating the Geometry to be returned */ + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSUnionCascaded_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); + result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); + result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); + result = gaiaFromGeos_XYZM_r (cache, g2); else - result = gaiaAllocGeomColl (); + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; result->Srid = geom->Srid; - if (force_multi) - result->DeclaredType = GAIA_MULTIPOLYGON; - - for (ig = 0; ig < items; ig++) - { - /* looping on GEOS Polygons */ - geos_item = GEOSGetGeometryN (geos, ig); - if (valid_polygons[ig] == 'Y') - auxFromGeosPolygon (geos_item, result); - } - - cleanup: - if (valid_polygons != NULL) - free (valid_polygons); - if (geos_list != NULL) - { - /* memory cleanup */ - p_item = (GEOSGeometry **) geos_list; - for (iv = 0; iv < lns; iv++) - { - if (*p_item != NULL) - GEOSGeom_destroy (*p_item); - p_item++; - } - p_item = (GEOSGeometry **) geos_list; - free (p_item); - } - if (geos != NULL) - GEOSGeom_destroy (geos); - if (error || result->FirstPolygon == NULL) - { - gaiaFreeGeomColl (result); - return NULL; - } - return result; -} - -#ifdef GEOS_ADVANCED /* GEOS advanced features */ - -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, - int left_right) -{ -/* -// builds a geometry that is the OffsetCurve of GEOM -// (which is expected to be of the LINESTRING type) -// -*/ - gaiaGeomCollPtr geo; - GEOSGeometry *g1; - GEOSGeometry *g2; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - int pts = 0; - int lns = 0; - int pgs = 0; - int closed = 0; - if (!geom) - return NULL; - -/* checking the input geometry for validity */ - pt = geom->FirstPoint; - while (pt) - { - /* counting how many POINTs are there */ - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - /* counting how many LINESTRINGs are there */ - lns++; - if (gaiaIsClosed (ln)) - closed++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - /* counting how many POLYGON are there */ - pgs++; - pg = pg->Next; - } - if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) - return NULL; - -/* all right: this one simply is a LINESTRING */ - geom->DeclaredType = GAIA_LINESTRING; - - g1 = gaiaToGeos (geom); - g2 = GEOSSingleSidedBuffer (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0, - left_right); - GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (geo == NULL) - return NULL; - geo->Srid = geom->Srid; - return geo; -} + return result; +} GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, - int left_right) +gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* -// builds a geometry that is the SingleSided BUFFER of GEOM -// (which is expected to be of the LINESTRING type) -// -*/ +/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSBufferParams *params = NULL; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - int pts = 0; - int lns = 0; - int pgs = 0; - int closed = 0; - if (!geom) - return NULL; - -/* checking the input geometry for validity */ - pt = geom->FirstPoint; - while (pt) - { - /* counting how many POINTs are there */ - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - /* counting how many LINESTRINGs are there */ - lns++; - if (gaiaIsClosed (ln)) - closed++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - /* counting how many POLYGON are there */ - pgs++; - pg = pg->Next; - } - if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) - return NULL; - -/* all right: this one simply is a LINESTRING */ - geom->DeclaredType = GAIA_LINESTRING; - - g1 = gaiaToGeos (geom); -/* setting up Buffer params */ - params = GEOSBufferParams_create (); - GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND); - GEOSBufferParams_setMitreLimit (params, 5.0); - GEOSBufferParams_setQuadrantSegments (params, points); - GEOSBufferParams_setSingleSided (params, 1); - -/* creating the SingleSided Buffer */ - if (left_right == 0) - { - /* right-sided requires NEGATIVE radius */ - radius *= -1.0; - } - g2 = GEOSBufferWithParams (g1, params, radius); - GEOSGeom_destroy (g1); - GEOSBufferParams_destroy (params); - if (!g2) + GEOSGeometry *g3; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g2); - else - geo = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (geo == NULL) + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; - geo->Srid = geom->Srid; - return geo; -} - -GAIAGEO_DECLARE int -gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, - double *xdist) -{ -/* -/ computes the (discrete) Hausdorff distance intercurring -/ between GEOM-1 and GEOM-2 -*/ - double dist; - int ret; - GEOSGeometry *g1; - GEOSGeometry *g2; - if (!geom1 || !geom2) - return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - ret = GEOSHausdorffDistance (g1, g2, &dist); + g3 = GEOSDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (ret) - *xdist = dist; - return ret; -} - -static gaiaGeomCollPtr -geom_as_lines (gaiaGeomCollPtr geom) -{ -/* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */ - gaiaGeomCollPtr result; - gaiaLinestringPtr ln; - gaiaLinestringPtr new_ln; - gaiaPolygonPtr pg; - gaiaRingPtr rng; - int iv; - int ib; - double x; - double y; - double z; - double m; - - if (!geom) - return NULL; - if (geom->FirstPoint != NULL) - { - /* invalid: GEOM contains at least one POINT */ - return NULL; - } - - switch (geom->DimensionModel) - { - case GAIA_XY_Z_M: - result = gaiaAllocGeomCollXYZM (); - break; - case GAIA_XY_Z: - result = gaiaAllocGeomCollXYZ (); - break; - case GAIA_XY_M: - result = gaiaAllocGeomCollXYM (); - break; - default: - result = gaiaAllocGeomColl (); - break; - }; - result->Srid = geom->Srid; - ln = geom->FirstLinestring; - while (ln) - { - /* copying any Linestring */ - new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); - for (iv = 0; iv < ln->Points; iv++) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - gaiaSetPoint (new_ln->Coords, iv, x, y); - } - } - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - /* copying any Polygon Ring (as Linestring) */ - rng = pg->Exterior; - new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); - for (iv = 0; iv < rng->Points; iv++) - { - /* exterior Ring */ - if (rng->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); - } - else if (rng->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); - } - else if (rng->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); - } - else - { - gaiaGetPoint (rng->Coords, iv, &x, &y); - gaiaSetPoint (new_ln->Coords, iv, x, y); - } - } - for (ib = 0; ib < pg->NumInteriors; ib++) - { - rng = pg->Interiors + ib; - new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); - for (iv = 0; iv < rng->Points; iv++) - { - /* any interior Ring */ - if (rng->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); - } - else if (rng->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); - } - else if (rng->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); - } - else - { - gaiaGetPoint (rng->Coords, iv, &x, &y); - gaiaSetPoint (new_ln->Coords, iv, x, y); - } - } - } - pg = pg->Next; - } - return result; -} - -static void -add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn) -{ -/* adding a LINESTRING from Dynamic Line */ - int count = 0; - gaiaLinestringPtr ln; - gaiaPointPtr pt; - int iv; - - if (!geom) - return; - if (!dyn) - return; - pt = dyn->First; - while (pt) - { - /* counting how many Points are there */ - count++; - pt = pt->Next; - } - if (count == 0) - return; - ln = gaiaAddLinestringToGeomColl (geom, count); - iv = 0; - pt = dyn->First; - while (pt) - { - /* copying points into the LINESTRING */ - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); - } - else - { - gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); - } - iv++; - pt = pt->Next; - } -} - -static void -append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) -{ -/* appends a Shared Path item to Dynamic Line */ - int iv; - double x; - double y; - double z; - double m; - if (order) - { - /* reversed order */ - for (iv = ln->Points - 1; iv >= 0; iv--) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - if (x == dyn->Last->X && y == dyn->Last->Y - && z == dyn->Last->Z) - ; - else - gaiaAppendPointZToDynamicLine (dyn, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - if (x == dyn->Last->X && y == dyn->Last->Y - && m == dyn->Last->M) - ; - else - gaiaAppendPointMToDynamicLine (dyn, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - if (x == dyn->Last->X && y == dyn->Last->Y - && z == dyn->Last->Z && m == dyn->Last->M) - ; - else - gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - if (x == dyn->Last->X && y == dyn->Last->Y) - ; - else - gaiaAppendPointToDynamicLine (dyn, x, y); - } - } - } - else - { - /* conformant order */ - for (iv = 0; iv < ln->Points; iv++) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - if (x == dyn->Last->X && y == dyn->Last->Y - && z == dyn->Last->Z) - ; - else - gaiaAppendPointZToDynamicLine (dyn, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - if (x == dyn->Last->X && y == dyn->Last->Y - && m == dyn->Last->M) - ; - else - gaiaAppendPointMToDynamicLine (dyn, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - if (x == dyn->Last->X && y == dyn->Last->Y - && z == dyn->Last->Z && m == dyn->Last->M) - ; - else - gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - if (x == dyn->Last->X && y == dyn->Last->Y) - ; - else - gaiaAppendPointToDynamicLine (dyn, x, y); - } - } - } -} - -static void -prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) -{ -/* prepends a Shared Path item to Dynamic Line */ - int iv; - double x; - double y; - double z; - double m; - if (order) - { - /* reversed order */ - for (iv = 0; iv < ln->Points; iv++) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - if (x == dyn->First->X && y == dyn->First->Y - && z == dyn->First->Z) - ; - else - gaiaPrependPointZToDynamicLine (dyn, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - if (x == dyn->First->X && y == dyn->First->Y - && m == dyn->First->M) - ; - else - gaiaPrependPointMToDynamicLine (dyn, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - if (x == dyn->First->X && y == dyn->First->Y - && z == dyn->First->Z && m == dyn->First->M) - ; - else - gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - if (x == dyn->First->X && y == dyn->First->Y) - ; - else - gaiaPrependPointToDynamicLine (dyn, x, y); - } - } - } - else - { - /* conformant order */ - for (iv = ln->Points - 1; iv >= 0; iv--) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - if (x == dyn->First->X && y == dyn->First->Y - && z == dyn->First->Z) - ; - else - gaiaPrependPointZToDynamicLine (dyn, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - if (x == dyn->First->X && y == dyn->First->Y - && m == dyn->First->M) - ; - else - gaiaPrependPointMToDynamicLine (dyn, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - if (x == dyn->First->X && y == dyn->First->Y - && z == dyn->First->Z && m == dyn->First->M) - ; - else - gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - if (x == dyn->First->X && y == dyn->First->Y) - ; - else - gaiaPrependPointToDynamicLine (dyn, x, y); - } - } - } -} - -static gaiaGeomCollPtr -arrange_shared_paths (gaiaGeomCollPtr geom) -{ -/* final aggregation step for shared paths */ - gaiaLinestringPtr ln; - gaiaLinestringPtr *ln_array; - gaiaGeomCollPtr result; - gaiaDynamicLinePtr dyn; - int count; - int i; - int i2; - int iv; - double x; - double y; - double z; - double m; - int ok; - int ok2; - - if (!geom) - return NULL; - count = 0; - ln = geom->FirstLinestring; - while (ln) - { - /* counting how many Linestrings are there */ - count++; - ln = ln->Next; - } - if (count == 0) + if (!g3) return NULL; - - ln_array = malloc (sizeof (gaiaLinestringPtr) * count); - i = 0; - ln = geom->FirstLinestring; - while (ln) - { - /* populating the Linestring references array */ - ln_array[i++] = ln; - ln = ln->Next; - } - -/* allocating a new Geometry [MULTILINESTRING] */ - switch (geom->DimensionModel) - { - case GAIA_XY_Z_M: - result = gaiaAllocGeomCollXYZM (); - break; - case GAIA_XY_Z: - result = gaiaAllocGeomCollXYZ (); - break; - case GAIA_XY_M: - result = gaiaAllocGeomCollXYM (); - break; - default: - result = gaiaAllocGeomColl (); - break; - }; - result->Srid = geom->Srid; - result->DeclaredType = GAIA_MULTILINESTRING; - - ok = 1; - while (ok) - { - /* looping until we have processed any input item */ - ok = 0; - for (i = 0; i < count; i++) - { - if (ln_array[i] != NULL) - { - /* starting a new LINESTRING */ - dyn = gaiaAllocDynamicLine (); - ln = ln_array[i]; - ln_array[i] = NULL; - for (iv = 0; iv < ln->Points; iv++) - { - /* inserting the 'seed' path */ - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - gaiaAppendPointZToDynamicLine (dyn, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - gaiaAppendPointMToDynamicLine (dyn, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, - &m); - gaiaAppendPointZMToDynamicLine (dyn, x, y, z, - m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - gaiaAppendPointToDynamicLine (dyn, x, y); - } - } - ok2 = 1; - while (ok2) - { - /* looping until we have checked any other item */ - ok2 = 0; - for (i2 = 0; i2 < count; i2++) - { - /* expanding the 'seed' path */ - if (ln_array[i2] == NULL) - continue; - ln = ln_array[i2]; - /* checking the first vertex */ - iv = 0; - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, - &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, - &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, - &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - if (x == dyn->Last->X && y == dyn->Last->Y) - { - /* appending this item to the 'seed' (conformant order) */ - append_shared_path (dyn, ln, 0); - ln_array[i2] = NULL; - ok2 = 1; - continue; - } - if (x == dyn->First->X && y == dyn->First->Y) - { - /* prepending this item to the 'seed' (reversed order) */ - prepend_shared_path (dyn, ln, 1); - ln_array[i2] = NULL; - ok2 = 1; - continue; - } - /* checking the last vertex */ - iv = ln->Points - 1; - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, - &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, - &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, - &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - if (x == dyn->Last->X && y == dyn->Last->Y) - { - /* appending this item to the 'seed' (reversed order) */ - append_shared_path (dyn, ln, 1); - ln_array[i2] = NULL; - ok2 = 1; - continue; - } - if (x == dyn->First->X && y == dyn->First->Y) - { - /* prepending this item to the 'seed' (conformant order) */ - prepend_shared_path (dyn, ln, 0); - ln_array[i2] = NULL; - ok2 = 1; - continue; - } - } - } - add_shared_linestring (result, dyn); - gaiaFreeDynamicLine (dyn); - ok = 1; - break; - } - } - } - free (ln_array); - return result; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g3); + else + geo = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaGeometryDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* -// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 -// (which are expected to be of the LINESTRING/MULTILINESTRING type) -// -*/ +/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; - gaiaGeomCollPtr result; - gaiaGeomCollPtr line1; - gaiaGeomCollPtr line2; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; - if (!geom1) + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) return NULL; - if (!geom2) + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; -/* transforming input geoms as Lines */ - line1 = geom_as_lines (geom1); - line2 = geom_as_lines (geom2); - if (line1 == NULL || line2 == NULL) - { - if (line1) - gaiaFreeGeomColl (line1); - if (line2) - gaiaFreeGeomColl (line2); - return NULL; - } - - g1 = gaiaToGeos (line1); - g2 = gaiaToGeos (line2); - gaiaFreeGeomColl (line1); - gaiaFreeGeomColl (line2); - g3 = GEOSSharedPaths (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return NULL; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return NULL; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + g3 = GEOSDifference_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) - geo = gaiaFromGeos_XYZ (g3); + geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) - geo = gaiaFromGeos_XYM (g3); + geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) - geo = gaiaFromGeos_XYZM (g3); + geo = gaiaFromGeos_XYZM_r (cache, g3); else - geo = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); + geo = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; - result = arrange_shared_paths (geo); - gaiaFreeGeomColl (geo); - return result; + return geo; } -GAIAGEO_DECLARE int -gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* checks if geom1 "spatially covers" geom2 */ - int ret; +/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; + GEOSGeometry *g3; + gaiaResetGeosMsg (); if (!geom1 || !geom2) - return -1; + return NULL; + if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) + return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); - ret = GEOSCovers (g1, g2); + g3 = GEOSSymDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); - if (ret == 2) - return -1; - return ret; + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g3); + else + geo = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + return geo; } -GAIAGEO_DECLARE int -gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeometrySymDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) { -/* checks if geom1 is "spatially covered by" geom2 */ - int ret; +/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; + GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) - return -1; - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - ret = GEOSCoveredBy (g1, g2); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); - if (ret == 2) - return -1; - return ret; + return NULL; + if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) + return NULL; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + g3 = GEOSSymDifference_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g3); + else + geo = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction) +gaiaBoundary (gaiaGeomCollPtr geom) { -/* - * attempts to intepolate a point on line at dist "fraction" - * - * the fraction is expressed into the range from 0.0 to 1.0 - */ - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaGeomCollPtr result; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - GEOSGeometry *g; - GEOSGeometry *g_pt; - double length; - double projection; +/* builds a new geometry representing the combinatorial boundary of GEOM */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom) return NULL; - -/* checking if a single Linestring has been passed */ - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - lns++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - pgs++; - pg = pg->Next; - } - if (pts == 0 && lns == 1 && pgs == 0) - ; - else + if (gaiaIsToxic (geom)) return NULL; - - g = gaiaToGeos (geom); - if (GEOSLength (g, &length)) - { - /* transforming fraction to length */ - if (fraction < 0.0) - fraction = 0.0; - if (fraction > 1.0) - fraction = 1.0; - projection = length * fraction; - } - else - { - GEOSGeom_destroy (g); - return NULL; - } - g_pt = GEOSInterpolate (g, projection); - GEOSGeom_destroy (g); - if (!g_pt) + g1 = gaiaToGeos (geom); + g2 = GEOSBoundary (g1); + GEOSGeom_destroy (g1); + if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g_pt); + geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g_pt); + geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g_pt); + geo = gaiaFromGeos_XYZM (g2); else - result = gaiaFromGeos_XY (g_pt); - GEOSGeom_destroy (g_pt); - if (result == NULL) + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) return NULL; - result->Srid = geom->Srid; - return result; + geo->Srid = geom->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance) +gaiaBoundary_r (const void *p_cache, gaiaGeomCollPtr geom) { -/* - * attempts to intepolate a set of points on line at regular distances - */ - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaGeomCollPtr result; - gaiaGeomCollPtr xpt; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - GEOSGeometry *g; - GEOSGeometry *g_pt; - double length; - double current_length = 0.0; +/* builds a new geometry representing the combinatorial boundary of GEOM */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); if (!geom) return NULL; - if (distance <= 0.0) + if (gaiaIsToxic_r (cache, geom)) return NULL; - -/* checking if a single Linestring has been passed */ - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - lns++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - pgs++; - pg = pg->Next; - } - if (pts == 0 && lns == 1 && pgs == 0) - ; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSBoundary_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) return NULL; + geo->Srid = geom->Srid; + return geo; +} - g = gaiaToGeos (geom); - if (GEOSLength (g, &length)) - { - if (length <= distance) - { - /* the line is too short to apply interpolation */ - GEOSGeom_destroy (g); - return NULL; - } - } - else +GAIAGEO_DECLARE int +gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y) +{ +/* returns a Point representing the centroid for this Geometry */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom) + return 0; + if (gaiaIsToxic (geom)) { - GEOSGeom_destroy (g); - return NULL; + return 0; } - -/* creating the MultiPoint [always supporting M] */ - if (geom->DimensionModel == GAIA_XY_Z - || geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); + g1 = gaiaToGeos (geom); + g2 = GEOSGetCentroid (g1); + GEOSGeom_destroy (g1); + if (!g2) + return 0; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); else - result = gaiaAllocGeomCollXYM (); - if (result == NULL) - { - GEOSGeom_destroy (g); - return NULL; - } - - while (1) - { - /* increasing the current distance */ - current_length += distance; - if (current_length >= length) - break; - /* interpolating a point */ - g_pt = GEOSInterpolate (g, current_length); - if (!g_pt) - goto error; - if (geom->DimensionModel == GAIA_XY_Z) - { - xpt = gaiaFromGeos_XYZ (g_pt); - if (!xpt) - goto error; - pt = xpt->FirstPoint; - if (!pt) - goto error; - gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, - current_length); - } - else if (geom->DimensionModel == GAIA_XY_M) - { - xpt = gaiaFromGeos_XYM (g_pt); - if (!xpt) - goto error; - pt = xpt->FirstPoint; - if (!pt) - goto error; - gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, - current_length); - } - else if (geom->DimensionModel == GAIA_XY_Z_M) - { - xpt = gaiaFromGeos_XYZM (g_pt); - if (!xpt) - goto error; - pt = xpt->FirstPoint; - if (!pt) - goto error; - gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, - current_length); - } - else - { - xpt = gaiaFromGeos_XY (g_pt); - if (!xpt) - goto error; - pt = xpt->FirstPoint; - if (!pt) - goto error; - gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, - current_length); - } - GEOSGeom_destroy (g_pt); - gaiaFreeGeomColl (xpt); + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return 0; + if (geo->FirstPoint) + { + *x = geo->FirstPoint->X; + *y = geo->FirstPoint->Y; + gaiaFreeGeomColl (geo); + return 1; } - GEOSGeom_destroy (g); - result->Srid = geom->Srid; - result->DeclaredType = GAIA_MULTIPOINT; - return result; - - error: - if (g_pt) - GEOSGeom_destroy (g_pt); - GEOSGeom_destroy (g); - gaiaFreeGeomColl (result); - return NULL; + gaiaFreeGeomColl (geo); + return 0; } -GAIAGEO_DECLARE double -gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +GAIAGEO_DECLARE int +gaiaGeomCollCentroid_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, + double *y) { -/* - * attempts to compute the location of the closest point on LineString - * to the given Point, as a fraction of total 2d line length - * - * the fraction is expressed into the range from 0.0 to 1.0 - */ - int pts1 = 0; - int lns1 = 0; - int pgs1 = 0; - int pts2 = 0; - int lns2 = 0; - int pgs2 = 0; - double length; - double projection; - double result; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; +/* returns a Point representing the centroid for this Geometry */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - if (!geom1 || !geom2) - return -1.0; - -/* checking if a single Linestring has been passed */ - pt = geom1->FirstPoint; - while (pt) - { - pts1++; - pt = pt->Next; - } - ln = geom1->FirstLinestring; - while (ln) + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + handle = cache->GEOS_handle; + if (handle == NULL) + return 0; + gaiaResetGeosMsg_r (cache); + if (!geom) + return 0; + if (gaiaIsToxic_r (cache, geom)) { - lns1++; - ln = ln->Next; + return 0; } - pg = geom1->FirstPolygon; - while (pg) + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSGetCentroid_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return 0; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return 0; + if (geo->FirstPoint) { - pgs1++; - pg = pg->Next; + *x = geo->FirstPoint->X; + *y = geo->FirstPoint->Y; + gaiaFreeGeomColl (geo); + return 1; } - if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) - ; - else - return -1.0; + gaiaFreeGeomColl (geo); + return 0; +} -/* checking if a single Point has been passed */ - pt = geom2->FirstPoint; - while (pt) +GAIAGEO_DECLARE int +gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y) +{ +/* returns a Point guaranteed to lie on the Surface */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom) + return 0; + if (gaiaIsToxic (geom)) { - pts2++; - pt = pt->Next; + return 0; } - ln = geom2->FirstLinestring; - while (ln) + g1 = gaiaToGeos (geom); + g2 = GEOSPointOnSurface (g1); + GEOSGeom_destroy (g1); + if (!g2) + return 0; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); + else + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return 0; + if (geo->FirstPoint) { - lns2++; - ln = ln->Next; + *x = geo->FirstPoint->X; + *y = geo->FirstPoint->Y; + gaiaFreeGeomColl (geo); + return 1; } - pg = geom2->FirstPolygon; - while (pg) + gaiaFreeGeomColl (geo); + return 0; +} + +GAIAGEO_DECLARE int +gaiaGetPointOnSurface_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, + double *y) +{ +/* returns a Point guaranteed to lie on the Surface */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + handle = cache->GEOS_handle; + if (handle == NULL) + return 0; + gaiaResetGeosMsg_r (cache); + if (!geom) + return 0; + if (gaiaIsToxic_r (cache, geom)) { - pgs2++; - pg = pg->Next; + return 0; } - if (pts2 == 1 && lns2 == 0 && pgs2 == 0) - ; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSPointOnSurface_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return 0; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); else - return -1.0; - - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - projection = GEOSProject (g1, g2); - if (GEOSLength (g1, &length)) + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return 0; + if (geo->FirstPoint) { - /* normalizing as a fraction between 0.0 and 1.0 */ - result = projection / length; + *x = geo->FirstPoint->X; + *y = geo->FirstPoint->Y; + gaiaFreeGeomColl (geo); + return 1; } - else - result = -1.0; - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); - return result; + gaiaFreeGeomColl (geo); + return 0; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction, - double end_fraction) +GAIAGEO_DECLARE int +gaiaIsSimple (gaiaGeomCollPtr geom) { -/* - * attempts to build a new Linestring being a substring of the input one starting - * and ending at the given fractions of total 2d length - */ - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaGeomCollPtr result; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaLinestringPtr out; - gaiaPolygonPtr pg; +/* checks if this GEOMETRYCOLLECTION is a simple one */ + int ret; GEOSGeometry *g; - GEOSGeometry *g_start; - GEOSGeometry *g_end; - GEOSCoordSequence *cs; - const GEOSCoordSequence *in_cs; - GEOSGeometry *segm; - double length; - double total = 0.0; - double start; - double end; + gaiaResetGeosMsg (); + if (!geom) + return -1; + if (gaiaIsToxic (geom)) + return 0; + g = gaiaToGeos (geom); + ret = GEOSisSimple (g); + GEOSGeom_destroy (g); + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE int +gaiaIsSimple_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* checks if this GEOMETRYCOLLECTION is a simple one */ + int ret; + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom) + return -1; + if (gaiaIsToxic_r (cache, geom)) + return -1; + g = gaiaToGeos_r (cache, geom); + ret = GEOSisSimple_r (handle, g); + GEOSGeom_destroy_r (handle, g); + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE int +gaiaIsRing (gaiaLinestringPtr line) +{ +/* checks if this LINESTRING can be a valid RING */ + gaiaGeomCollPtr geo; + gaiaLinestringPtr line2; + int ret; int iv; - int i_start = -1; - int i_end = -1; - int points; double x; double y; double z; double m; - unsigned int dims; - if (!geom) - return NULL; - -/* checking if a single Linestring has been passed */ - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) - { - lns++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - pgs++; - pg = pg->Next; - } - if (pts == 0 && lns == 1 && pgs == 0) - ; - else - return NULL; - - if (start_fraction < 0.0) - start_fraction = 0.0; - if (start_fraction > 1.0) - start_fraction = 1.0; - if (end_fraction < 0.0) - end_fraction = 0.0; - if (end_fraction > 1.0) - end_fraction = 1.0; - if (start_fraction >= end_fraction) - return NULL; - g = gaiaToGeos (geom); - if (GEOSLength (g, &length)) - { - start = length * start_fraction; - end = length * end_fraction; - } + GEOSGeometry *g; + gaiaResetGeosMsg (); + if (!line) + return -1; + if (line->DimensionModel == GAIA_XY_Z) + geo = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + geo = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + geo = gaiaAllocGeomCollXYZM (); else + geo = gaiaAllocGeomColl (); + line2 = gaiaAddLinestringToGeomColl (geo, line->Points); + for (iv = 0; iv < line2->Points; iv++) { - GEOSGeom_destroy (g); - return NULL; - } - g_start = GEOSInterpolate (g, start); - g_end = GEOSInterpolate (g, end); - GEOSGeom_destroy (g); - if (!g_start || !g_end) - return NULL; - -/* identifying first and last valid vertex */ - ln = geom->FirstLinestring; - for (iv = 0; iv < ln->Points; iv++) - { - - double x0; - double y0; - switch (ln->DimensionModel) + z = 0.0; + m = 0.0; + if (line->DimensionModel == GAIA_XY_Z) { - case GAIA_XY_Z: - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (ln->Coords, iv, &x, &y); - break; - }; - - if (iv > 0) + gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (line->Coords, iv, &x, &y); + } + if (line2->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (line2->Coords, iv, x, y, z); + } + else if (line2->DimensionModel == GAIA_XY_M) { - cs = GEOSCoordSeq_create (2, 2); - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - segm = GEOSGeom_createLineString (cs); - GEOSLength (segm, &length); - total += length; - GEOSGeom_destroy (segm); - if (total > start && i_start < 0) - i_start = iv; - if (total < end) - i_end = iv; + gaiaSetPointXYM (line2->Coords, iv, x, y, m); } - x0 = x; - y0 = y; - } - if (i_start < 0 || i_end < 0) - { - i_start = -1; - i_end = -1; - points = 2; - } - else - points = i_end - i_start + 3; - -/* creating the output geometry */ - switch (ln->DimensionModel) - { - case GAIA_XY_Z: - result = gaiaAllocGeomCollXYZ (); - break; - case GAIA_XY_M: - result = gaiaAllocGeomCollXYM (); - break; - case GAIA_XY_Z_M: - result = gaiaAllocGeomCollXYZM (); - break; - default: - result = gaiaAllocGeomColl (); - break; - }; - result->Srid = geom->Srid; - out = gaiaAddLinestringToGeomColl (result, points); - -/* start vertex */ - points = 0; - in_cs = GEOSGeom_getCoordSeq (g_start); - GEOSCoordSeq_getDimensions (in_cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (in_cs, 0, &x); - GEOSCoordSeq_getY (in_cs, 0, &y); - GEOSCoordSeq_getZ (in_cs, 0, &z); - m = 0.0; - } - else - { - GEOSCoordSeq_getX (in_cs, 0, &x); - GEOSCoordSeq_getY (in_cs, 0, &y); - z = 0.0; - m = 0.0; - } - GEOSGeom_destroy (g_start); - switch (out->DimensionModel) - { - case GAIA_XY_Z: - gaiaSetPointXYZ (out->Coords, points, x, y, z); - break; - case GAIA_XY_M: - gaiaSetPointXYM (out->Coords, points, x, y, 0.0); - break; - case GAIA_XY_Z_M: - gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); - break; - default: - gaiaSetPoint (out->Coords, points, x, y); - break; - }; - points++; - - if (i_start < 0 || i_end < 0) - ; - else - { - for (iv = i_start; iv <= i_end; iv++) + else if (line2->DimensionModel == GAIA_XY_Z_M) { - z = 0.0; - m = 0.0; - switch (ln->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (ln->Coords, iv, &x, &y); - break; - }; - switch (out->DimensionModel) - { - case GAIA_XY_Z: - gaiaSetPointXYZ (out->Coords, points, x, y, z); - break; - case GAIA_XY_M: - gaiaSetPointXYM (out->Coords, points, x, y, 0.0); - break; - case GAIA_XY_Z_M: - gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); - break; - default: - gaiaSetPoint (out->Coords, points, x, y); - break; - }; - points++; + gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); + } + else + { + gaiaSetPoint (line2->Coords, iv, x, y); } } - -/* end vertex */ - in_cs = GEOSGeom_getCoordSeq (g_end); - GEOSCoordSeq_getDimensions (in_cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (in_cs, 0, &x); - GEOSCoordSeq_getY (in_cs, 0, &y); - GEOSCoordSeq_getZ (in_cs, 0, &z); - m = 0.0; - } - else + if (gaiaIsToxic (geo)) { - GEOSCoordSeq_getX (in_cs, 0, &x); - GEOSCoordSeq_getY (in_cs, 0, &y); - z = 0.0; - m = 0.0; + gaiaFreeGeomColl (geo); + return -1; } - GEOSGeom_destroy (g_end); - switch (out->DimensionModel) - { - case GAIA_XY_Z: - gaiaSetPointXYZ (out->Coords, points, x, y, z); - break; - case GAIA_XY_M: - gaiaSetPointXYM (out->Coords, points, x, y, 0.0); - break; - case GAIA_XY_Z_M: - gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); - break; - default: - gaiaSetPoint (out->Coords, points, x, y); - break; - }; - return result; + g = gaiaToGeos (geo); + gaiaFreeGeomColl (geo); + ret = GEOSisRing (g); + GEOSGeom_destroy (g); + if (ret == 2) + return -1; + return ret; } -static GEOSGeometry * -buildGeosPoints (const gaiaGeomCollPtr gaia) +GAIAGEO_DECLARE int +gaiaIsRing_r (const void *p_cache, gaiaLinestringPtr line) { -/* converting a GAIA Geometry into a GEOS Geometry of POINTS */ - int pts = 0; - unsigned int dims; +/* checks if this LINESTRING can be a valid RING */ + gaiaGeomCollPtr geo; + gaiaLinestringPtr line2; + int ret; int iv; - int ib; - int nItem; double x; double y; double z; double m; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - gaiaRingPtr rng; - GEOSGeometry *geos; - GEOSGeometry *geos_item; - GEOSGeometry **geos_coll; - GEOSCoordSequence *cs; - if (!gaia) - return NULL; - pt = gaia->FirstPoint; - while (pt) - { - /* counting how many POINTs are there */ - pts++; - pt = pt->Next; - } - ln = gaia->FirstLinestring; - while (ln) - { - /* counting how many POINTs are there */ - pts += ln->Points; - ln = ln->Next; - } - pg = gaia->FirstPolygon; - while (pg) + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!line) + return -1; + if (line->DimensionModel == GAIA_XY_Z) + geo = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + geo = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + geo = gaiaAllocGeomCollXYZM (); + else + geo = gaiaAllocGeomColl (); + line2 = gaiaAddLinestringToGeomColl (geo, line->Points); + for (iv = 0; iv < line2->Points; iv++) { - /* counting how many POINTs are there */ - rng = pg->Exterior; - pts += rng->Points - 1; /* exterior ring */ - for (ib = 0; ib < pg->NumInteriors; ib++) + z = 0.0; + m = 0.0; + if (line->DimensionModel == GAIA_XY_Z) { - /* interior ring */ - rng = pg->Interiors + ib; - pts += rng->Points - 1; + gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } - pg = pg->Next; - } - if (pts == 0) - return NULL; - switch (gaia->DimensionModel) - { - case GAIA_XY_Z: - case GAIA_XY_Z_M: - dims = 3; - break; - default: - dims = 2; - break; - }; - nItem = 0; - geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); - pt = gaia->FirstPoint; - while (pt) - { - cs = GEOSCoordSeq_create (1, dims); - switch (pt->DimensionModel) + else if (line->DimensionModel == GAIA_XY_M) { - case GAIA_XY_Z: - case GAIA_XY_Z_M: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); - GEOSCoordSeq_setZ (cs, 0, pt->Z); - break; - default: - GEOSCoordSeq_setX (cs, 0, pt->X); - GEOSCoordSeq_setY (cs, 0, pt->Y); - break; - }; - geos_item = GEOSGeom_createPoint (cs); - *(geos_coll + nItem++) = geos_item; - pt = pt->Next; - } - ln = gaia->FirstLinestring; - while (ln) - { - for (iv = 0; iv < ln->Points; iv++) + gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) { - z = 0.0; - m = 0.0; - switch (ln->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (ln->Coords, iv, &x, &y); - break; - }; - cs = GEOSCoordSeq_create (1, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - GEOSCoordSeq_setZ (cs, 0, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - } - geos_item = GEOSGeom_createPoint (cs); - *(geos_coll + nItem++) = geos_item; + gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } - ln = ln->Next; - } - pg = gaia->FirstPolygon; - while (pg) - { - rng = pg->Exterior; - for (iv = 1; iv < rng->Points; iv++) + else { - /* exterior ring */ - z = 0.0; - m = 0.0; - switch (rng->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (rng->Coords, iv, &x, &y); - break; - }; - cs = GEOSCoordSeq_create (1, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - GEOSCoordSeq_setZ (cs, 0, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - } - geos_item = GEOSGeom_createPoint (cs); - *(geos_coll + nItem++) = geos_item; + gaiaGetPoint (line->Coords, iv, &x, &y); } - for (ib = 0; ib < pg->NumInteriors; ib++) + if (line2->DimensionModel == GAIA_XY_Z) { - /* interior ring */ - rng = pg->Interiors + ib; - for (iv = 1; iv < rng->Points; iv++) - { - /* exterior ring */ - z = 0.0; - m = 0.0; - switch (rng->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (rng->Coords, iv, &x, &y); - break; - }; - cs = GEOSCoordSeq_create (1, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - GEOSCoordSeq_setZ (cs, 0, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x); - GEOSCoordSeq_setY (cs, 0, y); - } - geos_item = GEOSGeom_createPoint (cs); - *(geos_coll + nItem++) = geos_item; - } + gaiaSetPointXYZ (line2->Coords, iv, x, y, z); + } + else if (line2->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (line2->Coords, iv, x, y, m); + } + else if (line2->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); + } + else + { + gaiaSetPoint (line2->Coords, iv, x, y); } - pg = pg->Next; } - geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts); - free (geos_coll); - GEOSSetSRID (geos, gaia->Srid); - return geos; + if (gaiaIsToxic_r (cache, geo)) + { + gaiaFreeGeomColl (geo); + return -1; + } + g = gaiaToGeos_r (cache, geo); + gaiaFreeGeomColl (geo); + ret = GEOSisRing_r (handle, g); + GEOSGeom_destroy_r (handle, g); + if (ret == 2) + return -1; + return ret; } -static GEOSGeometry * -buildGeosSegments (const gaiaGeomCollPtr gaia) +GAIAGEO_DECLARE int +gaiaIsValid (gaiaGeomCollPtr geom) { -/* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */ - int segms = 0; - unsigned int dims; - int iv; - int ib; - int nItem; - double x; - double y; - double z; - double m; - double x0; - double y0; - double z0; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - gaiaRingPtr rng; - GEOSGeometry *geos; - GEOSGeometry *geos_item; - GEOSGeometry **geos_coll; - GEOSCoordSequence *cs; - if (!gaia) - return NULL; - ln = gaia->FirstLinestring; - while (ln) +/* checks if this GEOMETRYCOLLECTION is a valid one */ + int ret; + GEOSGeometry *g; + gaiaResetGeosMsg (); + if (!geom) + return -1; + if (gaiaIsToxic (geom)) + return 0; + if (gaiaIsNotClosedGeomColl (geom)) + return 0; + g = gaiaToGeos (geom); + ret = GEOSisValid (g); + GEOSGeom_destroy (g); + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE int +gaiaIsValid_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* checks if this GEOMETRYCOLLECTION is a valid one */ + int ret; + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom) + return -1; + if (gaiaIsToxic_r (cache, geom)) + return 0; + if (gaiaIsNotClosedGeomColl_r (cache, geom)) + return 0; + g = gaiaToGeos_r (cache, geom); + ret = GEOSisValid_r (handle, g); + GEOSGeom_destroy_r (handle, g); + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE char * +gaiaIsValidReason (gaiaGeomCollPtr geom) +{ +/* return a TEXT string stating if a Geometry is valid +/ and if not valid, a reason why */ + char *text; + int len; + const char *str; + char *gstr; + GEOSGeometry *g; + gaiaResetGeosMsg (); + if (!geom) { - /* counting how many SEGMENTs are there */ - segms += ln->Points - 1; - ln = ln->Next; + str = "Invalid: NULL Geometry"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; } - pg = gaia->FirstPolygon; - while (pg) + if (gaiaIsToxic (geom)) { - /* counting how many SEGMENTs are there */ - rng = pg->Exterior; - segms += rng->Points - 1; /* exterior ring */ - for (ib = 0; ib < pg->NumInteriors; ib++) - { - /* interior ring */ - rng = pg->Interiors + ib; - segms += rng->Points - 1; - } - pg = pg->Next; + str = "Invalid: Toxic Geometry ... too few points"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; } - if (segms == 0) + if (gaiaIsNotClosedGeomColl (geom)) + { + str = "Invalid: Unclosed Rings were detected"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; + } + g = gaiaToGeos (geom); + gstr = GEOSisValidReason (g); + GEOSGeom_destroy (g); + if (gstr == NULL) + return NULL; + len = strlen (gstr); + text = malloc (len + 1); + strcpy (text, gstr); + GEOSFree (gstr); + return text; +} + +GAIAGEO_DECLARE char * +gaiaIsValidReason_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* return a TEXT string stating if a Geometry is valid +/ and if not valid, a reason why */ + char *text; + int len; + const char *str; + char *gstr; + GEOSGeometry *g; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) return NULL; - switch (gaia->DimensionModel) + gaiaResetGeosMsg_r (cache); + if (!geom) { - case GAIA_XY_Z: - case GAIA_XY_Z_M: - dims = 3; - break; - default: - dims = 2; - break; - }; - nItem = 0; - geos_coll = malloc (sizeof (GEOSGeometry *) * (segms)); - ln = gaia->FirstLinestring; - while (ln) + str = "Invalid: NULL Geometry"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; + } + if (gaiaIsToxic (geom)) { - for (iv = 0; iv < ln->Points; iv++) - { - z = 0.0; - m = 0.0; - switch (ln->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (ln->Coords, iv, &x, &y); - break; - }; - if (iv > 0) - { - cs = GEOSCoordSeq_create (2, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setZ (cs, 0, z0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - GEOSCoordSeq_setZ (cs, 1, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - } - geos_item = GEOSGeom_createLineString (cs); - *(geos_coll + nItem++) = geos_item; - } - x0 = x; - y0 = y; - z0 = z; - } - ln = ln->Next; + str = "Invalid: Toxic Geometry ... too few points"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; } - pg = gaia->FirstPolygon; - while (pg) + if (gaiaIsNotClosedGeomColl (geom)) { - rng = pg->Exterior; - for (iv = 0; iv < rng->Points; iv++) - { - /* exterior ring */ - z = 0.0; - m = 0.0; - switch (rng->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (rng->Coords, iv, &x, &y); - break; - }; - if (iv > 0) - { - cs = GEOSCoordSeq_create (2, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setZ (cs, 0, z0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - GEOSCoordSeq_setZ (cs, 1, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - } - geos_item = GEOSGeom_createLineString (cs); - *(geos_coll + nItem++) = geos_item; - } - x0 = x; - y0 = y; - z0 = z; - } - for (ib = 0; ib < pg->NumInteriors; ib++) - { - /* interior ring */ - rng = pg->Interiors + ib; - for (iv = 0; iv < rng->Points; iv++) - { - /* exterior ring */ - z = 0.0; - m = 0.0; - switch (rng->DimensionModel) - { - case GAIA_XY_Z: - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - break; - case GAIA_XY_M: - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - break; - case GAIA_XY_Z_M: - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - break; - default: - gaiaGetPoint (rng->Coords, iv, &x, &y); - break; - }; - if (iv > 0) - { - cs = GEOSCoordSeq_create (2, dims); - if (dims == 3) - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setZ (cs, 0, z0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - GEOSCoordSeq_setZ (cs, 1, z); - } - else - { - GEOSCoordSeq_setX (cs, 0, x0); - GEOSCoordSeq_setY (cs, 0, y0); - GEOSCoordSeq_setX (cs, 1, x); - GEOSCoordSeq_setY (cs, 1, y); - } - geos_item = GEOSGeom_createLineString (cs); - *(geos_coll + nItem++) = geos_item; - } - x0 = x; - y0 = y; - z0 = z; - } - } - pg = pg->Next; + str = "Invalid: Unclosed Rings were detected"; + len = strlen (str); + text = malloc (len + 1); + strcpy (text, str); + return text; } - geos = GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll, segms); - free (geos_coll); - GEOSSetSRID (geos, gaia->Srid); - return geos; + g = gaiaToGeos_r (cache, geom); + gstr = GEOSisValidReason_r (handle, g); + GEOSGeom_destroy_r (handle, g); + if (gstr == NULL) + return NULL; + len = strlen (gstr); + text = malloc (len + 1); + strcpy (text, gstr); + GEOSFree_r (handle, gstr); + return text; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +gaiaIsValidDetail (gaiaGeomCollPtr geom) { -/* attempts to compute the the shortest line between two geometries */ - GEOSGeometry *g1_points; - GEOSGeometry *g1_segments; - const GEOSGeometry *g1_item; - GEOSGeometry *g2_points; - GEOSGeometry *g2_segments; - const GEOSGeometry *g2_item; - const GEOSCoordSequence *cs; - GEOSGeometry *g_pt; - gaiaGeomCollPtr result; - gaiaLinestringPtr ln; - int nItems1; - int nItems2; - int it1; - int it2; - unsigned int dims; - double x_ini; - double y_ini; - double z_ini; - double x_fin; - double y_fin; - double z_fin; - double dist; - double min_dist = DBL_MAX; - double projection; - if (!geom1 || !geom2) +/* return a Geometry detail causing a Geometry to be invalid */ + char *reason = NULL; + GEOSGeometry *g; + GEOSGeometry *d = NULL; + gaiaGeomCollPtr detail; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + if (gaiaIsNotClosedGeomColl (geom)) + return NULL; + g = gaiaToGeos (geom); + GEOSisValidDetail (g, 0, &reason, &d); + GEOSGeom_destroy (g); + if (reason != NULL) + GEOSFree (reason); + if (d == NULL) return NULL; + detail = gaiaFromGeos_XY (d); + GEOSGeom_destroy (d); + return detail; +} - g1_points = buildGeosPoints (geom1); - g1_segments = buildGeosSegments (geom1); - g2_points = buildGeosPoints (geom2); - g2_segments = buildGeosSegments (geom2); +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaIsValidDetail_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* return a Geometry detail causing a Geometry to be invalid */ + char *reason = NULL; + GEOSGeometry *g; + GEOSGeometry *d = NULL; + gaiaGeomCollPtr detail; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + if (gaiaIsNotClosedGeomColl (geom)) + return NULL; + g = gaiaToGeos_r (cache, geom); + GEOSisValidDetail_r (handle, g, 0, &reason, &d); + GEOSGeom_destroy_r (handle, g); + if (reason != NULL) + GEOSFree_r (handle, reason); + if (d == NULL) + return NULL; + detail = gaiaFromGeos_XY_r (cache, d); + GEOSGeom_destroy_r (handle, d); + return detail; +} - if (g1_points && g2_points) +GAIAGEO_DECLARE int +gaiaIsClosedGeom_r (const void *cache, gaiaGeomCollPtr geom) +{ +/* checks if this geometry is a closed linestring (or multilinestring) */ + int ret = 0; + gaiaLinestringPtr ln; + if (cache != NULL) + gaiaResetGeosMsg_r (cache); + if (!geom) + return -1; + if (cache != NULL) + ret = gaiaIsToxic_r (cache, geom); + else + ret = gaiaIsToxic (geom); + if (ret) + return 0; + ln = geom->FirstLinestring; + while (ln) { - /* computing distances between POINTs */ - nItems1 = GEOSGetNumGeometries (g1_points); - nItems2 = GEOSGetNumGeometries (g2_points); - for (it1 = 0; it1 < nItems1; it1++) - { - g1_item = GEOSGetGeometryN (g1_points, it1); - for (it2 = 0; it2 < nItems2; it2++) - { - g2_item = GEOSGetGeometryN (g2_points, it2); - if (GEOSDistance (g1_item, g2_item, &dist)) - { - if (dist < min_dist) - { - /* saving min-dist points */ - min_dist = dist; - cs = GEOSGeom_getCoordSeq (g1_item); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - GEOSCoordSeq_getZ (cs, 0, &z_ini); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - z_ini = 0.0; - } - cs = GEOSGeom_getCoordSeq (g2_item); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - GEOSCoordSeq_getZ (cs, 0, &z_fin); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - z_fin = 0.0; - } - } - } - } - } - } + /* unhappily GEOS v3.2.2 [system package on Debian Lenny and Ubuntu 12.04] + * doesn't exposes the GEOSisClosed() API at all !!!! + * + GEOSGeometry *g; + gaiaGeomCollPtr geoColl = gaiaAllocGeomColl(); + gaiaInsertLinestringInGeomColl(geoColl, gaiaCloneLinestring(ln)); + g = gaiaToGeos (geoColl); + ret = GEOSisClosed (g); + GEOSGeom_destroy (g); + gaiaFreeGeomColl(geoColl); + */ - if (g1_points && g2_segments) - { - /* computing distances between POINTs (g1) and SEGMENTs (g2) */ - nItems1 = GEOSGetNumGeometries (g1_points); - nItems2 = GEOSGetNumGeometries (g2_segments); - for (it1 = 0; it1 < nItems1; it1++) + /* so we'll use this internal default in order to circumvent the above issue */ + double x1; + double y1; + double z1; + double m1; + double x2; + double y2; + double z2; + double m2; + gaiaLineGetPoint (ln, 0, &x1, &y1, &z1, &m1); + gaiaLineGetPoint (ln, ln->Points - 1, &x2, &y2, &z2, &m2); + if (x1 == x2 && y1 == y2 && z1 == z2) + ret = 1; + else + ret = 0; + if (ret == 0) { - g1_item = GEOSGetGeometryN (g1_points, it1); - for (it2 = 0; it2 < nItems2; it2++) - { - g2_item = GEOSGetGeometryN (g2_segments, it2); - if (GEOSDistance (g1_item, g2_item, &dist)) - { - if (dist < min_dist) - { - /* saving min-dist points */ - projection = GEOSProject (g2_item, g1_item); - g_pt = GEOSInterpolate (g2_item, projection); - if (g_pt) - { - min_dist = dist; - cs = GEOSGeom_getCoordSeq (g1_item); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - GEOSCoordSeq_getZ (cs, 0, &z_ini); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - z_ini = 0.0; - } - cs = GEOSGeom_getCoordSeq (g_pt); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - GEOSCoordSeq_getZ (cs, 0, &z_fin); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - z_fin = 0.0; - } - GEOSGeom_destroy (g_pt); - } - } - } - } + /* this line isn't closed, so we don't need to continue */ + break; } + ln = ln->Next; } + if (ret == 2) + return -1; + return ret; +} - if (g1_segments && g2_points) - { - /* computing distances between SEGMENTs (g1) and POINTs (g2) */ - nItems1 = GEOSGetNumGeometries (g1_segments); - nItems2 = GEOSGetNumGeometries (g2_points); - for (it1 = 0; it1 < nItems1; it1++) - { - g1_item = GEOSGetGeometryN (g1_segments, it1); - for (it2 = 0; it2 < nItems2; it2++) - { - g2_item = GEOSGetGeometryN (g2_points, it2); - if (GEOSDistance (g1_item, g2_item, &dist)) - { - if (dist < min_dist) - { - /* saving min-dist points */ - projection = GEOSProject (g1_item, g2_item); - g_pt = GEOSInterpolate (g1_item, projection); - if (g_pt) - { - min_dist = dist; - cs = GEOSGeom_getCoordSeq (g_pt); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - GEOSCoordSeq_getZ (cs, 0, &z_ini); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_ini); - GEOSCoordSeq_getY (cs, 0, &y_ini); - z_ini = 0.0; - } - cs = GEOSGeom_getCoordSeq (g2_item); - GEOSCoordSeq_getDimensions (cs, &dims); - if (dims == 3) - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - GEOSCoordSeq_getZ (cs, 0, &z_fin); - } - else - { - GEOSCoordSeq_getX (cs, 0, &x_fin); - GEOSCoordSeq_getY (cs, 0, &y_fin); - z_fin = 0.0; - } - GEOSGeom_destroy (g_pt); - } - } - } - } - } - } - if (g1_points) - GEOSGeom_destroy (g1_points); - if (g1_segments) - GEOSGeom_destroy (g1_segments); - if (g2_points) - GEOSGeom_destroy (g2_points); - if (g2_segments) - GEOSGeom_destroy (g2_segments); - if (min_dist == DBL_MAX || min_dist <= 0.0) - return NULL; - -/* building the shortest line */ - switch (geom1->DimensionModel) - { - case GAIA_XY_Z: - result = gaiaAllocGeomCollXYZ (); - break; - case GAIA_XY_M: - result = gaiaAllocGeomCollXYM (); - break; - case GAIA_XY_Z_M: - result = gaiaAllocGeomCollXYZM (); - break; - default: - result = gaiaAllocGeomColl (); - break; - }; - result->Srid = geom1->Srid; - ln = gaiaAddLinestringToGeomColl (result, 2); - switch (ln->DimensionModel) - { - case GAIA_XY_Z: - gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini); - gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin); - break; - case GAIA_XY_M: - gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0); - gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0); - break; - case GAIA_XY_Z_M: - gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0); - gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0); - break; - default: - gaiaSetPoint (ln->Coords, 0, x_ini, y_ini); - gaiaSetPoint (ln->Coords, 1, x_fin, y_fin); - break; - }; - return result; +GAIAGEO_DECLARE int +gaiaIsClosedGeom (gaiaGeomCollPtr geom) +{ + gaiaResetGeosMsg (); + return gaiaIsClosedGeom_r (NULL, geom); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance) +{ +/* builds a simplified geometry using the Douglas-Peuker algorihtm */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSSimplify (g1, tolerance); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); + else + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeomCollSimplify_r (const void *p_cache, gaiaGeomCollPtr geom, + double tolerance) +{ +/* builds a simplified geometry using the Douglas-Peuker algorihtm */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSSimplify_r (handle, g1, tolerance); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance) +{ +/* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSTopologyPreserveSimplify (g1, tolerance); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); + else + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance) +gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache, + gaiaGeomCollPtr geom, double tolerance) { -/* attempts to "snap" geom1 on geom2 using the given tolerance */ +/* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - GEOSGeometry *g3; - gaiaGeomCollPtr result; - if (!geom1 || !geom2) + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) return NULL; - - g1 = gaiaToGeos (geom1); - g2 = gaiaToGeos (geom2); - g3 = GEOSSnap (g1, g2, tolerance); - GEOSGeom_destroy (g1); - GEOSGeom_destroy (g2); - if (!g3) + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; - if (geom1->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g3); - else if (geom1->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g3); - else if (geom1->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g3); + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSTopologyPreserveSimplify_r (handle, g1, tolerance); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); else - result = gaiaFromGeos_XY (g3); - GEOSGeom_destroy (g3); - if (result == NULL) + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) return NULL; - result->Srid = geom1->Srid; - return result; + geo->Srid = geom->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaLineMerge (gaiaGeomCollPtr geom) +gaiaConvexHull (gaiaGeomCollPtr geom) { -/* attempts to reassemble lines from a collection of sparse fragments */ +/* builds a geometry that is the convex hull of GEOM */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - gaiaGeomCollPtr result; + gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSLineMerge (g1); + g2 = GEOSConvexHull (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); + geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); + geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); + geo = gaiaFromGeos_XYZM (g2); else - result = gaiaFromGeos_XY (g2); + geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (result == NULL) + if (geo == NULL) return NULL; - result->Srid = geom->Srid; - return result; + geo->Srid = geom->Srid; + return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaUnaryUnion (gaiaGeomCollPtr geom) +gaiaConvexHull_r (const void *p_cache, gaiaGeomCollPtr geom) { -/* Unary Union (single Collection) */ +/* builds a geometry that is the convex hull of GEOM */ + gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; - gaiaGeomCollPtr result; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSConvexHull_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points) +{ +/* builds a geometry that is the GIS buffer of GEOM */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); - g2 = GEOSUnaryUnion (g1); + g2 = GEOSBuffer (g1, radius, points); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); + geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); + geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); + geo = gaiaFromGeos_XYZM (g2); else - result = gaiaFromGeos_XY (g2); + geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (result == NULL) + if (geo == NULL) return NULL; - result->Srid = geom->Srid; - return result; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaGeomCollBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, + int points) +{ +/* builds a geometry that is the GIS buffer of GEOM */ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSBuffer_r (handle, g1, radius, points); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; } static void -rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node) +auxFromGeosPolygon (GEOSContextHandle_t handle, const GEOSGeometry * geos, + gaiaGeomCollPtr result) { -/* rotating a Ring, so to ensure that Start/End points match the node */ - int io = 0; +/* converting a Polygon from GEOS to SpatiaLite */ + const GEOSGeometry *geos_ring; + const GEOSCoordSequence *coords; + unsigned int pts; + unsigned int geos_dims; + int interiors; int iv; - int copy = 0; - int base_idx = -1; + int ib; double x; double y; double z; - double m; - gaiaLinestringPtr new_ln = NULL; - - if (ln->DimensionModel == GAIA_XY_Z) - new_ln = gaiaAllocLinestringXYZ (ln->Points); - else if (ln->DimensionModel == GAIA_XY_M) - new_ln = gaiaAllocLinestringXYM (ln->Points); - else if (ln->DimensionModel == GAIA_XY_Z_M) - new_ln = gaiaAllocLinestringXYZM (ln->Points); + gaiaPolygonPtr pg; + gaiaRingPtr rng; + + if (handle != NULL) + { + geos_ring = GEOSGetExteriorRing_r (handle, geos); + interiors = GEOSGetNumInteriorRings_r (handle, geos); + coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims); + GEOSCoordSeq_getSize_r (handle, coords, &pts); + } else - new_ln = gaiaAllocLinestring (ln->Points); + { + geos_ring = GEOSGetExteriorRing (geos); + interiors = GEOSGetNumInteriorRings (geos); + coords = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (coords, &geos_dims); + GEOSCoordSeq_getSize (coords, &pts); + } -/* first pass */ - for (iv = 0; iv < ln->Points; iv++) + pg = gaiaAddPolygonToGeomColl (result, pts, interiors); +/* setting up the Exterior ring */ + rng = pg->Exterior; + for (iv = 0; iv < (int) pts; iv++) { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - if (!copy) /* CAZZO */ + if (geos_dims == 3) { - if (ln->DimensionModel == GAIA_XY_Z - || ln->DimensionModel == GAIA_XY_Z_M) + if (handle != NULL) { - if (node->X == x && node->Y == y && node->Z == z) - { - base_idx = iv; - copy = 1; - } + GEOSCoordSeq_getX_r (handle, coords, iv, &x); + GEOSCoordSeq_getY_r (handle, coords, iv, &y); + GEOSCoordSeq_getZ_r (handle, coords, iv, &z); } - else if (node->X == x && node->Y == y) + else { - base_idx = iv; - copy = 1; + GEOSCoordSeq_getX (coords, iv, &x); + GEOSCoordSeq_getY (coords, iv, &y); + GEOSCoordSeq_getZ (coords, iv, &z); } } - if (copy) + else { - /* copying points */ - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (new_ln->Coords, io, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) + if (handle != NULL) { - gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + GEOSCoordSeq_getX_r (handle, coords, iv, &x); + GEOSCoordSeq_getY_r (handle, coords, iv, &y); } else { - gaiaSetPoint (new_ln->Coords, io, x, y); + GEOSCoordSeq_getX (coords, iv, &x); + GEOSCoordSeq_getY (coords, iv, &y); } - io++; - } - } - if (base_idx <= 0) - { - gaiaFreeLinestring (new_ln); - return; - } - -/* second pass */ - for (iv = 1; iv <= base_idx; iv++) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); + z = 0.0; } - if (ln->DimensionModel == GAIA_XY_Z) + if (rng->DimensionModel == GAIA_XY_Z) { - gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); + gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } - else if (ln->DimensionModel == GAIA_XY_M) + else if (rng->DimensionModel == GAIA_XY_M) { - gaiaSetPointXYM (new_ln->Coords, io, x, y, m); + gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } - else if (ln->DimensionModel == GAIA_XY_Z_M) + else if (rng->DimensionModel == GAIA_XY_Z_M) { - gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { - gaiaSetPoint (new_ln->Coords, io, x, y); + gaiaSetPoint (rng->Coords, iv, x, y); } - io++; } -/* copying back */ - for (iv = 0; iv < new_ln->Points; iv++) + for (ib = 0; ib < interiors; ib++) { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) + /* setting up any interior ring */ + if (handle != NULL) { - gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m); + geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib); + coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims); + GEOSCoordSeq_getSize_r (handle, coords, &pts); } else { - gaiaGetPoint (new_ln->Coords, iv, &x, &y); - } - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (ln->Coords, iv, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (ln->Coords, iv, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); + geos_ring = GEOSGetInteriorRingN (geos, ib); + coords = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getDimensions (coords, &geos_dims); + GEOSCoordSeq_getSize (coords, &pts); } - else + rng = gaiaAddInteriorRing (pg, ib, pts); + for (iv = 0; iv < (int) pts; iv++) { - gaiaSetPoint (ln->Coords, iv, x, y); + if (geos_dims == 3) + { + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, coords, iv, &x); + GEOSCoordSeq_getY_r (handle, coords, iv, &y); + GEOSCoordSeq_getZ_r (handle, coords, iv, &z); + } + else + { + GEOSCoordSeq_getX (coords, iv, &x); + GEOSCoordSeq_getY (coords, iv, &y); + GEOSCoordSeq_getZ (coords, iv, &z); + } + } + else + { + if (handle != NULL) + { + GEOSCoordSeq_getX_r (handle, coords, iv, &x); + GEOSCoordSeq_getY_r (handle, coords, iv, &y); + } + else + { + GEOSCoordSeq_getX (coords, iv, &x); + GEOSCoordSeq_getY (coords, iv, &y); + } + z = 0.0; + } + if (rng->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (rng->Coords, iv, x, y, z); + } + else if (rng->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); + } + else if (rng->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); + } + else + { + gaiaSetPoint (rng->Coords, iv, x, y); + } } } - gaiaFreeLinestring (new_ln); } static void -extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start, - int i_end) +auxGeosMbr (GEOSContextHandle_t handle, const GEOSCoordSequence * cs, + unsigned int pts, double *min_x, double *min_y, double *max_x, + double *max_y) { -/* extracting s SubLine */ +/* computing the MBR */ int iv; - int io = 0; - int pts = i_end - i_start + 1; - gaiaLinestringPtr new_ln = NULL; double x; double y; - double z; - double m; - - new_ln = gaiaAddLinestringToGeomColl (result, pts); - - for (iv = i_start; iv <= i_end; iv++) + *min_x = DBL_MAX; + *min_y = DBL_MAX; + *max_x = 0 - DBL_MAX; + *max_y = 0 - DBL_MAX; + for (iv = 0; iv < (int) pts; iv++) { - if (ln->DimensionModel == GAIA_XY_Z) + if (handle != NULL) { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaSetPointXYM (new_ln->Coords, io, x, y, m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + GEOSCoordSeq_getX_r (handle, cs, iv, &x); + GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { - gaiaSetPoint (new_ln->Coords, io, x, y); + GEOSCoordSeq_getX (cs, iv, &x); + GEOSCoordSeq_getY (cs, iv, &y); } - io++; + if (x < *min_x) + *min_x = x; + if (x > *max_x) + *max_x = x; + if (y < *min_y) + *min_y = y; + if (y > *max_y) + *max_y = y; } } -static void -cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base, - gaiaGeomCollPtr result) +static gaiaGeomCollPtr +gaiaPolygonizeCommon (const void *cache, GEOSContextHandle_t handle, + gaiaGeomCollPtr geom, int force_multi) { -/* attempts to cut a single Line accordingly to given nodes */ - int closed = 0; - int match = 0; +/* attempts to rearrange a generic Geometry into a (multi)polygon */ + int ig; + int ib; int iv; - int i_start; + int interiors; + int geos_dims = 2; + int pts = 0; + int lns = 0; + int pgs = 0; + int items; + int error; double x; double y; double z; double m; + gaiaGeomCollPtr result = NULL; gaiaPointPtr pt; - gaiaPointPtr node = NULL; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSCoordSequence *cs; + const GEOSGeometry *const *geos_list = NULL; + GEOSGeometry **p_item; + GEOSGeometry *geos; + const GEOSGeometry *geos_item; + const GEOSGeometry *geos_item2; + const GEOSGeometry *geos_ring; + char *valid_polygons = NULL; + const GEOSCoordSequence *coords; + unsigned int pts1; + unsigned int pts2; + double min_x1; + double max_x1; + double min_y1; + double max_y1; + double min_x2; + double max_x2; + double min_y2; + double max_y2; + int ret; - if (gaiaIsClosed (ln)) - closed = 1; -/* pre-check */ - for (iv = 0; iv < ln->Points; iv++) + if (!geom) + return NULL; + if (cache != NULL) + ret = gaiaIsToxic_r (cache, geom); + else + ret = gaiaIsToxic (geom); + if (ret) + return NULL; + pt = geom->FirstPoint; + while (pt) { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); - } + pts++; + pt = pt->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts || pgs) + return NULL; + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + if (!lns) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z + || geom->DimensionModel == GAIA_XY_Z_M) + geos_dims = 3; + +/* allocating GEOS linestrings */ + geos_list = malloc (sizeof (const GEOSGeometry * const *) * lns); + p_item = (GEOSGeometry **) geos_list; + for (iv = 0; iv < lns; iv++) + { + /* initializing to NULL */ + *p_item++ = NULL; + } + p_item = (GEOSGeometry **) geos_list; + +/* initializing GEOS linestrings */ + ln = geom->FirstLinestring; + while (ln) + { + if (handle != NULL) + cs = GEOSCoordSeq_create_r (handle, ln->Points, geos_dims); else + cs = GEOSCoordSeq_create (ln->Points, geos_dims); + for (iv = 0; iv < ln->Points; iv++) { - gaiaGetPoint (ln->Coords, iv, &x, &y); - } - pt = pt_base; - while (pt) - { - if (ln->DimensionModel == GAIA_XY_Z - || ln->DimensionModel == GAIA_XY_Z_M) + /* exterior ring segments */ + z = 0.0; + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (geos_dims == 3) { - if (pt->X == x && pt->Y == y && pt->Z == z) + if (handle != NULL) { - node = pt; - match++; + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + GEOSCoordSeq_setZ_r (handle, cs, iv, z); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + GEOSCoordSeq_setZ (cs, iv, z); } } - else if (pt->X == x && pt->Y == y) + else { - node = pt; - match++; + if (handle != NULL) + { + GEOSCoordSeq_setX_r (handle, cs, iv, x); + GEOSCoordSeq_setY_r (handle, cs, iv, y); + } + else + { + GEOSCoordSeq_setX (cs, iv, x); + GEOSCoordSeq_setY (cs, iv, y); + } } - pt = pt->Next; } + if (handle != NULL) + *p_item++ = GEOSGeom_createLineString_r (handle, cs); + else + *p_item++ = GEOSGeom_createLineString (cs); + ln = ln->Next; } - if (closed && node) - rotateRingBeforeCut (ln, node); +/* calling GEOSPolygonize */ + if (handle != NULL) + geos = GEOSPolygonize_r (handle, geos_list, lns); + else + geos = GEOSPolygonize (geos_list, lns); + if (geos == NULL) + goto cleanup; - i_start = 0; - for (iv = 1; iv < ln->Points - 1; iv++) +/* +/ +/ GEOSPolygonize is expected to return a collection of Polygons +/ +/ CAVEAT: internal holes are returned as such (interior rings in +/ some Polygon), but are returned as distinct Polygons too +/ +/ we must check this, so to *not* return Polygons representing holes +/ +*/ + error = 0; + if (handle != NULL) + items = GEOSGetNumGeometries_r (handle, geos); + else + items = GEOSGetNumGeometries (geos); + for (ig = 0; ig < items; ig++) { - /* identifying sub-linestrings */ - if (ln->DimensionModel == GAIA_XY_Z) + /* looping on elementaty GEOS geometries */ + if (handle != NULL) { - gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + geos_item = GEOSGetGeometryN_r (handle, geos, ig); + if (GEOSGeomTypeId_r (handle, geos_item) != GEOS_POLYGON) + { + /* not a Polygon ... ouch ... */ + error = 1; + goto cleanup; + } } - else if (ln->DimensionModel == GAIA_XY_M) + else { - gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + geos_item = GEOSGetGeometryN (geos, ig); + if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON) + { + /* not a Polygon ... ouch ... */ + error = 1; + goto cleanup; + } } - else if (ln->DimensionModel == GAIA_XY_Z_M) + } + +/* identifying valid Polygons [excluding holes] */ + valid_polygons = malloc (items); + for (ig = 0; ig < items; ig++) + valid_polygons[ig] = 'Y'; + for (ig = 0; ig < items; ig++) + { + /* looping on elementaty GEOS Polygons */ + if (handle != NULL) { - gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + geos_item = GEOSGetGeometryN_r (handle, geos, ig); + interiors = GEOSGetNumInteriorRings_r (handle, geos_item); } else { - gaiaGetPoint (ln->Coords, iv, &x, &y); + geos_item = GEOSGetGeometryN (geos, ig); + interiors = GEOSGetNumInteriorRings (geos_item); } - match = 0; - pt = pt_base; - while (pt) + for (ib = 0; ib < interiors; ib++) { - if (ln->DimensionModel == GAIA_XY_Z - || ln->DimensionModel == GAIA_XY_Z_M) + /* looping on any interior ring */ + if (handle != NULL) { - if (pt->X == x && pt->Y == y && pt->Z == z) - { - match = 1; - break; - } + geos_ring = + GEOSGetInteriorRingN_r (handle, geos_item, ib); + coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getSize_r (handle, coords, &pts1); } - else if (pt->X == x && pt->Y == y) + else { - match = 1; - break; + geos_ring = GEOSGetInteriorRingN (geos_item, ib); + coords = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getSize (coords, &pts1); } - pt = pt->Next; - } - if (match) - { - /* cutting the line */ - extractSubLine (result, ln, i_start, iv); - i_start = iv; - } - } - if (i_start != 0 && i_start != ln->Points - 1) - { - /* extracting the last SubLine */ - extractSubLine (result, ln, i_start, ln->Points - 1); - } - else - { - /* cloning the untouched Line */ - extractSubLine (result, ln, 0, ln->Points - 1); - } -} - -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) -{ -/* attempts to cut lines accordingly to nodes */ - int pts1 = 0; - int lns1 = 0; - int pgs1 = 0; - int pts2 = 0; - int lns2 = 0; - int pgs2 = 0; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - gaiaGeomCollPtr result = NULL; - - if (!geom1) - return NULL; - if (!geom2) - return NULL; - -/* both Geometryes should have identical Dimensions */ - if (geom1->DimensionModel != geom2->DimensionModel) - return NULL; - - pt = geom1->FirstPoint; - while (pt) - { - pts1++; - pt = pt->Next; - } - ln = geom1->FirstLinestring; - while (ln) - { - lns1++; - ln = ln->Next; - } - pg = geom1->FirstPolygon; - while (pg) - { - pgs1++; - pg = pg->Next; - } - pt = geom2->FirstPoint; - while (pt) - { - pts2++; - pt = pt->Next; - } - ln = geom2->FirstLinestring; - while (ln) - { - lns2++; - ln = ln->Next; - } - pg = geom2->FirstPolygon; - while (pg) - { - pgs2++; - pg = pg->Next; + auxGeosMbr (handle, coords, pts1, &min_x1, &min_y1, &max_x1, + &max_y1); + for (iv = 0; iv < items; iv++) + { + if (iv == ig) + { + /* skipping the Polygon itself */ + continue; + } + if (valid_polygons[iv] == 'N') + { + /* skipping any already invalid Polygon */ + continue; + } + if (handle != NULL) + { + geos_item2 = GEOSGetGeometryN_r (handle, geos, iv); + if (GEOSGetNumInteriorRings_r (handle, geos_item2) > + 0) + { + /* this Polygon contains holes [surely valid] */ + continue; + } + geos_ring = + GEOSGetExteriorRing_r (handle, geos_item2); + coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); + GEOSCoordSeq_getSize_r (handle, coords, &pts2); + } + else + { + geos_item2 = GEOSGetGeometryN (geos, iv); + if (GEOSGetNumInteriorRings (geos_item2) > 0) + { + /* this Polygon contains holes [surely valid] */ + continue; + } + geos_ring = GEOSGetExteriorRing (geos_item2); + coords = GEOSGeom_getCoordSeq (geos_ring); + GEOSCoordSeq_getSize (coords, &pts2); + } + if (pts1 == pts2) + { + auxGeosMbr (handle, coords, pts2, &min_x2, &min_y2, + &max_x2, &max_y2); + if (min_x1 == min_x2 && min_y1 == min_y2 + && max_x1 == max_x2 && max_y1 == max_y2) + { + /* same #points, same MBRs: invalidating */ + valid_polygons[iv] = 'N'; + } + } + } + } } -/* the first Geometry is expected to contain one or more Linestring(s) */ - if (pts1 == 0 && lns1 > 0 && pgs1 == 0) - ; - else - return NULL; -/* the second Geometry is expected to contain one or more Point(s) */ - if (pts2 > 0 && lns2 == 0 && pgs2 == 0) - ; - else - return NULL; - -/* attempting to cut Lines accordingly to Nodes */ - if (geom1->DimensionModel == GAIA_XY_Z) +/* creating the Geometry to be returned */ + if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); - else if (geom1->DimensionModel == GAIA_XY_M) + else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); - else if (geom1->DimensionModel == GAIA_XY_Z_M) + else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); - ln = geom1->FirstLinestring; - while (ln) + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + if (force_multi) + result->DeclaredType = GAIA_MULTIPOLYGON; + + for (ig = 0; ig < items; ig++) { - cutLineAtNodes (ln, geom2->FirstPoint, result); - ln = ln->Next; + /* looping on GEOS Polygons */ + if (handle != NULL) + geos_item = GEOSGetGeometryN_r (handle, geos, ig); + else + geos_item = GEOSGetGeometryN (geos, ig); + if (valid_polygons[ig] == 'Y') + auxFromGeosPolygon (handle, geos_item, result); + } + + cleanup: + if (valid_polygons != NULL) + free (valid_polygons); + if (geos_list != NULL) + { + /* memory cleanup */ + p_item = (GEOSGeometry **) geos_list; + for (iv = 0; iv < lns; iv++) + { + if (*p_item != NULL) + { + if (handle != NULL) + GEOSGeom_destroy_r (handle, *p_item); + else + GEOSGeom_destroy (*p_item); + } + p_item++; + } + p_item = (GEOSGeometry **) geos_list; + free (p_item); + } + if (geos != NULL) + { + if (handle != NULL) + GEOSGeom_destroy_r (handle, geos); + else + GEOSGeom_destroy (geos); } - if (result->FirstLinestring == NULL) + if (error || result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } - result->Srid = geom1->Srid; return result; } -#endif /* end GEOS advanced features */ - -#ifdef GEOS_TRUNK /* GEOS experimental features */ +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi) +{ +/* attempts to rearrange a generic Geometry into a (multi)polygon */ + gaiaResetGeosMsg (); + return gaiaPolygonizeCommon (NULL, NULL, geom, force_multi); +} GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, - int only_edges) +gaiaPolygonize_r (const void *p_cache, gaiaGeomCollPtr geom, int force_multi) { -/* Delaunay Triangulation */ - GEOSGeometry *g1; - GEOSGeometry *g2; - gaiaGeomCollPtr result; - if (!geom) +/* attempts to rearrange a generic Geometry into a (multi)polygon */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges); - GEOSGeom_destroy (g1); - if (!g2) + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); - else - result = gaiaFromGeos_XY (g2); - GEOSGeom_destroy (g2); - if (result == NULL) + handle = cache->GEOS_handle; + if (handle == NULL) return NULL; - result->Srid = geom->Srid; - if (only_edges) - result->DeclaredType = GAIA_MULTILINESTRING; - else - result->DeclaredType = GAIA_MULTIPOLYGON; - return result; + gaiaResetGeosMsg_r (cache); + return gaiaPolygonizeCommon (cache, handle, geom, force_multi); } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, - double tolerance, int only_edges) +GAIAGEO_DECLARE int +gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* Voronoj Diagram */ +/* checks if geom1 "spatially covers" geom2 */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - gaiaGeomCollPtr result; - gaiaPolygonPtr pg; - int pgs = 0; - int errs = 0; - void *voronoj; - if (!geom) - return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) + return 0; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSCovers (g1, g2); GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); - else - result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (result == NULL) - return NULL; - pg = result->FirstPolygon; - while (pg) - { - /* counting how many triangles are in Delaunay */ - if (delaunay_triangle_check (pg)) - pgs++; - else - errs++; - pg = pg->Next; - } - if (pgs == 0 || errs) - { - gaiaFreeGeomColl (result); - return NULL; - } + if (ret == 2) + return -1; + return ret; +} + +GAIAGEO_DECLARE int +gaiaGeomCollCovers_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) +{ +/* checks if geom1 "spatially covers" geom2 */ + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; -/* building the Voronoj Diagram from Delaunay */ - voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size); - gaiaFreeGeomColl (result); +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) + return 0; -/* creating the Geometry representing Voronoj */ - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); - else - result = gaiaAllocGeomColl (); - result = voronoj_export (voronoj, result, only_edges); - voronoj_free (voronoj); + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCovers_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; +} - result->Srid = geom->Srid; - if (only_edges) - result->DeclaredType = GAIA_MULTILINESTRING; - else - result->DeclaredType = GAIA_MULTIPOLYGON; - return result; +GAIAGEO_DECLARE int +gaiaGeomCollPreparedCovers (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) +{ +/* checks if geom1 "spatially covers" geom2 */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr geom; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_contains (geom1, geom2)) + return 0; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + if (geom == geom2) + ret = GEOSPreparedCovers_r (handle, gPrep, g2); + else + ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; + } + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCovers_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, - int allow_holes) +GAIAGEO_DECLARE int +gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { -/* Concave Hull */ +/* checks if geom1 is "spatially covered by" geom2 */ + int ret; GEOSGeometry *g1; GEOSGeometry *g2; - gaiaGeomCollPtr result; - gaiaGeomCollPtr concave_hull; - gaiaPolygonPtr pg; - int pgs = 0; - int errs = 0; - if (!geom) - return NULL; - g1 = gaiaToGeos (geom); - g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSCoveredBy (g1, g2); GEOSGeom_destroy (g1); - if (!g2) - return NULL; - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaFromGeos_XYZ (g2); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaFromGeos_XYM (g2); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaFromGeos_XYZM (g2); - else - result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); - if (result == NULL) - return NULL; - pg = result->FirstPolygon; - while (pg) - { - /* counting how many triangles are in Delaunay */ - if (delaunay_triangle_check (pg)) - pgs++; - else - errs++; - pg = pg->Next; - } - if (pgs == 0 || errs) - { - gaiaFreeGeomColl (result); - return NULL; - } + if (ret == 2) + return -1; + return ret; +} -/* building the Concave Hull from Delaunay */ - concave_hull = - concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor, - allow_holes); - gaiaFreeGeomColl (result); - if (!concave_hull) - return NULL; - result = concave_hull; +GAIAGEO_DECLARE int +gaiaGeomCollCoveredBy_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) +{ +/* checks if geom1 is "spatially covered by" geom2 */ + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; - result->Srid = geom->Srid; - return result; +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCoveredBy_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; } -#endif /* end GEOS experimental features */ +GAIAGEO_DECLARE int +gaiaGeomCollPreparedCoveredBy (const void *p_cache, gaiaGeomCollPtr geom1, + unsigned char *blob1, int size1, + gaiaGeomCollPtr geom2, unsigned char *blob2, + int size2) +{ +/* checks if geom1 is "spatially covered by" geom2 */ + int ret; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSPreparedGeometry *gPrep; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSContextHandle_t handle = NULL; + gaiaGeomCollPtr geom; + gaiaResetGeosMsg (); + if (cache == NULL) + return -1; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1; + +/* quick check based on MBRs comparison */ + if (!splite_mbr_within (geom1, geom2)) + return 0; + +/* handling the internal GEOS cache */ + if (evalGeosCache + (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) + { + g2 = gaiaToGeos_r (cache, geom); + if (geom == geom2) + ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2); + else + ret = GEOSPreparedCovers_r (handle, gPrep, g2); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; + } + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSCoveredBy_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret == 2) + return -1; + return ret; +} #endif /* end including GEOS */ diff --git a/src/spatialite/src/gaiageo/gg_relations_ext.c b/src/spatialite/src/gaiageo/gg_relations_ext.c new file mode 100644 index 0000000..ba04aea --- /dev/null +++ b/src/spatialite/src/gaiageo/gg_relations_ext.c @@ -0,0 +1,4405 @@ +/* + + gg_relations_ext.c -- Gaia spatial relations [advanced] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#ifndef OMIT_GEOS /* including GEOS */ +#include +#endif + +#include +#include + +#include + +#ifndef OMIT_GEOS /* including GEOS */ + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, + int left_right) +{ +/* +// builds a geometry that is the OffsetCurve of GEOM +// (which is expected to be of the LINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + int pts = 0; + int lns = 0; + int pgs = 0; + int closed = 0; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + +/* checking the input geometry for validity */ + pt = geom->FirstPoint; + while (pt) + { + /* counting how many POINTs are there */ + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + /* counting how many LINESTRINGs are there */ + lns++; + if (gaiaIsClosed (ln)) + closed++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + /* counting how many POLYGON are there */ + pgs++; + pg = pg->Next; + } + if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) + return NULL; + +/* all right: this one simply is a LINESTRING */ + geom->DeclaredType = GAIA_LINESTRING; + + g1 = gaiaToGeos (geom); + g2 = GEOSSingleSidedBuffer (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0, + left_right); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); + else + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaOffsetCurve_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, + int points, int left_right) +{ +/* +// builds a geometry that is the OffsetCurve of GEOM +// (which is expected to be of the LINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + int pts = 0; + int lns = 0; + int pgs = 0; + int closed = 0; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + +/* checking the input geometry for validity */ + pt = geom->FirstPoint; + while (pt) + { + /* counting how many POINTs are there */ + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + /* counting how many LINESTRINGs are there */ + lns++; + if (gaiaIsClosed (ln)) + closed++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + /* counting how many POLYGON are there */ + pgs++; + pg = pg->Next; + } + if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) + return NULL; + +/* all right: this one simply is a LINESTRING */ + geom->DeclaredType = GAIA_LINESTRING; + + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSSingleSidedBuffer_r (handle, g1, radius, points, + GEOSBUF_JOIN_ROUND, 5.0, left_right); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, + int left_right) +{ +/* +// builds a geometry that is the SingleSided BUFFER of GEOM +// (which is expected to be of the LINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSBufferParams *params = NULL; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + int pts = 0; + int lns = 0; + int pgs = 0; + int closed = 0; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + +/* checking the input geometry for validity */ + pt = geom->FirstPoint; + while (pt) + { + /* counting how many POINTs are there */ + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + /* counting how many LINESTRINGs are there */ + lns++; + if (gaiaIsClosed (ln)) + closed++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + /* counting how many POLYGON are there */ + pgs++; + pg = pg->Next; + } + if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) + return NULL; + +/* all right: this one simply is a LINESTRING */ + geom->DeclaredType = GAIA_LINESTRING; + + g1 = gaiaToGeos (geom); +/* setting up Buffer params */ + params = GEOSBufferParams_create (); + GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND); + GEOSBufferParams_setMitreLimit (params, 5.0); + GEOSBufferParams_setQuadrantSegments (params, points); + GEOSBufferParams_setSingleSided (params, 1); + +/* creating the SingleSided Buffer */ + if (left_right == 0) + { + /* right-sided requires NEGATIVE radius */ + radius *= -1.0; + } + g2 = GEOSBufferWithParams (g1, params, radius); + GEOSGeom_destroy (g1); + GEOSBufferParams_destroy (params); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g2); + else + geo = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSingleSidedBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, + double radius, int points, int left_right) +{ +/* +// builds a geometry that is the SingleSided BUFFER of GEOM +// (which is expected to be of the LINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSBufferParams *params = NULL; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + int pts = 0; + int lns = 0; + int pgs = 0; + int closed = 0; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + +/* checking the input geometry for validity */ + pt = geom->FirstPoint; + while (pt) + { + /* counting how many POINTs are there */ + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + /* counting how many LINESTRINGs are there */ + lns++; + if (gaiaIsClosed (ln)) + closed++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + /* counting how many POLYGON are there */ + pgs++; + pg = pg->Next; + } + if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) + return NULL; + +/* all right: this one simply is a LINESTRING */ + geom->DeclaredType = GAIA_LINESTRING; + + g1 = gaiaToGeos_r (cache, geom); +/* setting up Buffer params */ + params = GEOSBufferParams_create_r (handle); + GEOSBufferParams_setJoinStyle_r (handle, params, GEOSBUF_JOIN_ROUND); + GEOSBufferParams_setMitreLimit_r (handle, params, 5.0); + GEOSBufferParams_setQuadrantSegments_r (handle, params, points); + GEOSBufferParams_setSingleSided_r (handle, params, 1); + +/* creating the SingleSided Buffer */ + if (left_right == 0) + { + /* right-sided requires NEGATIVE radius */ + radius *= -1.0; + } + g2 = GEOSBufferWithParams_r (handle, g1, params, radius); + GEOSGeom_destroy_r (handle, g1); + GEOSBufferParams_destroy_r (handle, params); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g2); + else + geo = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (geo == NULL) + return NULL; + geo->Srid = geom->Srid; + return geo; +} + +GAIAGEO_DECLARE int +gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, + double *xdist) +{ +/* +/ computes the (discrete) Hausdorff distance intercurring +/ between GEOM-1 and GEOM-2 +*/ + double dist; + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return 0; + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + ret = GEOSHausdorffDistance (g1, g2, &dist); + GEOSGeom_destroy (g1); + GEOSGeom_destroy (g2); + if (ret) + *xdist = dist; + return ret; +} + +GAIAGEO_DECLARE int +gaiaHausdorffDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, double *xdist) +{ +/* +/ computes the (discrete) Hausdorff distance intercurring +/ between GEOM-1 and GEOM-2 +*/ + double dist; + int ret; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + handle = cache->GEOS_handle; + if (handle == NULL) + return 0; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return 0; + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + ret = GEOSHausdorffDistance_r (handle, g1, g2, &dist); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (ret) + *xdist = dist; + return ret; +} + +static gaiaGeomCollPtr +geom_as_lines (gaiaGeomCollPtr geom) +{ +/* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */ + gaiaGeomCollPtr result; + gaiaLinestringPtr ln; + gaiaLinestringPtr new_ln; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + int iv; + int ib; + double x; + double y; + double z; + double m; + + if (!geom) + return NULL; + if (geom->FirstPoint != NULL) + { + /* invalid: GEOM contains at least one POINT */ + return NULL; + } + + switch (geom->DimensionModel) + { + case GAIA_XY_Z_M: + result = gaiaAllocGeomCollXYZM (); + break; + case GAIA_XY_Z: + result = gaiaAllocGeomCollXYZ (); + break; + case GAIA_XY_M: + result = gaiaAllocGeomCollXYM (); + break; + default: + result = gaiaAllocGeomColl (); + break; + }; + result->Srid = geom->Srid; + ln = geom->FirstLinestring; + while (ln) + { + /* copying any Linestring */ + new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); + for (iv = 0; iv < ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (new_ln->Coords, iv, x, y); + } + } + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + /* copying any Polygon Ring (as Linestring) */ + rng = pg->Exterior; + new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); + for (iv = 0; iv < rng->Points; iv++) + { + /* exterior Ring */ + if (rng->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); + } + else if (rng->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); + } + else if (rng->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); + } + else + { + gaiaGetPoint (rng->Coords, iv, &x, &y); + gaiaSetPoint (new_ln->Coords, iv, x, y); + } + } + for (ib = 0; ib < pg->NumInteriors; ib++) + { + rng = pg->Interiors + ib; + new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); + for (iv = 0; iv < rng->Points; iv++) + { + /* any interior Ring */ + if (rng->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); + } + else if (rng->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); + } + else if (rng->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); + } + else + { + gaiaGetPoint (rng->Coords, iv, &x, &y); + gaiaSetPoint (new_ln->Coords, iv, x, y); + } + } + } + pg = pg->Next; + } + return result; +} + +static void +add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn) +{ +/* adding a LINESTRING from Dynamic Line */ + int count = 0; + gaiaLinestringPtr ln; + gaiaPointPtr pt; + int iv; + + if (!geom) + return; + if (!dyn) + return; + pt = dyn->First; + while (pt) + { + /* counting how many Points are there */ + count++; + pt = pt->Next; + } + if (count == 0) + return; + ln = gaiaAddLinestringToGeomColl (geom, count); + iv = 0; + pt = dyn->First; + while (pt) + { + /* copying points into the LINESTRING */ + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); + } + else + { + gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); + } + iv++; + pt = pt->Next; + } +} + +static void +append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) +{ +/* appends a Shared Path item to Dynamic Line */ + int iv; + double x; + double y; + double z; + double m; + if (order) + { + /* reversed order */ + for (iv = ln->Points - 1; iv >= 0; iv--) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + if (x == dyn->Last->X && y == dyn->Last->Y + && z == dyn->Last->Z) + ; + else + gaiaAppendPointZToDynamicLine (dyn, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + if (x == dyn->Last->X && y == dyn->Last->Y + && m == dyn->Last->M) + ; + else + gaiaAppendPointMToDynamicLine (dyn, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + if (x == dyn->Last->X && y == dyn->Last->Y + && z == dyn->Last->Z && m == dyn->Last->M) + ; + else + gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + if (x == dyn->Last->X && y == dyn->Last->Y) + ; + else + gaiaAppendPointToDynamicLine (dyn, x, y); + } + } + } + else + { + /* conformant order */ + for (iv = 0; iv < ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + if (x == dyn->Last->X && y == dyn->Last->Y + && z == dyn->Last->Z) + ; + else + gaiaAppendPointZToDynamicLine (dyn, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + if (x == dyn->Last->X && y == dyn->Last->Y + && m == dyn->Last->M) + ; + else + gaiaAppendPointMToDynamicLine (dyn, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + if (x == dyn->Last->X && y == dyn->Last->Y + && z == dyn->Last->Z && m == dyn->Last->M) + ; + else + gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + if (x == dyn->Last->X && y == dyn->Last->Y) + ; + else + gaiaAppendPointToDynamicLine (dyn, x, y); + } + } + } +} + +static void +prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) +{ +/* prepends a Shared Path item to Dynamic Line */ + int iv; + double x; + double y; + double z; + double m; + if (order) + { + /* reversed order */ + for (iv = 0; iv < ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + if (x == dyn->First->X && y == dyn->First->Y + && z == dyn->First->Z) + ; + else + gaiaPrependPointZToDynamicLine (dyn, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + if (x == dyn->First->X && y == dyn->First->Y + && m == dyn->First->M) + ; + else + gaiaPrependPointMToDynamicLine (dyn, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + if (x == dyn->First->X && y == dyn->First->Y + && z == dyn->First->Z && m == dyn->First->M) + ; + else + gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + if (x == dyn->First->X && y == dyn->First->Y) + ; + else + gaiaPrependPointToDynamicLine (dyn, x, y); + } + } + } + else + { + /* conformant order */ + for (iv = ln->Points - 1; iv >= 0; iv--) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + if (x == dyn->First->X && y == dyn->First->Y + && z == dyn->First->Z) + ; + else + gaiaPrependPointZToDynamicLine (dyn, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + if (x == dyn->First->X && y == dyn->First->Y + && m == dyn->First->M) + ; + else + gaiaPrependPointMToDynamicLine (dyn, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + if (x == dyn->First->X && y == dyn->First->Y + && z == dyn->First->Z && m == dyn->First->M) + ; + else + gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + if (x == dyn->First->X && y == dyn->First->Y) + ; + else + gaiaPrependPointToDynamicLine (dyn, x, y); + } + } + } +} + +static gaiaGeomCollPtr +arrange_shared_paths (gaiaGeomCollPtr geom) +{ +/* final aggregation step for shared paths */ + gaiaLinestringPtr ln; + gaiaLinestringPtr *ln_array; + gaiaGeomCollPtr result; + gaiaDynamicLinePtr dyn; + int count; + int i; + int i2; + int iv; + double x; + double y; + double z; + double m; + int ok; + int ok2; + + if (!geom) + return NULL; + count = 0; + ln = geom->FirstLinestring; + while (ln) + { + /* counting how many Linestrings are there */ + count++; + ln = ln->Next; + } + if (count == 0) + return NULL; + + ln_array = malloc (sizeof (gaiaLinestringPtr) * count); + i = 0; + ln = geom->FirstLinestring; + while (ln) + { + /* populating the Linestring references array */ + ln_array[i++] = ln; + ln = ln->Next; + } + +/* allocating a new Geometry [MULTILINESTRING] */ + switch (geom->DimensionModel) + { + case GAIA_XY_Z_M: + result = gaiaAllocGeomCollXYZM (); + break; + case GAIA_XY_Z: + result = gaiaAllocGeomCollXYZ (); + break; + case GAIA_XY_M: + result = gaiaAllocGeomCollXYM (); + break; + default: + result = gaiaAllocGeomColl (); + break; + }; + result->Srid = geom->Srid; + result->DeclaredType = GAIA_MULTILINESTRING; + + ok = 1; + while (ok) + { + /* looping until we have processed any input item */ + ok = 0; + for (i = 0; i < count; i++) + { + if (ln_array[i] != NULL) + { + /* starting a new LINESTRING */ + dyn = gaiaAllocDynamicLine (); + ln = ln_array[i]; + ln_array[i] = NULL; + for (iv = 0; iv < ln->Points; iv++) + { + /* inserting the 'seed' path */ + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaAppendPointZToDynamicLine (dyn, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaAppendPointMToDynamicLine (dyn, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, + &m); + gaiaAppendPointZMToDynamicLine (dyn, x, y, z, + m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaAppendPointToDynamicLine (dyn, x, y); + } + } + ok2 = 1; + while (ok2) + { + /* looping until we have checked any other item */ + ok2 = 0; + for (i2 = 0; i2 < count; i2++) + { + /* expanding the 'seed' path */ + if (ln_array[i2] == NULL) + continue; + ln = ln_array[i2]; + /* checking the first vertex */ + iv = 0; + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, + &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, + &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, + &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (x == dyn->Last->X && y == dyn->Last->Y) + { + /* appending this item to the 'seed' (conformant order) */ + append_shared_path (dyn, ln, 0); + ln_array[i2] = NULL; + ok2 = 1; + continue; + } + if (x == dyn->First->X && y == dyn->First->Y) + { + /* prepending this item to the 'seed' (reversed order) */ + prepend_shared_path (dyn, ln, 1); + ln_array[i2] = NULL; + ok2 = 1; + continue; + } + /* checking the last vertex */ + iv = ln->Points - 1; + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, + &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, + &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, + &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (x == dyn->Last->X && y == dyn->Last->Y) + { + /* appending this item to the 'seed' (reversed order) */ + append_shared_path (dyn, ln, 1); + ln_array[i2] = NULL; + ok2 = 1; + continue; + } + if (x == dyn->First->X && y == dyn->First->Y) + { + /* prepending this item to the 'seed' (conformant order) */ + prepend_shared_path (dyn, ln, 0); + ln_array[i2] = NULL; + ok2 = 1; + continue; + } + } + } + add_shared_linestring (result, dyn); + gaiaFreeDynamicLine (dyn); + ok = 1; + break; + } + } + } + free (ln_array); + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* +// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 +// (which are expected to be of the LINESTRING/MULTILINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + gaiaGeomCollPtr result; + gaiaGeomCollPtr line1; + gaiaGeomCollPtr line2; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSGeometry *g3; + gaiaResetGeosMsg (); + if (!geom1) + return NULL; + if (!geom2) + return NULL; +/* transforming input geoms as Lines */ + line1 = geom_as_lines (geom1); + line2 = geom_as_lines (geom2); + if (line1 == NULL || line2 == NULL) + { + if (line1) + gaiaFreeGeomColl (line1); + if (line2) + gaiaFreeGeomColl (line2); + return NULL; + } + + g1 = gaiaToGeos (line1); + g2 = gaiaToGeos (line2); + gaiaFreeGeomColl (line1); + gaiaFreeGeomColl (line2); + g3 = GEOSSharedPaths (g1, g2); + GEOSGeom_destroy (g1); + GEOSGeom_destroy (g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM (g3); + else + geo = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + result = arrange_shared_paths (geo); + gaiaFreeGeomColl (geo); + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSharedPaths_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) +{ +/* +// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 +// (which are expected to be of the LINESTRING/MULTILINESTRING type) +// +*/ + gaiaGeomCollPtr geo; + gaiaGeomCollPtr result; + gaiaGeomCollPtr line1; + gaiaGeomCollPtr line2; + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSGeometry *g3; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom1) + return NULL; + if (!geom2) + return NULL; +/* transforming input geoms as Lines */ + line1 = geom_as_lines (geom1); + line2 = geom_as_lines (geom2); + if (line1 == NULL || line2 == NULL) + { + if (line1) + gaiaFreeGeomColl (line1); + if (line2) + gaiaFreeGeomColl (line2); + return NULL; + } + + g1 = gaiaToGeos_r (cache, line1); + g2 = gaiaToGeos_r (cache, line2); + gaiaFreeGeomColl (line1); + gaiaFreeGeomColl (line2); + g3 = GEOSSharedPaths_r (handle, g1, g2); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + geo = gaiaFromGeos_XYZ_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_M) + geo = gaiaFromGeos_XYM_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + geo = gaiaFromGeos_XYZM_r (cache, g3); + else + geo = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); + if (geo == NULL) + return NULL; + geo->Srid = geom1->Srid; + result = arrange_shared_paths (geo); + gaiaFreeGeomColl (geo); + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction) +{ +/* + * attempts to intepolate a point on line at dist "fraction" + * + * the fraction is expressed into the range from 0.0 to 1.0 + */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaGeomCollPtr result; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSGeometry *g; + GEOSGeometry *g_pt; + double length; + double projection; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + +/* checking if a single Linestring has been passed */ + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 0 && lns == 1 && pgs == 0) + ; + else + return NULL; + + g = gaiaToGeos (geom); + if (GEOSLength (g, &length)) + { + /* transforming fraction to length */ + if (fraction < 0.0) + fraction = 0.0; + if (fraction > 1.0) + fraction = 1.0; + projection = length * fraction; + } + else + { + GEOSGeom_destroy (g); + return NULL; + } + g_pt = GEOSInterpolate (g, projection); + GEOSGeom_destroy (g); + if (!g_pt) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g_pt); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g_pt); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g_pt); + else + result = gaiaFromGeos_XY (g_pt); + GEOSGeom_destroy (g_pt); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineInterpolatePoint_r (const void *p_cache, gaiaGeomCollPtr geom, + double fraction) +{ +/* + * attempts to intepolate a point on line at dist "fraction" + * + * the fraction is expressed into the range from 0.0 to 1.0 + */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaGeomCollPtr result; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSGeometry *g; + GEOSGeometry *g_pt; + double length; + double projection; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + +/* checking if a single Linestring has been passed */ + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 0 && lns == 1 && pgs == 0) + ; + else + return NULL; + + g = gaiaToGeos_r (cache, geom); + if (GEOSLength_r (handle, g, &length)) + { + /* transforming fraction to length */ + if (fraction < 0.0) + fraction = 0.0; + if (fraction > 1.0) + fraction = 1.0; + projection = length * fraction; + } + else + { + GEOSGeom_destroy_r (handle, g); + return NULL; + } + g_pt = GEOSInterpolate_r (handle, g, projection); + GEOSGeom_destroy_r (handle, g); + if (!g_pt) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g_pt); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g_pt); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g_pt); + else + result = gaiaFromGeos_XY_r (cache, g_pt); + GEOSGeom_destroy_r (handle, g_pt); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +static gaiaGeomCollPtr +gaiaLineInterpolateEquidistantPointsCommon (struct splite_internal_cache *cache, + gaiaGeomCollPtr geom, + double distance) +{ +/* + * attempts to intepolate a set of points on line at regular distances + */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaGeomCollPtr result; + gaiaGeomCollPtr xpt; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSGeometry *g; + GEOSGeometry *g_pt; + double length; + double current_length = 0.0; + GEOSContextHandle_t handle = NULL; + if (cache != NULL) + { + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + } + if (!geom) + return NULL; + if (distance <= 0.0) + return NULL; + +/* checking if a single Linestring has been passed */ + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 0 && lns == 1 && pgs == 0) + ; + else + return NULL; + + if (cache != NULL) + { + g = gaiaToGeos_r (cache, geom); + if (GEOSLength_r (handle, g, &length)) + { + if (length <= distance) + { + /* the line is too short to apply interpolation */ + GEOSGeom_destroy_r (handle, g); + return NULL; + } + } + else + { + GEOSGeom_destroy_r (handle, g); + return NULL; + } + } + else + { + g = gaiaToGeos (geom); + if (GEOSLength (g, &length)) + { + if (length <= distance) + { + /* the line is too short to apply interpolation */ + GEOSGeom_destroy (g); + return NULL; + } + } + else + { + GEOSGeom_destroy (g); + return NULL; + } + } + +/* creating the MultiPoint [always supporting M] */ + if (geom->DimensionModel == GAIA_XY_Z + || geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomCollXYM (); + if (result == NULL) + { + GEOSGeom_destroy (g); + return NULL; + } + + while (1) + { + /* increasing the current distance */ + current_length += distance; + if (current_length >= length) + break; + /* interpolating a point */ + if (handle != NULL) + g_pt = GEOSInterpolate_r (handle, g, current_length); + else + g_pt = GEOSInterpolate (g, current_length); + if (!g_pt) + goto error; + if (geom->DimensionModel == GAIA_XY_Z) + { + if (cache != NULL) + xpt = gaiaFromGeos_XYZ_r (cache, g_pt); + else + xpt = gaiaFromGeos_XYZ (g_pt); + if (!xpt) + goto error; + pt = xpt->FirstPoint; + if (!pt) + goto error; + gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, + current_length); + } + else if (geom->DimensionModel == GAIA_XY_M) + { + if (cache != NULL) + xpt = gaiaFromGeos_XYM_r (cache, g_pt); + else + xpt = gaiaFromGeos_XYM (g_pt); + if (!xpt) + goto error; + pt = xpt->FirstPoint; + if (!pt) + goto error; + gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, + current_length); + } + else if (geom->DimensionModel == GAIA_XY_Z_M) + { + if (cache != NULL) + xpt = gaiaFromGeos_XYZM_r (cache, g_pt); + else + xpt = gaiaFromGeos_XYZM (g_pt); + if (!xpt) + goto error; + pt = xpt->FirstPoint; + if (!pt) + goto error; + gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, + current_length); + } + else + { + if (cache != NULL) + xpt = gaiaFromGeos_XY_r (cache, g_pt); + else + xpt = gaiaFromGeos_XY (g_pt); + if (!xpt) + goto error; + pt = xpt->FirstPoint; + if (!pt) + goto error; + gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, + current_length); + } + if (handle != NULL) + GEOSGeom_destroy_r (handle, g_pt); + else + GEOSGeom_destroy (g_pt); + gaiaFreeGeomColl (xpt); + } + if (handle != NULL) + GEOSGeom_destroy_r (handle, g); + else + GEOSGeom_destroy (g); + result->Srid = geom->Srid; + result->DeclaredType = GAIA_MULTIPOINT; + return result; + + error: + if (handle != NULL) + { + if (g_pt) + GEOSGeom_destroy_r (handle, g_pt); + GEOSGeom_destroy_r (handle, g); + } + else + { + if (g_pt) + GEOSGeom_destroy (g_pt); + GEOSGeom_destroy (g); + } + gaiaFreeGeomColl (result); + return NULL; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance) +{ + gaiaResetGeosMsg (); + return gaiaLineInterpolateEquidistantPointsCommon (NULL, geom, distance); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineInterpolateEquidistantPoints_r (const void *p_cache, + gaiaGeomCollPtr geom, double distance) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + return gaiaLineInterpolateEquidistantPointsCommon (cache, geom, distance); +} + +GAIAGEO_DECLARE double +gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* + * attempts to compute the location of the closest point on LineString + * to the given Point, as a fraction of total 2d line length + * + * the fraction is expressed into the range from 0.0 to 1.0 + */ + int pts1 = 0; + int lns1 = 0; + int pgs1 = 0; + int pts2 = 0; + int lns2 = 0; + int pgs2 = 0; + double length; + double projection; + double result; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return -1.0; + +/* checking if a single Linestring has been passed */ + pt = geom1->FirstPoint; + while (pt) + { + pts1++; + pt = pt->Next; + } + ln = geom1->FirstLinestring; + while (ln) + { + lns1++; + ln = ln->Next; + } + pg = geom1->FirstPolygon; + while (pg) + { + pgs1++; + pg = pg->Next; + } + if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) + ; + else + return -1.0; + +/* checking if a single Point has been passed */ + pt = geom2->FirstPoint; + while (pt) + { + pts2++; + pt = pt->Next; + } + ln = geom2->FirstLinestring; + while (ln) + { + lns2++; + ln = ln->Next; + } + pg = geom2->FirstPolygon; + while (pg) + { + pgs2++; + pg = pg->Next; + } + if (pts2 == 1 && lns2 == 0 && pgs2 == 0) + ; + else + return -1.0; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + projection = GEOSProject (g1, g2); + if (GEOSLength (g1, &length)) + { + /* normalizing as a fraction between 0.0 and 1.0 */ + result = projection / length; + } + else + result = -1.0; + GEOSGeom_destroy (g1); + GEOSGeom_destroy (g2); + return result; +} + +GAIAGEO_DECLARE double +gaiaLineLocatePoint_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) +{ +/* + * attempts to compute the location of the closest point on LineString + * to the given Point, as a fraction of total 2d line length + * + * the fraction is expressed into the range from 0.0 to 1.0 + */ + int pts1 = 0; + int lns1 = 0; + int pgs1 = 0; + int pts2 = 0; + int lns2 = 0; + int pgs2 = 0; + double length; + double projection; + double result; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + GEOSGeometry *g1; + GEOSGeometry *g2; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return -1.0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return -1.0; + handle = cache->GEOS_handle; + if (handle == NULL) + return -1.0; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return -1.0; + +/* checking if a single Linestring has been passed */ + pt = geom1->FirstPoint; + while (pt) + { + pts1++; + pt = pt->Next; + } + ln = geom1->FirstLinestring; + while (ln) + { + lns1++; + ln = ln->Next; + } + pg = geom1->FirstPolygon; + while (pg) + { + pgs1++; + pg = pg->Next; + } + if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) + ; + else + return -1.0; + +/* checking if a single Point has been passed */ + pt = geom2->FirstPoint; + while (pt) + { + pts2++; + pt = pt->Next; + } + ln = geom2->FirstLinestring; + while (ln) + { + lns2++; + ln = ln->Next; + } + pg = geom2->FirstPolygon; + while (pg) + { + pgs2++; + pg = pg->Next; + } + if (pts2 == 1 && lns2 == 0 && pgs2 == 0) + ; + else + return -1.0; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + projection = GEOSProject_r (handle, g1, g2); + if (GEOSLength_r (handle, g1, &length)) + { + /* normalizing as a fraction between 0.0 and 1.0 */ + result = projection / length; + } + else + result = -1.0; + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + return result; +} + +static gaiaGeomCollPtr +gaiaLineSubstringCommon (struct splite_internal_cache *cache, + gaiaGeomCollPtr geom, double start_fraction, + double end_fraction) +{ +/* + * attempts to build a new Linestring being a substring of the input one starting + * and ending at the given fractions of total 2d length + */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaGeomCollPtr result; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaLinestringPtr out; + gaiaPolygonPtr pg; + GEOSGeometry *g; + GEOSGeometry *g_start; + GEOSGeometry *g_end; + GEOSCoordSequence *cs; + const GEOSCoordSequence *in_cs; + GEOSGeometry *segm; + double length; + double total = 0.0; + double start; + double end; + int iv; + int i_start = -1; + int i_end = -1; + int points; + double x; + double y; + double z; + double m; + unsigned int dims; + GEOSContextHandle_t handle = NULL; + if (cache != NULL) + { + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + } + if (!geom) + return NULL; + +/* checking if a single Linestring has been passed */ + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 0 && lns == 1 && pgs == 0) + ; + else + return NULL; + + if (start_fraction < 0.0) + start_fraction = 0.0; + if (start_fraction > 1.0) + start_fraction = 1.0; + if (end_fraction < 0.0) + end_fraction = 0.0; + if (end_fraction > 1.0) + end_fraction = 1.0; + if (start_fraction >= end_fraction) + return NULL; + if (cache != NULL) + { + g = gaiaToGeos_r (cache, geom); + if (GEOSLength_r (handle, g, &length)) + { + start = length * start_fraction; + end = length * end_fraction; + } + else + { + GEOSGeom_destroy_r (handle, g); + return NULL; + } + g_start = GEOSInterpolate_r (handle, g, start); + g_end = GEOSInterpolate_r (handle, g, end); + GEOSGeom_destroy_r (handle, g); + } + else + { + g = gaiaToGeos (geom); + if (GEOSLength (g, &length)) + { + start = length * start_fraction; + end = length * end_fraction; + } + else + { + GEOSGeom_destroy (g); + return NULL; + } + g_start = GEOSInterpolate (g, start); + g_end = GEOSInterpolate (g, end); + GEOSGeom_destroy (g); + } + if (!g_start || !g_end) + return NULL; + +/* identifying first and last valid vertex */ + ln = geom->FirstLinestring; + for (iv = 0; iv < ln->Points; iv++) + { + + double x0; + double y0; + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + }; + + if (iv > 0) + { + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 2, 2); + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + segm = GEOSGeom_createLineString_r (handle, cs); + GEOSLength_r (handle, segm, &length); + total += length; + GEOSGeom_destroy_r (handle, segm); + } + else + { + cs = GEOSCoordSeq_create (2, 2); + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + segm = GEOSGeom_createLineString (cs); + GEOSLength (segm, &length); + total += length; + GEOSGeom_destroy (segm); + } + if (total > start && i_start < 0) + i_start = iv; + if (total < end) + i_end = iv; + } + x0 = x; + y0 = y; + } + if (i_start < 0 || i_end < 0) + { + i_start = -1; + i_end = -1; + points = 2; + } + else + points = i_end - i_start + 3; + +/* creating the output geometry */ + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + result = gaiaAllocGeomCollXYZ (); + break; + case GAIA_XY_M: + result = gaiaAllocGeomCollXYM (); + break; + case GAIA_XY_Z_M: + result = gaiaAllocGeomCollXYZM (); + break; + default: + result = gaiaAllocGeomColl (); + break; + }; + result->Srid = geom->Srid; + out = gaiaAddLinestringToGeomColl (result, points); + +/* start vertex */ + points = 0; + if (handle) + { + in_cs = GEOSGeom_getCoordSeq_r (handle, g_start); + GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); + GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); + GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z); + m = 0.0; + } + else + { + GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); + GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); + z = 0.0; + m = 0.0; + } + GEOSGeom_destroy_r (handle, g_start); + } + else + { + in_cs = GEOSGeom_getCoordSeq (g_start); + GEOSCoordSeq_getDimensions (in_cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (in_cs, 0, &x); + GEOSCoordSeq_getY (in_cs, 0, &y); + GEOSCoordSeq_getZ (in_cs, 0, &z); + m = 0.0; + } + else + { + GEOSCoordSeq_getX (in_cs, 0, &x); + GEOSCoordSeq_getY (in_cs, 0, &y); + z = 0.0; + m = 0.0; + } + GEOSGeom_destroy (g_start); + } + switch (out->DimensionModel) + { + case GAIA_XY_Z: + gaiaSetPointXYZ (out->Coords, points, x, y, z); + break; + case GAIA_XY_M: + gaiaSetPointXYM (out->Coords, points, x, y, 0.0); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); + break; + default: + gaiaSetPoint (out->Coords, points, x, y); + break; + }; + points++; + + if (i_start < 0 || i_end < 0) + ; + else + { + for (iv = i_start; iv <= i_end; iv++) + { + z = 0.0; + m = 0.0; + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + }; + switch (out->DimensionModel) + { + case GAIA_XY_Z: + gaiaSetPointXYZ (out->Coords, points, x, y, z); + break; + case GAIA_XY_M: + gaiaSetPointXYM (out->Coords, points, x, y, 0.0); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); + break; + default: + gaiaSetPoint (out->Coords, points, x, y); + break; + }; + points++; + } + } + +/* end vertex */ + if (handle != NULL) + { + in_cs = GEOSGeom_getCoordSeq_r (handle, g_end); + GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); + GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); + GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z); + m = 0.0; + } + else + { + GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); + GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); + z = 0.0; + m = 0.0; + } + GEOSGeom_destroy_r (handle, g_end); + } + else + { + in_cs = GEOSGeom_getCoordSeq (g_end); + GEOSCoordSeq_getDimensions (in_cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (in_cs, 0, &x); + GEOSCoordSeq_getY (in_cs, 0, &y); + GEOSCoordSeq_getZ (in_cs, 0, &z); + m = 0.0; + } + else + { + GEOSCoordSeq_getX (in_cs, 0, &x); + GEOSCoordSeq_getY (in_cs, 0, &y); + z = 0.0; + m = 0.0; + } + GEOSGeom_destroy (g_end); + } + switch (out->DimensionModel) + { + case GAIA_XY_Z: + gaiaSetPointXYZ (out->Coords, points, x, y, z); + break; + case GAIA_XY_M: + gaiaSetPointXYM (out->Coords, points, x, y, 0.0); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); + break; + default: + gaiaSetPoint (out->Coords, points, x, y); + break; + }; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction, + double end_fraction) +{ + gaiaResetGeosMsg (); + return gaiaLineSubstringCommon (NULL, geom, start_fraction, end_fraction); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineSubstring_r (const void *p_cache, gaiaGeomCollPtr geom, + double start_fraction, double end_fraction) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + return gaiaLineSubstringCommon (cache, geom, start_fraction, end_fraction); +} + +static GEOSGeometry * +buildGeosPoints (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia) +{ +/* converting a GAIA Geometry into a GEOS Geometry of POINTS */ + int pts = 0; + unsigned int dims; + int iv; + int ib; + int nItem; + double x; + double y; + double z; + double m; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + GEOSGeometry *geos; + GEOSGeometry *geos_item; + GEOSGeometry **geos_coll; + GEOSCoordSequence *cs; + if (!gaia) + return NULL; + pt = gaia->FirstPoint; + while (pt) + { + /* counting how many POINTs are there */ + pts++; + pt = pt->Next; + } + ln = gaia->FirstLinestring; + while (ln) + { + /* counting how many POINTs are there */ + pts += ln->Points; + ln = ln->Next; + } + pg = gaia->FirstPolygon; + while (pg) + { + /* counting how many POINTs are there */ + rng = pg->Exterior; + pts += rng->Points - 1; /* exterior ring */ + for (ib = 0; ib < pg->NumInteriors; ib++) + { + /* interior ring */ + rng = pg->Interiors + ib; + pts += rng->Points - 1; + } + pg = pg->Next; + } + if (pts == 0) + return NULL; + switch (gaia->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + dims = 3; + break; + default: + dims = 2; + break; + }; + nItem = 0; + geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); + pt = gaia->FirstPoint; + while (pt) + { + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 1, dims); + switch (pt->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); + break; + default: + GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); + GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); + break; + }; + geos_item = GEOSGeom_createPoint_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (1, dims); + switch (pt->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + GEOSCoordSeq_setZ (cs, 0, pt->Z); + break; + default: + GEOSCoordSeq_setX (cs, 0, pt->X); + GEOSCoordSeq_setY (cs, 0, pt->Y); + break; + }; + geos_item = GEOSGeom_createPoint (cs); + } + *(geos_coll + nItem++) = geos_item; + pt = pt->Next; + } + ln = gaia->FirstLinestring; + while (ln) + { + for (iv = 0; iv < ln->Points; iv++) + { + z = 0.0; + m = 0.0; + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + }; + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + GEOSCoordSeq_setZ_r (handle, cs, 0, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + } + geos_item = GEOSGeom_createPoint_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + GEOSCoordSeq_setZ (cs, 0, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + } + geos_item = GEOSGeom_createPoint (cs); + } + *(geos_coll + nItem++) = geos_item; + } + ln = ln->Next; + } + pg = gaia->FirstPolygon; + while (pg) + { + rng = pg->Exterior; + for (iv = 1; iv < rng->Points; iv++) + { + /* exterior ring */ + z = 0.0; + m = 0.0; + switch (rng->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (rng->Coords, iv, &x, &y); + break; + }; + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + GEOSCoordSeq_setZ_r (handle, cs, 0, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + } + geos_item = GEOSGeom_createPoint_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + GEOSCoordSeq_setZ (cs, 0, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + } + geos_item = GEOSGeom_createPoint (cs); + } + *(geos_coll + nItem++) = geos_item; + } + for (ib = 0; ib < pg->NumInteriors; ib++) + { + /* interior ring */ + rng = pg->Interiors + ib; + for (iv = 1; iv < rng->Points; iv++) + { + /* exterior ring */ + z = 0.0; + m = 0.0; + switch (rng->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (rng->Coords, iv, &x, &y); + break; + }; + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + GEOSCoordSeq_setZ_r (handle, cs, 0, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x); + GEOSCoordSeq_setY_r (handle, cs, 0, y); + } + geos_item = GEOSGeom_createPoint_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (1, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + GEOSCoordSeq_setZ (cs, 0, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x); + GEOSCoordSeq_setY (cs, 0, y); + } + geos_item = GEOSGeom_createPoint (cs); + } + *(geos_coll + nItem++) = geos_item; + } + } + pg = pg->Next; + } + if (handle != NULL) + { + geos = + GEOSGeom_createCollection_r (handle, GEOS_MULTIPOINT, geos_coll, + pts); + free (geos_coll); + GEOSSetSRID_r (handle, geos, gaia->Srid); + } + else + { + geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts); + free (geos_coll); + GEOSSetSRID (geos, gaia->Srid); + } + return geos; +} + +static GEOSGeometry * +buildGeosSegments (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia) +{ +/* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */ + int segms = 0; + unsigned int dims; + int iv; + int ib; + int nItem; + double x; + double y; + double z; + double m; + double x0; + double y0; + double z0; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + GEOSGeometry *geos; + GEOSGeometry *geos_item; + GEOSGeometry **geos_coll; + GEOSCoordSequence *cs; + if (!gaia) + return NULL; + ln = gaia->FirstLinestring; + while (ln) + { + /* counting how many SEGMENTs are there */ + segms += ln->Points - 1; + ln = ln->Next; + } + pg = gaia->FirstPolygon; + while (pg) + { + /* counting how many SEGMENTs are there */ + rng = pg->Exterior; + segms += rng->Points - 1; /* exterior ring */ + for (ib = 0; ib < pg->NumInteriors; ib++) + { + /* interior ring */ + rng = pg->Interiors + ib; + segms += rng->Points - 1; + } + pg = pg->Next; + } + if (segms == 0) + return NULL; + switch (gaia->DimensionModel) + { + case GAIA_XY_Z: + case GAIA_XY_Z_M: + dims = 3; + break; + default: + dims = 2; + break; + }; + nItem = 0; + geos_coll = malloc (sizeof (GEOSGeometry *) * (segms)); + ln = gaia->FirstLinestring; + while (ln) + { + for (iv = 0; iv < ln->Points; iv++) + { + z = 0.0; + m = 0.0; + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (ln->Coords, iv, &x, &y); + break; + }; + if (iv > 0) + { + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setZ_r (handle, cs, 0, z0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + GEOSCoordSeq_setZ_r (handle, cs, 1, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + } + geos_item = + GEOSGeom_createLineString_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setZ (cs, 0, z0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + GEOSCoordSeq_setZ (cs, 1, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + } + geos_item = GEOSGeom_createLineString (cs); + } + *(geos_coll + nItem++) = geos_item; + } + x0 = x; + y0 = y; + z0 = z; + } + ln = ln->Next; + } + pg = gaia->FirstPolygon; + while (pg) + { + rng = pg->Exterior; + for (iv = 0; iv < rng->Points; iv++) + { + /* exterior ring */ + z = 0.0; + m = 0.0; + switch (rng->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (rng->Coords, iv, &x, &y); + break; + }; + if (iv > 0) + { + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setZ_r (handle, cs, 0, z0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + GEOSCoordSeq_setZ_r (handle, cs, 1, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + } + geos_item = + GEOSGeom_createLineString_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setZ (cs, 0, z0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + GEOSCoordSeq_setZ (cs, 1, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + } + geos_item = GEOSGeom_createLineString (cs); + } + *(geos_coll + nItem++) = geos_item; + } + x0 = x; + y0 = y; + z0 = z; + } + for (ib = 0; ib < pg->NumInteriors; ib++) + { + /* interior ring */ + rng = pg->Interiors + ib; + for (iv = 0; iv < rng->Points; iv++) + { + /* exterior ring */ + z = 0.0; + m = 0.0; + switch (rng->DimensionModel) + { + case GAIA_XY_Z: + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + break; + case GAIA_XY_M: + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + break; + case GAIA_XY_Z_M: + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + break; + default: + gaiaGetPoint (rng->Coords, iv, &x, &y); + break; + }; + if (iv > 0) + { + if (handle != NULL) + { + cs = GEOSCoordSeq_create_r (handle, 2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setZ_r (handle, cs, 0, z0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + GEOSCoordSeq_setZ_r (handle, cs, 1, z); + } + else + { + GEOSCoordSeq_setX_r (handle, cs, 0, x0); + GEOSCoordSeq_setY_r (handle, cs, 0, y0); + GEOSCoordSeq_setX_r (handle, cs, 1, x); + GEOSCoordSeq_setY_r (handle, cs, 1, y); + } + geos_item = + GEOSGeom_createLineString_r (handle, cs); + } + else + { + cs = GEOSCoordSeq_create (2, dims); + if (dims == 3) + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setZ (cs, 0, z0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + GEOSCoordSeq_setZ (cs, 1, z); + } + else + { + GEOSCoordSeq_setX (cs, 0, x0); + GEOSCoordSeq_setY (cs, 0, y0); + GEOSCoordSeq_setX (cs, 1, x); + GEOSCoordSeq_setY (cs, 1, y); + } + geos_item = GEOSGeom_createLineString (cs); + } + *(geos_coll + nItem++) = geos_item; + } + x0 = x; + y0 = y; + z0 = z; + } + } + pg = pg->Next; + } + if (handle != NULL) + { + geos = + GEOSGeom_createCollection_r (handle, GEOS_MULTILINESTRING, + geos_coll, segms); + free (geos_coll); + GEOSSetSRID_r (handle, geos, gaia->Srid); + } + else + { + geos = + GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll, + segms); + free (geos_coll); + GEOSSetSRID (geos, gaia->Srid); + } + return geos; +} + +static gaiaGeomCollPtr +gaiaShortestLineCommon (struct splite_internal_cache *cache, + gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* attempts to compute the the shortest line between two geometries */ + GEOSGeometry *g1_points; + GEOSGeometry *g1_segments; + const GEOSGeometry *g1_item; + GEOSGeometry *g2_points; + GEOSGeometry *g2_segments; + const GEOSGeometry *g2_item; + const GEOSCoordSequence *cs; + GEOSGeometry *g_pt; + gaiaGeomCollPtr result; + gaiaLinestringPtr ln; + int nItems1; + int nItems2; + int it1; + int it2; + unsigned int dims; + double x_ini; + double y_ini; + double z_ini; + double x_fin; + double y_fin; + double z_fin; + double dist; + double min_dist = DBL_MAX; + double projection; + GEOSContextHandle_t handle = NULL; + if (cache != NULL) + { + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + } + if (!geom1 || !geom2) + return NULL; + + g1_points = buildGeosPoints (handle, geom1); + g1_segments = buildGeosSegments (handle, geom1); + g2_points = buildGeosPoints (handle, geom2); + g2_segments = buildGeosSegments (handle, geom2); + + if (g1_points && g2_points) + { + /* computing distances between POINTs */ + if (handle != NULL) + { + nItems1 = GEOSGetNumGeometries_r (handle, g1_points); + nItems2 = GEOSGetNumGeometries_r (handle, g2_points); + } + else + { + nItems1 = GEOSGetNumGeometries (g1_points); + nItems2 = GEOSGetNumGeometries (g2_points); + } + for (it1 = 0; it1 < nItems1; it1++) + { + if (handle != NULL) + g1_item = GEOSGetGeometryN_r (handle, g1_points, it1); + else + g1_item = GEOSGetGeometryN (g1_points, it1); + for (it2 = 0; it2 < nItems2; it2++) + { + int distret; + if (handle != NULL) + { + g2_item = + GEOSGetGeometryN_r (handle, g2_points, it2); + distret = + GEOSDistance_r (handle, g1_item, g2_item, + &dist); + } + else + { + g2_item = GEOSGetGeometryN (g2_points, it2); + distret = GEOSDistance (g1_item, g2_item, &dist); + } + if (distret) + { + if (dist < min_dist) + { + /* saving min-dist points */ + min_dist = dist; + if (handle != NULL) + { + cs = GEOSGeom_getCoordSeq_r (handle, + g1_item); + GEOSCoordSeq_getDimensions_r (handle, + cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, cs, + 0, &x_ini); + GEOSCoordSeq_getY_r (handle, cs, + 0, &y_ini); + GEOSCoordSeq_getZ_r (handle, cs, + 0, &z_ini); + } + else + { + GEOSCoordSeq_getX_r (handle, cs, + 0, &x_ini); + GEOSCoordSeq_getY_r (handle, cs, + 0, &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq_r (handle, + g2_item); + GEOSCoordSeq_getDimensions_r (handle, + cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, cs, + 0, &x_fin); + GEOSCoordSeq_getY_r (handle, cs, + 0, &y_fin); + GEOSCoordSeq_getZ_r (handle, cs, + 0, &z_fin); + } + else + { + GEOSCoordSeq_getX_r (handle, cs, + 0, &x_fin); + GEOSCoordSeq_getY_r (handle, cs, + 0, &y_fin); + z_fin = 0.0; + } + } + else + { + cs = GEOSGeom_getCoordSeq (g1_item); + GEOSCoordSeq_getDimensions (cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, &x_ini); + GEOSCoordSeq_getY (cs, 0, &y_ini); + GEOSCoordSeq_getZ (cs, 0, &z_ini); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x_ini); + GEOSCoordSeq_getY (cs, 0, &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq (g2_item); + GEOSCoordSeq_getDimensions (cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, &x_fin); + GEOSCoordSeq_getY (cs, 0, &y_fin); + GEOSCoordSeq_getZ (cs, 0, &z_fin); + } + else + { + GEOSCoordSeq_getX (cs, 0, &x_fin); + GEOSCoordSeq_getY (cs, 0, &y_fin); + z_fin = 0.0; + } + } + } + } + } + } + } + + if (g1_points && g2_segments) + { + /* computing distances between POINTs (g1) and SEGMENTs (g2) */ + if (handle != NULL) + { + nItems1 = GEOSGetNumGeometries_r (handle, g1_points); + nItems2 = GEOSGetNumGeometries_r (handle, g2_segments); + } + else + { + nItems1 = GEOSGetNumGeometries (g1_points); + nItems2 = GEOSGetNumGeometries (g2_segments); + } + for (it1 = 0; it1 < nItems1; it1++) + { + if (handle != NULL) + g1_item = GEOSGetGeometryN_r (handle, g1_points, it1); + else + g1_item = GEOSGetGeometryN (g1_points, it1); + for (it2 = 0; it2 < nItems2; it2++) + { + int distret; + if (handle != NULL) + { + g2_item = + GEOSGetGeometryN_r (handle, g2_segments, it2); + distret = + GEOSDistance_r (handle, g1_item, g2_item, + &dist); + } + else + { + g2_item = GEOSGetGeometryN (g2_segments, it2); + distret = GEOSDistance (g1_item, g2_item, &dist); + } + if (distret) + { + if (dist < min_dist) + { + /* saving min-dist points */ + if (handle != NULL) + { + projection = + GEOSProject_r (handle, g2_item, + g1_item); + g_pt = + GEOSInterpolate_r (handle, g2_item, + projection); + if (g_pt) + { + min_dist = dist; + cs = GEOSGeom_getCoordSeq_r + (handle, g1_item); + GEOSCoordSeq_getDimensions_r + (handle, cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_ini); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_ini); + GEOSCoordSeq_getZ_r (handle, + cs, 0, + &z_ini); + } + else + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_ini); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq_r + (handle, g_pt); + GEOSCoordSeq_getDimensions_r + (handle, cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_fin); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_fin); + GEOSCoordSeq_getZ_r (handle, + cs, 0, + &z_fin); + } + else + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_fin); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_fin); + z_fin = 0.0; + } + GEOSGeom_destroy_r (handle, g_pt); + } + } + else + { + projection = + GEOSProject (g2_item, g1_item); + g_pt = + GEOSInterpolate (g2_item, + projection); + if (g_pt) + { + min_dist = dist; + cs = GEOSGeom_getCoordSeq + (g1_item); + GEOSCoordSeq_getDimensions (cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, + &x_ini); + GEOSCoordSeq_getY (cs, 0, + &y_ini); + GEOSCoordSeq_getZ (cs, 0, + &z_ini); + } + else + { + GEOSCoordSeq_getX (cs, 0, + &x_ini); + GEOSCoordSeq_getY (cs, 0, + &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq (g_pt); + GEOSCoordSeq_getDimensions (cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, + &x_fin); + GEOSCoordSeq_getY (cs, 0, + &y_fin); + GEOSCoordSeq_getZ (cs, 0, + &z_fin); + } + else + { + GEOSCoordSeq_getX (cs, 0, + &x_fin); + GEOSCoordSeq_getY (cs, 0, + &y_fin); + z_fin = 0.0; + } + GEOSGeom_destroy (g_pt); + } + } + } + } + } + } + } + + if (g1_segments && g2_points) + { + /* computing distances between SEGMENTs (g1) and POINTs (g2) */ + if (handle != NULL) + { + nItems1 = GEOSGetNumGeometries_r (handle, g1_segments); + nItems2 = GEOSGetNumGeometries_r (handle, g2_points); + } + else + { + nItems1 = GEOSGetNumGeometries (g1_segments); + nItems2 = GEOSGetNumGeometries (g2_points); + } + for (it1 = 0; it1 < nItems1; it1++) + { + if (handle != NULL) + g1_item = GEOSGetGeometryN_r (handle, g1_segments, it1); + else + g1_item = GEOSGetGeometryN (g1_segments, it1); + for (it2 = 0; it2 < nItems2; it2++) + { + int distret; + if (handle != NULL) + { + g2_item = + GEOSGetGeometryN_r (handle, g2_points, it2); + distret = + GEOSDistance_r (handle, g1_item, g2_item, + &dist); + } + else + { + g2_item = GEOSGetGeometryN (g2_points, it2); + distret = GEOSDistance (g1_item, g2_item, &dist); + } + if (distret) + { + if (dist < min_dist) + { + /* saving min-dist points */ + if (handle != NULL) + { + projection = + GEOSProject_r (handle, g1_item, + g2_item); + g_pt = + GEOSInterpolate_r (handle, g1_item, + projection); + if (g_pt) + { + min_dist = dist; + cs = GEOSGeom_getCoordSeq_r + (handle, g_pt); + GEOSCoordSeq_getDimensions_r + (handle, cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_ini); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_ini); + GEOSCoordSeq_getZ_r (handle, + cs, 0, + &z_ini); + } + else + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_ini); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq_r + (handle, g2_item); + GEOSCoordSeq_getDimensions_r + (handle, cs, &dims); + if (dims == 3) + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_fin); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_fin); + GEOSCoordSeq_getZ_r (handle, + cs, 0, + &z_fin); + } + else + { + GEOSCoordSeq_getX_r (handle, + cs, 0, + &x_fin); + GEOSCoordSeq_getY_r (handle, + cs, 0, + &y_fin); + z_fin = 0.0; + } + GEOSGeom_destroy_r (handle, g_pt); + } + } + else + { + projection = + GEOSProject (g1_item, g2_item); + g_pt = + GEOSInterpolate (g1_item, + projection); + if (g_pt) + { + min_dist = dist; + cs = GEOSGeom_getCoordSeq (g_pt); + GEOSCoordSeq_getDimensions (cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, + &x_ini); + GEOSCoordSeq_getY (cs, 0, + &y_ini); + GEOSCoordSeq_getZ (cs, 0, + &z_ini); + } + else + { + GEOSCoordSeq_getX (cs, 0, + &x_ini); + GEOSCoordSeq_getY (cs, 0, + &y_ini); + z_ini = 0.0; + } + cs = GEOSGeom_getCoordSeq + (g2_item); + GEOSCoordSeq_getDimensions (cs, + &dims); + if (dims == 3) + { + GEOSCoordSeq_getX (cs, 0, + &x_fin); + GEOSCoordSeq_getY (cs, 0, + &y_fin); + GEOSCoordSeq_getZ (cs, 0, + &z_fin); + } + else + { + GEOSCoordSeq_getX (cs, 0, + &x_fin); + GEOSCoordSeq_getY (cs, 0, + &y_fin); + z_fin = 0.0; + } + GEOSGeom_destroy (g_pt); + } + } + } + } + } + } + } + if (handle != NULL) + { + if (g1_points) + GEOSGeom_destroy_r (handle, g1_points); + if (g1_segments) + GEOSGeom_destroy_r (handle, g1_segments); + if (g2_points) + GEOSGeom_destroy_r (handle, g2_points); + if (g2_segments) + GEOSGeom_destroy_r (handle, g2_segments); + } + else + { + if (g1_points) + GEOSGeom_destroy (g1_points); + if (g1_segments) + GEOSGeom_destroy (g1_segments); + if (g2_points) + GEOSGeom_destroy (g2_points); + if (g2_segments) + GEOSGeom_destroy (g2_segments); + } + if (min_dist == DBL_MAX || min_dist <= 0.0) + return NULL; + +/* building the shortest line */ + switch (geom1->DimensionModel) + { + case GAIA_XY_Z: + result = gaiaAllocGeomCollXYZ (); + break; + case GAIA_XY_M: + result = gaiaAllocGeomCollXYM (); + break; + case GAIA_XY_Z_M: + result = gaiaAllocGeomCollXYZM (); + break; + default: + result = gaiaAllocGeomColl (); + break; + }; + result->Srid = geom1->Srid; + ln = gaiaAddLinestringToGeomColl (result, 2); + switch (ln->DimensionModel) + { + case GAIA_XY_Z: + gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini); + gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin); + break; + case GAIA_XY_M: + gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0); + gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0); + break; + case GAIA_XY_Z_M: + gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0); + gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0); + break; + default: + gaiaSetPoint (ln->Coords, 0, x_ini, y_ini); + gaiaSetPoint (ln->Coords, 1, x_fin, y_fin); + break; + }; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ + gaiaResetGeosMsg (); + return gaiaShortestLineCommon (NULL, geom1, geom2); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaShortestLine_r (const void *p_cache, gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + return gaiaShortestLineCommon (cache, geom1, geom2); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance) +{ +/* attempts to "snap" geom1 on geom2 using the given tolerance */ + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSGeometry *g3; + gaiaGeomCollPtr result; + gaiaResetGeosMsg (); + if (!geom1 || !geom2) + return NULL; + + g1 = gaiaToGeos (geom1); + g2 = gaiaToGeos (geom2); + g3 = GEOSSnap (g1, g2, tolerance); + GEOSGeom_destroy (g1); + GEOSGeom_destroy (g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g3); + else if (geom1->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g3); + else + result = gaiaFromGeos_XY (g3); + GEOSGeom_destroy (g3); + if (result == NULL) + return NULL; + result->Srid = geom1->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaSnap_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, + double tolerance) +{ +/* attempts to "snap" geom1 on geom2 using the given tolerance */ + GEOSGeometry *g1; + GEOSGeometry *g2; + GEOSGeometry *g3; + gaiaGeomCollPtr result; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom1 || !geom2) + return NULL; + + g1 = gaiaToGeos_r (cache, geom1); + g2 = gaiaToGeos_r (cache, geom2); + g3 = GEOSSnap_r (handle, g1, g2, tolerance); + GEOSGeom_destroy_r (handle, g1); + GEOSGeom_destroy_r (handle, g2); + if (!g3) + return NULL; + if (geom1->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g3); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g3); + else + result = gaiaFromGeos_XY_r (cache, g3); + GEOSGeom_destroy_r (handle, g3); + if (result == NULL) + return NULL; + result->Srid = geom1->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineMerge (gaiaGeomCollPtr geom) +{ +/* attempts to reassemble lines from a collection of sparse fragments */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + + g1 = gaiaToGeos (geom); + g2 = GEOSLineMerge (g1); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g2); + else + result = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLineMerge_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* attempts to reassemble lines from a collection of sparse fragments */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSLineMerge_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g2); + else + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaUnaryUnion (gaiaGeomCollPtr geom) +{ +/* Unary Union (single Collection) */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + if (gaiaIsToxic (geom)) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSUnaryUnion (g1); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g2); + else + result = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaUnaryUnion_r (const void *p_cache, gaiaGeomCollPtr geom) +{ +/* Unary Union (single Collection) */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + if (gaiaIsToxic_r (cache, geom)) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSUnaryUnion_r (handle, g1); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g2); + else + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + return result; +} + +static void +rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node) +{ +/* rotating a Ring, so to ensure that Start/End points match the node */ + int io = 0; + int iv; + int copy = 0; + int base_idx = -1; + double x; + double y; + double z; + double m; + gaiaLinestringPtr new_ln = NULL; + + if (ln->DimensionModel == GAIA_XY_Z) + new_ln = gaiaAllocLinestringXYZ (ln->Points); + else if (ln->DimensionModel == GAIA_XY_M) + new_ln = gaiaAllocLinestringXYM (ln->Points); + else if (ln->DimensionModel == GAIA_XY_Z_M) + new_ln = gaiaAllocLinestringXYZM (ln->Points); + else + new_ln = gaiaAllocLinestring (ln->Points); + +/* first pass */ + for (iv = 0; iv < ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (!copy) + { + if (ln->DimensionModel == GAIA_XY_Z + || ln->DimensionModel == GAIA_XY_Z_M) + { + if (node->X == x && node->Y == y && node->Z == z) + { + base_idx = iv; + copy = 1; + } + } + else if (node->X == x && node->Y == y) + { + base_idx = iv; + copy = 1; + } + } + if (copy) + { + /* copying points */ + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (new_ln->Coords, io, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + } + else + { + gaiaSetPoint (new_ln->Coords, io, x, y); + } + io++; + } + } + if (base_idx <= 0) + { + gaiaFreeLinestring (new_ln); + return; + } + +/* second pass */ + for (iv = 1; iv <= base_idx; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (new_ln->Coords, io, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + } + else + { + gaiaSetPoint (new_ln->Coords, io, x, y); + } + io++; + } + +/* copying back */ + for (iv = 0; iv < new_ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (new_ln->Coords, iv, &x, &y); + } + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (ln->Coords, iv, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (ln->Coords, iv, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); + } + else + { + gaiaSetPoint (ln->Coords, iv, x, y); + } + } + gaiaFreeLinestring (new_ln); +} + +static void +extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start, + int i_end) +{ +/* extracting s SubLine */ + int iv; + int io = 0; + int pts = i_end - i_start + 1; + gaiaLinestringPtr new_ln = NULL; + double x; + double y; + double z; + double m; + + new_ln = gaiaAddLinestringToGeomColl (result, pts); + + for (iv = i_start; iv <= i_end; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (new_ln->Coords, io, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); + } + else + { + gaiaSetPoint (new_ln->Coords, io, x, y); + } + io++; + } +} + +static void +cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base, + gaiaGeomCollPtr result) +{ +/* attempts to cut a single Line accordingly to given nodes */ + int closed = 0; + int match = 0; + int iv; + int i_start; + double x; + double y; + double z; + double m; + gaiaPointPtr pt; + gaiaPointPtr node = NULL; + + if (gaiaIsClosed (ln)) + closed = 1; +/* pre-check */ + for (iv = 0; iv < ln->Points; iv++) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + pt = pt_base; + while (pt) + { + if (ln->DimensionModel == GAIA_XY_Z + || ln->DimensionModel == GAIA_XY_Z_M) + { + if (pt->X == x && pt->Y == y && pt->Z == z) + { + node = pt; + match++; + } + } + else if (pt->X == x && pt->Y == y) + { + node = pt; + match++; + } + pt = pt->Next; + } + } + + if (closed && node) + rotateRingBeforeCut (ln, node); + + i_start = 0; + for (iv = 1; iv < ln->Points - 1; iv++) + { + /* identifying sub-linestrings */ + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + match = 0; + pt = pt_base; + while (pt) + { + if (ln->DimensionModel == GAIA_XY_Z + || ln->DimensionModel == GAIA_XY_Z_M) + { + if (pt->X == x && pt->Y == y && pt->Z == z) + { + match = 1; + break; + } + } + else if (pt->X == x && pt->Y == y) + { + match = 1; + break; + } + pt = pt->Next; + } + if (match) + { + /* cutting the line */ + extractSubLine (result, ln, i_start, iv); + i_start = iv; + } + } + if (i_start != 0 && i_start != ln->Points - 1) + { + /* extracting the last SubLine */ + extractSubLine (result, ln, i_start, ln->Points - 1); + } + else + { + /* cloning the untouched Line */ + extractSubLine (result, ln, 0, ln->Points - 1); + } +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) +{ +/* attempts to cut lines accordingly to nodes */ + int pts1 = 0; + int lns1 = 0; + int pgs1 = 0; + int pts2 = 0; + int lns2 = 0; + int pgs2 = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaGeomCollPtr result = NULL; + + if (!geom1) + return NULL; + if (!geom2) + return NULL; + +/* both Geometryes should have identical Dimensions */ + if (geom1->DimensionModel != geom2->DimensionModel) + return NULL; + + pt = geom1->FirstPoint; + while (pt) + { + pts1++; + pt = pt->Next; + } + ln = geom1->FirstLinestring; + while (ln) + { + lns1++; + ln = ln->Next; + } + pg = geom1->FirstPolygon; + while (pg) + { + pgs1++; + pg = pg->Next; + } + pt = geom2->FirstPoint; + while (pt) + { + pts2++; + pt = pt->Next; + } + ln = geom2->FirstLinestring; + while (ln) + { + lns2++; + ln = ln->Next; + } + pg = geom2->FirstPolygon; + while (pg) + { + pgs2++; + pg = pg->Next; + } + +/* the first Geometry is expected to contain one or more Linestring(s) */ + if (pts1 == 0 && lns1 > 0 && pgs1 == 0) + ; + else + return NULL; +/* the second Geometry is expected to contain one or more Point(s) */ + if (pts2 > 0 && lns2 == 0 && pgs2 == 0) + ; + else + return NULL; + +/* attempting to cut Lines accordingly to Nodes */ + if (geom1->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (geom1->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (geom1->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + ln = geom1->FirstLinestring; + while (ln) + { + cutLineAtNodes (ln, geom2->FirstPoint, result); + ln = ln->Next; + } + if (result->FirstLinestring == NULL) + { + gaiaFreeGeomColl (result); + return NULL; + } + result->Srid = geom1->Srid; + return result; +} + +#ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, + int only_edges) +{ +/* Delaunay Triangulation */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g2); + else + result = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + if (only_edges) + result->DeclaredType = GAIA_MULTILINESTRING; + else + result->DeclaredType = GAIA_MULTIPOLYGON; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaDelaunayTriangulation_r (const void *p_cache, gaiaGeomCollPtr geom, + double tolerance, int only_edges) +{ +/* Delaunay Triangulation */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, only_edges); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g2); + else + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (result == NULL) + return NULL; + result->Srid = geom->Srid; + if (only_edges) + result->DeclaredType = GAIA_MULTILINESTRING; + else + result->DeclaredType = GAIA_MULTIPOLYGON; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, + double tolerance, int only_edges) +{ +/* Voronoj Diagram */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaPolygonPtr pg; + int pgs = 0; + int errs = 0; + void *voronoj; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g2); + else + result = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (result == NULL) + return NULL; + pg = result->FirstPolygon; + while (pg) + { + /* counting how many triangles are in Delaunay */ + if (delaunay_triangle_check (pg)) + pgs++; + else + errs++; + pg = pg->Next; + } + if (pgs == 0 || errs) + { + gaiaFreeGeomColl (result); + return NULL; + } + +/* building the Voronoj Diagram from Delaunay */ + voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size); + gaiaFreeGeomColl (result); + +/* creating the Geometry representing Voronoj */ + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result = voronoj_export (voronoj, result, only_edges); + voronoj_free (voronoj); + + result->Srid = geom->Srid; + if (only_edges) + result->DeclaredType = GAIA_MULTILINESTRING; + else + result->DeclaredType = GAIA_MULTIPOLYGON; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaVoronojDiagram_r (const void *p_cache, gaiaGeomCollPtr geom, + double extra_frame_size, double tolerance, int only_edges) +{ +/* Voronoj Diagram */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaPolygonPtr pg; + int pgs = 0; + int errs = 0; + void *voronoj; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g2); + else + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (result == NULL) + return NULL; + pg = result->FirstPolygon; + while (pg) + { + /* counting how many triangles are in Delaunay */ + if (delaunay_triangle_check (pg)) + pgs++; + else + errs++; + pg = pg->Next; + } + if (pgs == 0 || errs) + { + gaiaFreeGeomColl (result); + return NULL; + } + +/* building the Voronoj Diagram from Delaunay */ + voronoj = + voronoj_build_r (cache, pgs, result->FirstPolygon, extra_frame_size); + gaiaFreeGeomColl (result); + +/* creating the Geometry representing Voronoj */ + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result = voronoj_export_r (cache, voronoj, result, only_edges); + voronoj_free (voronoj); + + result->Srid = geom->Srid; + if (only_edges) + result->DeclaredType = GAIA_MULTILINESTRING; + else + result->DeclaredType = GAIA_MULTIPOLYGON; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, + int allow_holes) +{ +/* Concave Hull */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaGeomCollPtr concave_hull; + gaiaPolygonPtr pg; + int pgs = 0; + int errs = 0; + gaiaResetGeosMsg (); + if (!geom) + return NULL; + g1 = gaiaToGeos (geom); + g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); + GEOSGeom_destroy (g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ (g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM (g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM (g2); + else + result = gaiaFromGeos_XY (g2); + GEOSGeom_destroy (g2); + if (result == NULL) + return NULL; + pg = result->FirstPolygon; + while (pg) + { + /* counting how many triangles are in Delaunay */ + if (delaunay_triangle_check (pg)) + pgs++; + else + errs++; + pg = pg->Next; + } + if (pgs == 0 || errs) + { + gaiaFreeGeomColl (result); + return NULL; + } + +/* building the Concave Hull from Delaunay */ + concave_hull = + concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor, + allow_holes); + gaiaFreeGeomColl (result); + if (!concave_hull) + return NULL; + result = concave_hull; + + result->Srid = geom->Srid; + return result; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaConcaveHull_r (const void *p_cache, gaiaGeomCollPtr geom, double factor, + double tolerance, int allow_holes) +{ +/* Concave Hull */ + GEOSGeometry *g1; + GEOSGeometry *g2; + gaiaGeomCollPtr result; + gaiaGeomCollPtr concave_hull; + gaiaPolygonPtr pg; + int pgs = 0; + int errs = 0; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + GEOSContextHandle_t handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->GEOS_handle; + if (handle == NULL) + return NULL; + gaiaResetGeosMsg_r (cache); + if (!geom) + return NULL; + g1 = gaiaToGeos_r (cache, geom); + g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0); + GEOSGeom_destroy_r (handle, g1); + if (!g2) + return NULL; + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaFromGeos_XYZ_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaFromGeos_XYM_r (cache, g2); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaFromGeos_XYZM_r (cache, g2); + else + result = gaiaFromGeos_XY_r (cache, g2); + GEOSGeom_destroy_r (handle, g2); + if (result == NULL) + return NULL; + pg = result->FirstPolygon; + while (pg) + { + /* counting how many triangles are in Delaunay */ + if (delaunay_triangle_check (pg)) + pgs++; + else + errs++; + pg = pg->Next; + } + if (pgs == 0 || errs) + { + gaiaFreeGeomColl (result); + return NULL; + } + +/* building the Concave Hull from Delaunay */ + concave_hull = + concave_hull_build_r (p_cache, result->FirstPolygon, + geom->DimensionModel, factor, allow_holes); + gaiaFreeGeomColl (result); + if (!concave_hull) + return NULL; + result = concave_hull; + + result->Srid = geom->Srid; + return result; +} + +#endif /* end GEOS advanced features */ + +#endif /* end including GEOS */ diff --git a/src/spatialite/src/gaiageo/gg_shape.c b/src/spatialite/src/gaiageo/gg_shape.c index 91ecf59..cff706c 100644 --- a/src/spatialite/src/gaiageo/gg_shape.c +++ b/src/spatialite/src/gaiageo/gg_shape.c @@ -2,7 +2,7 @@ gg_shape.c -- Gaia shapefile handling - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -80,20 +80,42 @@ extern const char *locale_charset (void); #endif #endif -#define iconv libiconv -#define iconv_open libiconv_open -#define iconv_close libiconv_close - #include #include +#include #ifdef _WIN32 #define atoll _atoi64 #endif /* not WIN32 */ +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + #define SHAPEFILE_NO_DATA 1e-38 +#ifdef _WIN32 +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +struct auxdbf_fld +{ +/* auxiliary DBF field struct */ + char *name; + struct auxdbf_fld *next; +}; + +struct auxdbf_list +{ +/* auxiliary DBF struct */ + struct auxdbf_fld *first; + struct auxdbf_fld *last; +}; + GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p) { @@ -509,8 +531,41 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; - if (*bf != 0x03) /* checks the DBF magic number */ - goto error; + switch (*bf) + { + /* checks the DBF magic number */ + case 0x03: + case 0x83: + break; + case 0x02: + case 0xF8: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]", + path, *bf); + goto dbf_bad_magic; + case 0xF5: + sprintf (errMsg, + "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]", + path, *bf); + goto dbf_bad_magic; + case 0x30: + case 0x31: + case 0x32: + sprintf (errMsg, + "'%s'\ninvalid magic number %02x [Visual FoxPro format]", + path, *bf); + goto dbf_bad_magic; + case 0x43: + case 0x63: + case 0xBB: + case 0xCB: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]", + path, *bf); + goto dbf_bad_magic; + default: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]", + path, *bf); + goto dbf_bad_magic; + }; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; @@ -522,6 +577,17 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; + if (*(bf + 11) == 'M') + { + /* skipping any MEMO field */ + memcpy (field_name, bf, 11); + field_name[11] = '\0'; + off_dbf += *(bf + 16); + spatialite_e + ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n", + field_name); + continue; + } memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); @@ -627,6 +693,20 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, if (fl_dbf) fclose (fl_dbf); return; + dbf_bad_magic: +/* the DBF has an invalid magin number */ + if (shp->LastError) + free (shp->LastError); + len = strlen (errMsg); + shp->LastError = malloc (len + 1); + strcpy (shp->LastError, errMsg); + gaiaFreeDbfList (dbf_list); + if (buf_shp) + free (buf_shp); + fclose (fl_shx); + fclose (fl_shp); + fclose (fl_dbf); + return; error: /* the shapefile is invalid or corrupted */ if (shp->LastError) @@ -692,6 +772,141 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, return; } +static struct auxdbf_list * +alloc_auxdbf (gaiaDbfListPtr dbf_list) +{ +/* allocating the auxiliary DBF struct */ + int len; + gaiaDbfFieldPtr fld; + struct auxdbf_fld *fld_ex; + struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); + auxdbf->first = NULL; + auxdbf->last = NULL; + fld = dbf_list->First; + while (fld) + { + fld_ex = malloc (sizeof (struct auxdbf_fld)); + len = strlen (fld->Name); + fld_ex->name = malloc (len + 1); + strcpy (fld_ex->name, fld->Name); + fld_ex->next = NULL; + if (auxdbf->first == NULL) + auxdbf->first = fld_ex; + if (auxdbf->last != NULL) + auxdbf->last->next = fld_ex; + auxdbf->last = fld_ex; + fld = fld->Next; + } + return auxdbf; +} + +static void +free_auxdbf (struct auxdbf_list *auxdbf) +{ +/* freeing an auxiliary DBF struct */ + struct auxdbf_fld *n_fld; + struct auxdbf_fld *fld = auxdbf->first; + while (fld != NULL) + { + n_fld = fld->next; + if (fld->name != NULL) + free (fld->name); + free (fld); + fld = n_fld; + } + free (auxdbf); +} + +static void +truncate_long_name (struct auxdbf_list *list, gaiaDbfFieldPtr xfld) +{ +/* attempting to create a unique short name <= 10 bytes */ + char suffix; + char buf[16]; + struct auxdbf_fld *fld; + struct auxdbf_fld *base = NULL; + memcpy (buf, xfld->Name, 9); + buf[10] = '\0'; + + fld = list->first; + while (fld) + { + /* identifying the base aux Field */ + if (strcmp (xfld->Name, fld->name) == 0) + { + base = fld; + break; + } + fld = fld->next; + } + + suffix = '0'; + while (1) + { + /* attempting to find a numeric suffix ensuring uniqueness */ + int ok = 1; + buf[9] = suffix; + fld = list->first; + while (fld) + { + if (base != fld) + { + if (strcasecmp (buf, fld->name) == 0) + { + /* invalid: already defined */ + ok = 0; + break; + } + } + fld = fld->next; + } + if (ok) + { + strcpy (xfld->Name, buf); + if (base != NULL) + strcpy (base->name, buf); + return; + } + if (suffix == '9') + break; + else + suffix++; + } + + suffix = 'A'; + while (1) + { + /* attempting to find a letter suffix ensuring uniqueness */ + int ok = 1; + buf[9] = suffix; + fld = list->first; + while (fld) + { + if (base != fld) + { + if (strcasecmp (buf, fld->name) == 0) + { + /* invalid: already defined */ + ok = 0; + break; + } + } + fld = fld->next; + } + if (ok) + { + strcpy (xfld->Name, buf); + if (base != NULL) + strcpy (base->name, buf); + return; + } + if (suffix == 'Z') + break; + else + suffix++; + } +} + GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, gaiaDbfListPtr dbf_list, const char *charFrom, @@ -725,6 +940,7 @@ gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, size_t utf8len; char *pUtf8buf; int defaultId = 1; + struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); @@ -798,11 +1014,17 @@ gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, memset (buf_shp, '\0', 32); fwrite (buf_shp, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ + auxdbf = alloc_auxdbf (dbf_list); fld = dbf_list->First; while (fld) { /* exporting DBF Fields specifications */ memset (buf_shp, 0, 32); + if (strlen (fld->Name) > 10) + { + /* long name: attempting to safely truncate */ + truncate_long_name (auxdbf, fld); + } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; @@ -827,6 +1049,7 @@ gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, dbf_size += 32; fld = fld->Next; } + free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; /* setting up the SHP struct */ @@ -1092,6 +1315,11 @@ parseDbfField (unsigned char *buf_dbf, void *iconv_obj, gaiaDbfFieldPtr pFld) else gaiaSetIntValue (pFld, atoll ((char *) buf)); } + else if (pFld->Type == 'M') + { + /* MEMO value - assumed to always be NULL */ + gaiaSetNullValue (pFld); + } else if (pFld->Type == 'F') { /* FLOAT value */ @@ -1142,7 +1370,12 @@ parseDbfField (unsigned char *buf_dbf, void *iconv_obj, gaiaDbfFieldPtr pFld) else { /* CHARACTER [aka String, Text] value */ + +/* Sandro 2013-01-07 +/ fixing an issue reported by Filip Arlet for (i = strlen ((char *) buf) - 1; i > 1; i--) +*/ + for (i = strlen ((char *) buf) - 1; i >= 0; i--) { /* cleaning up trailing spaces */ if (buf[i] == ' ') @@ -2154,8 +2387,8 @@ gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; - max_size = 38 + (n * 16); /* size [in 16 bits words !!!] ZM */ - min_size = 30 + (n * 12); /* size [in 16 bits words !!!] Z-only */ + max_size = 36 + (n * 16); /* size [in 16 bits words !!!] ZM */ + min_size = 28 + (n * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) @@ -2209,8 +2442,8 @@ gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; - max_size = 30 + (n * 12); /* size [in 16 bits words !!!] M */ - min_size = 22 + (n * 8); /* size [in 16 bits words !!!] no-M */ + max_size = 28 + (n * 12); /* size [in 16 bits words !!!] M */ + min_size = 20 + (n * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) @@ -2522,12 +2755,7 @@ gaiaWriteShpEntity (gaiaShapefilePtr shp, gaiaDbfListPtr entity) { if (fld->Value->Type == GAIA_INT_VALUE) { -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", fld->Value->IntValue); -#else - sprintf (dummy, "%lld", fld->Value->IntValue); -#endif + sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); @@ -4465,8 +4693,41 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; - if (*bf != 0x03) /* checks the DBF magic number */ - goto error; + switch (*bf) + { + /* checks the DBF magic number */ + case 0x03: + case 0x83: + break; + case 0x02: + case 0xF8: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]", + path, *bf); + goto dbf_bad_magic; + case 0xF5: + sprintf (errMsg, + "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]", + path, *bf); + goto dbf_bad_magic; + case 0x30: + case 0x31: + case 0x32: + sprintf (errMsg, + "'%s'\ninvalid magic number %02x [Visual FoxPro format]", + path, *bf); + goto dbf_bad_magic; + case 0x43: + case 0x63: + case 0xBB: + case 0xCB: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]", + path, *bf); + goto dbf_bad_magic; + default: + sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]", + path, *bf); + goto dbf_bad_magic; + }; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; @@ -4478,6 +4739,17 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; + if (*(bf + 11) == 'M') + { + /* skipping any MEMO field */ + memcpy (field_name, bf, 11); + field_name[11] = '\0'; + off_dbf += *(bf + 16); + spatialite_e + ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n", + field_name); + continue; + } memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); @@ -4540,6 +4812,16 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, gaiaFreeDbfList (dbf_list); fclose (fl_dbf); return; + dbf_bad_magic: +/* the DBF has an invalid magic number */ + if (dbf->LastError) + free (dbf->LastError); + len = strlen (errMsg); + dbf->LastError = malloc (len + 1); + strcpy (dbf->LastError, errMsg); + gaiaFreeDbfList (dbf_list); + fclose (fl_dbf); + return; illegal_dbf: /* the DBF-file contains unsupported data types */ if (dbf->LastError) @@ -4591,6 +4873,7 @@ gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, size_t utf8len; char *pUtf8buf; int defaultId = 1; + struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); @@ -4635,11 +4918,17 @@ gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, memset (bf, '\0', 32); fwrite (bf, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ + auxdbf = alloc_auxdbf (dbf->Dbf); fld = dbf->Dbf->First; while (fld) { /* exporting DBF Fields specifications */ memset (bf, 0, 32); + if (strlen (fld->Name) > 10) + { + /* long name: attempting to safely truncate */ + truncate_long_name (auxdbf, fld); + } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; @@ -4664,6 +4953,7 @@ gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, dbf_size += 32; fld = fld->Next; } + free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; dbf->Valid = 1; @@ -4711,7 +5001,7 @@ gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity) size_t len; size_t utf8len; char *pUtf8buf; - char buf[512]; + char *dynbuf; char utf8buf[2048]; /* writing the DBF record */ memset (dbf->BufDbf, '\0', dbf->DbfReclen); @@ -4753,23 +5043,33 @@ gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity) { if (fld->Value->Type == GAIA_TEXT_VALUE) { - strcpy (buf, fld->Value->TxtValue); - len = strlen (buf); + len = strlen (fld->Value->TxtValue); + dynbuf = malloc (len + 1); + strcpy (dynbuf, fld->Value->TxtValue); + if (len > 512) + { + dynbuf[512] = '\0'; + len = strlen (dynbuf); + } utf8len = 2048; - pBuf = buf; + pBuf = dynbuf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) - goto conversion_error; - memcpy (buf, utf8buf, 2048 - utf8len); - buf[2048 - utf8len] = '\0'; - if (strlen (buf) < fld->Length) - memcpy (dbf->BufDbf + fld->Offset + 1, buf, - strlen (buf)); + { + free (dynbuf); + goto conversion_error; + } + memcpy (dynbuf, utf8buf, 2048 - utf8len); + dynbuf[2048 - utf8len] = '\0'; + if (strlen (dynbuf) < fld->Length) + memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, + strlen (dynbuf)); else - memcpy (dbf->BufDbf + fld->Offset + 1, buf, + memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, fld->Length); + free (dynbuf); } } break; @@ -4779,12 +5079,7 @@ gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity) { if (fld->Value->Type == GAIA_INT_VALUE) { -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", fld->Value->IntValue); -#else - sprintf (dummy, "%lld", fld->Value->IntValue); -#endif + sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); diff --git a/src/spatialite/src/gaiageo/gg_transform.c b/src/spatialite/src/gaiageo/gg_transform.c index 6ad447d..ef0e178 100644 --- a/src/spatialite/src/gaiageo/gg_transform.c +++ b/src/spatialite/src/gaiageo/gg_transform.c @@ -2,7 +2,7 @@ gg_transform.c -- Gaia PROJ.4 wrapping - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -46,6 +46,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include #include +#include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" @@ -58,9 +59,180 @@ the terms of any one of the MPL, the GPL or the LGPL. #endif #include +#include #include +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMakeCircle (double cx, double cy, double radius, double step) +{ +/* return a Linestring approximating a Circle */ + return gaiaMakeEllipse (cx, cy, radius, radius, step); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMakeArc (double cx, + double cy, double radius, double start, double stop, double step) +{ +/* return a Linestring approximating a Circular Arc */ + return gaiaMakeEllipticArc (cx, cy, radius, radius, start, stop, step); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMakeEllipse (double cx, double cy, double x_axis, double y_axis, + double step) +{ +/* return a Linestring approximating an Ellipse */ + gaiaDynamicLinePtr dyn; + double x; + double y; + double angle = 0.0; + int points = 0; + gaiaPointPtr pt; + gaiaGeomCollPtr geom; + gaiaLinestringPtr ln; + int iv = 0; + + if (step < 0.0) + step *= -1.0; + if (step == 0.0) + step = 10.0; + if (step < 0.1) + step = 0.1; + if (step > 45.0) + step = 45.0; + if (x_axis < 0.0) + x_axis *= -1.0; + if (y_axis < 0.0) + y_axis *= -1.0; + dyn = gaiaAllocDynamicLine (); + while (angle < 360.0) + { + double rads = angle * .0174532925199432958; + x = cx + (x_axis * cos (rads)); + y = cy + (y_axis * sin (rads)); + gaiaAppendPointToDynamicLine (dyn, x, y); + angle += step; + } +/* closing the ellipse */ + gaiaAppendPointToDynamicLine (dyn, dyn->First->X, dyn->First->Y); + + pt = dyn->First; + while (pt) + { + /* counting how many points */ + points++; + pt = pt->Next; + } + if (points == 0) + { + gaiaFreeDynamicLine (dyn); + return NULL; + } + + geom = gaiaAllocGeomColl (); + ln = gaiaAddLinestringToGeomColl (geom, points); + pt = dyn->First; + while (pt) + { + /* setting Vertices */ + gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); + iv++; + pt = pt->Next; + } + gaiaFreeDynamicLine (dyn); + return geom; +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaMakeEllipticArc (double cx, + double cy, double x_axis, double y_axis, double start, + double stop, double step) +{ +/* return a Linestring approximating an Elliptic Arc */ + gaiaDynamicLinePtr dyn; + double x; + double y; + double angle; + double rads; + int points = 0; + gaiaPointPtr pt; + gaiaGeomCollPtr geom; + gaiaLinestringPtr ln; + int iv = 0; + + if (step < 0.0) + step *= -1.0; + if (step == 0.0) + step = 10.0; + if (step < 0.1) + step = 0.1; + if (step > 45.0) + step = 45.0; + if (x_axis < 0.0) + x_axis *= -1.0; + if (y_axis < 0.0) + y_axis *= -1.0; +/* normalizing Start/Stop angles */ + while (start >= 360.0) + start -= 360.0; + while (start <= -720.0) + start += 360; + while (stop >= 360.0) + stop -= 360.0; + while (stop <= -720.0) + stop += 360; + if (start < 0.0) + start = 360.0 + start; + if (stop < 0.0) + stop = 360.0 + stop; + if (start > stop) + stop += 360.0; + + dyn = gaiaAllocDynamicLine (); + angle = start; + while (angle < stop) + { + rads = angle * .0174532925199432958; + x = cx + (x_axis * cos (rads)); + y = cy + (y_axis * sin (rads)); + gaiaAppendPointToDynamicLine (dyn, x, y); + angle += step; + } +/* closing the arc */ + rads = stop * .0174532925199432958; + x = cx + (x_axis * cos (rads)); + y = cy + (y_axis * sin (rads)); + if (x != dyn->Last->X || y != dyn->Last->Y) + gaiaAppendPointToDynamicLine (dyn, x, y); + + pt = dyn->First; + while (pt) + { + /* counting how many points */ + points++; + pt = pt->Next; + } + if (points == 0) + { + gaiaFreeDynamicLine (dyn); + return NULL; + } + + geom = gaiaAllocGeomColl (); + ln = gaiaAddLinestringToGeomColl (geom, points); + pt = dyn->First; + while (pt) + { + /* setting Vertices */ + gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); + iv++; + pt = pt->Next; + } + gaiaFreeDynamicLine (dyn); + return geom; +} + GAIAGEO_DECLARE void gaiaShiftCoords (gaiaGeomCollPtr geom, double shift_x, double shift_y) { @@ -1419,8 +1591,9 @@ gaiaDegsToRads (double degs) return degs * DEG_TO_RAD; } -GAIAGEO_DECLARE gaiaGeomCollPtr -gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) +static gaiaGeomCollPtr +gaiaTransformCommon (projCtx handle, gaiaGeomCollPtr org, char *proj_from, + char *proj_to) { /* creates a new GEOMETRY reprojecting coordinates from the original one */ int ib; @@ -1444,9 +1617,19 @@ gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) gaiaPolygonPtr dst_pg; gaiaRingPtr rng; gaiaRingPtr dst_rng; - projPJ from_cs = pj_init_plus (proj_from); - projPJ to_cs = pj_init_plus (proj_to); + projPJ from_cs; + projPJ to_cs; gaiaGeomCollPtr dst; + if (handle != NULL) + { + from_cs = pj_init_plus_ctx (handle, proj_from); + to_cs = pj_init_plus_ctx (handle, proj_to); + } + else + { + from_cs = pj_init_plus (proj_from); + to_cs = pj_init_plus (proj_to); + } if (!from_cs) { if (to_cs) @@ -1931,4 +2114,28 @@ gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) return dst; } +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) +{ + return gaiaTransformCommon (NULL, org, proj_from, proj_to); +} + +GAIAGEO_DECLARE gaiaGeomCollPtr +gaiaTransform_r (const void *p_cache, gaiaGeomCollPtr org, char *proj_from, + char *proj_to) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + projCtx handle = NULL; + if (cache == NULL) + return NULL; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return NULL; + handle = cache->PROJ_handle; + if (handle == NULL) + return NULL; + return gaiaTransformCommon (handle, org, proj_from, proj_to); +} + #endif /* end including PROJ.4 */ diff --git a/src/spatialite/src/gaiageo/gg_vanuatu.c b/src/spatialite/src/gaiageo/gg_vanuatu.c index 593139b..9f7a98c 100644 --- a/src/spatialite/src/gaiageo/gg_vanuatu.c +++ b/src/spatialite/src/gaiageo/gg_vanuatu.c @@ -2,7 +2,7 @@ gg_vanuatu.c -- WKT parser/lexer - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. The Vanuatu Team - University of Toronto - Supervisor: @@ -81,6 +81,82 @@ the terms of any one of the MPL, the GPL or the LGPL. #define VANUATU_DYN_BLOCK 1024 + + +/* +** CAVEAT: we must redefine any Lemon/Flex own macro +*/ +#define YYMINORTYPE VANUATU_MINORTYPE +#define YY_CHAR VANUATU_YY_CHAR +#define input vanuatu_input +#define ParseAlloc vanuatuParseAlloc +#define ParseFree vanuatuParseFree +#define ParseStackPeak vanuatuParseStackPeak +#define Parse vanuatuParse +#define yyStackEntry vanuatu_yyStackEntry +#define yyzerominor vanuatu_yyzerominor +#define yy_accept vanuatu_yy_accept +#define yy_action vanuatu_yy_action +#define yy_base vanuatu_yy_base +#define yy_buffer_stack vanuatu_yy_buffer_stack +#define yy_buffer_stack_max vanuatu_yy_buffer_stack_max +#define yy_buffer_stack_top vanuatu_yy_buffer_stack_top +#define yy_c_buf_p vanuatu_yy_c_buf_p +#define yy_chk vanuatu_yy_chk +#define yy_def vanuatu_yy_def +#define yy_default vanuatu_yy_default +#define yy_destructor vanuatu_yy_destructor +#define yy_ec vanuatu_yy_ec +#define yy_fatal_error vanuatu_yy_fatal_error +#define yy_find_reduce_action vanuatu_yy_find_reduce_action +#define yy_find_shift_action vanuatu_yy_find_shift_action +#define yy_get_next_buffer vanuatu_yy_get_next_buffer +#define yy_get_previous_state vanuatu_yy_get_previous_state +#define yy_init vanuatu_yy_init +#define yy_init_globals vanuatu_yy_init_globals +#define yy_lookahead vanuatu_yy_lookahead +#define yy_meta vanuatu_yy_meta +#define yy_nxt vanuatu_yy_nxt +#define yy_parse_failed vanuatu_yy_parse_failed +#define yy_pop_parser_stack vanuatu_yy_pop_parser_stack +#define yy_reduce vanuatu_yy_reduce +#define yy_reduce_ofst vanuatu_yy_reduce_ofst +#define yy_shift vanuatu_yy_shift +#define yy_shift_ofst vanuatu_yy_shift_ofst +#define yy_start vanuatu_yy_start +#define yy_state_type vanuatu_yy_state_type +#define yy_syntax_error vanuatu_yy_syntax_error +#define yy_trans_info vanuatu_yy_trans_info +#define yy_try_NUL_trans vanuatu_yy_try_NUL_trans +#define yyParser vanuatu_yyParser +#define yyStackEntry vanuatu_yyStackEntry +#define yyStackOverflow vanuatu_yyStackOverflow +#define yyRuleInfo vanuatu_yyRuleInfo +#define yyunput vanuatu_yyunput +#define yyzerominor vanuatu_yyzerominor +#define yyTraceFILE vanuatu_yyTraceFILE +#define yyTracePrompt vanuatu_yyTracePrompt +#define yyTokenName vanuatu_yyTokenName +#define yyRuleName vanuatu_yyRuleName +#define ParseTrace vanuatu_ParseTrace + +#define yylex vanuatu_yylex +#define YY_DECL int yylex (yyscan_t yyscanner) + + +/* including LEMON generated header */ +#include "vanuatuWkt.h" + + + +typedef union +{ + double dval; + struct symtab *symp; +} vanuatu_yystype; +#define YYSTYPE vanuatu_yystype + + struct vanuatu_dyn_block { /* a struct taking trace of dynamic allocations */ @@ -99,6 +175,7 @@ struct vanuatu_data struct vanuatu_dyn_block *vanuatu_first_dyn_block; struct vanuatu_dyn_block *vanuatu_last_dyn_block; gaiaGeomCollPtr result; + YYSTYPE VanuatuWktlval; }; static struct vanuatu_dyn_block * @@ -1728,85 +1805,6 @@ vanuatu_geomColl_xyzm (struct vanuatu_data *p_data, gaiaGeomCollPtr first) } - -/* -** CAVEAT: we must redefine any Lemon/Flex own macro -*/ -#define YYMINORTYPE VANUATU_MINORTYPE -#define YY_CHAR VANUATU_YY_CHAR -#define input vanuatu_input -#define ParseAlloc vanuatuParseAlloc -#define ParseFree vanuatuParseFree -#define ParseStackPeak vanuatuParseStackPeak -#define Parse vanuatuParse -#define yyStackEntry vanuatu_yyStackEntry -#define yyzerominor vanuatu_yyzerominor -#define yy_accept vanuatu_yy_accept -#define yy_action vanuatu_yy_action -#define yy_base vanuatu_yy_base -#define yy_buffer_stack vanuatu_yy_buffer_stack -#define yy_buffer_stack_max vanuatu_yy_buffer_stack_max -#define yy_buffer_stack_top vanuatu_yy_buffer_stack_top -#define yy_c_buf_p vanuatu_yy_c_buf_p -#define yy_chk vanuatu_yy_chk -#define yy_def vanuatu_yy_def -#define yy_default vanuatu_yy_default -#define yy_destructor vanuatu_yy_destructor -#define yy_ec vanuatu_yy_ec -#define yy_fatal_error vanuatu_yy_fatal_error -#define yy_find_reduce_action vanuatu_yy_find_reduce_action -#define yy_find_shift_action vanuatu_yy_find_shift_action -#define yy_get_next_buffer vanuatu_yy_get_next_buffer -#define yy_get_previous_state vanuatu_yy_get_previous_state -#define yy_init vanuatu_yy_init -#define yy_init_globals vanuatu_yy_init_globals -#define yy_lookahead vanuatu_yy_lookahead -#define yy_meta vanuatu_yy_meta -#define yy_nxt vanuatu_yy_nxt -#define yy_parse_failed vanuatu_yy_parse_failed -#define yy_pop_parser_stack vanuatu_yy_pop_parser_stack -#define yy_reduce vanuatu_yy_reduce -#define yy_reduce_ofst vanuatu_yy_reduce_ofst -#define yy_shift vanuatu_yy_shift -#define yy_shift_ofst vanuatu_yy_shift_ofst -#define yy_start vanuatu_yy_start -#define yy_state_type vanuatu_yy_state_type -#define yy_syntax_error vanuatu_yy_syntax_error -#define yy_trans_info vanuatu_yy_trans_info -#define yy_try_NUL_trans vanuatu_yy_try_NUL_trans -#define yyParser vanuatu_yyParser -#define yyStackEntry vanuatu_yyStackEntry -#define yyStackOverflow vanuatu_yyStackOverflow -#define yyRuleInfo vanuatu_yyRuleInfo -#define yyunput vanuatu_yyunput -#define yyzerominor vanuatu_yyzerominor -#define yyTraceFILE vanuatu_yyTraceFILE -#define yyTracePrompt vanuatu_yyTracePrompt -#define yyTokenName vanuatu_yyTokenName -#define yyRuleName vanuatu_yyRuleName -#define ParseTrace vanuatu_ParseTrace - -#define yylex vanuatu_yylex -#define YY_DECL int yylex (yyscan_t yyscanner) - - -/* including LEMON generated header */ -#include "vanuatuWkt.h" - - - -typedef union -{ - double dval; - struct symtab *symp; -} vanuatu_yystype; -#define YYSTYPE vanuatu_yystype - -/* extern YYSTYPE yylval; */ -YYSTYPE VanuatuWktlval; - - - /* including LEMON generated code */ #include "vanuatuWkt.c" @@ -1898,11 +1896,7 @@ gaiaParseWkt (const unsigned char *dirty_buffer, short type) } tokens->Next = malloc (sizeof (vanuatuFlexToken)); tokens->Next->Next = NULL; - /* - /VanuatuWktlval is a global variable from FLEX. - /VanuatuWktlval is defined in vanuatuLexglobal.h - */ - tokens->Next->value = VanuatuWktlval.dval; + tokens->Next->value = str_data.VanuatuWktlval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; diff --git a/src/spatialite/src/gaiageo/gg_voronoj.c b/src/spatialite/src/gaiageo/gg_voronoj.c index 39ff892..fdc1d83 100644 --- a/src/spatialite/src/gaiageo/gg_voronoj.c +++ b/src/spatialite/src/gaiageo/gg_voronoj.c @@ -2,7 +2,7 @@ gg_voronoj.c -- Voronoj Diagram implementation - version 4.0, 2012 August 26 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -61,7 +61,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include -#ifdef GEOS_TRUNK /* GEOS experimental features */ +#ifdef GEOS_ADVANCED /* GEOS advanced features */ struct voronoj_triangle { @@ -390,7 +390,7 @@ voronoj_same_edge (double ax1, double ay1, double ax2, double ay2, double bx1, } static int -voronoj_internal (struct voronoj_triangle *triangle) +voronoj_internal (const void *p_cache, struct voronoj_triangle *triangle) { /* checking if the circumcenter falls inside the triangle */ int ret; @@ -403,15 +403,20 @@ voronoj_internal (struct voronoj_triangle *triangle) gaiaSetPoint (rng->Coords, 2, triangle->x3, triangle->y3); gaiaSetPoint (rng->Coords, 3, triangle->x1, triangle->y1); gaiaAddPointToGeomColl (pt, triangle->cx, triangle->cy); - ret = gaiaGeomCollIntersects (tri, pt); + gaiaMbrGeometry (pt); + gaiaMbrGeometry (tri); + if (p_cache != NULL) + ret = gaiaGeomCollIntersects_r (p_cache, tri, pt); + else + ret = gaiaGeomCollIntersects (tri, pt); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (tri); return ret; } static double -voronoj_test_point (double x1, double y1, double x2, double y2, double x, - double y) +voronoj_test_point (const void *p_cache, double x1, double y1, double x2, + double y2, double x, double y) { /* point-segment distance */ double dist; @@ -421,14 +426,18 @@ voronoj_test_point (double x1, double y1, double x2, double y2, double x, gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaAddPointToGeomColl (pt, x, y); - gaiaGeomCollDistance (segm, pt, &dist); + if (p_cache != NULL) + gaiaGeomCollDistance_r (p_cache, segm, pt, &dist); + else + gaiaGeomCollDistance (segm, pt, &dist); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (segm); return dist; } static int -voronoj_check_nearest_edge (struct voronoj_triangle *tri, int which) +voronoj_check_nearest_edge (const void *p_cache, struct voronoj_triangle *tri, + int which) { /* testing if direction outside */ double d_1_2; @@ -440,19 +449,28 @@ voronoj_check_nearest_edge (struct voronoj_triangle *tri, int which) gaiaSetPoint (ln->Coords, 0, tri->x1, tri->y1); gaiaSetPoint (ln->Coords, 1, tri->x2, tri->y2); gaiaAddPointToGeomColl (pt, tri->cx, tri->cy); - gaiaGeomCollDistance (segm, pt, &d_1_2); + if (p_cache != NULL) + gaiaGeomCollDistance_r (p_cache, segm, pt, &d_1_2); + else + gaiaGeomCollDistance (segm, pt, &d_1_2); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x2, tri->y2); gaiaSetPoint (ln->Coords, 1, tri->x3, tri->y3); - gaiaGeomCollDistance (segm, pt, &d_2_3); + if (p_cache != NULL) + gaiaGeomCollDistance_r (p_cache, segm, pt, &d_2_3); + else + gaiaGeomCollDistance (segm, pt, &d_2_3); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x3, tri->y3); gaiaSetPoint (ln->Coords, 1, tri->x1, tri->y1); - gaiaGeomCollDistance (segm, pt, &d_3_1); + if (p_cache != NULL) + gaiaGeomCollDistance_r (p_cache, segm, pt, &d_3_1); + else + gaiaGeomCollDistance (segm, pt, &d_3_1); gaiaFreeGeomColl (segm); gaiaFreeGeomColl (pt); @@ -481,7 +499,7 @@ voronoj_minmax (double x, double y, double *minx, double *miny, double *maxx, } static void -voronoj_frame_point (double intercept, double slope, +voronoj_frame_point (const void *p_cache, double intercept, double slope, struct voronoj_aux *voronoj, double cx, double cy, double mx, double my, int direct, double *x, double *y) { @@ -569,8 +587,8 @@ voronoj_frame_point (double intercept, double slope, if (direct) { /* cutting the edge in two */ - d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my); - d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my); + d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my); + d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my); if (d1 < d2) { *x = pre_x1; @@ -585,8 +603,8 @@ voronoj_frame_point (double intercept, double slope, else { /* going outside */ - d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my); - d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my); + d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my); + d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my); if (d1 > d2) { *x = pre_x1; @@ -602,6 +620,13 @@ voronoj_frame_point (double intercept, double slope, SPATIALITE_PRIVATE void * voronoj_build (int count, void *p_first, double extra_frame_size) +{ + return voronoj_build_r (NULL, count, p_first, extra_frame_size); +} + +SPATIALITE_PRIVATE void * +voronoj_build_r (const void *p_cache, int count, void *p_first, + double extra_frame_size) { /* building the Voronoj auxiliary struct */ gaiaPolygonPtr first = (gaiaPolygonPtr) p_first; @@ -879,10 +904,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size) intercept = my - (slope * mx); } direct = 1; - if (!voronoj_internal (triangle)) - direct = voronoj_check_nearest_edge (triangle, 12); - voronoj_frame_point (intercept, slope, voronoj, triangle->cx, - triangle->cy, mx, my, direct, &x, &y); + if (!voronoj_internal (p_cache, triangle)) + direct = voronoj_check_nearest_edge (p_cache, triangle, 12); + voronoj_frame_point (p_cache, intercept, slope, voronoj, + triangle->cx, triangle->cy, mx, my, direct, + &x, &y); triangle->x_1_2 = x; triangle->y_1_2 = y; } @@ -898,10 +924,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size) intercept = my - (slope * mx); } direct = 1; - if (!voronoj_internal (triangle)) - direct = voronoj_check_nearest_edge (triangle, 23); - voronoj_frame_point (intercept, slope, voronoj, triangle->cx, - triangle->cy, mx, my, direct, &x, &y); + if (!voronoj_internal (p_cache, triangle)) + direct = voronoj_check_nearest_edge (p_cache, triangle, 23); + voronoj_frame_point (p_cache, intercept, slope, voronoj, + triangle->cx, triangle->cy, mx, my, direct, + &x, &y); triangle->x_2_3 = x; triangle->y_2_3 = y; } @@ -917,10 +944,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size) intercept = my - (slope * mx); } direct = 1; - if (!voronoj_internal (triangle)) - direct = voronoj_check_nearest_edge (triangle, 31); - voronoj_frame_point (intercept, slope, voronoj, triangle->cx, - triangle->cy, mx, my, direct, &x, &y); + if (!voronoj_internal (p_cache, triangle)) + direct = voronoj_check_nearest_edge (p_cache, triangle, 31); + voronoj_frame_point (p_cache, intercept, slope, voronoj, + triangle->cx, triangle->cy, mx, my, direct, + &x, &y); triangle->x_3_1 = x; triangle->y_3_1 = y; } @@ -928,8 +956,9 @@ voronoj_build (int count, void *p_first, double extra_frame_size) return voronoj; } -SPATIALITE_PRIVATE void * -voronoj_export (void *p_voronoj, void *p_result, int only_edges) +static void * +voronoj_export_common (const void *p_cache, void *p_voronoj, void *p_result, + int only_edges) { /* building the Geometry representing Voronoj */ gaiaGeomCollPtr result = (gaiaGeomCollPtr) p_result; @@ -1391,11 +1420,27 @@ voronoj_export (void *p_voronoj, void *p_result, int only_edges) /* building Polygons */ lines = result; - result = gaiaPolygonize (lines, 1); + if (p_cache != NULL) + result = gaiaPolygonize_r (p_cache, lines, 1); + else + result = gaiaPolygonize (lines, 1); gaiaFreeGeomColl (lines); return result; } +SPATIALITE_PRIVATE void * +voronoj_export (void *p_voronoj, void *p_result, int only_edges) +{ + return voronoj_export_common (NULL, p_voronoj, p_result, only_edges); +} + +SPATIALITE_PRIVATE void * +voronoj_export_r (const void *p_cache, void *p_voronoj, void *p_result, + int only_edges) +{ + return voronoj_export_common (p_cache, p_voronoj, p_result, only_edges); +} + SPATIALITE_PRIVATE void voronoj_free (void *p_voronoj) { @@ -1466,8 +1511,8 @@ concave_hull_stats (struct concave_hull_str *concave, double length) } static int -concave_hull_filter (double x1, double y1, double x2, double y2, double x3, - double y3, double limit) +concave_hull_filter (const void *p_cache, double x1, double y1, + double x2, double y2, double x3, double y3, double limit) { /* filtering triangles to be inserted into the Concave Hull */ gaiaGeomCollPtr segm; @@ -1478,7 +1523,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; @@ -1487,7 +1535,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; @@ -1496,7 +1547,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; @@ -1564,9 +1618,9 @@ concave_hull_no_holes (gaiaGeomCollPtr in) return out; } -SPATIALITE_PRIVATE void * -concave_hull_build (void *p_first, int dimension_model, double factor, - int allow_holes) +static void * +concave_hull_build_common (const void *p_cache, void *p_first, + int dimension_model, double factor, int allow_holes) { /* building the Concave Hull */ struct concave_hull_str concave; @@ -1655,7 +1709,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); @@ -1663,7 +1720,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); @@ -1671,7 +1731,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor, ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); - gaiaGeomCollLength (segm, &length); + if (p_cache != NULL) + gaiaGeomCollLength_r (p_cache, segm, &length); + else + gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); @@ -1745,7 +1808,8 @@ concave_hull_build (void *p_first, int dimension_model, double factor, y3 = y; } - if (concave_hull_filter (x1, y1, x2, y2, x3, y3, std_dev * factor)) + if (concave_hull_filter + (p_cache, x1, y1, x2, y2, x3, y3, std_dev * factor)) { /* inserting this triangle into the Concave Hull */ pg_out = gaiaAddPolygonToGeomColl (result, 4, 0); @@ -1808,7 +1872,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor, /* merging all triangles into the Concave Hull */ segm = result; - result = gaiaUnaryUnion (segm); + if (p_cache != NULL) + result = gaiaUnaryUnion_r (p_cache, segm); + else + result = gaiaUnaryUnion (segm); gaiaFreeGeomColl (segm); if (!result) return NULL; @@ -1834,4 +1901,20 @@ concave_hull_build (void *p_first, int dimension_model, double factor, return result; } -#endif /* end GEOS experimental features */ +SPATIALITE_PRIVATE void * +concave_hull_build (void *p_first, int dimension_model, double factor, + int allow_holes) +{ + return concave_hull_build_common (NULL, p_first, dimension_model, factor, + allow_holes); +} + +SPATIALITE_PRIVATE void * +concave_hull_build_r (const void *p_cache, void *p_first, int dimension_model, + double factor, int allow_holes) +{ + return concave_hull_build_common (p_cache, p_first, dimension_model, factor, + allow_holes); +} + +#endif /* end GEOS advanced features */ diff --git a/src/spatialite/src/gaiageo/gg_wkb.c b/src/spatialite/src/gaiageo/gg_wkb.c index df2e518..e7c859b 100644 --- a/src/spatialite/src/gaiageo/gg_wkb.c +++ b/src/spatialite/src/gaiageo/gg_wkb.c @@ -2,7 +2,7 @@ gg_wkb.c -- Gaia common support for WKB encoded geometries - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -972,7 +972,7 @@ ParseCompressedWkbPolygonZM (gaiaGeomCollPtr geo) } static void -ParseWkbGeometry (gaiaGeomCollPtr geo) +ParseWkbGeometry (gaiaGeomCollPtr geo, int isWKB) { /* decodes a MULTIxx or GEOMETRYCOLLECTION from SpatiaLite BLOB */ int entities; @@ -987,6 +987,14 @@ ParseWkbGeometry (gaiaGeomCollPtr geo) { if (geo->size < geo->offset + 5) return; + if (isWKB) + { + /* vanilla WKB could be encoded as mixed big-/little-endian sub-items */ + if (*(geo->blob + geo->offset) == 0x01) + geo->endian = GAIA_LITTLE_ENDIAN; + else + geo->endian = GAIA_BIG_ENDIAN; + } type = gaiaImport32 (geo->blob + geo->offset + 1, geo->endian, geo->endian_arch); @@ -1083,7 +1091,7 @@ gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size) else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else - return NULL; /* unknown encoding; nor litte-endian neither big-endian */ + return NULL; /* unknown encoding; nor little-endian neither big-endian */ type = gaiaImport32 (blob + 39, little_endian, endian_arch); geo = gaiaAllocGeomColl (); geo->Srid = gaiaImport32 (blob + 2, little_endian, endian_arch); @@ -1211,7 +1219,7 @@ gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size) case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: - ParseWkbGeometry (geo); + ParseWkbGeometry (geo, 0); break; default: break; @@ -3532,7 +3540,7 @@ gaiaFromWkb (const unsigned char *blob, unsigned int size) case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: - ParseWkbGeometry (geo); + ParseWkbGeometry (geo, 1); break; default: break; @@ -4784,9 +4792,7 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) gaiaPolygonPtr polyg = NULL; /* precomputing the required size */ - sprintf (buf, "SRID=%d;", geom->Srid); - size = strlen (buf); /* the header size */ - size++; /* terminating '\0' */ + size = 5; /* SRID and terminating '\0' */ pt = geom->FirstPoint; while (pt) { @@ -4927,10 +4933,7 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) polyg = polyg->Next; } /* and finally we build the EWKB expression */ - sprintf (buf, "SRID=%d;", geom->Srid); - gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; - *ptr++ = '0'; /* little endian byte order */ *ptr++ = '1'; gaiaExport32 (endian_buf, type, 1, endian_arch); /* the main CLASS TYPE */ @@ -4941,16 +4944,34 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) *ptr++ = byte[0]; *ptr++ = byte[1]; } -/* marking M/Z presence */ +/* marking dimensions and M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) - *ptr++ = '8'; + { + *ptr++ = 'A'; + *ptr++ = '0'; + } else if (geom->DimensionModel == GAIA_XY_M) - *ptr++ = '4'; + { + *ptr++ = '6'; + *ptr++ = '0'; + } else if (geom->DimensionModel == GAIA_XY_Z_M) - *ptr++ = 'C'; + { + *ptr++ = 'E'; + *ptr++ = '0'; + } else - *ptr++ = '0'; - *ptr++ = '0'; + { + *ptr++ = '2'; + *ptr++ = '0'; + } + gaiaExport32 (endian_buf, geom->Srid, 1, endian_arch); + for (i = 0; i < 4; i++) + { + sprintf (byte, "%02X", endian_buf[i]); + *ptr++ = byte[0]; + *ptr++ = byte[1]; + } *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; diff --git a/src/spatialite/src/gaiageo/gg_wkt.c b/src/spatialite/src/gaiageo/gg_wkt.c index b71e2e2..0b4b891 100644 --- a/src/spatialite/src/gaiageo/gg_wkt.c +++ b/src/spatialite/src/gaiageo/gg_wkt.c @@ -2,7 +2,7 @@ gg_wkt.c -- Gaia common support for WKT encoded geometries - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): diff --git a/src/spatialite/src/gaiageo/gg_xml.c b/src/spatialite/src/gaiageo/gg_xml.c new file mode 100644 index 0000000..a142673 --- /dev/null +++ b/src/spatialite/src/gaiageo/gg_xml.c @@ -0,0 +1,4233 @@ +/* + + gg_xml.c -- XML Document implementation + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +struct gaiaxml_namespace +{ +/* a Namespace declaration */ + int type; + xmlChar *prefix; + xmlChar *href; + struct gaiaxml_namespace *next; +}; + +struct gaiaxml_ns_list +{ +/* a Namespaces list */ + struct gaiaxml_namespace *first; + struct gaiaxml_namespace *last; +}; + +static int +is_valid_cache (struct splite_internal_cache *cache) +{ +/* testing if the passed cache is a valid one */ + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + return 1; +} + +static struct gaiaxml_namespace * +splite_create_namespace (int type, const xmlChar * prefix, const xmlChar * href) +{ +/* allocating and initializing a Namespace declaration */ + int len; + struct gaiaxml_namespace *ptr = malloc (sizeof (struct gaiaxml_namespace)); + ptr->type = type; + if (prefix == NULL) + ptr->prefix = NULL; + else + { + len = strlen ((const char *) prefix); + ptr->prefix = malloc (len + 1); + memcpy (ptr->prefix, prefix, len + 1); + } + if (href == NULL) + ptr->href = NULL; + else + { + len = strlen ((const char *) href); + ptr->href = malloc (len + 1); + memcpy (ptr->href, href, len + 1); + } + ptr->next = NULL; + return ptr; +} + +static void +splite_free_namespace (struct gaiaxml_namespace *ptr) +{ +/* memory cleanup - destroying a Namespace declaration */ + if (ptr == NULL) + return; + if (ptr->prefix != NULL) + free (ptr->prefix); + if (ptr->href != NULL) + free (ptr->href); + free (ptr); +} + +static struct gaiaxml_ns_list * +splite_create_ns_list (void) +{ +/* allocating and initializing a Namespaces list */ + struct gaiaxml_ns_list *ptr = malloc (sizeof (struct gaiaxml_ns_list)); + ptr->first = NULL; + ptr->last = NULL; + return ptr; +} + +static void +splite_free_ns_list (struct gaiaxml_ns_list *ptr) +{ +/* memory cleanup - destroying a Namespaces list */ + struct gaiaxml_namespace *p; + struct gaiaxml_namespace *p_n; + if (ptr == NULL) + return; + p = ptr->first; + while (p != NULL) + { + p_n = p->next; + splite_free_namespace (p); + p = p_n; + } + free (ptr); +} + +static void +splite_add_namespace (struct gaiaxml_ns_list *list, int type, + const xmlChar * prefix, const xmlChar * href) +{ +/* inserting a new Namespace into the list */ + struct gaiaxml_namespace *ns; + if (list == NULL) + return; + ns = list->first; + while (ns != NULL) + { + /* checking if already defined */ + int ok_type = 0; + int ok_prefix = 0; + int ok_href = 0; + if (ns->type == type) + ok_type = 1; + if (ns->prefix == NULL && prefix == NULL) + ok_prefix = 1; + if (ns->prefix != NULL && prefix != NULL) + { + if (strcmp ((const char *) (ns->prefix), (const char *) prefix) + == 0) + ok_prefix = 1; + } + if (ns->href == NULL && href == NULL) + ok_href = 1; + if (ns->href != NULL && href != NULL) + { + if (strcmp ((const char *) (ns->href), (const char *) href) == + 0) + ok_href = 1; + } + if (ok_type && ok_prefix && ok_href) + return; + ns = ns->next; + } +/* inserting a new Namespace */ + ns = splite_create_namespace (type, prefix, href); + if (list->first == NULL) + list->first = ns; + if (list->last != NULL) + list->last->next = ns; + list->last = ns; +} + +static void +spliteSilentError (void *ctx, const char *msg, ...) +{ +/* shutting up XML Errors */ + if (ctx != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ + if (msg != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ +} + +static void +spliteParsingError (void *ctx, const char *msg, ...) +{ +/* appending to the current Parsing Error buffer */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; + gaiaOutBufferPtr buf; + char out[65536]; + va_list args; + + if (ctx != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ + if (!is_valid_cache (cache)) + return; + buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); + + va_start (args, msg); + vsnprintf (out, 65536, msg, args); + gaiaAppendToOutBuffer (buf, out); + va_end (args); +} + +static void +spliteSchemaValidationError (void *ctx, const char *msg, ...) +{ +/* appending to the current SchemaValidation Error buffer */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; + gaiaOutBufferPtr buf; + char out[65536]; + va_list args; + + if (ctx != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ + if (!is_valid_cache (cache)) + return; + buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); + + va_start (args, msg); + vsnprintf (out, 65536, msg, args); + gaiaAppendToOutBuffer (buf, out); + va_end (args); +} + +static void +spliteResetXmlErrors (struct splite_internal_cache *cache) +{ +/* resetting the XML Error buffers */ + gaiaOutBufferPtr buf; + if (!is_valid_cache (cache)) + return; + buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); + gaiaOutBufferReset (buf); + buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); + gaiaOutBufferReset (buf); +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetLastParseError (const void *ptr) +{ +/* get the most recent XML Parse error/warning message */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; + gaiaOutBufferPtr buf; + if (!is_valid_cache (cache)) + return NULL; + buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); + return buf->Buffer; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetLastValidateError (const void *ptr) +{ +/* get the most recent XML Validate error/warning message */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; + gaiaOutBufferPtr buf; + if (!is_valid_cache (cache)) + return NULL; + buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); + return buf->Buffer; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetLastXPathError (const void *ptr) +{ +/* get the most recent XML Validate error/warning message */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; + gaiaOutBufferPtr buf; + if (!is_valid_cache (cache)) + return NULL; + buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); + return buf->Buffer; +} + +SPATIALITE_PRIVATE void +splite_free_xml_schema_cache_item (struct splite_xmlSchema_cache_item *p) +{ +/* freeing an XmlSchema Cache Item */ + if (p->schemaURI) + free (p->schemaURI); + if (p->parserCtxt) + xmlSchemaFreeParserCtxt (p->parserCtxt); + if (p->schema) + xmlSchemaFree (p->schema); + if (p->schemaDoc) + xmlFreeDoc (p->schemaDoc); + p->schemaURI = NULL; + p->parserCtxt = NULL; + p->schemaDoc = NULL; + p->schema = NULL; +} + +static int +splite_xmlSchemaCacheFind (struct splite_internal_cache *cache, + const char *schemaURI, xmlDocPtr * schema_doc, + xmlSchemaParserCtxtPtr * parser_ctxt, + xmlSchemaPtr * schema) +{ +/* attempting to retrive some XmlSchema from within the Cache */ + int i; + time_t now; + struct splite_xmlSchema_cache_item *p; + if (!is_valid_cache (cache)) + return 0; + for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) + { + p = &(cache->xmlSchemaCache[i]); + if (p->schemaURI) + { + if (strcmp (schemaURI, p->schemaURI) == 0) + { + /* found a matching cache-item */ + *schema_doc = p->schemaDoc; + *parser_ctxt = p->parserCtxt; + *schema = p->schema; + /* updating the timestamp */ time (&now); + p->timestamp = now; + return 1; + } + } + } + return 0; +} + +static void +splite_xmlSchemaCacheInsert (struct splite_internal_cache *cache, + const char *schemaURI, xmlDocPtr schema_doc, + xmlSchemaParserCtxtPtr parser_ctxt, + xmlSchemaPtr schema) +{ +/* inserting a new XmlSchema item into the Cache */ + int i; + int len = strlen (schemaURI); + time_t now; + time_t oldest; + struct splite_xmlSchema_cache_item *pSlot = NULL; + struct splite_xmlSchema_cache_item *p; + if (!is_valid_cache (cache)) + return; + time (&now); + oldest = now; + for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) + { + p = &(cache->xmlSchemaCache[i]); + if (p->schemaURI == NULL) + { + /* found an empty slot */ + pSlot = p; + break; + } + if (p->timestamp < oldest) + { + /* saving the oldest slot */ + pSlot = p; + oldest = p->timestamp; + } + } +/* inserting into the Cache Slot */ + splite_free_xml_schema_cache_item (pSlot); + pSlot->timestamp = now; + pSlot->schemaURI = malloc (len + 1); + strcpy (pSlot->schemaURI, schemaURI); + pSlot->schemaDoc = schema_doc; + pSlot->parserCtxt = parser_ctxt; + pSlot->schema = schema; +} + +static void +sniff_sld_payload (xmlNodePtr node, int *layers, int *point, int *line, + int *polygon, int *raster) +{ +/* recursively sniffing a generic SLD payload type */ + + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "FeatureTypeStyle") == 0) + *layers += 1; + if (strcmp (name, "CoverageStyle") == 0) + *layers += 1; + if (strcmp (name, "PointSymbolizer") == 0) + *point += 1; + if (strcmp (name, "LineSymbolizer") == 0) + *line += 1; + if (strcmp (name, "PolygonSymbolizer") == 0) + *polygon += 1; + if (strcmp (name, "RasterSymbolizer") == 0) + *raster += 1; + } + sniff_sld_payload (node->children, layers, point, line, polygon, + raster); + node = node->next; + } +} + +static void +sniff_payload (xmlDocPtr xml_doc, int *is_iso_metadata, + int *is_sld_se_vector_style, int *is_sld_se_raster_style, + int *is_sld_style, int *is_svg) +{ +/* sniffing the payload type */ + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + *is_iso_metadata = 0; + *is_sld_se_vector_style = 0; + *is_sld_se_raster_style = 0; + *is_svg = 0; + if (root->name != NULL) + { + const char *name = (const char *) (root->name); + if (strcmp (name, "MD_Metadata") == 0) + *is_iso_metadata = 1; + if (strcmp (name, "FeatureTypeStyle") == 0 + || strcmp (name, "PointSymbolizer") == 0 + || strcmp (name, "LineSymbolizer") == 0 + || strcmp (name, "PolygonSymbolizer") == 0 + || strcmp (name, "TextSymbolizer") == 0) + *is_sld_se_vector_style = 1; + if (strcmp (name, "RasterSymbolizer") == 0 + || strcmp (name, "CoverageStyle") == 0) + *is_sld_se_raster_style = 1; + if (strcmp (name, "StyledLayerDescriptor") == 0) + { + /* sniffing an SLD (1.0.0 ??) payload */ + int layers = 0; + int point = 0; + int line = 0; + int polygon = 0; + int raster = 0; + xmlNodePtr node = xmlDocGetRootElement (xml_doc); + sniff_sld_payload (node, &layers, &point, &line, &polygon, + &raster); + if (layers == 1 && point == 0 && line == 0 && polygon == 0 + && raster == 1) + { + /* raster style */ + *is_sld_se_raster_style = 1; + } + if (layers == 1 && (point > 0 || line > 0 || polygon > 0) + && raster == 0) + { + /* vector style */ + *is_sld_se_vector_style = 1; + } + *is_sld_style = 1; + } + if (strcmp (name, "svg") == 0) + *is_svg = 1; + } +} + +static void +find_iso_ids (xmlNodePtr node, const char *name, char **string, int *open_tag, + int *char_string, int *count) +{ +/* recursively scanning the DOM tree [fileIdentifier or parentIdentifier] */ + xmlNode *cur_node = NULL; + int open = 0; + int cs = 0; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + const char *xname = (const char *) (cur_node->name); + if (*open_tag == 1) + { + if (strcmp (xname, "CharacterString") == 0) + { + cs = 1; + *char_string = 1; + } + } + if (strcmp (xname, name) == 0) + { + if (cur_node->parent != NULL) + { + if (cur_node->parent->type == XML_ELEMENT_NODE) + { + if (strcmp + ((const char *) (cur_node->parent->name), + "MD_Metadata") == 0) + { + /* + / only if + / + / + */ + open = 1; + *open_tag = 1; + } + } + } + } + } + if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 + && *char_string == 1) + { + if (cur_node->content != NULL) + { + int len = strlen ((const char *) cur_node->content); + char *buf = malloc (len + 1); + strcpy (buf, (const char *) cur_node->content); + if (*string) + free (*string); + *string = buf; + *count += 1; + } + } + + find_iso_ids (cur_node->children, name, string, open_tag, char_string, + count); + if (open) + *open_tag = 0; + if (cs) + *char_string = 0; + } +} + +static void +find_iso_title (xmlNodePtr node, char **string, int *open_tag, int *char_string, + int *count) +{ +/* recursively scanning the DOM tree [title] */ + xmlNode *cur_node = NULL; + xmlNode *parent; + int open = 0; + int cs = 0; + int ok_parent; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (*open_tag == 1) + { + if (strcmp + ((const char *) (cur_node->name), + "CharacterString") == 0) + { + cs = 1; + *char_string = 1; + } + } + if (strcmp ((const char *) (cur_node->name), "title") == 0) + { + ok_parent = 0; + parent = cur_node->parent; + if (parent) + { + if (strcmp + ((const char *) (parent->name), + "CI_Citation") == 0) + ok_parent++; + } + if (ok_parent == 1) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "citation") == 0) + ok_parent++; + } + if (ok_parent == 2) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "MD_DataIdentification") == 0) + ok_parent++; + } + if (ok_parent == 3) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "identificationInfo") == 0) + ok_parent++; + } + if (ok_parent == 4) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "MD_Metadata") == 0) + ok_parent++; + } + if (ok_parent == 5) + { + /* + / only if + / + / + / + / + / + */ + open = 1; + *open_tag = 1; + } + } + } + if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 + && *char_string == 1) + { + if (cur_node->content != NULL) + { + int len = strlen ((const char *) cur_node->content); + char *buf = malloc (len + 1); + strcpy (buf, (const char *) cur_node->content); + if (*string) + free (*string); + *string = buf; + *count += 1; + } + } + + find_iso_title (cur_node->children, string, open_tag, char_string, + count); + if (open) + *open_tag = 0; + if (cs) + *char_string = 0; + } +} + +static void +find_iso_abstract (xmlNodePtr node, char **string, int *open_tag, + int *char_string, int *count) +{ +/* recursively scanning the DOM abstract [title] */ + xmlNode *cur_node = NULL; + xmlNode *parent; + int open = 0; + int cs = 0; + int ok_parent; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (*open_tag == 1) + { + if (strcmp + ((const char *) (cur_node->name), + "CharacterString") == 0) + { + cs = 1; + *char_string = 1; + } + } + if (strcmp ((const char *) (cur_node->name), "abstract") == 0) + { + ok_parent = 0; + parent = cur_node->parent; + if (parent) + { + if (strcmp + ((const char *) (parent->name), + "MD_DataIdentification") == 0) + ok_parent++; + } + if (ok_parent == 1) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "identificationInfo") == 0) + ok_parent++; + } + if (ok_parent == 2) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "MD_Metadata") == 0) + ok_parent++; + } + if (ok_parent == 3) + { + /* only if <MD_Metadata> + / <identificationInfo> + / <MD_DataIdentification> + / <abstract> + */ + open = 1; + *open_tag = 1; + } + } + } + if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 + && *char_string == 1) + { + if (cur_node->content != NULL) + { + int len = strlen ((const char *) cur_node->content); + char *buf = malloc (len + 1); + strcpy (buf, (const char *) cur_node->content); + if (*string) + free (*string); + *string = buf; + *count += 1; + } + } + + find_iso_abstract (cur_node->children, string, open_tag, char_string, + count); + if (open) + *open_tag = 0; + if (cs) + *char_string = 0; + } +} + +static void +find_bbox_coord (xmlNodePtr node, const char *name, double *coord, + int *open_tag, int *decimal, int *count) +{ +/* recursively scanning an EX_GeographicBoundingBox sub-tree */ + xmlNode *cur_node = NULL; + int open = 0; + int dec = 0; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (*open_tag == 1) + { + if (strcmp ((const char *) (cur_node->name), "Decimal") == + 0) + { + dec = 1; + *decimal = 1; + } + } + if (strcmp ((const char *) (cur_node->name), name) == 0) + { + open = 1; + *open_tag = 1; + } + } + if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 + && *decimal == 1) + { + if (cur_node->content != NULL) + { + /* found a coord value */ + double value = atof ((const char *) cur_node->content); + *coord = value; + *count += 1; + } + } + + find_bbox_coord (cur_node->children, name, coord, open_tag, decimal, + count); + if (open) + *open_tag = 0; + if (dec) + *decimal = 0; + } +} + +static int +parse_bounding_box (xmlNodePtr node, double *minx, double *miny, double *maxx, + double *maxy) +{ +/* attempting to parse an EX_GeographicBoundingBox sub-tree */ + int ok_minx = 0; + int ok_miny = 0; + int ok_maxx = 0; + int ok_maxy = 0; + int open_tag; + int decimal; + int count; + double coord; + +/* retrieving minx - West */ + open_tag = 0; + decimal = 0; + count = 0; + find_bbox_coord (node, "westBoundLongitude", &coord, &open_tag, &decimal, + &count); + if (count == 1) + { + *minx = coord; + ok_minx = 1; + } + +/* retrieving maxx - East */ + open_tag = 0; + decimal = 0; + count = 0; + find_bbox_coord (node, "eastBoundLongitude", &coord, &open_tag, &decimal, + &count); + if (count == 1) + { + *maxx = coord; + ok_maxx = 1; + } + +/* retrieving miny - South */ + open_tag = 0; + decimal = 0; + count = 0; + find_bbox_coord (node, "southBoundLatitude", &coord, &open_tag, &decimal, + &count); + if (count == 1) + { + *miny = coord; + ok_miny = 1; + } + +/* retrieving maxy - North */ + open_tag = 0; + decimal = 0; + count = 0; + find_bbox_coord (node, "northBoundLatitude", &coord, &open_tag, &decimal, + &count); + if (count == 1) + { + *maxy = coord; + ok_maxy = 1; + } + + if (ok_minx && ok_miny && ok_maxx && ok_maxy) + { + /* ok, valid BBOX */ + return 1; + } + return 0; +} + +static void +find_iso_geometry (xmlNodePtr node, gaiaGeomCollPtr * geom) +{ +/* recursively scanning the DOM tree [geometry] */ + xmlNode *cur_node = NULL; + xmlNode *parent; + int ok_parent; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp + ((const char *) (cur_node->name), + "EX_GeographicBoundingBox") == 0) + { + ok_parent = 0; + parent = cur_node->parent; + if (parent) + { + if (strcmp + ((const char *) (parent->name), + "geographicElement") == 0) + ok_parent++; + } + if (ok_parent == 1) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "EX_Extent") == 0) + ok_parent++; + } + if (ok_parent == 2) + { + parent = parent->parent; + if (strcmp ((const char *) (parent->name), "extent") + == 0) + ok_parent++; + } + if (ok_parent == 3) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "MD_DataIdentification") == 0) + ok_parent++; + } + if (ok_parent == 4) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "identificationInfo") == 0) + ok_parent++; + } + if (ok_parent == 5) + { + parent = parent->parent; + if (strcmp + ((const char *) (parent->name), + "MD_Metadata") == 0) + ok_parent++; + } + if (ok_parent == 6) + { + /* only if <MD_Metadata> + / <identificationInfo> + / <MD_DataIdentification> + / <extent> + / <EX_Extent> + / <geographicElement> + / <EX_GeographicBoundingBox> + */ + double minx; + double maxx; + double miny; + double maxy; + if (parse_bounding_box + (cur_node, &minx, &miny, &maxx, &maxy)) + { + gaiaPolygonPtr pg; + gaiaRingPtr rng; + gaiaGeomCollPtr g = *geom; + if (g == NULL) + { + g = gaiaAllocGeomColl (); + g->Srid = 4326; + g->DeclaredType = GAIA_MULTIPOLYGON; + } + pg = gaiaAddPolygonToGeomColl (g, 5, 0); + rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, minx, miny); + gaiaSetPoint (rng->Coords, 1, maxx, miny); + gaiaSetPoint (rng->Coords, 2, maxx, maxy); + gaiaSetPoint (rng->Coords, 3, minx, maxy); + gaiaSetPoint (rng->Coords, 4, minx, miny); + *geom = g; + } + } + } + } + find_iso_geometry (cur_node->children, geom); + } +} + +static void +retrieve_iso_identifiers (xmlDocPtr xml_doc, char **fileIdentifier, + char **parentIdentifier, char **title, + char **abstract, unsigned char **geometry, + short *geometry_len) +{ +/* +/ attempting to retrieve the FileIdentifier, ParentIdentifier, +/ Title, Abstract and Geometry items from an ISO Metadata document +*/ + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + int open_tag; + int char_string; + int count; + char *string; + gaiaGeomCollPtr geom = NULL; + + *fileIdentifier = NULL; + *parentIdentifier = NULL; + *title = NULL; + *abstract = NULL; + *geometry = NULL; + +/* attempting to retrieve the FileIdentifier item */ + open_tag = 0; + char_string = 0; + count = 0; + string = NULL; + find_iso_ids (root, "fileIdentifier", &string, &open_tag, &char_string, + &count); + if (string) + { + if (count == 1) + *fileIdentifier = string; + else + free (string); + } + +/* attempting to retrieve the ParentIdentifier item */ + open_tag = 0; + char_string = 0; + count = 0; + string = NULL; + find_iso_ids (root, "parentIdentifier", &string, &open_tag, &char_string, + &count); + if (string) + { + if (count == 1) + *parentIdentifier = string; + else + free (string); + } + +/* attempting to retrieve the Title item */ + open_tag = 0; + char_string = 0; + count = 0; + string = NULL; + find_iso_title (root, &string, &open_tag, &char_string, &count); + if (string) + { + if (count == 1) + *title = string; + else + free (string); + } + +/* attempting to retrieve the Abstract item */ + open_tag = 0; + char_string = 0; + count = 0; + string = NULL; + find_iso_abstract (root, &string, &open_tag, &char_string, &count); + if (string) + { + if (count == 1) + *abstract = string; + else + free (string); + } + +/* attempting to retrieve the Geometry item */ + open_tag = 0; + char_string = 0; + count = 0; + string = NULL; + find_iso_geometry (root, &geom); + if (geom) + { + int blob_len; + unsigned char *blob = NULL; + gaiaMbrGeometry (geom); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_len); + gaiaFreeGeomColl (geom); + *geometry = blob; + *geometry_len = (short) blob_len; + } +} + +static void +find_sld_name (xmlNodePtr node, char **string) +{ +/* recursively scanning the DOM tree [name] */ + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "Name") == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + } + node = node->next; + } +} + +static void +find_sld_title (xmlNodePtr node, char **string) +{ +/* recursively scanning the DOM tree [title] */ + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "Title") == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + if (strcmp (name, "Description") == 0) + find_sld_title (node->children, string); + } + node = node->next; + } +} + +static void +find_sld_abstract (xmlNodePtr node, char **string) +{ +/* recursively scanning the DOM tree [abstract] */ + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "Abstract") == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + if (strcmp (name, "Description") == 0) + find_sld_abstract (node->children, string); + } + node = node->next; + } +} + +static void +retrieve_sld_identifiers (xmlDocPtr xml_doc, char **name, char **title, + char **abstract) +{ +/* +/ attempting to retrieve the Name, Title and Abstract items +/ from an SLD Style document +*/ + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + char *string; + const char *xname = (const char *) (root->name); + + *name = NULL; + *title = NULL; + *abstract = NULL; + + if (xname != NULL) + { + if (strcmp (xname, "StyledLayerDescriptor") != 0) + return; + } + +/* attempting to retrieve the Name item */ + string = NULL; + find_sld_name (root->children, &string); + if (string) + *name = string; + +/* attempting to retrieve the Title item */ + string = NULL; + find_sld_title (root->children, &string); + if (string) + *title = string; + +/* attempting to retrieve the Abstract item */ + string = NULL; + find_sld_abstract (root->children, &string); + if (string) + *abstract = string; +} + +static void +find_sld_se_name (xmlNodePtr node, char **string, int *style, int *rule) +{ +/* recursively scanning the DOM tree [name] */ + int is_style = 0; + int is_rule = 0; + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "FeatureTypeStyle") == 0 + || strcmp (name, "CoverageStyle") == 0) + { + is_style = 1; + *style = 1; + } + if (strcmp (name, "Rule") == 0) + { + is_rule = 1; + *rule = 1; + } + if (strcmp (name, "Name") == 0) + { + if (*style == 1 && *rule == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + } + } + + find_sld_se_name (node->children, string, style, rule); + if (is_style) + *style = 0; + if (is_rule) + *rule = 0; + node = node->next; + } +} + +static void +find_sld_se_title (xmlNodePtr node, char **string, int *style, int *rule) +{ +/* recursively scanning the DOM tree [title] */ + int is_style = 0; + int is_rule = 0; + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "FeatureTypeStyle") == 0 + || strcmp (name, "CoverageStyle") == 0) + { + is_style = 1; + *style = 1; + } + if (strcmp (name, "Rule") == 0) + { + is_rule = 1; + *rule = 1; + } + if (strcmp (name, "Title") == 0) + { + if (*style == 1 && *rule == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + } + } + + find_sld_se_title (node->children, string, style, rule); + if (is_style) + *style = 0; + if (is_rule) + *rule = 0; + node = node->next; + } +} + +static void +find_sld_se_abstract (xmlNodePtr node, char **string, int *style, int *rule) +{ +/* recursively scanning the DOM tree [abstract] */ + int is_style = 0; + int is_rule = 0; + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (node->name); + if (strcmp (name, "FeatureTypeStyle") == 0 + || strcmp (name, "CoverageStyle") == 0) + { + is_style = 1; + *style = 1; + } + if (strcmp (name, "Rule") == 0) + { + is_rule = 1; + *rule = 1; + } + if (strcmp (name, "Abstract") == 0) + { + if (*style == 1 && *rule == 0) + { + xmlNodePtr child = node->children; + if (child) + { + if (child->type == XML_TEXT_NODE) + { + int len; + const char *value = + (const char *) (child->content); + len = strlen (value); + if (*string != NULL) + free (*string); + *string = malloc (len + 1); + strcpy (*string, value); + } + } + } + } + } + + find_sld_se_abstract (node->children, string, style, rule); + if (is_style) + *style = 0; + if (is_rule) + *rule = 0; + node = node->next; + } +} + +static void +retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **name, char **title, + char **abstract) +{ +/* +/ attempting to retrieve the Name, Title and Abstract items +/ from an SLD/SE Style document +*/ + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + int style; + int rule; + char *string; + const char *xname = (const char *) (root->name); + + *name = NULL; + *title = NULL; + *abstract = NULL; + +/* attempting to retrieve the Name item */ + style = 0; + rule = 0; + string = NULL; + if (xname != NULL) + { + if (strcmp (xname, "PointSymbolizer") == 0 + || strcmp (xname, "LineSymbolizer") == 0 + || strcmp (xname, "PolygonSymbolizer") == 0 + || strcmp (xname, "TextSymbolizer") == 0 + || strcmp (xname, "RasterSymbolizer") == 0) + style = 1; + } + find_sld_se_name (root, &string, &style, &rule); + if (string) + *name = string; + +/* attempting to retrieve the Title item */ + style = 0; + rule = 0; + string = NULL; + if (xname != NULL) + { + if (strcmp (xname, "PointSymbolizer") == 0 + || strcmp (xname, "LineSymbolizer") == 0 + || strcmp (xname, "PolygonSymbolizer") == 0 + || strcmp (xname, "TextSymbolizer") == 0 + || strcmp (xname, "RasterSymbolizer") == 0) + style = 1; + } + find_sld_se_title (root, &string, &style, &rule); + if (string) + *title = string; + +/* attempting to retrieve the Abstract item */ + style = 0; + rule = 0; + string = NULL; + if (xname != NULL) + { + if (strcmp (xname, "PointSymbolizer") == 0 + || strcmp (xname, "LineSymbolizer") == 0 + || strcmp (xname, "PolygonSymbolizer") == 0 + || strcmp (xname, "TextSymbolizer") == 0 + || strcmp (xname, "RasterSymbolizer") == 0) + style = 1; + } + find_sld_se_abstract (root, &string, &style, &rule); + if (string) + *abstract = string; +} + +GAIAGEO_DECLARE void +gaiaXmlToBlob (const void *p_cache, const unsigned char *xml, int xml_len, + int compressed, const char *schemaURI, unsigned char **result, + int *size, char **parsing_errors, + char **schema_validation_errors) +{ +/* attempting to build an XmlBLOB buffer */ + xmlDocPtr xml_doc; + xmlDocPtr schema_doc; + xmlSchemaPtr schema; + xmlSchemaParserCtxtPtr parser_ctxt; + xmlSchemaValidCtxtPtr valid_ctxt; + int is_iso_metadata = 0; + int is_sld_se_vector_style = 0; + int is_sld_se_raster_style = 0; + int is_sld_style = 0; + int is_svg = 0; + int len; + int zip_len; + short uri_len = 0; + short fileid_len = 0; + short parentid_len = 0; + short name_len = 0; + short title_len = 0; + short abstract_len = 0; + short geometry_len = 0; + char *fileIdentifier = NULL; + char *parentIdentifier = NULL; + char *name = NULL; + char *title = NULL; + char *abstract = NULL; + unsigned char *geometry = NULL; + uLong crc; + Bytef *zip_buf; + unsigned char *buf; + unsigned char *ptr; + unsigned char flags = 0x00; + int endian_arch = gaiaEndianArch (); + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + gaiaOutBufferPtr parsingBuf = NULL; + gaiaOutBufferPtr schemaValidationBuf = NULL; + xmlGenericErrorFunc silentError = NULL; + xmlGenericErrorFunc parsingError = NULL; + xmlGenericErrorFunc schemaError = NULL; + if (is_valid_cache (cache)) + { + parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); + schemaValidationBuf = + (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); + parsingError = (xmlGenericErrorFunc) spliteParsingError; + schemaError = (xmlGenericErrorFunc) spliteSchemaValidationError; + spliteResetXmlErrors (cache); + } + + *result = NULL; + *size = 0; + if (parsing_errors) + *parsing_errors = NULL; + if (schema_validation_errors) + *schema_validation_errors = NULL; + if (xml == NULL) + return; + + xmlSetGenericErrorFunc (NULL, silentError); + + if (schemaURI != NULL) + { + if (splite_xmlSchemaCacheFind + (cache, schemaURI, &schema_doc, &parser_ctxt, &schema)) + ; + else + { + /* preparing the Schema */ + xmlSetGenericErrorFunc (cache, schemaError); + schema_doc = xmlReadFile ((const char *) schemaURI, NULL, 0); + if (schema_doc == NULL) + { + spatialite_e ("unable to load the Schema\n"); + if (schema_validation_errors) + *schema_validation_errors = + schemaValidationBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + parser_ctxt = xmlSchemaNewDocParserCtxt (schema_doc); + if (parser_ctxt == NULL) + { + spatialite_e ("unable to prepare the Schema Context\n"); + xmlFreeDoc (schema_doc); + if (schema_validation_errors) + *schema_validation_errors = + schemaValidationBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + schema = xmlSchemaParse (parser_ctxt); + if (schema == NULL) + { + spatialite_e ("invalid Schema\n"); + xmlFreeDoc (schema_doc); + if (schema_validation_errors) + *schema_validation_errors = + schemaValidationBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + splite_xmlSchemaCacheInsert (cache, schemaURI, schema_doc, + parser_ctxt, schema); + } + } + +/* testing if the XMLDocument is well-formed */ + xmlSetGenericErrorFunc (cache, parsingError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + spatialite_e ("XML parsing error\n"); + if (parsing_errors && parsingBuf) + *parsing_errors = parsingBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + if (parsing_errors && parsingBuf) + *parsing_errors = parsingBuf->Buffer; + + if (schemaURI != NULL) + { + /* Schema validation */ + xmlSetGenericErrorFunc (cache, schemaError); + valid_ctxt = xmlSchemaNewValidCtxt (schema); + if (valid_ctxt == NULL) + { + spatialite_e ("unable to prepare a validation context\n"); + xmlFreeDoc (xml_doc); + if (schema_validation_errors && schemaValidationBuf) + *schema_validation_errors = schemaValidationBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + if (xmlSchemaValidateDoc (valid_ctxt, xml_doc) != 0) + { + spatialite_e ("Schema validation failed\n"); + xmlSchemaFreeValidCtxt (valid_ctxt); + xmlFreeDoc (xml_doc); + if (schema_validation_errors && schemaValidationBuf) + *schema_validation_errors = schemaValidationBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + xmlSchemaFreeValidCtxt (valid_ctxt); + } + +/* testing for special cases: ISO Metadata, SLD/SE Styles and SVG */ + sniff_payload (xml_doc, &is_iso_metadata, &is_sld_se_vector_style, + &is_sld_se_raster_style, &is_sld_style, &is_svg); + if (is_iso_metadata) + retrieve_iso_identifiers (xml_doc, &fileIdentifier, + &parentIdentifier, &title, &abstract, + &geometry, &geometry_len); + if (is_sld_style) + retrieve_sld_identifiers (xml_doc, &name, &title, &abstract); + else if (is_sld_se_vector_style || is_sld_se_raster_style) + retrieve_sld_se_identifiers (xml_doc, &name, &title, &abstract); + xmlFreeDoc (xml_doc); + + if (compressed) + { + /* compressing the XML payload */ + uLong zLen = compressBound (xml_len); + zip_buf = malloc (zLen); + if (compress (zip_buf, &zLen, (const Bytef *) xml, (uLong) xml_len) != + Z_OK) + { + /* compression error */ + spatialite_e ("XmlBLOB DEFLATE compress error\n"); + free (zip_buf); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + zip_len = (int) zLen; + } + else + zip_len = xml_len; + +/* reporting errors */ + if (parsing_errors && parsingBuf) + *parsing_errors = parsingBuf->Buffer; + if (schema_validation_errors && schemaValidationBuf) + *schema_validation_errors = schemaValidationBuf->Buffer; + +/* computing the XmlBLOB size */ + len = 39; /* fixed header-footer size */ + if (schemaURI) + uri_len = strlen ((const char *) schemaURI); + if (fileIdentifier) + fileid_len = strlen ((const char *) fileIdentifier); + if (parentIdentifier) + parentid_len = strlen ((const char *) parentIdentifier); + if (name) + name_len = strlen ((const char *) name); + if (title) + title_len = strlen ((const char *) title); + if (abstract) + abstract_len = strlen ((const char *) abstract); + len += zip_len; + len += uri_len; + len += fileid_len; + len += parentid_len; + len += name_len; + len += title_len; + len += abstract_len; + len += geometry_len; + buf = malloc (len); + *buf = GAIA_XML_START; /* START signature */ + flags |= GAIA_XML_LITTLE_ENDIAN; + if (compressed) + flags |= GAIA_XML_COMPRESSED; + if (schemaURI != NULL) + flags |= GAIA_XML_VALIDATED; + if (is_iso_metadata) + flags |= GAIA_XML_ISO_METADATA; + if (is_sld_se_vector_style) + flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; + if (is_sld_se_raster_style) + flags |= GAIA_XML_SLD_SE_RASTER_STYLE; + if (is_sld_style) + flags |= GAIA_XML_SLD_STYLE; + if (is_svg) + flags |= GAIA_XML_SVG; + *(buf + 1) = flags; /* XmlBLOB flags */ + *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ + gaiaExport32 (buf + 3, xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ + gaiaExport32 (buf + 7, zip_len, 1, endian_arch); /* the compressed XMLDocument size */ + gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ + *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ + ptr = buf + 14; + if (schemaURI) + { + /* the SchemaURI */ + memcpy (ptr, schemaURI, uri_len); + ptr += uri_len; + } + gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ + ptr += 2; + *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ + ptr++; + if (fileIdentifier) + { + /* the FileIdentifier */ + memcpy (ptr, fileIdentifier, fileid_len); + free (fileIdentifier); + ptr += fileid_len; + } + gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ + ptr += 2; + *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ + ptr++; + if (parentIdentifier) + { + /* the ParentIdentifier */ + memcpy (ptr, parentIdentifier, parentid_len); + free (parentIdentifier); + ptr += parentid_len; + } + gaiaExport16 (ptr, name_len, 1, endian_arch); /* the Name length in bytes */ + ptr += 2; + *ptr = GAIA_XML_NAME; /* Title signature */ + ptr++; + if (name) + { + /* the Name */ + memcpy (ptr, name, name_len); + free (name); + ptr += name_len; + } + gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ + ptr += 2; + *ptr = GAIA_XML_TITLE; /* Title signature */ + ptr++; + if (title) + { + /* the Title */ + memcpy (ptr, title, title_len); + free (title); + ptr += title_len; + } + gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ + ptr += 2; + *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ + ptr++; + if (abstract) + { + /* the Abstract */ + memcpy (ptr, abstract, abstract_len); + free (abstract); + ptr += abstract_len; + } + gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ + ptr += 2; + *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ + ptr++; + if (geometry) + { + /* the Geometry */ + memcpy (ptr, geometry, geometry_len); + free (geometry); + ptr += geometry_len; + } + *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ + ptr++; + if (compressed) + { + /* the compressed XML payload */ + memcpy (ptr, zip_buf, zip_len); + free (zip_buf); + ptr += zip_len; + } + else + { + /* the uncompressed XML payload */ + memcpy (ptr, xml, xml_len); + ptr += xml_len; + } + *ptr = GAIA_XML_CRC32; /* CRC32 signature */ + ptr++; +/* computing the CRC32 */ + crc = crc32 (0L, buf, ptr - buf); + gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ + ptr += 4; + *ptr = GAIA_XML_END; /* END signature */ + + *result = buf; + *size = len; + xmlSetGenericErrorFunc ((void *) stderr, NULL); +} + +GAIAGEO_DECLARE void +gaiaXmlBlobCompression (const unsigned char *blob, + int in_size, int compressed, + unsigned char **result, int *out_size) +{ +/* Return another XmlBLOB buffer compressed / uncompressed */ + int in_compressed = 0; + int little_endian = 0; + unsigned char flag; + int in_xml_len; + int in_zip_len; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + int out_xml_len; + int out_zip_len; + uLong crc; + Bytef *zip_buf; + int len; + char *schemaURI; + char *fileIdentifier; + char *parentIdentifier; + char *name; + char *title; + char *abstract; + unsigned char *geometry; + int is_iso_metadata = 0; + int is_sld_se_vector_style = 0; + int is_sld_se_raster_style = 0; + int is_sld_style = 0; + int is_svg = 0; + unsigned char *xml; + unsigned char *buf; + unsigned char *ptr; + unsigned char flags; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + + *result = NULL; + *out_size = 0; +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, in_size)) + return; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + in_compressed = 1; + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + is_iso_metadata = 1; + if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) + is_sld_se_vector_style = 1; + if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) + is_sld_se_raster_style = 1; + if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE) + is_sld_style = 1; + if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) + is_svg = 1; + in_xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + in_zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); + ptr = (unsigned char *) blob + 14; + if (uri_len) + { + schemaURI = (char *) ptr; + ptr += uri_len; + } + else + { + schemaURI = NULL; + } + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (fileid_len) + { + fileIdentifier = (char *) ptr; + ptr += fileid_len; + } + else + { + fileIdentifier = NULL; + } + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (parentid_len) + { + parentIdentifier = (char *) ptr; + ptr += parentid_len; + } + else + { + parentIdentifier = NULL; + } + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (name_len) + { + name = (char *) ptr; + ptr += name_len; + } + else + { + name = NULL; + } + } + else + { + name_len = 0; + name = NULL; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (title_len) + { + title = (char *) ptr; + ptr += title_len; + } + else + { + title = NULL; + } + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (abstract_len) + { + abstract = (char *) ptr; + ptr += abstract_len; + } + else + { + abstract = NULL; + } + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3; + if (geometry_len) + { + geometry = (unsigned char *) ptr; + ptr += geometry_len; + } + else + { + geometry = NULL; + } + ptr++; + + if (in_compressed == compressed) + { + /* unchanged compression */ + out_xml_len = in_xml_len; + out_zip_len = in_zip_len; + zip_buf = (unsigned char *) ptr; + } + else if (compressed) + { + /* compressing the XML payload */ + uLong zLen; + out_xml_len = in_xml_len; + zLen = compressBound (out_xml_len); + xml = (unsigned char *) ptr; + zip_buf = malloc (zLen); + if (compress + (zip_buf, &zLen, (const Bytef *) xml, + (uLong) out_xml_len) != Z_OK) + { + /* compression error */ + spatialite_e ("XmlBLOB DEFLATE compress error\n"); + free (zip_buf); + return; + } + out_zip_len = (int) zLen; + } + else + { + /* unzipping the XML payload */ + uLong refLen = in_xml_len; + const Bytef *in = ptr; + xml = malloc (in_xml_len + 1); + if (uncompress (xml, &refLen, in, in_zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return; + } + *(xml + in_xml_len) = '\0'; + out_xml_len = in_xml_len; + out_zip_len = out_xml_len; + } + +/* computing the XmlBLOB size */ + len = 39; /* fixed header-footer size */ + len += out_zip_len; + len += uri_len; + len += fileid_len; + len += parentid_len; + len += name_len; + len += title_len; + len += abstract_len; + len += geometry_len; + buf = malloc (len); + *buf = GAIA_XML_START; /* START signature */ + flags = 0x00; + flags |= GAIA_XML_LITTLE_ENDIAN; + if (compressed) + flags |= GAIA_XML_COMPRESSED; + if (schemaURI != NULL) + flags |= GAIA_XML_VALIDATED; + if (is_iso_metadata) + flags |= GAIA_XML_ISO_METADATA; + if (is_sld_se_vector_style) + flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; + if (is_sld_se_raster_style) + flags |= GAIA_XML_SLD_SE_RASTER_STYLE; + if (is_sld_style) + flags |= GAIA_XML_SLD_STYLE; + if (is_svg) + flags |= GAIA_XML_SVG; + *(buf + 1) = flags; /* XmlBLOB flags */ + *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ + gaiaExport32 (buf + 3, out_xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ + gaiaExport32 (buf + 7, out_zip_len, 1, endian_arch); /* the compressed XMLDocument size */ + gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ + *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ + ptr = buf + 14; + if (schemaURI) + { + /* the SchemaURI */ + memcpy (ptr, schemaURI, uri_len); + ptr += uri_len; + } + gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ + ptr += 2; + *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ + ptr++; + if (fileIdentifier) + { + /* the FileIdentifier */ + memcpy (ptr, fileIdentifier, fileid_len); + ptr += fileid_len; + } + gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ + ptr += 2; + *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ + ptr++; + if (parentIdentifier) + { + /* the ParentIdentifier */ + memcpy (ptr, parentIdentifier, parentid_len); + ptr += parentid_len; + } + gaiaExport16 (ptr, name_len, 1, endian_arch); /* the Name length in bytes */ + ptr += 2; + *ptr = GAIA_XML_NAME; /* Name signature */ + ptr++; + if (name) + { + /* the Name */ + memcpy (ptr, name, name_len); + ptr += name_len; + } + gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ + ptr += 2; + *ptr = GAIA_XML_TITLE; /* Title signature */ + ptr++; + if (title) + { + /* the Title */ + memcpy (ptr, title, title_len); + ptr += title_len; + } + gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ + ptr += 2; + *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ + ptr++; + if (abstract) + { + /* the Abstract */ + memcpy (ptr, abstract, abstract_len); + ptr += abstract_len; + } + gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ + ptr += 2; + *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ + ptr++; + if (geometry) + { + /* the Geometry */ + memcpy (ptr, geometry, geometry_len); + ptr += geometry_len; + } + + *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ + ptr++; + if (in_compressed == compressed) + { + /* the unchanged XML payload */ + memcpy (ptr, zip_buf, out_zip_len); + ptr += out_zip_len; + } + else if (compressed) + { + /* the compressed XML payload */ + memcpy (ptr, zip_buf, out_zip_len); + free (zip_buf); + ptr += out_zip_len; + } + else + { + /* the uncompressed XML payload */ + memcpy (ptr, xml, out_xml_len); + free (xml); + ptr += out_xml_len; + } + *ptr = GAIA_XML_CRC32; /* CRC32 signature */ + ptr++; +/* computing the CRC32 */ + crc = crc32 (0L, buf, ptr - buf); + gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ + ptr += 4; + *ptr = GAIA_XML_END; /* END signature */ + + *result = buf; + *out_size = len; +} + +static int +is_valid_legacy_xml_blob (const unsigned char *blob, int blob_size) +{ +/* Checks if a BLOB actually is a valid LEGACY XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short title_len; + short abstract_len; + short geometry_len; + uLong crc; + uLong refCrc; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (blob_size < 36) + return 0; /* cannot be an XmlBLOB */ + if (*blob != GAIA_XML_START) + return 0; /* failed to recognize START signature */ + if (*(blob + (blob_size - 1)) != GAIA_XML_END) + return 0; /* failed to recognize END signature */ + if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32) + return 0; /* failed to recognize CRC32 signature */ + if (*(blob + 2) != GAIA_XML_LEGACY_HEADER) + return 0; /* failed to recognize HEADER signature */ + if (*(blob + 13) != GAIA_XML_SCHEMA) + return 0; /* failed to recognize SCHEMA signature */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_SCHEMA) + return 0; + ptr++; + ptr += uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_FILEID) + return 0; + ptr++; + ptr += fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_PARENTID) + return 0; + ptr++; + ptr += parentid_len; + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_TITLE) + return 0; + ptr++; + ptr += title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_ABSTRACT) + return 0; + ptr++; + ptr += abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_GEOMETRY) + return 0; + ptr++; + ptr += geometry_len; + if (*ptr != GAIA_XML_PAYLOAD) + return 0; + +/* verifying the CRC32 */ + crc = crc32 (0L, blob, blob_size - 5); + refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch); + if (crc != refCrc) + return 0; + + return 1; +} + +GAIAGEO_DECLARE int +gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a BLOB actually is a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + uLong crc; + uLong refCrc; + int endian_arch = gaiaEndianArch (); + + if (blob_size > 3) + { + /* legacy format */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + return is_valid_legacy_xml_blob (blob, blob_size); + } + +/* validity check */ + if (blob_size < 39) + return 0; /* cannot be an XmlBLOB */ + if (*blob != GAIA_XML_START) + return 0; /* failed to recognize START signature */ + if (*(blob + (blob_size - 1)) != GAIA_XML_END) + return 0; /* failed to recognize END signature */ + if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32) + return 0; /* failed to recognize CRC32 signature */ + if (*(blob + 2) != GAIA_XML_HEADER) + return 0; /* failed to recognize HEADER signature */ + if (*(blob + 13) != GAIA_XML_SCHEMA) + return 0; /* failed to recognize SCHEMA signature */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_SCHEMA) + return 0; + ptr++; + ptr += uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_FILEID) + return 0; + ptr++; + ptr += fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_PARENTID) + return 0; + ptr++; + ptr += parentid_len; + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_NAME) + return 0; + ptr++; + ptr += name_len; + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_TITLE) + return 0; + ptr++; + ptr += title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_ABSTRACT) + return 0; + ptr++; + ptr += abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 2; + if (*ptr != GAIA_XML_GEOMETRY) + return 0; + ptr++; + ptr += geometry_len; + if (*ptr != GAIA_XML_PAYLOAD) + return 0; + +/* verifying the CRC32 */ + crc = crc32 (0L, blob, blob_size - 5); + refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch); + if (crc != refCrc) + return 0; + + return 1; +} + +static void +find_xml_namespaces (xmlNode * node, struct gaiaxml_ns_list *list) +{ +/* recursively identifying all XML Namespaces from DOM-nodes */ + struct _xmlAttr *attr; + while (node) + { + xmlNs *ns = node->ns; + if (ns != NULL) + splite_add_namespace (list, ns->type, ns->prefix, ns->href); + attr = node->properties; + while (attr != NULL) + { + ns = attr->ns; + if (ns != NULL) + splite_add_namespace (list, ns->type, ns->prefix, ns->href); + attr = attr->next; + } + find_xml_namespaces (node->children, list); + node = node->next; + } +} + +static void +xml_out (gaiaOutBufferPtr buf, const xmlChar * str) +{ +/* clean XML output */ + const xmlChar *p = str; + while (*p != '\0') + { + if (*p == '>') + gaiaAppendToOutBuffer (buf, ">"); + else if (*p == '<') + gaiaAppendToOutBuffer (buf, "<"); + else if (*p == '&') + gaiaAppendToOutBuffer (buf, "&"); + else if (*p == '"') + gaiaAppendToOutBuffer (buf, """); + else if (*p == '\'') + gaiaAppendToOutBuffer (buf, "'"); + else + { + char xx[2]; + xx[0] = *p; + xx[1] = '\0'; + gaiaAppendToOutBuffer (buf, xx); + } + p++; + } +} + +static void +format_xml (xmlNode * root, xmlNode * node, struct gaiaxml_ns_list *list, + gaiaOutBufferPtr buf, int indent, int *level) +{ +/* recursively printing the XML-DOM nodes */ + struct _xmlAttr *attr; + xmlNode *child; + xmlNs *ns; + const xmlChar *namespace; + char *indenting = NULL; + const char no = '\0'; + const char *pre; + int tab; + int width; + int has_children; + int has_text; + if (!indent) + pre = &no; + else + { + if (indent <= 8) + tab = indent; + else + tab = 8; + width = tab * *level; + indenting = malloc (width + 2); + *indenting = '\n'; + memset (indenting + 1, ' ', width); + *(indenting + width + 1) = '\0'; + pre = indenting; + } + + while (node) + { + if (node->type == XML_COMMENT_NODE) + { + /* comment node */ + if (*pre != '\0') + gaiaAppendToOutBuffer (buf, "<!--"); + else + gaiaAppendToOutBuffer (buf, "\n<!--"); + xml_out (buf, node->content); + gaiaAppendToOutBuffer (buf, "-->"); + } + if (node->type == XML_ELEMENT_NODE) + { + if (*pre != '\0') + gaiaAppendToOutBuffer (buf, pre); + gaiaAppendToOutBuffer (buf, "<"); + ns = node->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + xml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + xml_out (buf, node->name); + if (node == root) + { + /* Namespaces */ + struct gaiaxml_namespace *p_ns = list->first; + while (p_ns != NULL) + { + if (p_ns->prefix == NULL) + gaiaAppendToOutBuffer (buf, " xmlns=\""); + else + { + gaiaAppendToOutBuffer (buf, " xmlns:"); + xml_out (buf, p_ns->prefix); + gaiaAppendToOutBuffer (buf, "=\""); + } + xml_out (buf, p_ns->href); + gaiaAppendToOutBuffer (buf, "\""); + p_ns = p_ns->next; + } + } + attr = node->properties; + while (attr != NULL) + { + /* attributes */ + if (attr->type == XML_ATTRIBUTE_NODE) + { + xmlNode *text = attr->children; + gaiaAppendToOutBuffer (buf, " "); + ns = attr->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + xml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + xml_out (buf, attr->name); + gaiaAppendToOutBuffer (buf, "=\""); + if (text != NULL) + { + if (text->type == XML_TEXT_NODE) + xml_out (buf, text->content); + } + gaiaAppendToOutBuffer (buf, "\""); + } + attr = attr->next; + } + has_children = 0; + has_text = 0; + child = node->children; + while (child) + { + if (child->type == XML_ELEMENT_NODE + || child->type == XML_COMMENT_NODE) + has_children = 1; + if (child->type == XML_TEXT_NODE) + has_text++; + child = child->next; + } + if (has_children) + has_text = 0; + + if (!has_text && !has_children) + gaiaAppendToOutBuffer (buf, " />"); + + if (has_text) + { + child = node->children; + if (child->type == XML_TEXT_NODE) + { + /* text node */ + gaiaAppendToOutBuffer (buf, ">"); + xml_out (buf, child->content); + gaiaAppendToOutBuffer (buf, "</"); + ns = node->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + xml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + xml_out (buf, node->name); + gaiaAppendToOutBuffer (buf, ">"); + } + } + if (has_children) + { + /* recursively expanding all children */ + gaiaAppendToOutBuffer (buf, ">"); + *level += 1; + format_xml (root, node->children, list, buf, indent, + level); + *level -= 1; + if (*pre != '\0') + gaiaAppendToOutBuffer (buf, pre); + gaiaAppendToOutBuffer (buf, "</"); + ns = node->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + xml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + xml_out (buf, node->name); + gaiaAppendToOutBuffer (buf, ">"); + } + } + node = node->next; + } + if (indenting) + free (indenting); +} + +static int +gaiaXmlFormat (xmlDocPtr xml_doc, xmlChar ** out, int *out_len, + const xmlChar * encoding, int indent) +{ +/* reformatting an XML Document - properly indenting */ + int level = 0; + int ret; + gaiaOutBuffer buf; + const xmlChar *version = xml_doc->version; + xmlNode *root = xmlDocGetRootElement (xml_doc); + struct gaiaxml_ns_list *list = splite_create_ns_list (); + + gaiaOutBufferInitialize (&buf); + if (encoding != NULL) + { + gaiaAppendToOutBuffer (&buf, "<?xml version=\""); + gaiaAppendToOutBuffer (&buf, (const char *) version); + gaiaAppendToOutBuffer (&buf, "\" encoding=\""); + gaiaAppendToOutBuffer (&buf, (const char *) encoding); + gaiaAppendToOutBuffer (&buf, "\"?>"); + } + else + { + gaiaAppendToOutBuffer (&buf, "<?xml version=\""); + gaiaAppendToOutBuffer (&buf, (const char *) version); + gaiaAppendToOutBuffer (&buf, "\"?>"); + } + + find_xml_namespaces (root, list); + format_xml (root, root, list, &buf, indent, &level); + splite_free_ns_list (list); + + if (buf.Error == 0 && buf.Buffer != NULL) + { + xmlChar *output; + /* terminating the last line */ + gaiaAppendToOutBuffer (&buf, "\n"); + output = malloc (buf.WriteOffset + 1); + memcpy (output, buf.Buffer, buf.WriteOffset); + /* NULL-terminated string */ + *(output + buf.WriteOffset) = '\0'; + *out = output; + *out_len = buf.WriteOffset + 1; + ret = 1; + } + else + { + *out = NULL; + *out_len = 0; + ret = 0; + } + gaiaOutBufferReset (&buf); + return ret; +} + +GAIAGEO_DECLARE char * +gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent) +{ +/* attempting to extract an XMLDocument from within an XmlBLOB buffer */ + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + int xml_len; + int zip_len; + short uri_len; + short fileid_len; + short parentid_len; + short name_len = 0; + short title_len; + short abstract_len; + short geometry_len; + unsigned char *xml; + xmlDocPtr xml_doc; + xmlChar *out; + int out_len; + xmlChar *encoding = NULL; + void *cvt; + char *utf8; + int err; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return NULL; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* retrieving the XMLDocument encoding */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; + } + if (xml_doc->encoding) + { + /* using the internal character enconding */ + int enclen = (int) strlen ((const char *) xml_doc->encoding); + encoding = malloc (enclen + 1); + strcpy ((char *) encoding, (const char *) (xml_doc->encoding)); + } + else + { + /* no declared encoding: defaulting to UTF-8 */ + encoding = malloc (6); + strcpy ((char *) encoding, "UTF-8"); + } + + if (indent < 0) + { + /* just returning the XMLDocument "as is" */ + xmlFreeDoc (xml_doc); + cvt = gaiaCreateUTF8Converter ((const char *) encoding); + free (encoding); + if (cvt == NULL) + { + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; + } + utf8 = gaiaConvertToUTF8 (cvt, (const char *) xml, xml_len, &err); + free (xml); + gaiaFreeUTF8Converter (cvt); + if (utf8 && !err) + { + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return utf8; + } + if (utf8) + free (utf8); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; + } + +/* properly indenting the XMLDocument */ + gaiaXmlFormat (xml_doc, &out, &out_len, encoding, indent); + free (xml); + xmlFreeDoc (xml_doc); + free (encoding); + if (out) + { + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return (char *) out; + } + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; +} + +GAIAGEO_DECLARE void +gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent, + unsigned char **result, int *res_size) +{ +/* attempting to extract an XMLDocument from within an XmlBLOB buffer */ + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + int xml_len; + int zip_len; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + unsigned char *xml; + xmlDocPtr xml_doc; + xmlChar *out; + int out_len; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + *result = NULL; + *res_size = 0; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } + if (indent < 0) + { + /* just returning the XMLDocument "as is" */ + *result = xml; + *res_size = xml_len; + return; + } + +/* properly indenting the XMLDocument */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + *result = xml; + *res_size = xml_len; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return; + } + gaiaXmlFormat (xml_doc, &out, &out_len, xml_doc->encoding, indent); + free (xml); + xmlFreeDoc (xml_doc); + *result = out; + *res_size = out_len; + xmlSetGenericErrorFunc ((void *) stderr, NULL); +} + +GAIAGEO_DECLARE int +gaiaXmlLoad (const void *p_cache, const char *path_or_url, + unsigned char **result, int *size, char **parsing_errors) +{ +/* attempting to load an external XML Document into a BLOB buffer */ + unsigned char *out; + int len; + xmlDocPtr xml_doc; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + gaiaOutBufferPtr parsingBuf = NULL; + xmlGenericErrorFunc parsingError = NULL; + if (is_valid_cache (cache)) + { + parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); + parsingError = (xmlGenericErrorFunc) spliteParsingError; + spliteResetXmlErrors (cache); + } + + *result = NULL; + *size = 0; + if (parsing_errors) + *parsing_errors = NULL; + if (path_or_url == NULL) + return 0; + +/* testing if the XMLDocument is well-formed */ + xmlSetGenericErrorFunc (cache, parsingError); + xml_doc = xmlReadFile (path_or_url, NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + spatialite_e ("XML parsing error\n"); + if (parsing_errors && parsingBuf) + *parsing_errors = parsingBuf->Buffer; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } + if (parsing_errors && parsingBuf) + *parsing_errors = parsingBuf->Buffer; + +/* exporting the XML Document into a BLOB */ + xmlDocDumpFormatMemory (xml_doc, &out, &len, 0); + xmlFreeDoc (xml_doc); + *result = out; + *size = len; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + if (out == NULL) + return 0; + return 1; +} + +GAIAGEO_DECLARE int +gaiaXmlStore (const unsigned char *blob, int size, const char *path, int indent) +{ +/* attempting to store an XmlBLOB Document into an external file */ + FILE *fl; + int wr; + unsigned char *result = NULL; + int res_size; + gaiaXmlFromBlob (blob, size, indent, &result, &res_size); + if (result == NULL) + return 0; + +/* exporting the XML Document into an external file */ + fl = fopen (path, "wb"); + if (fl == NULL) + { + spatialite_e ("Unable to open \"%s\"\n", path); + return 0; + } + wr = fwrite (result, 1, res_size, fl); + if (wr != res_size) + { + spatialite_e + ("I/O error: written %d bytes into \"%s\", expected %d\n", wr, + path, res_size); + fclose (fl); + return 0; + } + fclose (fl); + return 1; +} + +GAIAGEO_DECLARE int +gaiaIsCompressedXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer is compressed or not */ + int compressed = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + return compressed; +} + +GAIAGEO_DECLARE int +gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer has succesfully passed a formal Schema validation or not */ + int validated = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_VALIDATED) == GAIA_XML_VALIDATED) + validated = 1; + return validated; +} + +GAIAGEO_DECLARE int +gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer does actually contains an ISO Metadata or not */ + int iso_metadata = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + iso_metadata = 1; + return iso_metadata; +} + +GAIAGEO_DECLARE int +gaiaIsSldSeVectorStyleXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Vector Style or not */ + int sld_se_style = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) + sld_se_style = 1; + return sld_se_style; +} + +GAIAGEO_DECLARE int +gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Raster Style or not */ + int sld_se_style = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) + sld_se_style = 1; + return sld_se_style; +} + +GAIAGEO_DECLARE int +gaiaIsSldStyleXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer does actually contains an SLD Style or not */ + int sld_style = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE) + sld_style = 1; + return sld_style; +} + +GAIAGEO_DECLARE int +gaiaIsSvgXmlBlob (const unsigned char *blob, int blob_size) +{ +/* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Style or not */ + int svg = 0; + unsigned char flag; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) + svg = 1; + return svg; +} + +GAIAGEO_DECLARE int +gaiaXmlBlobGetDocumentSize (const unsigned char *blob, int blob_size) +{ +/* Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + int xml_len; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return -1; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + return xml_len; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int blob_size) +{ +/* Return the SchemaURI from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + short uri_len; + char *uri; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); + if (!uri_len) + return NULL; + + uri = malloc (uri_len + 1); + memcpy (uri, blob + 14, uri_len); + *(uri + uri_len) = '\0'; + return uri; +} + +GAIAGEO_DECLARE char * +gaiaXmlGetInternalSchemaURI (const void *p_cache, const unsigned char *xml, + int xml_len) +{ +/* Return the internally defined SchemaURI from a valid XmlDocument */ + xmlDocPtr xml_doc; + char *uri = NULL; + xmlXPathContextPtr xpathCtx; + xmlXPathObjectPtr xpathObj; + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + +/* retrieving the XMLDocument internal SchemaURI (if any) */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; + } + + if (vxpath_eval_expr + (p_cache, xml_doc, "/*/@xsi:schemaLocation", &xpathCtx, &xpathObj)) + { + /* attempting first to extract xsi:schemaLocation */ + xmlNodeSetPtr nodeset = xpathObj->nodesetval; + xmlNodePtr node; + int num_nodes = (nodeset) ? nodeset->nodeNr : 0; + if (num_nodes == 1) + { + node = nodeset->nodeTab[0]; + if (node->type == XML_ATTRIBUTE_NODE) + { + if (node->children != NULL) + { + if (node->children->content != NULL) + { + const char *str = + (const char *) (node->children->content); + const char *ptr = str; + int i; + int len = strlen (str); + for (i = len - 1; i >= 0; i--) + { + if (*(str + i) == ' ') + { + /* last occurrence of SPACE [namespace/schema separator] */ + ptr = str + i + 1; + break; + } + } + len = strlen (ptr); + uri = malloc (len + 1); + strcpy (uri, ptr); + } + } + } + } + if (uri != NULL) + xmlXPathFreeContext (xpathCtx); + xmlXPathFreeObject (xpathObj); + } + if (uri == NULL) + { + /* checking for xsi:noNamespaceSchemaLocation */ + if (vxpath_eval_expr + (p_cache, xml_doc, "/*/@xsi:noNamespaceSchemaLocation", &xpathCtx, + &xpathObj)) + { + xmlNodeSetPtr nodeset = xpathObj->nodesetval; + xmlNodePtr node; + int num_nodes = (nodeset) ? nodeset->nodeNr : 0; + if (num_nodes == 1) + { + node = nodeset->nodeTab[0]; + if (node->type == XML_ATTRIBUTE_NODE) + { + if (node->children != NULL) + { + if (node->children->content != NULL) + { + int len = + strlen ((const char *) + node->children->content); + uri = malloc (len + 1); + strcpy (uri, + (const char *) node-> + children->content); + } + } + } + } + xmlXPathFreeContext (xpathCtx); + xmlXPathFreeObject (xpathObj); + } + } + + xmlFreeDoc (xml_doc); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return uri; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetFileId (const unsigned char *blob, int blob_size) +{ +/* Return the FileIdentifier from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + char *file_identifier; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!fileid_len) + return NULL; + ptr += 3; + + file_identifier = malloc (fileid_len + 1); + memcpy (file_identifier, ptr, fileid_len); + *(file_identifier + fileid_len) = '\0'; + return file_identifier; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetParentId (const unsigned char *blob, int blob_size) +{ +/* Return the ParentIdentifier from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + char *parent_identifier; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!parentid_len) + return NULL; + ptr += 3; + + parent_identifier = malloc (parentid_len + 1); + memcpy (parent_identifier, ptr, parentid_len); + *(parent_identifier + parentid_len) = '\0'; + return parent_identifier; +} + +static xmlNodePtr +find_iso_node (xmlNodePtr root, const char *name) +{ +/* scanning the Root node [fileIdentifier or parentIdentifier] */ + xmlNodePtr nodeId = NULL; + xmlNodePtr node; + + for (node = root->children; node; node = node->next) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *xname = (const char *) (node->name); + if (strcmp (xname, name) == 0) + { + nodeId = node; + break; + } + } + } + if (nodeId == NULL) + return NULL; + for (node = nodeId->children; node; node = node->next) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *xname = (const char *) (node->name); + if (strcmp (xname, "CharacterString") == 0) + return node; + } + } + return NULL; +} + +static int +setIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, + unsigned char **out_blob, int *out_len) +{ +/* attempting to change an ISO Id */ + xmlNodePtr node; + xmlNodePtr new_node; + xmlNodePtr text; + xmlNodePtr old_node; + xmlChar *buf; + int len; + *out_blob = NULL; + *out_len = 0; + node = find_iso_node (xmlDocGetRootElement (xml_doc), node_name); + if (node == NULL) + return 0; +/* replacing the existing XML Node */ + new_node = xmlNewNode (node->ns, node->name); + text = xmlNewText ((xmlChar *) identifier); + xmlAddChild (new_node, text); + old_node = xmlReplaceNode (node, new_node); + xmlFreeNode (old_node); + xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); + if (buf == NULL) + return 0; + *out_blob = buf; + *out_len = len; + return 1; +} + +GAIAGEO_DECLARE int +gaiaXmlBlobSetFileId (const void *p_cache, const unsigned char *blob, + int blob_size, const char *identifier, + unsigned char **new_blob, int *new_size) +{ +/* Return a new XmlBLOB buffer by replacing the FileId value */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + int xml_len; + int zip_len; + int name_len; + short title_len; + short abstract_len; + short geometry_len; + char *schemaURI = NULL; + unsigned char *xml; + xmlDocPtr xml_doc; + unsigned char *out_blob; + int out_len; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + + *new_blob = NULL; + *new_size = 0; +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return 0; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + ; + else + return 0; /* not an ISO Metadata XmlBLOB */ + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (uri_len > 0) + { + schemaURI = malloc (uri_len + 1); + memcpy (schemaURI, blob + 14, uri_len); + *(schemaURI + uri_len) = '\0'; + } + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return 0; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* loading the XMLDocument */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } +/* replacing the FileId value */ + setIsoId (xml_doc, "fileIdentifier", identifier, &out_blob, &out_len); + free (xml); + xmlFreeDoc (xml_doc); + if (out_blob) + { + gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, + new_blob, new_size, NULL, NULL); +#ifdef __MINGW32__ +/* MinGW is unable to statically link libxml2 if xmlFree() is declared */ + free (out_blob); +#else + xmlFree (out_blob); +#endif + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 1; + } + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; +} + +GAIAGEO_DECLARE int +gaiaXmlBlobSetParentId (const void *p_cache, const unsigned char *blob, + int blob_size, const char *identifier, + unsigned char **new_blob, int *new_size) +{ +/* Return a new XmlBLOB buffer by replacing the ParentId value */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + int xml_len; + int zip_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + char *schemaURI = NULL; + unsigned char *xml; + xmlDocPtr xml_doc; + unsigned char *out_blob; + int out_len; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + + *new_blob = NULL; + *new_size = 0; +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return 0; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + ; + else + return 0; /* not an ISO Metadata XmlBLOB */ + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (uri_len > 0) + { + schemaURI = malloc (uri_len + 1); + memcpy (schemaURI, blob + 14, uri_len); + *(schemaURI + uri_len) = '\0'; + } + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return 0; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* loading the XMLDocument */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } +/* replacing the ParentId value */ + setIsoId (xml_doc, "parentIdentifier", identifier, &out_blob, &out_len); + free (xml); + xmlFreeDoc (xml_doc); + if (out_blob) + { + gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, + new_blob, new_size, NULL, NULL); +#ifdef __MINGW32__ +/* MinGW is unable to statically link libxml2 if xmlFree() is declared */ + free (out_blob); +#else + xmlFree (out_blob); +#endif + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 1; + } + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; +} + +static xmlNodePtr +find_iso_sibling (xmlNodePtr root, const char *name) +{ +/* scanning the Root node [previous sibling] */ + xmlNodePtr node; + + for (node = root->children; node; node = node->next) + { + if (node->type == XML_ELEMENT_NODE) + { + const char *xname = (const char *) (node->name); + if (strcmp (xname, name) == 0) + return node; + } + } + return NULL; +} + +static int +addIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, + const char *ns_id, const char *uri_id, const char *ns_charstr, + const char *uri_charstr, unsigned char **out_blob, int *out_len) +{ +/* attempting to insert a new ISO Id */ + xmlNsPtr ns_id_ptr = NULL; + xmlNsPtr ns_charstr_ptr = NULL; + xmlNodePtr id_node; + xmlNodePtr charstr_node; + xmlNodePtr text; + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + xmlNodePtr before = NULL; + xmlChar *buf; + int len; + *out_blob = NULL; + *out_len = 0; + if (find_iso_node (root, node_name)) + return 0; +/* retrieving the ID NameSpace */ + if (uri_id != NULL) + ns_id_ptr = xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_id); + if (ns_id_ptr == NULL) + ns_id_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_id); +/* inserting the "ID" XML Node */ + id_node = xmlNewNode (ns_id_ptr, (xmlChar *) node_name); + if (strcmp (node_name, "parentIdentifier") == 0) + { + /* attempting to identify the previous sibling */ + before = find_iso_sibling (root, "characterSet"); + if (before == NULL) + before = find_iso_sibling (root, "language"); + if (before == NULL) + before = find_iso_sibling (root, "fileIdentifier"); + } + if (before) + xmlAddNextSibling (before, id_node); + else + { + before = root->children; + if (before) + xmlAddPrevSibling (before, id_node); + else + xmlAddChild (root, id_node); + } + if (ns_id_ptr == NULL && ns_id != NULL && uri_id != NULL) + { + ns_id_ptr = xmlNewNs (root, (xmlChar *) uri_id, (xmlChar *) ns_id); + xmlSetNs (id_node, ns_id_ptr); + } +/* retrieving the CharacterString NameSpace */ + if (uri_charstr != NULL) + ns_charstr_ptr = + xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_charstr); + if (ns_charstr_ptr == NULL) + ns_charstr_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_charstr); +/* inserting the "CharacterString" XML Node */ + charstr_node = xmlNewNode (ns_charstr_ptr, (xmlChar *) "CharacterString"); + xmlAddChild (id_node, charstr_node); + if (ns_charstr_ptr == NULL && ns_charstr != NULL && uri_charstr != NULL) + { + ns_charstr_ptr = + xmlNewNs (root, (xmlChar *) uri_charstr, (xmlChar *) ns_charstr); + xmlSetNs (charstr_node, ns_charstr_ptr); + } + text = xmlNewText ((xmlChar *) identifier); + xmlAddChild (charstr_node, text); + xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); + if (buf == NULL) + return 0; + *out_blob = buf; + *out_len = len; + return 1; +} + +GAIAGEO_DECLARE int +gaiaXmlBlobAddFileId (const void *p_cache, const unsigned char *blob, + int blob_size, const char *identifier, const char *ns_id, + const char *uri_id, const char *ns_charstr, + const char *uri_charstr, unsigned char **new_blob, + int *new_size) +{ +/* Return a new XmlBLOB buffer by inserting a FileId value */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + int xml_len; + int zip_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + char *schemaURI = NULL; + unsigned char *xml; + xmlDocPtr xml_doc; + unsigned char *out_blob; + int out_len; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + + *new_blob = NULL; + *new_size = 0; +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return 0; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + ; + else + return 0; /* not an ISO Metadata XmlBLOB */ + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (uri_len > 0) + { + schemaURI = malloc (uri_len + 1); + memcpy (schemaURI, blob + 14, uri_len); + *(schemaURI + uri_len) = '\0'; + } + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return 0; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* loading the XMLDocument */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } +/* inserting the FileId value */ + addIsoId (xml_doc, "fileIdentifier", identifier, ns_id, uri_id, ns_charstr, + uri_charstr, &out_blob, &out_len); + free (xml); + xmlFreeDoc (xml_doc); + if (out_blob) + { + gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, + new_blob, new_size, NULL, NULL); +#ifdef __MINGW32__ +/* MinGW is unable to statically link libxml2 if xmlFree() is declared */ + free (out_blob); +#else + xmlFree (out_blob); +#endif + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 1; + } + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; +} + +GAIAGEO_DECLARE int +gaiaXmlBlobAddParentId (const void *p_cache, const unsigned char *blob, + int blob_size, const char *identifier, + const char *ns_id, const char *uri_id, + const char *ns_charstr, const char *uri_charstr, + unsigned char **new_blob, int *new_size) +{ +/* Return a new XmlBLOB buffer by inserting a ParentId value */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + int xml_len; + int zip_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + char *schemaURI = NULL; + unsigned char *xml; + xmlDocPtr xml_doc; + unsigned char *out_blob; + int out_len; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + + *new_blob = NULL; + *new_size = 0; +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return 0; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) + ; + else + return 0; /* not an ISO Metadata XmlBLOB */ + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (uri_len > 0) + { + schemaURI = malloc (uri_len + 1); + memcpy (schemaURI, blob + 14, uri_len); + *(schemaURI + uri_len) = '\0'; + } + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return 0; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* loading the XMLDocument */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } +/* inserting the ParentId value */ + addIsoId (xml_doc, "parentIdentifier", identifier, ns_id, uri_id, + ns_charstr, uri_charstr, &out_blob, &out_len); + free (xml); + xmlFreeDoc (xml_doc); + if (out_blob) + { + gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, + new_blob, new_size, NULL, NULL); +#ifdef __MINGW32__ +/* MinGW is unable to statically link libxml2 if xmlFree() is declared */ + free (out_blob); +#else + xmlFree (out_blob); +#endif + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 1; + } + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetName (const unsigned char *blob, int blob_size) +{ +/* Return the Name from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + char *name; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + return NULL; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!name_len) + return NULL; + ptr += 3; + + name = malloc (name_len + 1); + memcpy (name, ptr, name_len); + *(name + name_len) = '\0'; + return name; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size) +{ +/* Return the Title from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + char *title; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!title_len) + return NULL; + ptr += 3; + + title = malloc (title_len + 1); + memcpy (title, ptr, title_len); + *(title + title_len) = '\0'; + return title; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetAbstract (const unsigned char *blob, int blob_size) +{ +/* Return the Abstract from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + char *abstract; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!abstract_len) + return NULL; + ptr += 3; + + abstract = malloc (abstract_len + 1); + memcpy (abstract, ptr, abstract_len); + *(abstract + abstract_len) = '\0'; + return abstract; +} + +GAIAGEO_DECLARE void +gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size, + unsigned char **blob_geom, int *geom_size) +{ +/* Return the Geometry from a valid XmlBLOB buffer */ + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + unsigned char *geometry; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + + *blob_geom = NULL; + *geom_size = 0; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + if (!geometry_len) + return; + ptr += 3; + + geometry = malloc (geometry_len); + memcpy (geometry, ptr, geometry_len); + *blob_geom = geometry; + *geom_size = geometry_len; +} + +GAIAGEO_DECLARE char * +gaiaXmlBlobGetEncoding (const unsigned char *blob, int blob_size) +{ +/* Return the Charset Encoding from a valid XmlBLOB buffer */ + int compressed = 0; + int little_endian = 0; + unsigned char flag; + const unsigned char *ptr; + int xml_len; + int zip_len; + short uri_len; + short fileid_len; + short parentid_len; + short name_len; + short title_len; + short abstract_len; + short geometry_len; + unsigned char *xml; + xmlDocPtr xml_doc; + char *encoding = NULL; + int legacy_blob = 0; + int endian_arch = gaiaEndianArch (); + xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; + +/* validity check */ + if (!gaiaIsValidXmlBlob (blob, blob_size)) + return NULL; /* cannot be an XmlBLOB */ + if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) + legacy_blob = 1; + flag = *(blob + 1); + if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) + little_endian = 1; + if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) + compressed = 1; + xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); + zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); + ptr = blob + 11; + uri_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + uri_len; + fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + fileid_len; + parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + parentid_len; + if (!legacy_blob) + { + name_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + name_len; + } + title_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + title_len; + abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + abstract_len; + geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); + ptr += 3 + geometry_len; + ptr++; + if (compressed) + { + /* unzipping the XML payload */ + uLong refLen = xml_len; + const Bytef *in = ptr; + xml = malloc (xml_len + 1); + if (uncompress (xml, &refLen, in, zip_len) != Z_OK) + { + /* uncompress error */ + spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); + free (xml); + return NULL; + } + *(xml + xml_len) = '\0'; + } + else + { + /* just copying the uncompressed XML payload */ + xml = malloc (xml_len + 1); + memcpy (xml, ptr, xml_len); + *(xml + xml_len) = '\0'; + } +/* retrieving the XMLDocument encoding */ + xmlSetGenericErrorFunc (NULL, silentError); + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; + } + free (xml); + if (xml_doc->encoding) + { + /* using the internal character enconding */ + int enclen = strlen ((const char *) xml_doc->encoding); + encoding = malloc (enclen + 1); + strcpy (encoding, (const char *) xml_doc->encoding); + xmlFreeDoc (xml_doc); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return encoding; + } + xmlFreeDoc (xml_doc); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return NULL; +} + +GAIAGEO_DECLARE char * +gaia_libxml2_version (void) +{ +/* return the current LIBXML2 version */ + int len; + char *version; + const char *ver = LIBXML_DOTTED_VERSION; + len = strlen (ver); + version = malloc (len + 1); + strcpy (version, ver); + return version; +} + +#endif /* end LIBXML2: supporting XML documents */ diff --git a/src/spatialite/src/gaiageo/lemon/Makefile.in b/src/spatialite/src/gaiageo/lemon/Makefile.in index 2ce5f27..045ee51 100644 --- a/src/spatialite/src/gaiageo/lemon/Makefile.in +++ b/src/spatialite/src/gaiageo/lemon/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +78,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -63,15 +90,28 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -79,9 +119,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -113,6 +173,7 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -154,6 +215,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -175,6 +238,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -277,22 +343,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -307,57 +376,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -373,12 +397,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -390,15 +409,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -407,6 +422,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -567,22 +597,20 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiageo/lemon/lemon_src/Makefile.in b/src/spatialite/src/gaiageo/lemon/lemon_src/Makefile.in index fa7c4a4..32a82dc 100644 --- a/src/spatialite/src/gaiageo/lemon/lemon_src/Makefile.in +++ b/src/spatialite/src/gaiageo/lemon/lemon_src/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +78,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon/lemon_src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -63,6 +90,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -70,9 +109,11 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -114,6 +155,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -135,6 +178,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -234,11 +280,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -374,15 +420,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/gaiageo/lex.Ewkt.c b/src/spatialite/src/gaiageo/lex.Ewkt.c index 9a30671..fed73c6 100644 --- a/src/spatialite/src/gaiageo/lex.Ewkt.c +++ b/src/spatialite/src/gaiageo/lex.Ewkt.c @@ -50,9 +50,10 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#endif /* ! C99 */ - #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -92,15 +91,15 @@ typedef unsigned int flex_uint32_t; /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST -#else /* ! __cplusplus */ +#else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const @@ -121,7 +120,7 @@ typedef unsigned int flex_uint32_t; /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T -typedef void* yyscan_t; +typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) @@ -158,15 +157,7 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -182,8 +173,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - #define YY_LESS_LINENO(n) - +#define YY_LESS_LINENO(n) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ @@ -208,66 +199,66 @@ typedef size_t yy_size_t; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state - { - FILE *yy_input_file; +{ + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - int yy_buffer_status; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via Ewktrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via Ewktrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ #define YY_BUFFER_EOF_PENDING 2 - }; +}; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the @@ -285,27 +276,30 @@ struct yy_buffer_state */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void Ewktrestart (FILE *input_file ,yyscan_t yyscanner ); -void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE Ewkt_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void Ewkt_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Ewkt_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void Ewktpop_buffer_state (yyscan_t yyscanner ); +void Ewktrestart (FILE * input_file, yyscan_t yyscanner); +void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner); +void Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +void Ewktpop_buffer_state (yyscan_t yyscanner); -static void Ewktensure_buffer_stack (yyscan_t yyscanner ); -static void Ewkt_load_buffer_state (yyscan_t yyscanner ); -static void Ewkt_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +static void Ewktensure_buffer_stack (yyscan_t yyscanner); +static void Ewkt_load_buffer_state (yyscan_t yyscanner); +static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, + yyscan_t yyscanner); #define YY_FLUSH_BUFFER Ewkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) -YY_BUFFER_STATE Ewkt_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE Ewkt_scan_buffer (char *base, yy_size_t size, + yyscan_t yyscanner); +YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yy_str, yyscan_t yyscanner); +YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *bytes, int len, + yyscan_t yyscanner); -void *Ewktalloc (yy_size_t ,yyscan_t yyscanner ); -void *Ewktrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void Ewktfree (void * ,yyscan_t yyscanner ); +void *Ewktalloc (yy_size_t, yyscan_t yyscanner); +void *Ewktrealloc (void *, yy_size_t, yyscan_t yyscanner); +void Ewktfree (void *, yyscan_t yyscanner); #define yy_new_buffer Ewkt_create_buffer @@ -339,10 +333,11 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state (yyscan_t yyscanner); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state, + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner); +static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -359,152 +354,142 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[93] = - { 0, - 0, 0, 23, 21, 19, 20, 3, 4, 21, 2, - 21, 1, 21, 21, 21, 21, 1, 1, 1, 1, - 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 7, 0, 11, - 0, 0, 8, 0, 12, 0, 0, 0, 15, 0, - 0, 16, 0, 0, 0, 13, 0, 14, 0, 17, - 18, 0 - - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, - 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, - 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, - 1, 20, 21, 22, 23, 1, 1, 1, 24, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 25, 1, - - 26, 1, 27, 1, 28, 1, 1, 29, 30, 31, - 32, 33, 1, 34, 35, 36, 37, 1, 1, 1, - 38, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[39] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int16_t yy_base[93] = - { 0, - 0, 0, 187, 188, 188, 188, 188, 188, 174, 188, - 173, 30, 29, 28, 20, 26, 36, 38, 172, 40, - 33, 35, 38, 45, 171, 166, 165, 38, 49, 40, - 46, 40, 164, 163, 57, 49, 57, 50, 66, 58, - 59, 72, 66, 70, 69, 70, 78, 79, 188, 81, - 75, 86, 90, 94, 94, 104, 99, 105, 101, 95, - 188, 102, 112, 105, 105, 115, 120, 120, 115, 122, - 125, 129, 188, 125, 188, 129, 135, 134, 137, 143, - 138, 188, 134, 150, 150, 149, 148, 188, 154, 156, - 188, 188 - - } ; - -static yyconst flex_int16_t yy_def[93] = - { 0, - 92, 1, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 0 - - } ; - -static yyconst flex_int16_t yy_nxt[227] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 11, 4, 12, - 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 13, 4, 14, 15, - 4, 4, 16, 4, 4, 4, 4, 4, 19, 20, - 21, 22, 23, 24, 25, 17, 26, 18, 19, 20, - 28, 29, 30, 35, 21, 22, 23, 24, 31, 32, - 36, 37, 38, 39, 28, 29, 30, 35, 40, 41, - 42, 43, 31, 32, 36, 37, 38, 39, 44, 45, - 46, 49, 40, 41, 42, 43, 47, 50, 51, 52, - 48, 53, 44, 45, 46, 49, 54, 55, 56, 57, - - 47, 50, 51, 52, 48, 53, 58, 59, 60, 61, - 54, 55, 56, 57, 62, 63, 64, 65, 66, 67, - 58, 59, 60, 61, 68, 69, 70, 71, 62, 63, - 64, 65, 66, 67, 72, 73, 74, 75, 68, 69, - 70, 71, 76, 77, 78, 79, 80, 81, 72, 73, - 74, 75, 82, 83, 84, 85, 76, 77, 78, 79, - 80, 81, 86, 87, 88, 89, 82, 83, 84, 85, - 90, 91, 34, 33, 27, 34, 86, 87, 88, 89, - 33, 27, 18, 17, 90, 91, 92, 3, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92 - } ; - -static yyconst flex_int16_t yy_chk[227] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, - 13, 14, 15, 16, 17, 17, 18, 18, 20, 20, - 21, 22, 23, 28, 13, 14, 15, 16, 24, 24, - 29, 30, 31, 32, 21, 22, 23, 28, 35, 36, - 37, 38, 24, 24, 29, 30, 31, 32, 39, 40, - 41, 43, 35, 36, 37, 38, 42, 44, 45, 46, - 42, 47, 39, 40, 41, 43, 48, 50, 51, 52, - - 42, 44, 45, 46, 42, 47, 53, 54, 54, 55, - 48, 50, 51, 52, 56, 57, 58, 59, 60, 62, - 53, 54, 54, 55, 63, 64, 65, 66, 56, 57, - 58, 59, 60, 62, 67, 68, 69, 70, 63, 64, - 65, 66, 71, 72, 74, 76, 77, 78, 67, 68, - 69, 70, 79, 80, 81, 83, 71, 72, 74, 76, - 77, 78, 84, 85, 86, 87, 79, 80, 81, 83, - 89, 90, 34, 33, 27, 26, 84, 85, 86, 87, - 25, 19, 11, 9, 89, 90, 3, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92 - } ; +{ + flex_int32_t yy_verify; + flex_int32_t yy_nxt; +}; +static yyconst flex_int16_t yy_accept[93] = { 0, + 0, 0, 23, 21, 19, 20, 3, 4, 21, 2, + 21, 1, 21, 21, 21, 21, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 7, 0, 11, + 0, 0, 8, 0, 12, 0, 0, 0, 15, 0, + 0, 16, 0, 0, 0, 13, 0, 14, 0, 17, + 18, 0 +}; + +static yyconst flex_int32_t yy_ec[256] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, + 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, + 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, + 1, 20, 21, 22, 23, 1, 1, 1, 24, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 25, 1, + + 26, 1, 27, 1, 28, 1, 1, 29, 30, 31, + 32, 33, 1, 34, 35, 36, 37, 1, 1, 1, + 38, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 +}; + +static yyconst flex_int32_t yy_meta[39] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static yyconst flex_int16_t yy_base[93] = { 0, + 0, 0, 187, 188, 188, 188, 188, 188, 174, 188, + 173, 30, 29, 28, 20, 26, 36, 38, 172, 40, + 33, 35, 38, 45, 171, 166, 165, 38, 49, 40, + 46, 40, 164, 163, 57, 49, 57, 50, 66, 58, + 59, 72, 66, 70, 69, 70, 78, 79, 188, 81, + 75, 86, 90, 94, 94, 104, 99, 105, 101, 95, + 188, 102, 112, 105, 105, 115, 120, 120, 115, 122, + 125, 129, 188, 125, 188, 129, 135, 134, 137, 143, + 138, 188, 134, 150, 150, 149, 148, 188, 154, 156, + 188, 188 +}; + +static yyconst flex_int16_t yy_def[93] = { 0, + 92, 1, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 0 +}; + +static yyconst flex_int16_t yy_nxt[227] = { 0, + 4, 5, 6, 7, 8, 9, 10, 11, 4, 12, + 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, + 4, 4, 4, 4, 4, 4, 13, 4, 14, 15, + 4, 4, 16, 4, 4, 4, 4, 4, 19, 20, + 21, 22, 23, 24, 25, 17, 26, 18, 19, 20, + 28, 29, 30, 35, 21, 22, 23, 24, 31, 32, + 36, 37, 38, 39, 28, 29, 30, 35, 40, 41, + 42, 43, 31, 32, 36, 37, 38, 39, 44, 45, + 46, 49, 40, 41, 42, 43, 47, 50, 51, 52, + 48, 53, 44, 45, 46, 49, 54, 55, 56, 57, + + 47, 50, 51, 52, 48, 53, 58, 59, 60, 61, + 54, 55, 56, 57, 62, 63, 64, 65, 66, 67, + 58, 59, 60, 61, 68, 69, 70, 71, 62, 63, + 64, 65, 66, 67, 72, 73, 74, 75, 68, 69, + 70, 71, 76, 77, 78, 79, 80, 81, 72, 73, + 74, 75, 82, 83, 84, 85, 76, 77, 78, 79, + 80, 81, 86, 87, 88, 89, 82, 83, 84, 85, + 90, 91, 34, 33, 27, 34, 86, 87, 88, 89, + 33, 27, 18, 17, 90, 91, 92, 3, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92 +}; + +static yyconst flex_int16_t yy_chk[227] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, + 13, 14, 15, 16, 17, 17, 18, 18, 20, 20, + 21, 22, 23, 28, 13, 14, 15, 16, 24, 24, + 29, 30, 31, 32, 21, 22, 23, 28, 35, 36, + 37, 38, 24, 24, 29, 30, 31, 32, 39, 40, + 41, 43, 35, 36, 37, 38, 42, 44, 45, 46, + 42, 47, 39, 40, 41, 43, 48, 50, 51, 52, + + 42, 44, 45, 46, 42, 47, 53, 54, 54, 55, + 48, 50, 51, 52, 56, 57, 58, 59, 60, 62, + 53, 54, 54, 55, 63, 64, 65, 66, 56, 57, + 58, 59, 60, 62, 67, 68, 69, 70, 63, 64, + 65, 66, 71, 72, 74, 76, 77, 78, 67, 68, + 69, 70, 79, 80, 81, 83, 71, 72, 74, 76, + 77, 78, 84, 85, 86, 87, 79, 80, 81, 83, + 89, 90, 34, 33, 27, 26, 84, 85, 86, 87, + 25, 19, 11, 9, 89, 90, 3, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92 +}; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -580,16 +565,16 @@ the terms of any one of the MPL, the GPL or the LGPL. /* Holds the entire state of the reentrant scanner. */ struct yyguts_t - { +{ /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; @@ -601,7 +586,7 @@ struct yyguts_t int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; @@ -610,42 +595,46 @@ struct yyguts_t int yy_more_flag; int yy_more_len; - }; /* end struct yyguts_t */ +}; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals (yyscan_t yyscanner); -int Ewktlex_init (yyscan_t* scanner); +int Ewktlex_init (yyscan_t * scanner); -int Ewktlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int Ewktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int Ewktlex_destroy (yyscan_t yyscanner ); +int Ewktlex_destroy (yyscan_t yyscanner); + +int Ewktget_debug (yyscan_t yyscanner); -int Ewktget_debug (yyscan_t yyscanner ); +void Ewktset_debug (int debug_flag, yyscan_t yyscanner); -void Ewktset_debug (int debug_flag ,yyscan_t yyscanner ); +YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner); -YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner ); +void Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); -void Ewktset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +FILE *Ewktget_in (yyscan_t yyscanner); -FILE *Ewktget_in (yyscan_t yyscanner ); +void Ewktset_in (FILE * in_str, yyscan_t yyscanner); -void Ewktset_in (FILE * in_str ,yyscan_t yyscanner ); +FILE *Ewktget_out (yyscan_t yyscanner); -FILE *Ewktget_out (yyscan_t yyscanner ); +void Ewktset_out (FILE * out_str, yyscan_t yyscanner); -void Ewktset_out (FILE * out_str ,yyscan_t yyscanner ); +int Ewktget_leng (yyscan_t yyscanner); -int Ewktget_leng (yyscan_t yyscanner ); +char *Ewktget_text (yyscan_t yyscanner); -char *Ewktget_text (yyscan_t yyscanner ); +int Ewktget_lineno (yyscan_t yyscanner); -int Ewktget_lineno (yyscan_t yyscanner ); +void Ewktset_lineno (int line_number, yyscan_t yyscanner); -void Ewktset_lineno (int line_number ,yyscan_t yyscanner ); +int Ewktget_column (yyscan_t yyscanner); + +void Ewktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -653,38 +642,33 @@ void Ewktset_lineno (int line_number ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int Ewktwrap (yyscan_t yyscanner ); +extern "C" int Ewktwrap (yyscan_t yyscanner); #else -extern int Ewktwrap (yyscan_t yyscanner ); +extern int Ewktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput (yyscan_t yyscanner); #else -static int input (yyscan_t yyscanner ); +static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -703,7 +687,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -781,260 +765,292 @@ extern int Ewktlex (yyscan_t yyscanner); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( !yyg->yy_init ) - { - yyg->yy_init = 1; + if (!yyg->yy_init) + { + yyg->yy_init = 1; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if ( ! yyg->yy_start ) - yyg->yy_start = 1; /* first start state */ + if (!yyg->yy_start) + yyg->yy_start = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if (!yyin) + yyin = stdin; - if ( ! yyout ) - yyout = stdout; + if (!yyout) + yyout = stdout; - if ( ! YY_CURRENT_BUFFER ) { - Ewktensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Ewktensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } + + Ewkt_load_buffer_state (yyscanner); + } + + while (1) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != + yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 93) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while (yy_base[yy_current_state] != 188); + + yy_find_action: + yy_act = yy_accept[yy_current_state]; + if (yy_act == 0) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } - Ewkt_load_buffer_state(yyscanner ); - } + YY_DO_BEFORE_ACTION; - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yyg->yy_c_buf_p; + do_action: /* This label is used only to access EOF actions. */ - /* Support of yytext. */ + switch (yy_act) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yyg->yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 93 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 188 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -{ Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); EwktLval.dval = atof(yytext); return EWKT_NUM; } - YY_BREAK -case 2: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_COMMA; } - YY_BREAK -case 3: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } - YY_BREAK -case 4: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } - YY_BREAK -case 5: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_POINT; } - YY_BREAK -case 6: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_POINT_M; } - YY_BREAK -case 7: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_LINESTRING; } - YY_BREAK -case 8: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_LINESTRING_M; } - YY_BREAK -case 9: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_POLYGON; } - YY_BREAK -case 10: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_POLYGON_M; } - YY_BREAK -case 11: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTIPOINT; } - YY_BREAK -case 12: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } - YY_BREAK -case 13: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTILINESTRING; } - YY_BREAK -case 14: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } - YY_BREAK -case 15: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } - YY_BREAK -case 16: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } - YY_BREAK -case 17: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } - YY_BREAK -case 18: -YY_RULE_SETUP -{ EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } - YY_BREAK -case 19: -YY_RULE_SETUP -{ Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); } /* ignore but count white space */ - YY_BREAK -case 20: + case 1: + YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->ewkt_col += + (int) strlen (yytext); + Ewktget_extra (yyscanner)->EwktLval.dval = atof (yytext); + return EWKT_NUM; + } + YY_BREAK case 2:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_COMMA; + } + YY_BREAK case 3:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_OPEN_BRACKET; + } + YY_BREAK case 4:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_CLOSE_BRACKET; + } + YY_BREAK case 5:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_POINT; + } + YY_BREAK case 6:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_POINT_M; + } + YY_BREAK case 7:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_LINESTRING; + } + YY_BREAK case 8:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_LINESTRING_M; + } + YY_BREAK case 9:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_POLYGON; + } + YY_BREAK case 10:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_POLYGON_M; + } + YY_BREAK case 11:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTIPOINT; + } + YY_BREAK case 12:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTIPOINT_M; + } + YY_BREAK case 13:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTILINESTRING; + } + YY_BREAK case 14:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTILINESTRING_M; + } + YY_BREAK case 15:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTIPOLYGON; + } + YY_BREAK case 16:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_MULTIPOLYGON_M; + } + YY_BREAK case 17:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_GEOMETRYCOLLECTION; + } + YY_BREAK case 18:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->EwktLval.dval = 0; + return EWKT_GEOMETRYCOLLECTION_M; + } + YY_BREAK case 19:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->ewkt_col += + (int) strlen (yytext); + } /* ignore but count white space */ + YY_BREAK case 20: /* rule 20 can match eol */ -YY_RULE_SETUP -{ Ewktget_extra(yyscanner)->ewkt_col = 0; Ewktget_extra(yyscanner)->ewkt_line++; } - YY_BREAK -case 21: -YY_RULE_SETUP -{ Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); return -1; } - YY_BREAK -case 22: -YY_RULE_SETUP -ECHO; - YY_BREAK -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: + YY_RULE_SETUP { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yyg->yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * Ewktlex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); - - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + Ewktget_extra (yyscanner)->ewkt_col = 0; + Ewktget_extra (yyscanner)->ewkt_line++; + } + YY_BREAK case 21:YY_RULE_SETUP + { + Ewktget_extra (yyscanner)->ewkt_col += + (int) strlen (yytext); + return -1; + } + YY_BREAK case 22:YY_RULE_SETUP ECHO; + YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); - if ( yy_next_state ) - { + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = + (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == + YY_BUFFER_NEW) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * Ewktlex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = + YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if (yyg->yy_c_buf_p <= + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state (yyscanner); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = + yy_try_NUL_trans (yy_current_state, yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if (yy_next_state) + { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; - } + } - else - { + else + { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_END_OF_FILE: - { - yyg->yy_did_buffer_switch_on_eof = 0; - - if ( Ewktwrap(yyscanner ) ) - { + } + } + + else + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if (Ewktwrap (yyscanner)) + { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up @@ -1044,49 +1060,53 @@ case YY_STATE_EOF(INITIAL): * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + yyg->yy_c_buf_p = + yyg->yytext_ptr + YY_MORE_ADJ; - yy_act = YY_STATE_EOF(YY_START); + yy_act = YY_STATE_EOF (YY_START); goto do_action; - } - - else - { - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = - yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yyg->yy_c_buf_p = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; + } + + else + { + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> + yy_n_chars]; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; } - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of Ewktlex */ + default: + YY_FATAL_ERROR + ("fatal flex scanner internal error--no action found"); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of Ewktlex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1095,167 +1115,180 @@ case YY_STATE_EOF(INITIAL): * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer (yyscan_t yyscanner) +static int +yy_get_next_buffer (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if (yyg->yy_c_buf_p > + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) + YY_FATAL_ERROR + ("fatal flex scanner internal error--end of buffer missed"); + + if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) + { /* Don't try to fill the buffer, so this is an EOF. */ + if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ + return EOB_ACT_END_OF_FILE; + } - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; + /* Try to read more data. */ - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - Ewktrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); + for (i = 0; i < number_to_move; ++i) + *(dest++) = *(source++); - yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - } + while (num_to_read <= 0) + { /* Not enough room in the buffer - grow it. */ - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } + if (b->yy_is_our_buffer) + { + int new_size = b->yy_buf_size * 2; - if ( yyg->yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - Ewktrestart(yyin ,yyscanner); - } + if (new_size <= 0) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + Ewktrealloc ((void *) b->yy_ch_buf, + b->yy_buf_size + 2, yyscanner); + } else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Ewktrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - yyg->yy_n_chars += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if (!b->yy_ch_buf) + YY_FATAL_ERROR + ("fatal error - scanner input buffer overflow"); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if (num_to_read > YY_READ_BUF_SIZE) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if (yyg->yy_n_chars == 0) + { + if (number_to_move == YY_MORE_ADJ) + { + ret_val = EOB_ACT_END_OF_FILE; + Ewktrestart (yyin, yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > + YY_CURRENT_BUFFER_LVALUE->yy_buf_size) + { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = + yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = + (char *) Ewktrealloc ((void *) + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, + new_size, yyscanner); + if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = + YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = + YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ - static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +static yy_state_type +yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_current_state = yyg->yy_start; - - for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 93 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + yy_current_state = yyg->yy_start; + + for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; + ++yy_cp) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 93) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character @@ -1263,167 +1296,172 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +static yy_state_type +yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { - register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 93 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 92); - - return yy_is_jam ? 0 : yy_current_state; + register int yy_is_jam; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 93) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 92); + + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus - static int yyinput (yyscan_t yyscanner) +static int +yyinput (yyscan_t yyscanner) #else - static int input (yyscan_t yyscanner) +static int +input (yyscan_t yyscanner) #endif - { - int c; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - *yyg->yy_c_buf_p = yyg->yy_hold_char; - - if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - /* This was really a NUL. */ - *yyg->yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; - ++yyg->yy_c_buf_p; - - switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - Ewktrestart(yyin ,yyscanner); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( Ewktwrap(yyscanner ) ) - return EOF; - - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; + int c; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if (yyg->yy_c_buf_p < + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + Ewktrestart (yyin, yyscanner); + + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: + { + if (Ewktwrap (yyscanner)) + return EOF; + + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(yyscanner); + return yyinput (yyscanner); #else - return input(yyscanner); + return input (yyscanner); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = yyg->yytext_ptr + offset; - break; - } - } - } + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } - c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ - *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ - yyg->yy_hold_char = *++yyg->yy_c_buf_p; + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; - return c; + return c; } -#endif /* ifndef YY_NO_INPUT */ +#endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void Ewktrestart (FILE * input_file , yyscan_t yyscanner) +void +Ewktrestart (FILE * input_file, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! YY_CURRENT_BUFFER ){ - Ewktensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Ewktensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } - Ewkt_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - Ewkt_load_buffer_state(yyscanner ); + Ewkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); + Ewkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - /* TODO. We should be able to replace this entire function body - * with - * Ewktpop_buffer_state(); - * Ewktpush_buffer_state(new_buffer); + /* TODO. We should be able to replace this entire function body + * with + * Ewktpop_buffer_state(); + * Ewktpush_buffer_state(new_buffer); */ - Ewktensure_buffer_stack (yyscanner); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - Ewkt_load_buffer_state(yyscanner ); - - /* We don't actually know whether we did this switch during - * EOF (Ewktwrap()) processing, but the only time this flag - * is looked at is after Ewktwrap() is called, so it's safe - * to go ahead and always set it. - */ - yyg->yy_did_buffer_switch_on_eof = 1; + Ewktensure_buffer_stack (yyscanner); + if (YY_CURRENT_BUFFER == new_buffer) + return; + + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + Ewkt_load_buffer_state (yyscanner); + + /* We don't actually know whether we did this switch during + * EOF (Ewktwrap()) processing, but the only time this flag + * is looked at is after Ewktwrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; } -static void Ewkt_load_buffer_state (yyscan_t yyscanner) +static void +Ewkt_load_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - yyg->yy_hold_char = *yyg->yy_c_buf_p; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. @@ -1432,109 +1470,114 @@ static void Ewkt_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size , yyscan_t yyscanner) +YY_BUFFER_STATE +Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) Ewktalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Ewkt_create_buffer()" ); + YY_BUFFER_STATE b; - b->yy_buf_size = size; + b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) Ewktalloc(b->yy_buf_size + 2 ,yyscanner ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in Ewkt_create_buffer()" ); + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) Ewktalloc (b->yy_buf_size + 2, yyscanner); + if (!b->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); - b->yy_is_our_buffer = 1; + b->yy_is_our_buffer = 1; - Ewkt_init_buffer(b,file ,yyscanner); + Ewkt_init_buffer (b, file, yyscanner); - return b; + return b; } /** Destroy the buffer. * @param b a buffer created with Ewkt_create_buffer() * @param yyscanner The scanner object. */ - void Ewkt_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! b ) - return; + if (!b) + return; - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - if ( b->yy_is_our_buffer ) - Ewktfree((void *) b->yy_ch_buf ,yyscanner ); + if (b->yy_is_our_buffer) + Ewktfree ((void *) b->yy_ch_buf, yyscanner); - Ewktfree((void *) b ,yyscanner ); + Ewktfree ((void *) b, yyscanner); } #ifndef __cplusplus -extern int isatty (int ); +extern int isatty (int); #endif /* __cplusplus */ - + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Ewktrestart() or at EOF. */ - static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) - +static void +Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { - int oerrno = errno; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + int oerrno = errno; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - Ewkt_flush_buffer(b ,yyscanner); + Ewkt_flush_buffer (b, yyscanner); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; /* If b is the current buffer, then Ewkt_init_buffer was _probably_ * called from Ewktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; + if (b != YY_CURRENT_BUFFER) + { + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; + + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void Ewkt_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if ( ! b ) - return; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!b) + return; - b->yy_n_chars = 0; + b->yy_n_chars = 0; - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - b->yy_buf_pos = &b->yy_ch_buf[0]; + b->yy_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == YY_CURRENT_BUFFER ) - Ewkt_load_buffer_state(yyscanner ); + if (b == YY_CURRENT_BUFFER) + Ewkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes @@ -1543,99 +1586,107 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (new_buffer == NULL) - return; - - Ewktensure_buffer_stack(yyscanner); - - /* This block is copied from Ewkt_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - yyg->yy_buffer_stack_top++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from Ewkt_switch_to_buffer. */ - Ewkt_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (new_buffer == NULL) + return; + + Ewktensure_buffer_stack (yyscanner); + + /* This block is copied from Ewkt_switch_to_buffer. */ + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from Ewkt_switch_to_buffer. */ + Ewkt_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ -void Ewktpop_buffer_state (yyscan_t yyscanner) +void +Ewktpop_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (!YY_CURRENT_BUFFER) - return; - - Ewkt_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); - YY_CURRENT_BUFFER_LVALUE = NULL; - if (yyg->yy_buffer_stack_top > 0) - --yyg->yy_buffer_stack_top; - - if (YY_CURRENT_BUFFER) { - Ewkt_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; - } + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) + { + Ewkt_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; + } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void Ewktensure_buffer_stack (yyscan_t yyscanner) +static void +Ewktensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (!yyg->yy_buffer_stack) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Ewktalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Ewktensure_buffer_stack()" ); - - memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - yyg->yy_buffer_stack_max = num_to_alloc; - yyg->yy_buffer_stack_top = 0; - return; - } - - if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Ewktrealloc - (yyg->yy_buffer_stack, - num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Ewktensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); - yyg->yy_buffer_stack_max = num_to_alloc; - } + int num_to_alloc; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!yyg->yy_buffer_stack) + { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktalloc + (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Ewktensure_buffer_stack()"); + + memset (yyg->yy_buffer_stack, 0, + num_to_alloc * sizeof (struct yy_buffer_state *)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) + { + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */ ; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Ewktensure_buffer_stack()"); + + /* zero only the new slots. */ + memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, + grow_size * sizeof (struct yy_buffer_state *)); + yyg->yy_buffer_stack_max = num_to_alloc; + } } /** Setup the input buffer state to scan directly from a user-specified character buffer. @@ -1644,33 +1695,35 @@ static void Ewktensure_buffer_stack (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Ewkt_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE +Ewkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) Ewktalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Ewkt_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - Ewkt_switch_to_buffer(b ,yyscanner ); - - return b; + YY_BUFFER_STATE b; + + if (size < 2 || + base[size - 2] != YY_END_OF_BUFFER_CHAR || + base[size - 1] != YY_END_OF_BUFFER_CHAR) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_buffer()"); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + Ewkt_switch_to_buffer (b, yyscanner); + + return b; } /** Setup the input buffer state to scan a string. The next call to Ewktlex() will @@ -1681,57 +1734,60 @@ YY_BUFFER_STATE Ewkt_scan_buffer (char * base, yy_size_t size , yyscan_t yysca * @note If you want to scan bytes that may contain NUL values, then use * Ewkt_scan_bytes() instead. */ -YY_BUFFER_STATE Ewkt_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE +Ewkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { - - return Ewkt_scan_bytes(yystr,strlen(yystr) ,yyscanner); + + return Ewkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Ewktlex() will * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE +Ewkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) Ewktalloc(n ,yyscanner ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in Ewkt_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = Ewkt_scan_buffer(buf,n ,yyscanner); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in Ewkt_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) Ewktalloc (n, yyscanner); + if (!buf) + YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_bytes()"); + + for (i = 0; i < _yybytes_len; ++i) + buf[i] = yybytes[i]; - return b; + buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; + + b = Ewkt_scan_buffer (buf, n, yyscanner); + if (!b) + YY_FATAL_ERROR ("bad buffer in Ewkt_scan_bytes()"); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void +yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { - (void) spatialite_e( "%s\n", msg ); - exit( YY_EXIT_FAILURE ); + (void) fprintf (stderr, "%s\n", msg); + exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ @@ -1756,62 +1812,68 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE +Ewktget_extra (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ -int Ewktget_lineno (yyscan_t yyscanner) +int +Ewktget_lineno (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ -int Ewktget_column (yyscan_t yyscanner) +int +Ewktget_column (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *Ewktget_in (yyscan_t yyscanner) +FILE * +Ewktget_in (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *Ewktget_out (yyscan_t yyscanner) +FILE * +Ewktget_out (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ -int Ewktget_leng (yyscan_t yyscanner) +int +Ewktget_leng (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } @@ -1819,9 +1881,10 @@ int Ewktget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *Ewktget_text (yyscan_t yyscanner) +char * +Ewktget_text (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } @@ -1829,24 +1892,26 @@ char *Ewktget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void Ewktset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void +Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyextra = user_defined ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ -void Ewktset_lineno (int line_number , yyscan_t yyscanner) +void +Ewktset_lineno (int line_number, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Ewktset_lineno called with no buffer", yyscanner); - /* lineno is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Ewktset_lineno called with no buffer" , yyscanner); - yylineno = line_number; } @@ -1854,14 +1919,15 @@ void Ewktset_lineno (int line_number , yyscan_t yyscanner) * @param line_number * @param yyscanner The scanner object. */ -void Ewktset_column (int column_no , yyscan_t yyscanner) +void +Ewktset_column (int column_no, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* column is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Ewktset_column called with no buffer", yyscanner); - /* column is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Ewktset_column called with no buffer" , yyscanner); - yycolumn = column_no; } @@ -1871,28 +1937,32 @@ void Ewktset_column (int column_no , yyscan_t yyscanner) * @param yyscanner The scanner object. * @see Ewkt_switch_to_buffer */ -void Ewktset_in (FILE * in_str , yyscan_t yyscanner) +void +Ewktset_in (FILE * in_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyin = in_str; } -void Ewktset_out (FILE * out_str , yyscan_t yyscanner) +void +Ewktset_out (FILE * out_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyout = out_str; } -int Ewktget_debug (yyscan_t yyscanner) +int +Ewktget_debug (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } -void Ewktset_debug (int bdebug , yyscan_t yyscanner) +void +Ewktset_debug (int bdebug, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ @@ -1904,25 +1974,27 @@ void Ewktset_debug (int bdebug , yyscan_t yyscanner) * That's why we explicitly handle the declaration, instead of using our macros. */ -int Ewktlex_init(yyscan_t* ptr_yy_globals) - +int +Ewktlex_init (yyscan_t * ptr_yy_globals) { - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } - *ptr_yy_globals = (yyscan_t) Ewktalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), NULL); - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); - return yy_init_globals ( *ptr_yy_globals ); + return yy_init_globals (*ptr_yy_globals); } /* Ewktlex_init_extra has the same functionality as Ewktlex_init, but follows the @@ -1933,37 +2005,41 @@ int Ewktlex_init(yyscan_t* ptr_yy_globals) * the yyextra field. */ -int Ewktlex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int +Ewktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Ewktset_extra (yy_user_defined, &dummy_yyguts); - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) Ewktalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = + (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), &dummy_yyguts); + + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } + /* By setting to 0xAA, we expose bugs in - yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yy_init_globals. Leave at 0x00 for releases. */ + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); + Ewktset_extra (yy_user_defined, *ptr_yy_globals); - - return yy_init_globals ( *ptr_yy_globals ); + + return yy_init_globals (*ptr_yy_globals); } -static int yy_init_globals (yyscan_t yyscanner) +static int +yy_init_globals (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Ewktlex_destroy(), so don't allocate here. */ @@ -1977,7 +2053,7 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = NULL; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -1995,31 +2071,33 @@ static int yy_init_globals (yyscan_t yyscanner) } /* Ewktlex_destroy is for both reentrant and non-reentrant scanners. */ -int Ewktlex_destroy (yyscan_t yyscanner) +int +Ewktlex_destroy (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - Ewkt_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); - YY_CURRENT_BUFFER_LVALUE = NULL; - Ewktpop_buffer_state(yyscanner); - } + while (YY_CURRENT_BUFFER) + { + Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + Ewktpop_buffer_state (yyscanner); + } - /* Destroy the stack itself. */ - Ewktfree(yyg->yy_buffer_stack ,yyscanner); - yyg->yy_buffer_stack = NULL; + /* Destroy the stack itself. */ + Ewktfree (yyg->yy_buffer_stack, yyscanner); + yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - Ewktfree(yyg->yy_start_stack ,yyscanner ); - yyg->yy_start_stack = NULL; + Ewktfree (yyg->yy_start_stack, yyscanner); + yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Ewktlex() is called, initialization will occur. */ - yy_init_globals( yyscanner); + yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ - Ewktfree ( yyscanner , yyscanner ); + Ewktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } @@ -2029,51 +2107,56 @@ int Ewktlex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void +yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; + register int i; + for (i = 0; i < n; ++i) + s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int +yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { - register int n; - for ( n = 0; s[n]; ++n ) - ; + register int n; + for (n = 0; s[n]; ++n) + ; - return n; + return n; } #endif -void *Ewktalloc (yy_size_t size , yyscan_t yyscanner) +void * +Ewktalloc (yy_size_t size, yyscan_t yyscanner) { - return (void *) malloc( size ); + return (void *) malloc (size); } -void *Ewktrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void * +Ewktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc ((char *) ptr, size); } -void Ewktfree (void * ptr , yyscan_t yyscanner) +void +Ewktfree (void *ptr, yyscan_t yyscanner) { - free( (char *) ptr ); /* see Ewktrealloc() for (char *) cast */ + free ((char *) ptr); /* see Ewktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -int Ewktwrap(yyscan_t yyscanner ) +int +Ewktwrap (yyscan_t yyscanner) { - return 1; + return 1; } - diff --git a/src/spatialite/src/gaiageo/lex.GeoJson.c b/src/spatialite/src/gaiageo/lex.GeoJson.c index b2a1426..c056df4 100644 --- a/src/spatialite/src/gaiageo/lex.GeoJson.c +++ b/src/spatialite/src/gaiageo/lex.GeoJson.c @@ -50,9 +50,10 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#endif /* ! C99 */ - #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -92,15 +91,15 @@ typedef unsigned int flex_uint32_t; /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST -#else /* ! __cplusplus */ +#else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const @@ -121,7 +120,7 @@ typedef unsigned int flex_uint32_t; /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T -typedef void* yyscan_t; +typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) @@ -158,15 +157,7 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -182,8 +173,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - #define YY_LESS_LINENO(n) - +#define YY_LESS_LINENO(n) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ @@ -208,66 +199,66 @@ typedef size_t yy_size_t; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state - { - FILE *yy_input_file; +{ + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - int yy_buffer_status; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via GeoJsonrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via GeoJsonrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ #define YY_BUFFER_EOF_PENDING 2 - }; +}; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the @@ -285,27 +276,31 @@ struct yy_buffer_state */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void GeoJsonrestart (FILE *input_file ,yyscan_t yyscanner ); -void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE GeoJson_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void GeoJson_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void GeoJson_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void GeoJsonpop_buffer_state (yyscan_t yyscanner ); +void GeoJsonrestart (FILE * input_file, yyscan_t yyscanner); +void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size, + yyscan_t yyscanner); +void GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +void GeoJsonpop_buffer_state (yyscan_t yyscanner); -static void GeoJsonensure_buffer_stack (yyscan_t yyscanner ); -static void GeoJson_load_buffer_state (yyscan_t yyscanner ); -static void GeoJson_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +static void GeoJsonensure_buffer_stack (yyscan_t yyscanner); +static void GeoJson_load_buffer_state (yyscan_t yyscanner); +static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, + yyscan_t yyscanner); #define YY_FLUSH_BUFFER GeoJson_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) -YY_BUFFER_STATE GeoJson_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE GeoJson_scan_buffer (char *base, yy_size_t size, + yyscan_t yyscanner); +YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yy_str, yyscan_t yyscanner); +YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *bytes, int len, + yyscan_t yyscanner); -void *GeoJsonalloc (yy_size_t ,yyscan_t yyscanner ); -void *GeoJsonrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void GeoJsonfree (void * ,yyscan_t yyscanner ); +void *GeoJsonalloc (yy_size_t, yyscan_t yyscanner); +void *GeoJsonrealloc (void *, yy_size_t, yyscan_t yyscanner); +void GeoJsonfree (void *, yyscan_t yyscanner); #define yy_new_buffer GeoJson_create_buffer @@ -339,10 +334,11 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state (yyscan_t yyscanner); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state, + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner); +static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -359,183 +355,176 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[182] = - { 0, - 0, 0, 28, 26, 24, 25, 26, 26, 4, 26, - 1, 5, 8, 9, 6, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 14, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, - - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 0, 20, 0, 0, 12, 15, - 0, 0, 0, 0, 11, 0, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, - 0, 0, 0, 23, 0, 0, 0, 0, 0, 3, - 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 6, 7, 8, 1, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 10, 1, 1, - 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, - 13, 1, 1, 1, 1, 14, 15, 1, 1, 16, - 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, - 18, 1, 19, 1, 1, 1, 20, 21, 22, 23, - - 24, 25, 26, 1, 27, 1, 1, 28, 29, 30, - 31, 32, 1, 33, 34, 35, 36, 1, 1, 37, - 38, 1, 39, 1, 40, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[41] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int16_t yy_base[183] = - { 0, - 0, 39, 203, 204, 204, 204, 68, 193, 204, 4, - 3, 204, 204, 204, 204, 204, 185, 176, 172, 162, - 166, 175, 0, 171, 174, 160, 154, 158, 6, 11, - 8, 181, 12, 172, 157, 157, 158, 0, 154, 153, - 149, 151, 152, 149, 147, 148, 168, 167, 166, 161, - 144, 148, 136, 140, 131, 131, 134, 162, 136, 140, - 131, 138, 151, 151, 150, 148, 133, 139, 128, 119, - 127, 148, 128, 204, 126, 145, 124, 143, 115, 15, - 110, 109, 16, 139, 111, 204, 114, 105, 204, 106, - 204, 112, 128, 25, 103, 102, 107, 102, 204, 102, - - 101, 97, 94, 106, 204, 89, 99, 95, 8, 120, - 103, 95, 94, 110, 108, 88, 93, 86, 77, 204, - 79, 89, 88, 88, 79, 83, 91, 72, 80, 81, - 68, 67, 75, 69, 92, 60, 89, 61, 57, 84, - 83, 61, 57, 204, 44, 204, 46, 71, 204, 204, - 64, 49, 45, 67, 204, 48, 47, 38, 204, 34, - 31, 39, 30, 36, 58, 51, 29, 204, 47, 25, - 38, 49, 21, 204, 24, 16, 43, 16, 47, 204, - 204, 0 - } ; - -static yyconst flex_int16_t yy_def[183] = - { 0, - 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 0, 181 - } ; - -static yyconst flex_int16_t yy_nxt[245] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 30, 11, 12, - 32, 33, 31, 47, 29, 48, 31, 13, 14, 32, - 33, 93, 17, 94, 179, 177, 54, 55, 105, 97, - 40, 98, 41, 94, 118, 119, 176, 175, 15, 16, - 5, 6, 7, 8, 9, 10, 28, 11, 12, 178, - 180, 179, 174, 173, 172, 179, 13, 14, 171, 170, - 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, - 159, 158, 157, 156, 155, 154, 153, 15, 16, 17, - 18, 19, 20, 21, 152, 151, 150, 149, 22, 23, - 148, 147, 146, 24, 145, 144, 143, 25, 142, 26, - - 141, 140, 27, 28, 139, 138, 137, 136, 135, 134, - 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, - 123, 122, 121, 120, 117, 116, 115, 114, 113, 112, - 111, 110, 109, 108, 107, 106, 94, 104, 103, 102, - 101, 100, 99, 96, 95, 92, 91, 90, 89, 88, - 87, 86, 85, 84, 83, 82, 81, 80, 65, 64, - 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, - 69, 68, 67, 66, 49, 65, 64, 63, 62, 61, - 60, 59, 58, 57, 56, 53, 52, 51, 50, 49, - 46, 45, 44, 43, 42, 39, 38, 37, 36, 35, - - 34, 29, 181, 3, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181 - } ; - -static yyconst flex_int16_t yy_chk[245] = - { 0, - 182, 1, 1, 1, 1, 1, 1, 10, 1, 1, - 11, 11, 10, 29, 29, 31, 31, 1, 1, 33, - 33, 80, 30, 80, 178, 176, 38, 38, 94, 83, - 23, 83, 23, 94, 109, 109, 175, 173, 1, 1, - 2, 2, 2, 2, 2, 2, 30, 2, 2, 177, - 179, 177, 172, 171, 170, 179, 2, 2, 169, 167, - 166, 165, 164, 163, 162, 161, 160, 158, 157, 156, - 154, 153, 152, 151, 148, 147, 145, 2, 2, 7, - 7, 7, 7, 7, 143, 142, 141, 140, 7, 7, - 139, 138, 137, 7, 136, 135, 134, 7, 133, 7, - - 132, 131, 7, 7, 130, 129, 128, 127, 126, 125, - 124, 123, 122, 121, 119, 118, 117, 116, 115, 114, - 113, 112, 111, 110, 108, 107, 106, 104, 103, 102, - 101, 100, 98, 97, 96, 95, 93, 92, 90, 88, - 87, 85, 84, 82, 81, 79, 78, 77, 76, 75, - 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, - 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, - 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, - 43, 42, 41, 40, 39, 37, 36, 35, 34, 32, - 28, 27, 26, 25, 24, 22, 21, 20, 19, 18, - - 17, 8, 3, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181 - } ; +{ + flex_int32_t yy_verify; + flex_int32_t yy_nxt; +}; +static yyconst flex_int16_t yy_accept[182] = { 0, + 0, 0, 28, 26, 24, 25, 26, 26, 4, 26, + 1, 5, 8, 9, 6, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 14, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, + + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 20, 0, 0, 12, 15, + 0, 0, 0, 0, 11, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 3, + 0 +}; + +static yyconst flex_int32_t yy_ec[256] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 5, 6, 7, 8, 1, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 10, 1, 1, + 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, + 13, 1, 1, 1, 1, 14, 15, 1, 1, 16, + 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, + 18, 1, 19, 1, 1, 1, 20, 21, 22, 23, + + 24, 25, 26, 1, 27, 1, 1, 28, 29, 30, + 31, 32, 1, 33, 34, 35, 36, 1, 1, 37, + 38, 1, 39, 1, 40, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 +}; + +static yyconst flex_int32_t yy_meta[41] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static yyconst flex_int16_t yy_base[183] = { 0, + 0, 39, 203, 204, 204, 204, 68, 193, 204, 4, + 3, 204, 204, 204, 204, 204, 185, 176, 172, 162, + 166, 175, 0, 171, 174, 160, 154, 158, 6, 11, + 8, 181, 12, 172, 157, 157, 158, 0, 154, 153, + 149, 151, 152, 149, 147, 148, 168, 167, 166, 161, + 144, 148, 136, 140, 131, 131, 134, 162, 136, 140, + 131, 138, 151, 151, 150, 148, 133, 139, 128, 119, + 127, 148, 128, 204, 126, 145, 124, 143, 115, 15, + 110, 109, 16, 139, 111, 204, 114, 105, 204, 106, + 204, 112, 128, 25, 103, 102, 107, 102, 204, 102, + + 101, 97, 94, 106, 204, 89, 99, 95, 8, 120, + 103, 95, 94, 110, 108, 88, 93, 86, 77, 204, + 79, 89, 88, 88, 79, 83, 91, 72, 80, 81, + 68, 67, 75, 69, 92, 60, 89, 61, 57, 84, + 83, 61, 57, 204, 44, 204, 46, 71, 204, 204, + 64, 49, 45, 67, 204, 48, 47, 38, 204, 34, + 31, 39, 30, 36, 58, 51, 29, 204, 47, 25, + 38, 49, 21, 204, 24, 16, 43, 16, 47, 204, + 204, 0 +}; + +static yyconst flex_int16_t yy_def[183] = { 0, + 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 0, 181 +}; + +static yyconst flex_int16_t yy_nxt[245] = { 0, + 4, 5, 6, 7, 8, 9, 10, 30, 11, 12, + 32, 33, 31, 47, 29, 48, 31, 13, 14, 32, + 33, 93, 17, 94, 179, 177, 54, 55, 105, 97, + 40, 98, 41, 94, 118, 119, 176, 175, 15, 16, + 5, 6, 7, 8, 9, 10, 28, 11, 12, 178, + 180, 179, 174, 173, 172, 179, 13, 14, 171, 170, + 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, + 159, 158, 157, 156, 155, 154, 153, 15, 16, 17, + 18, 19, 20, 21, 152, 151, 150, 149, 22, 23, + 148, 147, 146, 24, 145, 144, 143, 25, 142, 26, + + 141, 140, 27, 28, 139, 138, 137, 136, 135, 134, + 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, + 123, 122, 121, 120, 117, 116, 115, 114, 113, 112, + 111, 110, 109, 108, 107, 106, 94, 104, 103, 102, + 101, 100, 99, 96, 95, 92, 91, 90, 89, 88, + 87, 86, 85, 84, 83, 82, 81, 80, 65, 64, + 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, + 69, 68, 67, 66, 49, 65, 64, 63, 62, 61, + 60, 59, 58, 57, 56, 53, 52, 51, 50, 49, + 46, 45, 44, 43, 42, 39, 38, 37, 36, 35, + + 34, 29, 181, 3, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181 +}; + +static yyconst flex_int16_t yy_chk[245] = { 0, + 182, 1, 1, 1, 1, 1, 1, 10, 1, 1, + 11, 11, 10, 29, 29, 31, 31, 1, 1, 33, + 33, 80, 30, 80, 178, 176, 38, 38, 94, 83, + 23, 83, 23, 94, 109, 109, 175, 173, 1, 1, + 2, 2, 2, 2, 2, 2, 30, 2, 2, 177, + 179, 177, 172, 171, 170, 179, 2, 2, 169, 167, + 166, 165, 164, 163, 162, 161, 160, 158, 157, 156, + 154, 153, 152, 151, 148, 147, 145, 2, 2, 7, + 7, 7, 7, 7, 143, 142, 141, 140, 7, 7, + 139, 138, 137, 7, 136, 135, 134, 7, 133, 7, + + 132, 131, 7, 7, 130, 129, 128, 127, 126, 125, + 124, 123, 122, 121, 119, 118, 117, 116, 115, 114, + 113, 112, 111, 110, 108, 107, 106, 104, 103, 102, + 101, 100, 98, 97, 96, 95, 93, 92, 90, 88, + 87, 85, 84, 82, 81, 79, 78, 77, 76, 75, + 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, + 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, + 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, + 43, 42, 41, 40, 39, 37, 36, 35, 34, 32, + 28, 27, 26, 25, 24, 22, 21, 20, 19, 18, + + 17, 8, 3, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181 +}; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -604,25 +593,23 @@ the terms of any one of the MPL, the GPL or the LGPL. * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ -#ifndef _MSC_VER #include <unistd.h> #endif -#endif #define YY_EXTRA_TYPE struct geoJson_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t - { +{ /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; @@ -634,7 +621,7 @@ struct yyguts_t int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; @@ -643,42 +630,46 @@ struct yyguts_t int yy_more_flag; int yy_more_len; - }; /* end struct yyguts_t */ +}; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals (yyscan_t yyscanner); -int GeoJsonlex_init (yyscan_t* scanner); +int GeoJsonlex_init (yyscan_t * scanner); -int GeoJsonlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int GeoJsonlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int GeoJsonlex_destroy (yyscan_t yyscanner ); +int GeoJsonlex_destroy (yyscan_t yyscanner); + +int GeoJsonget_debug (yyscan_t yyscanner); + +void GeoJsonset_debug (int debug_flag, yyscan_t yyscanner); -int GeoJsonget_debug (yyscan_t yyscanner ); +YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner); -void GeoJsonset_debug (int debug_flag ,yyscan_t yyscanner ); +void GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); -YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner ); +FILE *GeoJsonget_in (yyscan_t yyscanner); -void GeoJsonset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +void GeoJsonset_in (FILE * in_str, yyscan_t yyscanner); -FILE *GeoJsonget_in (yyscan_t yyscanner ); +FILE *GeoJsonget_out (yyscan_t yyscanner); -void GeoJsonset_in (FILE * in_str ,yyscan_t yyscanner ); +void GeoJsonset_out (FILE * out_str, yyscan_t yyscanner); -FILE *GeoJsonget_out (yyscan_t yyscanner ); +int GeoJsonget_leng (yyscan_t yyscanner); -void GeoJsonset_out (FILE * out_str ,yyscan_t yyscanner ); +char *GeoJsonget_text (yyscan_t yyscanner); -int GeoJsonget_leng (yyscan_t yyscanner ); +int GeoJsonget_lineno (yyscan_t yyscanner); -char *GeoJsonget_text (yyscan_t yyscanner ); +void GeoJsonset_lineno (int line_number, yyscan_t yyscanner); -int GeoJsonget_lineno (yyscan_t yyscanner ); +int GeoJsonget_column (yyscan_t yyscanner); -void GeoJsonset_lineno (int line_number ,yyscan_t yyscanner ); +void GeoJsonset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -686,38 +677,33 @@ void GeoJsonset_lineno (int line_number ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int GeoJsonwrap (yyscan_t yyscanner ); +extern "C" int GeoJsonwrap (yyscan_t yyscanner); #else -extern int GeoJsonwrap (yyscan_t yyscanner ); +extern int GeoJsonwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput (yyscan_t yyscanner); #else -static int input (yyscan_t yyscanner ); +static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -736,7 +722,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -814,280 +800,324 @@ extern int GeoJsonlex (yyscan_t yyscanner); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( !yyg->yy_init ) - { - yyg->yy_init = 1; + if (!yyg->yy_init) + { + yyg->yy_init = 1; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if ( ! yyg->yy_start ) - yyg->yy_start = 1; /* first start state */ + if (!yyg->yy_start) + yyg->yy_start = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if (!yyin) + yyin = stdin; - if ( ! yyout ) - yyout = stdout; + if (!yyout) + yyout = stdout; - if ( ! YY_CURRENT_BUFFER ) { - GeoJsonensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + GeoJsonensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } + + GeoJson_load_buffer_state (yyscanner); + } + + while (1) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != + yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 182) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while (yy_base[yy_current_state] != 204); + + yy_find_action: + yy_act = yy_accept[yy_current_state]; + if (yy_act == 0) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } - GeoJson_load_buffer_state(yyscanner ); - } + YY_DO_BEFORE_ACTION; - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yyg->yy_c_buf_p; + do_action: /* This label is used only to access EOF actions. */ - /* Support of yytext. */ + switch (yy_act) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yyg->yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 182 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 204 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.dval = atof(yytext); return GEOJSON_NUM; } - YY_BREAK -case 2: -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.ival = atoi(yytext+6); return GEOJSON_SHORT_SRID; } - YY_BREAK -case 3: -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonLval.ival = atoi(yytext+22); return GEOJSON_LONG_SRID; } - YY_BREAK -case 4: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_COMMA; } - YY_BREAK -case 5: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_COLON; } - YY_BREAK -case 6: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } - YY_BREAK -case 7: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } - YY_BREAK -case 8: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } - YY_BREAK -case 9: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } - YY_BREAK -case 10: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_TYPE; } - YY_BREAK -case 11: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_COORDS; } - YY_BREAK -case 12: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } - YY_BREAK -case 13: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_BBOX; } - YY_BREAK -case 14: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_NAME; } - YY_BREAK -case 15: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_PROPS; } - YY_BREAK -case 16: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_CRS; } - YY_BREAK -case 17: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_POINT; } - YY_BREAK -case 18: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } - YY_BREAK -case 19: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } - YY_BREAK -case 20: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } - YY_BREAK -case 21: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } - YY_BREAK -case 22: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } - YY_BREAK -case 23: -YY_RULE_SETUP -{ GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } - YY_BREAK -case 24: -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); } /* ignore but count white space */ - YY_BREAK -case 25: + case 1: + YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->geoJson_col += + (int) strlen (yytext); + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = + atof (yytext); + return GEOJSON_NUM; + } + YY_BREAK case 2:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->geoJson_col += + (int) strlen (yytext); + GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = + atoi (yytext + 6); + return GEOJSON_SHORT_SRID; + } + YY_BREAK case 3:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->geoJson_col += + (int) strlen (yytext); + GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = + atoi (yytext + 22); + return GEOJSON_LONG_SRID; + } + YY_BREAK case 4:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_COMMA; + } + YY_BREAK case 5:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_COLON; + } + YY_BREAK case 6:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_OPEN_BRACE; + } + YY_BREAK case 7:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_CLOSE_BRACE; + } + YY_BREAK case 8:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_OPEN_BRACKET; + } + YY_BREAK case 9:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_CLOSE_BRACKET; + } + YY_BREAK case 10:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_TYPE; + } + YY_BREAK case 11:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_COORDS; + } + YY_BREAK case 12:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_GEOMS; + } + YY_BREAK case 13:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_BBOX; + } + YY_BREAK case 14:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_NAME; + } + YY_BREAK case 15:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_PROPS; + } + YY_BREAK case 16:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_CRS; + } + YY_BREAK case 17:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_POINT; + } + YY_BREAK case 18:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_LINESTRING; + } + YY_BREAK case 19:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_POLYGON; + } + YY_BREAK case 20:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_MULTIPOINT; + } + YY_BREAK case 21:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_MULTILINESTRING; + } + YY_BREAK case 22:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_MULTIPOLYGON; + } + YY_BREAK case 23:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; + return GEOJSON_GEOMETRYCOLLECTION; + } + YY_BREAK case 24:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->geoJson_col += + (int) strlen (yytext); + } /* ignore but count white space */ + YY_BREAK case 25: /* rule 25 can match eol */ -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col = 0; GeoJsonget_extra(yyscanner)->geoJson_line++; } - YY_BREAK -case 26: -YY_RULE_SETUP -{ GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); return -1; } - YY_BREAK -case 27: -YY_RULE_SETUP -ECHO; - YY_BREAK -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: + YY_RULE_SETUP { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yyg->yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * GeoJsonlex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); - - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + GeoJsonget_extra (yyscanner)->geoJson_col = 0; + GeoJsonget_extra (yyscanner)->geoJson_line++; + } + YY_BREAK case 26:YY_RULE_SETUP + { + GeoJsonget_extra (yyscanner)->geoJson_col += + (int) strlen (yytext); + return -1; + } + YY_BREAK case 27:YY_RULE_SETUP ECHO; + YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); - if ( yy_next_state ) - { + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = + (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == + YY_BUFFER_NEW) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * GeoJsonlex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = + YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if (yyg->yy_c_buf_p <= + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state (yyscanner); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = + yy_try_NUL_trans (yy_current_state, yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if (yy_next_state) + { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; - } + } - else - { + else + { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_END_OF_FILE: - { - yyg->yy_did_buffer_switch_on_eof = 0; - - if ( GeoJsonwrap(yyscanner ) ) - { + } + } + + else + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if (GeoJsonwrap (yyscanner)) + { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up @@ -1097,49 +1127,53 @@ case YY_STATE_EOF(INITIAL): * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + yyg->yy_c_buf_p = + yyg->yytext_ptr + YY_MORE_ADJ; - yy_act = YY_STATE_EOF(YY_START); + yy_act = YY_STATE_EOF (YY_START); goto do_action; - } - - else - { - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = - yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yyg->yy_c_buf_p = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; + } + + else + { + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> + yy_n_chars]; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; } - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of GeoJsonlex */ + default: + YY_FATAL_ERROR + ("fatal flex scanner internal error--no action found"); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of GeoJsonlex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1148,167 +1182,180 @@ case YY_STATE_EOF(INITIAL): * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer (yyscan_t yyscanner) +static int +yy_get_next_buffer (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if (yyg->yy_c_buf_p > + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) + YY_FATAL_ERROR + ("fatal flex scanner internal error--end of buffer missed"); + + if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) + { /* Don't try to fill the buffer, so this is an EOF. */ + if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + return EOB_ACT_END_OF_FILE; + } - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; + /* Try to read more data. */ - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - GeoJsonrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); + for (i = 0; i < number_to_move; ++i) + *(dest++) = *(source++); - yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - } + while (num_to_read <= 0) + { /* Not enough room in the buffer - grow it. */ - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } + if (b->yy_is_our_buffer) + { + int new_size = b->yy_buf_size * 2; - if ( yyg->yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - GeoJsonrestart(yyin ,yyscanner); - } + if (new_size <= 0) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + GeoJsonrealloc ((void *) b->yy_ch_buf, + b->yy_buf_size + 2, yyscanner); + } else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) GeoJsonrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - yyg->yy_n_chars += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if (!b->yy_ch_buf) + YY_FATAL_ERROR + ("fatal error - scanner input buffer overflow"); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if (num_to_read > YY_READ_BUF_SIZE) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if (yyg->yy_n_chars == 0) + { + if (number_to_move == YY_MORE_ADJ) + { + ret_val = EOB_ACT_END_OF_FILE; + GeoJsonrestart (yyin, yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > + YY_CURRENT_BUFFER_LVALUE->yy_buf_size) + { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = + yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = + (char *) GeoJsonrealloc ((void *) + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, + new_size, yyscanner); + if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = + YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = + YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ - static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +static yy_state_type +yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_current_state = yyg->yy_start; - - for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 182 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + yy_current_state = yyg->yy_start; + + for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; + ++yy_cp) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 182) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character @@ -1316,167 +1363,172 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +static yy_state_type +yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { - register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 182 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 181); - - return yy_is_jam ? 0 : yy_current_state; + register int yy_is_jam; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 182) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 181); + + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus - static int yyinput (yyscan_t yyscanner) +static int +yyinput (yyscan_t yyscanner) #else - static int input (yyscan_t yyscanner) +static int +input (yyscan_t yyscanner) #endif - { - int c; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - *yyg->yy_c_buf_p = yyg->yy_hold_char; - - if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - /* This was really a NUL. */ - *yyg->yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; - ++yyg->yy_c_buf_p; - - switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - GeoJsonrestart(yyin ,yyscanner); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( GeoJsonwrap(yyscanner ) ) - return EOF; - - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; + int c; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if (yyg->yy_c_buf_p < + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + GeoJsonrestart (yyin, yyscanner); + + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: + { + if (GeoJsonwrap (yyscanner)) + return EOF; + + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(yyscanner); + return yyinput (yyscanner); #else - return input(yyscanner); + return input (yyscanner); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = yyg->yytext_ptr + offset; - break; - } - } - } + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } - c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ - *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ - yyg->yy_hold_char = *++yyg->yy_c_buf_p; + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; - return c; + return c; } -#endif /* ifndef YY_NO_INPUT */ +#endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void GeoJsonrestart (FILE * input_file , yyscan_t yyscanner) +void +GeoJsonrestart (FILE * input_file, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! YY_CURRENT_BUFFER ){ - GeoJsonensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + GeoJsonensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } - GeoJson_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - GeoJson_load_buffer_state(yyscanner ); + GeoJson_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); + GeoJson_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - /* TODO. We should be able to replace this entire function body - * with - * GeoJsonpop_buffer_state(); - * GeoJsonpush_buffer_state(new_buffer); + /* TODO. We should be able to replace this entire function body + * with + * GeoJsonpop_buffer_state(); + * GeoJsonpush_buffer_state(new_buffer); */ - GeoJsonensure_buffer_stack (yyscanner); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - GeoJson_load_buffer_state(yyscanner ); - - /* We don't actually know whether we did this switch during - * EOF (GeoJsonwrap()) processing, but the only time this flag - * is looked at is after GeoJsonwrap() is called, so it's safe - * to go ahead and always set it. - */ - yyg->yy_did_buffer_switch_on_eof = 1; + GeoJsonensure_buffer_stack (yyscanner); + if (YY_CURRENT_BUFFER == new_buffer) + return; + + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + GeoJson_load_buffer_state (yyscanner); + + /* We don't actually know whether we did this switch during + * EOF (GeoJsonwrap()) processing, but the only time this flag + * is looked at is after GeoJsonwrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; } -static void GeoJson_load_buffer_state (yyscan_t yyscanner) +static void +GeoJson_load_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - yyg->yy_hold_char = *yyg->yy_c_buf_p; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. @@ -1485,109 +1537,114 @@ static void GeoJson_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size , yyscan_t yyscanner) +YY_BUFFER_STATE +GeoJson_create_buffer (FILE * file, int size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) GeoJsonalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJson_create_buffer()" ); + YY_BUFFER_STATE b; - b->yy_buf_size = size; + b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) GeoJsonalloc(b->yy_buf_size + 2 ,yyscanner ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJson_create_buffer()" ); + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) GeoJsonalloc (b->yy_buf_size + 2, yyscanner); + if (!b->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); - b->yy_is_our_buffer = 1; + b->yy_is_our_buffer = 1; - GeoJson_init_buffer(b,file ,yyscanner); + GeoJson_init_buffer (b, file, yyscanner); - return b; + return b; } /** Destroy the buffer. * @param b a buffer created with GeoJson_create_buffer() * @param yyscanner The scanner object. */ - void GeoJson_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! b ) - return; + if (!b) + return; - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - if ( b->yy_is_our_buffer ) - GeoJsonfree((void *) b->yy_ch_buf ,yyscanner ); + if (b->yy_is_our_buffer) + GeoJsonfree ((void *) b->yy_ch_buf, yyscanner); - GeoJsonfree((void *) b ,yyscanner ); + GeoJsonfree ((void *) b, yyscanner); } #ifndef __cplusplus -extern int isatty (int ); +extern int isatty (int); #endif /* __cplusplus */ - + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a GeoJsonrestart() or at EOF. */ - static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) - +static void +GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { - int oerrno = errno; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + int oerrno = errno; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - GeoJson_flush_buffer(b ,yyscanner); + GeoJson_flush_buffer (b, yyscanner); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; /* If b is the current buffer, then GeoJson_init_buffer was _probably_ * called from GeoJsonrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; + if (b != YY_CURRENT_BUFFER) + { + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; + + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void GeoJson_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if ( ! b ) - return; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!b) + return; - b->yy_n_chars = 0; + b->yy_n_chars = 0; - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - b->yy_buf_pos = &b->yy_ch_buf[0]; + b->yy_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == YY_CURRENT_BUFFER ) - GeoJson_load_buffer_state(yyscanner ); + if (b == YY_CURRENT_BUFFER) + GeoJson_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes @@ -1596,99 +1653,107 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (new_buffer == NULL) - return; - - GeoJsonensure_buffer_stack(yyscanner); - - /* This block is copied from GeoJson_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - yyg->yy_buffer_stack_top++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from GeoJson_switch_to_buffer. */ - GeoJson_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (new_buffer == NULL) + return; + + GeoJsonensure_buffer_stack (yyscanner); + + /* This block is copied from GeoJson_switch_to_buffer. */ + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from GeoJson_switch_to_buffer. */ + GeoJson_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ -void GeoJsonpop_buffer_state (yyscan_t yyscanner) +void +GeoJsonpop_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (!YY_CURRENT_BUFFER) - return; - - GeoJson_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); - YY_CURRENT_BUFFER_LVALUE = NULL; - if (yyg->yy_buffer_stack_top > 0) - --yyg->yy_buffer_stack_top; - - if (YY_CURRENT_BUFFER) { - GeoJson_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; - } + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) + { + GeoJson_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; + } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void GeoJsonensure_buffer_stack (yyscan_t yyscanner) +static void +GeoJsonensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (!yyg->yy_buffer_stack) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)GeoJsonalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJsonensure_buffer_stack()" ); - - memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - yyg->yy_buffer_stack_max = num_to_alloc; - yyg->yy_buffer_stack_top = 0; - return; - } - - if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)GeoJsonrealloc - (yyg->yy_buffer_stack, - num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJsonensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); - yyg->yy_buffer_stack_max = num_to_alloc; - } + int num_to_alloc; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!yyg->yy_buffer_stack) + { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonalloc + (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in GeoJsonensure_buffer_stack()"); + + memset (yyg->yy_buffer_stack, 0, + num_to_alloc * sizeof (struct yy_buffer_state *)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) + { + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */ ; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in GeoJsonensure_buffer_stack()"); + + /* zero only the new slots. */ + memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, + grow_size * sizeof (struct yy_buffer_state *)); + yyg->yy_buffer_stack_max = num_to_alloc; + } } /** Setup the input buffer state to scan directly from a user-specified character buffer. @@ -1697,33 +1762,35 @@ static void GeoJsonensure_buffer_stack (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE GeoJson_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE +GeoJson_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) GeoJsonalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJson_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - GeoJson_switch_to_buffer(b ,yyscanner ); - - return b; + YY_BUFFER_STATE b; + + if (size < 2 || + base[size - 2] != YY_END_OF_BUFFER_CHAR || + base[size - 1] != YY_END_OF_BUFFER_CHAR) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_buffer()"); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + GeoJson_switch_to_buffer (b, yyscanner); + + return b; } /** Setup the input buffer state to scan a string. The next call to GeoJsonlex() will @@ -1734,57 +1801,60 @@ YY_BUFFER_STATE GeoJson_scan_buffer (char * base, yy_size_t size , yyscan_t yy * @note If you want to scan bytes that may contain NUL values, then use * GeoJson_scan_bytes() instead. */ -YY_BUFFER_STATE GeoJson_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE +GeoJson_scan_string (yyconst char *yystr, yyscan_t yyscanner) { - - return GeoJson_scan_bytes(yystr,strlen(yystr) ,yyscanner); + + return GeoJson_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to GeoJsonlex() will * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE +GeoJson_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) GeoJsonalloc(n ,yyscanner ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in GeoJson_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = GeoJson_scan_buffer(buf,n ,yyscanner); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in GeoJson_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) GeoJsonalloc (n, yyscanner); + if (!buf) + YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_bytes()"); + + for (i = 0; i < _yybytes_len; ++i) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; - return b; + b = GeoJson_scan_buffer (buf, n, yyscanner); + if (!b) + YY_FATAL_ERROR ("bad buffer in GeoJson_scan_bytes()"); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void +yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { - (void) spatialite_e( "%s\n", msg ); - exit( YY_EXIT_FAILURE ); + (void) fprintf (stderr, "%s\n", msg); + exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ @@ -1809,62 +1879,68 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE +GeoJsonget_extra (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ -int GeoJsonget_lineno (yyscan_t yyscanner) +int +GeoJsonget_lineno (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ -int GeoJsonget_column (yyscan_t yyscanner) +int +GeoJsonget_column (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *GeoJsonget_in (yyscan_t yyscanner) +FILE * +GeoJsonget_in (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *GeoJsonget_out (yyscan_t yyscanner) +FILE * +GeoJsonget_out (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ -int GeoJsonget_leng (yyscan_t yyscanner) +int +GeoJsonget_leng (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } @@ -1872,9 +1948,10 @@ int GeoJsonget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *GeoJsonget_text (yyscan_t yyscanner) +char * +GeoJsonget_text (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } @@ -1882,24 +1959,26 @@ char *GeoJsonget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void GeoJsonset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void +GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyextra = user_defined ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ -void GeoJsonset_lineno (int line_number , yyscan_t yyscanner) +void +GeoJsonset_lineno (int line_number, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("GeoJsonset_lineno called with no buffer", yyscanner); - /* lineno is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "GeoJsonset_lineno called with no buffer" , yyscanner); - yylineno = line_number; } @@ -1907,14 +1986,15 @@ void GeoJsonset_lineno (int line_number , yyscan_t yyscanner) * @param line_number * @param yyscanner The scanner object. */ -void GeoJsonset_column (int column_no , yyscan_t yyscanner) +void +GeoJsonset_column (int column_no, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* column is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("GeoJsonset_column called with no buffer", yyscanner); - /* column is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "GeoJsonset_column called with no buffer" , yyscanner); - yycolumn = column_no; } @@ -1924,28 +2004,32 @@ void GeoJsonset_column (int column_no , yyscan_t yyscanner) * @param yyscanner The scanner object. * @see GeoJson_switch_to_buffer */ -void GeoJsonset_in (FILE * in_str , yyscan_t yyscanner) +void +GeoJsonset_in (FILE * in_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyin = in_str; } -void GeoJsonset_out (FILE * out_str , yyscan_t yyscanner) +void +GeoJsonset_out (FILE * out_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyout = out_str; } -int GeoJsonget_debug (yyscan_t yyscanner) +int +GeoJsonget_debug (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } -void GeoJsonset_debug (int bdebug , yyscan_t yyscanner) +void +GeoJsonset_debug (int bdebug, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ @@ -1957,25 +2041,27 @@ void GeoJsonset_debug (int bdebug , yyscan_t yyscanner) * That's why we explicitly handle the declaration, instead of using our macros. */ -int GeoJsonlex_init(yyscan_t* ptr_yy_globals) - +int +GeoJsonlex_init (yyscan_t * ptr_yy_globals) { - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } - *ptr_yy_globals = (yyscan_t) GeoJsonalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), NULL); - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); - return yy_init_globals ( *ptr_yy_globals ); + return yy_init_globals (*ptr_yy_globals); } /* GeoJsonlex_init_extra has the same functionality as GeoJsonlex_init, but follows the @@ -1986,37 +2072,41 @@ int GeoJsonlex_init(yyscan_t* ptr_yy_globals) * the yyextra field. */ -int GeoJsonlex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int +GeoJsonlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; GeoJsonset_extra (yy_user_defined, &dummy_yyguts); - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) GeoJsonalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = + (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), &dummy_yyguts); + + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } + /* By setting to 0xAA, we expose bugs in - yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yy_init_globals. Leave at 0x00 for releases. */ + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); + GeoJsonset_extra (yy_user_defined, *ptr_yy_globals); - - return yy_init_globals ( *ptr_yy_globals ); + + return yy_init_globals (*ptr_yy_globals); } -static int yy_init_globals (yyscan_t yyscanner) +static int +yy_init_globals (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from GeoJsonlex_destroy(), so don't allocate here. */ @@ -2030,7 +2120,7 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = NULL; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -2048,31 +2138,33 @@ static int yy_init_globals (yyscan_t yyscanner) } /* GeoJsonlex_destroy is for both reentrant and non-reentrant scanners. */ -int GeoJsonlex_destroy (yyscan_t yyscanner) +int +GeoJsonlex_destroy (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - GeoJson_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); - YY_CURRENT_BUFFER_LVALUE = NULL; - GeoJsonpop_buffer_state(yyscanner); - } + while (YY_CURRENT_BUFFER) + { + GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + GeoJsonpop_buffer_state (yyscanner); + } - /* Destroy the stack itself. */ - GeoJsonfree(yyg->yy_buffer_stack ,yyscanner); - yyg->yy_buffer_stack = NULL; + /* Destroy the stack itself. */ + GeoJsonfree (yyg->yy_buffer_stack, yyscanner); + yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - GeoJsonfree(yyg->yy_start_stack ,yyscanner ); - yyg->yy_start_stack = NULL; + GeoJsonfree (yyg->yy_start_stack, yyscanner); + yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * GeoJsonlex() is called, initialization will occur. */ - yy_init_globals( yyscanner); + yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ - GeoJsonfree ( yyscanner , yyscanner ); + GeoJsonfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } @@ -2082,51 +2174,56 @@ int GeoJsonlex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void +yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; + register int i; + for (i = 0; i < n; ++i) + s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int +yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { - register int n; - for ( n = 0; s[n]; ++n ) - ; + register int n; + for (n = 0; s[n]; ++n) + ; - return n; + return n; } #endif -void *GeoJsonalloc (yy_size_t size , yyscan_t yyscanner) +void * +GeoJsonalloc (yy_size_t size, yyscan_t yyscanner) { - return (void *) malloc( size ); + return (void *) malloc (size); } -void *GeoJsonrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void * +GeoJsonrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc ((char *) ptr, size); } -void GeoJsonfree (void * ptr , yyscan_t yyscanner) +void +GeoJsonfree (void *ptr, yyscan_t yyscanner) { - free( (char *) ptr ); /* see GeoJsonrealloc() for (char *) cast */ + free ((char *) ptr); /* see GeoJsonrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -int GeoJsonwrap(yyscan_t yyscanner ) +int +GeoJsonwrap (yyscan_t yyscanner) { - return 1; + return 1; } - diff --git a/src/spatialite/src/gaiageo/lex.Gml.c b/src/spatialite/src/gaiageo/lex.Gml.c index b25a1c4..281f673 100644 --- a/src/spatialite/src/gaiageo/lex.Gml.c +++ b/src/spatialite/src/gaiageo/lex.Gml.c @@ -50,9 +50,10 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#endif /* ! C99 */ - #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -92,15 +91,15 @@ typedef unsigned int flex_uint32_t; /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST -#else /* ! __cplusplus */ +#else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const @@ -121,7 +120,7 @@ typedef unsigned int flex_uint32_t; /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T -typedef void* yyscan_t; +typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) @@ -158,15 +157,7 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -182,8 +173,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - #define YY_LESS_LINENO(n) - +#define YY_LESS_LINENO(n) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ @@ -208,66 +199,66 @@ typedef size_t yy_size_t; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state - { - FILE *yy_input_file; +{ + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - int yy_buffer_status; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via Gmlrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via Gmlrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ #define YY_BUFFER_EOF_PENDING 2 - }; +}; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the @@ -285,27 +276,30 @@ struct yy_buffer_state */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void Gmlrestart (FILE *input_file ,yyscan_t yyscanner ); -void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE Gml_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void Gml_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Gml_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void Gmlpop_buffer_state (yyscan_t yyscanner ); +void Gmlrestart (FILE * input_file, yyscan_t yyscanner); +void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner); +void Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +void Gmlpop_buffer_state (yyscan_t yyscanner); -static void Gmlensure_buffer_stack (yyscan_t yyscanner ); -static void Gml_load_buffer_state (yyscan_t yyscanner ); -static void Gml_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +static void Gmlensure_buffer_stack (yyscan_t yyscanner); +static void Gml_load_buffer_state (yyscan_t yyscanner); +static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, + yyscan_t yyscanner); #define YY_FLUSH_BUFFER Gml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) -YY_BUFFER_STATE Gml_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE Gml_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE Gml_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE Gml_scan_buffer (char *base, yy_size_t size, + yyscan_t yyscanner); +YY_BUFFER_STATE Gml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); +YY_BUFFER_STATE Gml_scan_bytes (yyconst char *bytes, int len, + yyscan_t yyscanner); -void *Gmlalloc (yy_size_t ,yyscan_t yyscanner ); -void *Gmlrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void Gmlfree (void * ,yyscan_t yyscanner ); +void *Gmlalloc (yy_size_t, yyscan_t yyscanner); +void *Gmlrealloc (void *, yy_size_t, yyscan_t yyscanner); +void Gmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Gml_create_buffer @@ -339,10 +333,11 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state (yyscan_t yyscanner); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state, + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner); +static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -359,83 +354,76 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[19] = - { 0, - 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, - 2, 4, 7, 0, 6, 5, 7, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, - 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, - - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[13] = - { 0, - 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, - 5, 4 - } ; - -static yyconst flex_int16_t yy_base[22] = - { 0, - 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, - 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, - 16 - } ; - -static yyconst flex_int16_t yy_def[22] = - { 0, - 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, - 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, - 18 - } ; - -static yyconst flex_int16_t yy_nxt[37] = - { 0, - 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, - 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, - 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18 - } ; - -static yyconst flex_int16_t yy_chk[37] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, - 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18 - } ; +{ + flex_int32_t yy_verify; + flex_int32_t yy_nxt; +}; +static yyconst flex_int16_t yy_accept[19] = { 0, + 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, + 2, 4, 7, 0, 6, 5, 7, 0 +}; + +static yyconst flex_int32_t yy_ec[256] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, + 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, + + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 +}; + +static yyconst flex_int32_t yy_meta[13] = { 0, + 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, + 5, 4 +}; + +static yyconst flex_int16_t yy_base[22] = { 0, + 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, + 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, + 16 +}; + +static yyconst flex_int16_t yy_def[22] = { 0, + 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, + 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, + 18 +}; + +static yyconst flex_int16_t yy_nxt[37] = { 0, + 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, + 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, + 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18 +}; + +static yyconst flex_int16_t yy_chk[37] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, + 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18 +}; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -511,16 +499,16 @@ the terms of any one of the MPL, the GPL or the LGPL. /* Holds the entire state of the reentrant scanner. */ struct yyguts_t - { +{ /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; @@ -532,7 +520,7 @@ struct yyguts_t int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; @@ -541,42 +529,46 @@ struct yyguts_t int yy_more_flag; int yy_more_len; - }; /* end struct yyguts_t */ +}; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals (yyscan_t yyscanner); -int Gmllex_init (yyscan_t* scanner); +int Gmllex_init (yyscan_t * scanner); -int Gmllex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int Gmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int Gmllex_destroy (yyscan_t yyscanner ); +int Gmllex_destroy (yyscan_t yyscanner); + +int Gmlget_debug (yyscan_t yyscanner); + +void Gmlset_debug (int debug_flag, yyscan_t yyscanner); -int Gmlget_debug (yyscan_t yyscanner ); +YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner); -void Gmlset_debug (int debug_flag ,yyscan_t yyscanner ); +void Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); -YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner ); +FILE *Gmlget_in (yyscan_t yyscanner); -void Gmlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +void Gmlset_in (FILE * in_str, yyscan_t yyscanner); -FILE *Gmlget_in (yyscan_t yyscanner ); +FILE *Gmlget_out (yyscan_t yyscanner); -void Gmlset_in (FILE * in_str ,yyscan_t yyscanner ); +void Gmlset_out (FILE * out_str, yyscan_t yyscanner); -FILE *Gmlget_out (yyscan_t yyscanner ); +int Gmlget_leng (yyscan_t yyscanner); -void Gmlset_out (FILE * out_str ,yyscan_t yyscanner ); +char *Gmlget_text (yyscan_t yyscanner); -int Gmlget_leng (yyscan_t yyscanner ); +int Gmlget_lineno (yyscan_t yyscanner); -char *Gmlget_text (yyscan_t yyscanner ); +void Gmlset_lineno (int line_number, yyscan_t yyscanner); -int Gmlget_lineno (yyscan_t yyscanner ); +int Gmlget_column (yyscan_t yyscanner); -void Gmlset_lineno (int line_number ,yyscan_t yyscanner ); +void Gmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -584,38 +576,33 @@ void Gmlset_lineno (int line_number ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int Gmlwrap (yyscan_t yyscanner ); +extern "C" int Gmlwrap (yyscan_t yyscanner); #else -extern int Gmlwrap (yyscan_t yyscanner ); +extern int Gmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput (yyscan_t yyscanner); #else -static int input (yyscan_t yyscanner ); +static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -634,7 +621,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -712,217 +699,241 @@ extern int Gmllex (yyscan_t yyscanner); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( !yyg->yy_init ) - { - yyg->yy_init = 1; + if (!yyg->yy_init) + { + yyg->yy_init = 1; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if ( ! yyg->yy_start ) - yyg->yy_start = 1; /* first start state */ + if (!yyg->yy_start) + yyg->yy_start = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if (!yyin) + yyin = stdin; - if ( ! yyout ) - yyout = stdout; + if (!yyout) + yyout = stdout; - if ( ! YY_CURRENT_BUFFER ) { - Gmlensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Gmlensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } + + Gml_load_buffer_state (yyscanner); + } + + while (1) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != + yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while (yy_base[yy_current_state] != 24); + + yy_find_action: + yy_act = yy_accept[yy_current_state]; + if (yy_act == 0) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } - Gml_load_buffer_state(yyscanner ); - } + YY_DO_BEFORE_ACTION; - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yyg->yy_c_buf_p; + do_action: /* This label is used only to access EOF actions. */ - /* Support of yytext. */ + switch (yy_act) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yyg->yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 24 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); return GML_END; } - YY_BREAK -case 2: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); return GML_EQ; } - YY_BREAK -case 3: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); return GML_OPEN; } - YY_BREAK -case 4: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); return GML_CLOSE; } - YY_BREAK -case 5: -YY_RULE_SETUP -{ gml_saveString(&(GmlLval.pval), yytext); return GML_COORD; } - YY_BREAK -case 6: + case 1: + YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + return GML_END; + } + YY_BREAK case 2:YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + return GML_EQ; + } + YY_BREAK case 3:YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + return GML_OPEN; + } + YY_BREAK case 4:YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + return GML_CLOSE; + } + YY_BREAK case 5:YY_RULE_SETUP + { + gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), + yytext); + return GML_COORD; + } + YY_BREAK case 6: /* rule 6 can match eol */ -YY_RULE_SETUP -{ gml_saveString(&(GmlLval.pval), yytext); return GML_VALUE; } - YY_BREAK -case 7: -YY_RULE_SETUP -{ gml_saveString(&(GmlLval.pval), yytext); return GML_KEYWORD; } - YY_BREAK -case 8: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); } /* ignore but count white space */ - YY_BREAK -case 9: + YY_RULE_SETUP + { + gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), + yytext); + return GML_VALUE; + } + YY_BREAK case 7:YY_RULE_SETUP + { + gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), + yytext); + return GML_KEYWORD; + } + YY_BREAK case 8:YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); + } /* ignore but count white space */ + YY_BREAK case 9: /* rule 9 can match eol */ -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col = 0; Gmlget_extra(yyscanner)->gml_line++; } - YY_BREAK -case 10: -YY_RULE_SETUP -{ gml_freeString(&(GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); return -1; } - YY_BREAK -case 11: -YY_RULE_SETUP -ECHO; - YY_BREAK -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: + YY_RULE_SETUP { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yyg->yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * Gmllex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); - - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + Gmlget_extra (yyscanner)->gml_col = 0; + Gmlget_extra (yyscanner)->gml_line++; + } + YY_BREAK case 10:YY_RULE_SETUP + { + gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); + Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); + return -1; + } + YY_BREAK case 11:YY_RULE_SETUP ECHO; + YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); - if ( yy_next_state ) - { + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = + (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == + YY_BUFFER_NEW) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * Gmllex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = + YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if (yyg->yy_c_buf_p <= + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state (yyscanner); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = + yy_try_NUL_trans (yy_current_state, yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if (yy_next_state) + { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; - } + } - else - { + else + { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_END_OF_FILE: - { - yyg->yy_did_buffer_switch_on_eof = 0; - - if ( Gmlwrap(yyscanner ) ) - { + } + } + + else + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if (Gmlwrap (yyscanner)) + { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up @@ -932,49 +943,53 @@ case YY_STATE_EOF(INITIAL): * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + yyg->yy_c_buf_p = + yyg->yytext_ptr + YY_MORE_ADJ; - yy_act = YY_STATE_EOF(YY_START); + yy_act = YY_STATE_EOF (YY_START); goto do_action; - } - - else - { - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = - yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yyg->yy_c_buf_p = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; + } + + else + { + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> + yy_n_chars]; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; } - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of Gmllex */ + default: + YY_FATAL_ERROR + ("fatal flex scanner internal error--no action found"); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of Gmllex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -983,167 +998,179 @@ case YY_STATE_EOF(INITIAL): * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer (yyscan_t yyscanner) +static int +yy_get_next_buffer (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if (yyg->yy_c_buf_p > + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) + YY_FATAL_ERROR + ("fatal flex scanner internal error--end of buffer missed"); + + if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) + { /* Don't try to fill the buffer, so this is an EOF. */ + if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + return EOB_ACT_END_OF_FILE; + } - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; + /* Try to read more data. */ - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - Gmlrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); + for (i = 0; i < number_to_move; ++i) + *(dest++) = *(source++); - yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - } + while (num_to_read <= 0) + { /* Not enough room in the buffer - grow it. */ - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } + if (b->yy_is_our_buffer) + { + int new_size = b->yy_buf_size * 2; - if ( yyg->yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - Gmlrestart(yyin ,yyscanner); - } + if (new_size <= 0) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + Gmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, + yyscanner); + } else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Gmlrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - yyg->yy_n_chars += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if (!b->yy_ch_buf) + YY_FATAL_ERROR + ("fatal error - scanner input buffer overflow"); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if (num_to_read > YY_READ_BUF_SIZE) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if (yyg->yy_n_chars == 0) + { + if (number_to_move == YY_MORE_ADJ) + { + ret_val = EOB_ACT_END_OF_FILE; + Gmlrestart (yyin, yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > + YY_CURRENT_BUFFER_LVALUE->yy_buf_size) + { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = + yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = + (char *) Gmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, + new_size, yyscanner); + if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = + YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = + YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ - static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +static yy_state_type +yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_current_state = yyg->yy_start; - - for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + yy_current_state = yyg->yy_start; + + for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; + ++yy_cp) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character @@ -1151,167 +1178,172 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +static yy_state_type +yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { - register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 18); - - return yy_is_jam ? 0 : yy_current_state; + register int yy_is_jam; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 18); + + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus - static int yyinput (yyscan_t yyscanner) +static int +yyinput (yyscan_t yyscanner) #else - static int input (yyscan_t yyscanner) +static int +input (yyscan_t yyscanner) #endif - { - int c; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - *yyg->yy_c_buf_p = yyg->yy_hold_char; - - if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - /* This was really a NUL. */ - *yyg->yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; - ++yyg->yy_c_buf_p; - - switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - Gmlrestart(yyin ,yyscanner); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( Gmlwrap(yyscanner ) ) - return EOF; - - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; + int c; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if (yyg->yy_c_buf_p < + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + Gmlrestart (yyin, yyscanner); + + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: + { + if (Gmlwrap (yyscanner)) + return EOF; + + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(yyscanner); + return yyinput (yyscanner); #else - return input(yyscanner); + return input (yyscanner); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = yyg->yytext_ptr + offset; - break; - } - } - } + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } - c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ - *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ - yyg->yy_hold_char = *++yyg->yy_c_buf_p; + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; - return c; + return c; } -#endif /* ifndef YY_NO_INPUT */ +#endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void Gmlrestart (FILE * input_file , yyscan_t yyscanner) +void +Gmlrestart (FILE * input_file, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! YY_CURRENT_BUFFER ){ - Gmlensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Gmlensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } - Gml_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - Gml_load_buffer_state(yyscanner ); + Gml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); + Gml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - /* TODO. We should be able to replace this entire function body - * with - * Gmlpop_buffer_state(); - * Gmlpush_buffer_state(new_buffer); + /* TODO. We should be able to replace this entire function body + * with + * Gmlpop_buffer_state(); + * Gmlpush_buffer_state(new_buffer); */ - Gmlensure_buffer_stack (yyscanner); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - Gml_load_buffer_state(yyscanner ); - - /* We don't actually know whether we did this switch during - * EOF (Gmlwrap()) processing, but the only time this flag - * is looked at is after Gmlwrap() is called, so it's safe - * to go ahead and always set it. - */ - yyg->yy_did_buffer_switch_on_eof = 1; + Gmlensure_buffer_stack (yyscanner); + if (YY_CURRENT_BUFFER == new_buffer) + return; + + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + Gml_load_buffer_state (yyscanner); + + /* We don't actually know whether we did this switch during + * EOF (Gmlwrap()) processing, but the only time this flag + * is looked at is after Gmlwrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; } -static void Gml_load_buffer_state (yyscan_t yyscanner) +static void +Gml_load_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - yyg->yy_hold_char = *yyg->yy_c_buf_p; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. @@ -1320,109 +1352,113 @@ static void Gml_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size , yyscan_t yyscanner) +YY_BUFFER_STATE +Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) Gmlalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Gml_create_buffer()" ); + YY_BUFFER_STATE b; - b->yy_buf_size = size; + b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) Gmlalloc(b->yy_buf_size + 2 ,yyscanner ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in Gml_create_buffer()" ); + b->yy_buf_size = size; - b->yy_is_our_buffer = 1; + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) Gmlalloc (b->yy_buf_size + 2, yyscanner); + if (!b->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); + + b->yy_is_our_buffer = 1; - Gml_init_buffer(b,file ,yyscanner); + Gml_init_buffer (b, file, yyscanner); - return b; + return b; } /** Destroy the buffer. * @param b a buffer created with Gml_create_buffer() * @param yyscanner The scanner object. */ - void Gml_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! b ) - return; + if (!b) + return; - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - if ( b->yy_is_our_buffer ) - Gmlfree((void *) b->yy_ch_buf ,yyscanner ); + if (b->yy_is_our_buffer) + Gmlfree ((void *) b->yy_ch_buf, yyscanner); - Gmlfree((void *) b ,yyscanner ); + Gmlfree ((void *) b, yyscanner); } #ifndef __cplusplus -extern int isatty (int ); +extern int isatty (int); #endif /* __cplusplus */ - + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Gmlrestart() or at EOF. */ - static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) - +static void +Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { - int oerrno = errno; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + int oerrno = errno; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - Gml_flush_buffer(b ,yyscanner); + Gml_flush_buffer (b, yyscanner); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; /* If b is the current buffer, then Gml_init_buffer was _probably_ * called from Gmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; + if (b != YY_CURRENT_BUFFER) + { + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; + + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void Gml_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if ( ! b ) - return; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!b) + return; - b->yy_n_chars = 0; + b->yy_n_chars = 0; - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - b->yy_buf_pos = &b->yy_ch_buf[0]; + b->yy_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == YY_CURRENT_BUFFER ) - Gml_load_buffer_state(yyscanner ); + if (b == YY_CURRENT_BUFFER) + Gml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes @@ -1431,99 +1467,107 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (new_buffer == NULL) - return; - - Gmlensure_buffer_stack(yyscanner); - - /* This block is copied from Gml_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - yyg->yy_buffer_stack_top++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from Gml_switch_to_buffer. */ - Gml_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (new_buffer == NULL) + return; + + Gmlensure_buffer_stack (yyscanner); + + /* This block is copied from Gml_switch_to_buffer. */ + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from Gml_switch_to_buffer. */ + Gml_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ -void Gmlpop_buffer_state (yyscan_t yyscanner) +void +Gmlpop_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (!YY_CURRENT_BUFFER) - return; - - Gml_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); - YY_CURRENT_BUFFER_LVALUE = NULL; - if (yyg->yy_buffer_stack_top > 0) - --yyg->yy_buffer_stack_top; - - if (YY_CURRENT_BUFFER) { - Gml_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; - } + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) + { + Gml_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; + } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void Gmlensure_buffer_stack (yyscan_t yyscanner) +static void +Gmlensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (!yyg->yy_buffer_stack) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Gmlalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Gmlensure_buffer_stack()" ); - - memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - yyg->yy_buffer_stack_max = num_to_alloc; - yyg->yy_buffer_stack_top = 0; - return; - } - - if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Gmlrealloc - (yyg->yy_buffer_stack, - num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Gmlensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); - yyg->yy_buffer_stack_max = num_to_alloc; - } + int num_to_alloc; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!yyg->yy_buffer_stack) + { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlalloc + (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Gmlensure_buffer_stack()"); + + memset (yyg->yy_buffer_stack, 0, + num_to_alloc * sizeof (struct yy_buffer_state *)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) + { + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */ ; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Gmlensure_buffer_stack()"); + + /* zero only the new slots. */ + memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, + grow_size * sizeof (struct yy_buffer_state *)); + yyg->yy_buffer_stack_max = num_to_alloc; + } } /** Setup the input buffer state to scan directly from a user-specified character buffer. @@ -1532,33 +1576,34 @@ static void Gmlensure_buffer_stack (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Gml_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE +Gml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) Gmlalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Gml_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - Gml_switch_to_buffer(b ,yyscanner ); - - return b; + YY_BUFFER_STATE b; + + if (size < 2 || + base[size - 2] != YY_END_OF_BUFFER_CHAR || + base[size - 1] != YY_END_OF_BUFFER_CHAR) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_buffer()"); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + Gml_switch_to_buffer (b, yyscanner); + + return b; } /** Setup the input buffer state to scan a string. The next call to Gmllex() will @@ -1569,57 +1614,60 @@ YY_BUFFER_STATE Gml_scan_buffer (char * base, yy_size_t size , yyscan_t yyscan * @note If you want to scan bytes that may contain NUL values, then use * Gml_scan_bytes() instead. */ -YY_BUFFER_STATE Gml_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE +Gml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { - - return Gml_scan_bytes(yystr,strlen(yystr) ,yyscanner); + + return Gml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Gmllex() will * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Gml_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE +Gml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) Gmlalloc(n ,yyscanner ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in Gml_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = Gml_scan_buffer(buf,n ,yyscanner); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in Gml_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; - return b; + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) Gmlalloc (n, yyscanner); + if (!buf) + YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_bytes()"); + + for (i = 0; i < _yybytes_len; ++i) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; + + b = Gml_scan_buffer (buf, n, yyscanner); + if (!b) + YY_FATAL_ERROR ("bad buffer in Gml_scan_bytes()"); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void +yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { - (void) spatialite_e( "%s\n", msg ); - exit( YY_EXIT_FAILURE ); + (void) fprintf (stderr, "%s\n", msg); + exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ @@ -1644,62 +1692,68 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE +Gmlget_extra (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ -int Gmlget_lineno (yyscan_t yyscanner) +int +Gmlget_lineno (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ -int Gmlget_column (yyscan_t yyscanner) +int +Gmlget_column (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *Gmlget_in (yyscan_t yyscanner) +FILE * +Gmlget_in (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *Gmlget_out (yyscan_t yyscanner) +FILE * +Gmlget_out (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ -int Gmlget_leng (yyscan_t yyscanner) +int +Gmlget_leng (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } @@ -1707,9 +1761,10 @@ int Gmlget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *Gmlget_text (yyscan_t yyscanner) +char * +Gmlget_text (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } @@ -1717,24 +1772,26 @@ char *Gmlget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void Gmlset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void +Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyextra = user_defined ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ -void Gmlset_lineno (int line_number , yyscan_t yyscanner) +void +Gmlset_lineno (int line_number, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Gmlset_lineno called with no buffer", yyscanner); - /* lineno is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Gmlset_lineno called with no buffer" , yyscanner); - yylineno = line_number; } @@ -1742,14 +1799,15 @@ void Gmlset_lineno (int line_number , yyscan_t yyscanner) * @param line_number * @param yyscanner The scanner object. */ -void Gmlset_column (int column_no , yyscan_t yyscanner) +void +Gmlset_column (int column_no, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* column is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Gmlset_column called with no buffer", yyscanner); - /* column is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Gmlset_column called with no buffer" , yyscanner); - yycolumn = column_no; } @@ -1759,28 +1817,32 @@ void Gmlset_column (int column_no , yyscan_t yyscanner) * @param yyscanner The scanner object. * @see Gml_switch_to_buffer */ -void Gmlset_in (FILE * in_str , yyscan_t yyscanner) +void +Gmlset_in (FILE * in_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyin = in_str; } -void Gmlset_out (FILE * out_str , yyscan_t yyscanner) +void +Gmlset_out (FILE * out_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyout = out_str; } -int Gmlget_debug (yyscan_t yyscanner) +int +Gmlget_debug (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } -void Gmlset_debug (int bdebug , yyscan_t yyscanner) +void +Gmlset_debug (int bdebug, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ @@ -1792,25 +1854,27 @@ void Gmlset_debug (int bdebug , yyscan_t yyscanner) * That's why we explicitly handle the declaration, instead of using our macros. */ -int Gmllex_init(yyscan_t* ptr_yy_globals) - +int +Gmllex_init (yyscan_t * ptr_yy_globals) { - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } - *ptr_yy_globals = (yyscan_t) Gmlalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), NULL); - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); - return yy_init_globals ( *ptr_yy_globals ); + return yy_init_globals (*ptr_yy_globals); } /* Gmllex_init_extra has the same functionality as Gmllex_init, but follows the @@ -1821,37 +1885,41 @@ int Gmllex_init(yyscan_t* ptr_yy_globals) * the yyextra field. */ -int Gmllex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int +Gmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Gmlset_extra (yy_user_defined, &dummy_yyguts); - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) Gmlalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = + (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); + + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } + /* By setting to 0xAA, we expose bugs in - yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yy_init_globals. Leave at 0x00 for releases. */ + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); + Gmlset_extra (yy_user_defined, *ptr_yy_globals); - - return yy_init_globals ( *ptr_yy_globals ); + + return yy_init_globals (*ptr_yy_globals); } -static int yy_init_globals (yyscan_t yyscanner) +static int +yy_init_globals (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Gmllex_destroy(), so don't allocate here. */ @@ -1865,7 +1933,7 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = NULL; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -1883,31 +1951,33 @@ static int yy_init_globals (yyscan_t yyscanner) } /* Gmllex_destroy is for both reentrant and non-reentrant scanners. */ -int Gmllex_destroy (yyscan_t yyscanner) +int +Gmllex_destroy (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - Gml_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); - YY_CURRENT_BUFFER_LVALUE = NULL; - Gmlpop_buffer_state(yyscanner); - } + while (YY_CURRENT_BUFFER) + { + Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + Gmlpop_buffer_state (yyscanner); + } - /* Destroy the stack itself. */ - Gmlfree(yyg->yy_buffer_stack ,yyscanner); - yyg->yy_buffer_stack = NULL; + /* Destroy the stack itself. */ + Gmlfree (yyg->yy_buffer_stack, yyscanner); + yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - Gmlfree(yyg->yy_start_stack ,yyscanner ); - yyg->yy_start_stack = NULL; + Gmlfree (yyg->yy_start_stack, yyscanner); + yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Gmllex() is called, initialization will occur. */ - yy_init_globals( yyscanner); + yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ - Gmlfree ( yyscanner , yyscanner ); + Gmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } @@ -1917,51 +1987,56 @@ int Gmllex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void +yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; + register int i; + for (i = 0; i < n; ++i) + s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int +yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { - register int n; - for ( n = 0; s[n]; ++n ) - ; + register int n; + for (n = 0; s[n]; ++n) + ; - return n; + return n; } #endif -void *Gmlalloc (yy_size_t size , yyscan_t yyscanner) +void * +Gmlalloc (yy_size_t size, yyscan_t yyscanner) { - return (void *) malloc( size ); + return (void *) malloc (size); } -void *Gmlrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void * +Gmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc ((char *) ptr, size); } -void Gmlfree (void * ptr , yyscan_t yyscanner) +void +Gmlfree (void *ptr, yyscan_t yyscanner) { - free( (char *) ptr ); /* see Gmlrealloc() for (char *) cast */ + free ((char *) ptr); /* see Gmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -int Gmlwrap(yyscan_t yyscanner ) +int +Gmlwrap (yyscan_t yyscanner) { - return 1; + return 1; } - diff --git a/src/spatialite/src/gaiageo/lex.Kml.c b/src/spatialite/src/gaiageo/lex.Kml.c index 356b95c..48ab7ae 100644 --- a/src/spatialite/src/gaiageo/lex.Kml.c +++ b/src/spatialite/src/gaiageo/lex.Kml.c @@ -50,9 +50,10 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#endif /* ! C99 */ - #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -92,15 +91,15 @@ typedef unsigned int flex_uint32_t; /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST -#else /* ! __cplusplus */ +#else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const @@ -121,7 +120,7 @@ typedef unsigned int flex_uint32_t; /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T -typedef void* yyscan_t; +typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) @@ -158,15 +157,7 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -182,8 +173,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - #define YY_LESS_LINENO(n) - +#define YY_LESS_LINENO(n) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ @@ -208,66 +199,66 @@ typedef size_t yy_size_t; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state - { - FILE *yy_input_file; +{ + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - int yy_buffer_status; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via Kmlrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via Kmlrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ #define YY_BUFFER_EOF_PENDING 2 - }; +}; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the @@ -285,27 +276,30 @@ struct yy_buffer_state */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void Kmlrestart (FILE *input_file ,yyscan_t yyscanner ); -void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE Kml_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void Kml_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Kml_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void Kmlpop_buffer_state (yyscan_t yyscanner ); +void Kmlrestart (FILE * input_file, yyscan_t yyscanner); +void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner); +void Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); +void Kmlpop_buffer_state (yyscan_t yyscanner); -static void Kmlensure_buffer_stack (yyscan_t yyscanner ); -static void Kml_load_buffer_state (yyscan_t yyscanner ); -static void Kml_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +static void Kmlensure_buffer_stack (yyscan_t yyscanner); +static void Kml_load_buffer_state (yyscan_t yyscanner); +static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, + yyscan_t yyscanner); #define YY_FLUSH_BUFFER Kml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) -YY_BUFFER_STATE Kml_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE Kml_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE Kml_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE Kml_scan_buffer (char *base, yy_size_t size, + yyscan_t yyscanner); +YY_BUFFER_STATE Kml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); +YY_BUFFER_STATE Kml_scan_bytes (yyconst char *bytes, int len, + yyscan_t yyscanner); -void *Kmlalloc (yy_size_t ,yyscan_t yyscanner ); -void *Kmlrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void Kmlfree (void * ,yyscan_t yyscanner ); +void *Kmlalloc (yy_size_t, yyscan_t yyscanner); +void *Kmlrealloc (void *, yy_size_t, yyscan_t yyscanner); +void Kmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Kml_create_buffer @@ -339,10 +333,11 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state (yyscan_t yyscanner); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state, + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner); +static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -359,83 +354,76 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[19] = - { 0, - 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, - 2, 4, 7, 0, 6, 5, 7, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, - 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, - - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[13] = - { 0, - 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, - 5, 4 - } ; - -static yyconst flex_int16_t yy_base[22] = - { 0, - 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, - 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, - 16 - } ; - -static yyconst flex_int16_t yy_def[22] = - { 0, - 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, - 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, - 18 - } ; - -static yyconst flex_int16_t yy_nxt[37] = - { 0, - 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, - 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, - 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18 - } ; - -static yyconst flex_int16_t yy_chk[37] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, - 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18 - } ; +{ + flex_int32_t yy_verify; + flex_int32_t yy_nxt; +}; +static yyconst flex_int16_t yy_accept[19] = { 0, + 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, + 2, 4, 7, 0, 6, 5, 7, 0 +}; + +static yyconst flex_int32_t yy_ec[256] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, + 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, + + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 +}; + +static yyconst flex_int32_t yy_meta[13] = { 0, + 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, + 5, 4 +}; + +static yyconst flex_int16_t yy_base[22] = { 0, + 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, + 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, + 16 +}; + +static yyconst flex_int16_t yy_def[22] = { 0, + 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, + 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, + 18 +}; + +static yyconst flex_int16_t yy_nxt[37] = { 0, + 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, + 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, + 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18 +}; + +static yyconst flex_int16_t yy_chk[37] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, + 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18 +}; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -511,16 +499,16 @@ the terms of any one of the MPL, the GPL or the LGPL. /* Holds the entire state of the reentrant scanner. */ struct yyguts_t - { +{ /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; @@ -532,7 +520,7 @@ struct yyguts_t int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; @@ -541,42 +529,46 @@ struct yyguts_t int yy_more_flag; int yy_more_len; - }; /* end struct yyguts_t */ +}; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals (yyscan_t yyscanner); -int Kmllex_init (yyscan_t* scanner); +int Kmllex_init (yyscan_t * scanner); -int Kmllex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int Kmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int Kmllex_destroy (yyscan_t yyscanner ); +int Kmllex_destroy (yyscan_t yyscanner); + +int Kmlget_debug (yyscan_t yyscanner); + +void Kmlset_debug (int debug_flag, yyscan_t yyscanner); -int Kmlget_debug (yyscan_t yyscanner ); +YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner); -void Kmlset_debug (int debug_flag ,yyscan_t yyscanner ); +void Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); -YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner ); +FILE *Kmlget_in (yyscan_t yyscanner); -void Kmlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +void Kmlset_in (FILE * in_str, yyscan_t yyscanner); -FILE *Kmlget_in (yyscan_t yyscanner ); +FILE *Kmlget_out (yyscan_t yyscanner); -void Kmlset_in (FILE * in_str ,yyscan_t yyscanner ); +void Kmlset_out (FILE * out_str, yyscan_t yyscanner); -FILE *Kmlget_out (yyscan_t yyscanner ); +int Kmlget_leng (yyscan_t yyscanner); -void Kmlset_out (FILE * out_str ,yyscan_t yyscanner ); +char *Kmlget_text (yyscan_t yyscanner); -int Kmlget_leng (yyscan_t yyscanner ); +int Kmlget_lineno (yyscan_t yyscanner); -char *Kmlget_text (yyscan_t yyscanner ); +void Kmlset_lineno (int line_number, yyscan_t yyscanner); -int Kmlget_lineno (yyscan_t yyscanner ); +int Kmlget_column (yyscan_t yyscanner); -void Kmlset_lineno (int line_number ,yyscan_t yyscanner ); +void Kmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -584,38 +576,33 @@ void Kmlset_lineno (int line_number ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int Kmlwrap (yyscan_t yyscanner ); +extern "C" int Kmlwrap (yyscan_t yyscanner); #else -extern int Kmlwrap (yyscan_t yyscanner ); +extern int Kmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput (yyscan_t yyscanner); #else -static int input (yyscan_t yyscanner ); +static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -634,7 +621,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -712,217 +699,241 @@ extern int Kmllex (yyscan_t yyscanner); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( !yyg->yy_init ) - { - yyg->yy_init = 1; + if (!yyg->yy_init) + { + yyg->yy_init = 1; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if ( ! yyg->yy_start ) - yyg->yy_start = 1; /* first start state */ + if (!yyg->yy_start) + yyg->yy_start = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if (!yyin) + yyin = stdin; - if ( ! yyout ) - yyout = stdout; + if (!yyout) + yyout = stdout; - if ( ! YY_CURRENT_BUFFER ) { - Kmlensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Kmlensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } + + Kml_load_buffer_state (yyscanner); + } + + while (1) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != + yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while (yy_base[yy_current_state] != 24); + + yy_find_action: + yy_act = yy_accept[yy_current_state]; + if (yy_act == 0) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } - Kml_load_buffer_state(yyscanner ); - } + YY_DO_BEFORE_ACTION; - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yyg->yy_c_buf_p; + do_action: /* This label is used only to access EOF actions. */ - /* Support of yytext. */ + switch (yy_act) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yyg->yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 24 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); return KML_END; } - YY_BREAK -case 2: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); return KML_EQ; } - YY_BREAK -case 3: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); return KML_OPEN; } - YY_BREAK -case 4: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); return KML_CLOSE; } - YY_BREAK -case 5: -YY_RULE_SETUP -{ kml_saveString(&(KmlLval.pval), yytext); return KML_COORD; } - YY_BREAK -case 6: + case 1: + YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + return KML_END; + } + YY_BREAK case 2:YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + return KML_EQ; + } + YY_BREAK case 3:YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + return KML_OPEN; + } + YY_BREAK case 4:YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + return KML_CLOSE; + } + YY_BREAK case 5:YY_RULE_SETUP + { + kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), + yytext); + return KML_COORD; + } + YY_BREAK case 6: /* rule 6 can match eol */ -YY_RULE_SETUP -{ kml_saveString(&(KmlLval.pval), yytext); return KML_VALUE; } - YY_BREAK -case 7: -YY_RULE_SETUP -{ kml_saveString(&(KmlLval.pval), yytext); return KML_KEYWORD; } - YY_BREAK -case 8: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); } /* ignore but count white space */ - YY_BREAK -case 9: + YY_RULE_SETUP + { + kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), + yytext); + return KML_VALUE; + } + YY_BREAK case 7:YY_RULE_SETUP + { + kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), + yytext); + return KML_KEYWORD; + } + YY_BREAK case 8:YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); + } /* ignore but count white space */ + YY_BREAK case 9: /* rule 9 can match eol */ -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col = 0; Kmlget_extra(yyscanner)->kml_line++; } - YY_BREAK -case 10: -YY_RULE_SETUP -{ kml_freeString(&(KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); return -1; } - YY_BREAK -case 11: -YY_RULE_SETUP -ECHO; - YY_BREAK -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: + YY_RULE_SETUP { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yyg->yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * Kmllex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); - - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + Kmlget_extra (yyscanner)->kml_col = 0; + Kmlget_extra (yyscanner)->kml_line++; + } + YY_BREAK case 10:YY_RULE_SETUP + { + kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); + Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); + return -1; + } + YY_BREAK case 11:YY_RULE_SETUP ECHO; + YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); - if ( yy_next_state ) - { + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = + (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == + YY_BUFFER_NEW) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * Kmllex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = + YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if (yyg->yy_c_buf_p <= + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state (yyscanner); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = + yy_try_NUL_trans (yy_current_state, yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if (yy_next_state) + { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; - } + } - else - { + else + { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_END_OF_FILE: - { - yyg->yy_did_buffer_switch_on_eof = 0; - - if ( Kmlwrap(yyscanner ) ) - { + } + } + + else + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if (Kmlwrap (yyscanner)) + { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up @@ -932,49 +943,53 @@ case YY_STATE_EOF(INITIAL): * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + yyg->yy_c_buf_p = + yyg->yytext_ptr + YY_MORE_ADJ; - yy_act = YY_STATE_EOF(YY_START); + yy_act = YY_STATE_EOF (YY_START); goto do_action; - } - - else - { - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = - yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yyg->yy_c_buf_p = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; + } + + else + { + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> + yy_n_chars]; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; } - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of Kmllex */ + default: + YY_FATAL_ERROR + ("fatal flex scanner internal error--no action found"); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of Kmllex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -983,167 +998,179 @@ case YY_STATE_EOF(INITIAL): * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer (yyscan_t yyscanner) +static int +yy_get_next_buffer (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if (yyg->yy_c_buf_p > + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) + YY_FATAL_ERROR + ("fatal flex scanner internal error--end of buffer missed"); + + if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) + { /* Don't try to fill the buffer, so this is an EOF. */ + if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + return EOB_ACT_END_OF_FILE; + } - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; + /* Try to read more data. */ - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - Kmlrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); + for (i = 0; i < number_to_move; ++i) + *(dest++) = *(source++); - yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - } + while (num_to_read <= 0) + { /* Not enough room in the buffer - grow it. */ - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } + if (b->yy_is_our_buffer) + { + int new_size = b->yy_buf_size * 2; - if ( yyg->yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - Kmlrestart(yyin ,yyscanner); - } + if (new_size <= 0) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + Kmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, + yyscanner); + } else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Kmlrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - yyg->yy_n_chars += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if (!b->yy_ch_buf) + YY_FATAL_ERROR + ("fatal error - scanner input buffer overflow"); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if (num_to_read > YY_READ_BUF_SIZE) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if (yyg->yy_n_chars == 0) + { + if (number_to_move == YY_MORE_ADJ) + { + ret_val = EOB_ACT_END_OF_FILE; + Kmlrestart (yyin, yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > + YY_CURRENT_BUFFER_LVALUE->yy_buf_size) + { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = + yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = + (char *) Kmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, + new_size, yyscanner); + if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = + YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = + YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ - static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +static yy_state_type +yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_current_state = yyg->yy_start; - - for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + yy_current_state = yyg->yy_start; + + for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; + ++yy_cp) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character @@ -1151,167 +1178,172 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +static yy_state_type +yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { - register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 18); - - return yy_is_jam ? 0 : yy_current_state; + register int yy_is_jam; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 19) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 18); + + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus - static int yyinput (yyscan_t yyscanner) +static int +yyinput (yyscan_t yyscanner) #else - static int input (yyscan_t yyscanner) +static int +input (yyscan_t yyscanner) #endif - { - int c; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - *yyg->yy_c_buf_p = yyg->yy_hold_char; - - if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - /* This was really a NUL. */ - *yyg->yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; - ++yyg->yy_c_buf_p; - - switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - Kmlrestart(yyin ,yyscanner); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( Kmlwrap(yyscanner ) ) - return EOF; - - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; + int c; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if (yyg->yy_c_buf_p < + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + Kmlrestart (yyin, yyscanner); + + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: + { + if (Kmlwrap (yyscanner)) + return EOF; + + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(yyscanner); + return yyinput (yyscanner); #else - return input(yyscanner); + return input (yyscanner); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = yyg->yytext_ptr + offset; - break; - } - } - } + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } - c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ - *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ - yyg->yy_hold_char = *++yyg->yy_c_buf_p; + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; - return c; + return c; } -#endif /* ifndef YY_NO_INPUT */ +#endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void Kmlrestart (FILE * input_file , yyscan_t yyscanner) +void +Kmlrestart (FILE * input_file, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! YY_CURRENT_BUFFER ){ - Kmlensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + Kmlensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } - Kml_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - Kml_load_buffer_state(yyscanner ); + Kml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); + Kml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - /* TODO. We should be able to replace this entire function body - * with - * Kmlpop_buffer_state(); - * Kmlpush_buffer_state(new_buffer); + /* TODO. We should be able to replace this entire function body + * with + * Kmlpop_buffer_state(); + * Kmlpush_buffer_state(new_buffer); */ - Kmlensure_buffer_stack (yyscanner); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - Kml_load_buffer_state(yyscanner ); - - /* We don't actually know whether we did this switch during - * EOF (Kmlwrap()) processing, but the only time this flag - * is looked at is after Kmlwrap() is called, so it's safe - * to go ahead and always set it. - */ - yyg->yy_did_buffer_switch_on_eof = 1; + Kmlensure_buffer_stack (yyscanner); + if (YY_CURRENT_BUFFER == new_buffer) + return; + + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + Kml_load_buffer_state (yyscanner); + + /* We don't actually know whether we did this switch during + * EOF (Kmlwrap()) processing, but the only time this flag + * is looked at is after Kmlwrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; } -static void Kml_load_buffer_state (yyscan_t yyscanner) +static void +Kml_load_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - yyg->yy_hold_char = *yyg->yy_c_buf_p; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. @@ -1320,109 +1352,113 @@ static void Kml_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size , yyscan_t yyscanner) +YY_BUFFER_STATE +Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) Kmlalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Kml_create_buffer()" ); + YY_BUFFER_STATE b; - b->yy_buf_size = size; + b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) Kmlalloc(b->yy_buf_size + 2 ,yyscanner ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in Kml_create_buffer()" ); + b->yy_buf_size = size; - b->yy_is_our_buffer = 1; + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) Kmlalloc (b->yy_buf_size + 2, yyscanner); + if (!b->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); + + b->yy_is_our_buffer = 1; - Kml_init_buffer(b,file ,yyscanner); + Kml_init_buffer (b, file, yyscanner); - return b; + return b; } /** Destroy the buffer. * @param b a buffer created with Kml_create_buffer() * @param yyscanner The scanner object. */ - void Kml_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! b ) - return; + if (!b) + return; - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - if ( b->yy_is_our_buffer ) - Kmlfree((void *) b->yy_ch_buf ,yyscanner ); + if (b->yy_is_our_buffer) + Kmlfree ((void *) b->yy_ch_buf, yyscanner); - Kmlfree((void *) b ,yyscanner ); + Kmlfree ((void *) b, yyscanner); } #ifndef __cplusplus -extern int isatty (int ); +extern int isatty (int); #endif /* __cplusplus */ - + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Kmlrestart() or at EOF. */ - static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) - +static void +Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { - int oerrno = errno; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + int oerrno = errno; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - Kml_flush_buffer(b ,yyscanner); + Kml_flush_buffer (b, yyscanner); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; /* If b is the current buffer, then Kml_init_buffer was _probably_ * called from Kmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; + if (b != YY_CURRENT_BUFFER) + { + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; + + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void Kml_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if ( ! b ) - return; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!b) + return; - b->yy_n_chars = 0; + b->yy_n_chars = 0; - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - b->yy_buf_pos = &b->yy_ch_buf[0]; + b->yy_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == YY_CURRENT_BUFFER ) - Kml_load_buffer_state(yyscanner ); + if (b == YY_CURRENT_BUFFER) + Kml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes @@ -1431,99 +1467,107 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (new_buffer == NULL) - return; - - Kmlensure_buffer_stack(yyscanner); - - /* This block is copied from Kml_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - yyg->yy_buffer_stack_top++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from Kml_switch_to_buffer. */ - Kml_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (new_buffer == NULL) + return; + + Kmlensure_buffer_stack (yyscanner); + + /* This block is copied from Kml_switch_to_buffer. */ + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from Kml_switch_to_buffer. */ + Kml_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ -void Kmlpop_buffer_state (yyscan_t yyscanner) +void +Kmlpop_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (!YY_CURRENT_BUFFER) - return; - - Kml_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); - YY_CURRENT_BUFFER_LVALUE = NULL; - if (yyg->yy_buffer_stack_top > 0) - --yyg->yy_buffer_stack_top; - - if (YY_CURRENT_BUFFER) { - Kml_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; - } + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) + { + Kml_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; + } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void Kmlensure_buffer_stack (yyscan_t yyscanner) +static void +Kmlensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (!yyg->yy_buffer_stack) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Kmlalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Kmlensure_buffer_stack()" ); - - memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - yyg->yy_buffer_stack_max = num_to_alloc; - yyg->yy_buffer_stack_top = 0; - return; - } - - if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)Kmlrealloc - (yyg->yy_buffer_stack, - num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in Kmlensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); - yyg->yy_buffer_stack_max = num_to_alloc; - } + int num_to_alloc; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!yyg->yy_buffer_stack) + { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlalloc + (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Kmlensure_buffer_stack()"); + + memset (yyg->yy_buffer_stack, 0, + num_to_alloc * sizeof (struct yy_buffer_state *)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) + { + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */ ; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in Kmlensure_buffer_stack()"); + + /* zero only the new slots. */ + memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, + grow_size * sizeof (struct yy_buffer_state *)); + yyg->yy_buffer_stack_max = num_to_alloc; + } } /** Setup the input buffer state to scan directly from a user-specified character buffer. @@ -1532,33 +1576,34 @@ static void Kmlensure_buffer_stack (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Kml_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE +Kml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) Kmlalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in Kml_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - Kml_switch_to_buffer(b ,yyscanner ); - - return b; + YY_BUFFER_STATE b; + + if (size < 2 || + base[size - 2] != YY_END_OF_BUFFER_CHAR || + base[size - 1] != YY_END_OF_BUFFER_CHAR) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_buffer()"); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + Kml_switch_to_buffer (b, yyscanner); + + return b; } /** Setup the input buffer state to scan a string. The next call to Kmllex() will @@ -1569,57 +1614,60 @@ YY_BUFFER_STATE Kml_scan_buffer (char * base, yy_size_t size , yyscan_t yyscan * @note If you want to scan bytes that may contain NUL values, then use * Kml_scan_bytes() instead. */ -YY_BUFFER_STATE Kml_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE +Kml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { - - return Kml_scan_bytes(yystr,strlen(yystr) ,yyscanner); + + return Kml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Kmllex() will * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE Kml_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE +Kml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) Kmlalloc(n ,yyscanner ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in Kml_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = Kml_scan_buffer(buf,n ,yyscanner); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in Kml_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; - return b; + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) Kmlalloc (n, yyscanner); + if (!buf) + YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_bytes()"); + + for (i = 0; i < _yybytes_len; ++i) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; + + b = Kml_scan_buffer (buf, n, yyscanner); + if (!b) + YY_FATAL_ERROR ("bad buffer in Kml_scan_bytes()"); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void +yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { - (void) spatialite_e( "%s\n", msg ); - exit( YY_EXIT_FAILURE ); + (void) fprintf (stderr, "%s\n", msg); + exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ @@ -1644,62 +1692,68 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE +Kmlget_extra (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ -int Kmlget_lineno (yyscan_t yyscanner) +int +Kmlget_lineno (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ -int Kmlget_column (yyscan_t yyscanner) +int +Kmlget_column (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *Kmlget_in (yyscan_t yyscanner) +FILE * +Kmlget_in (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *Kmlget_out (yyscan_t yyscanner) +FILE * +Kmlget_out (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ -int Kmlget_leng (yyscan_t yyscanner) +int +Kmlget_leng (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } @@ -1707,9 +1761,10 @@ int Kmlget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *Kmlget_text (yyscan_t yyscanner) +char * +Kmlget_text (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } @@ -1717,24 +1772,26 @@ char *Kmlget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void Kmlset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void +Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyextra = user_defined ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ -void Kmlset_lineno (int line_number , yyscan_t yyscanner) +void +Kmlset_lineno (int line_number, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Kmlset_lineno called with no buffer", yyscanner); - /* lineno is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Kmlset_lineno called with no buffer" , yyscanner); - yylineno = line_number; } @@ -1742,14 +1799,15 @@ void Kmlset_lineno (int line_number , yyscan_t yyscanner) * @param line_number * @param yyscanner The scanner object. */ -void Kmlset_column (int column_no , yyscan_t yyscanner) +void +Kmlset_column (int column_no, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* column is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("Kmlset_column called with no buffer", yyscanner); - /* column is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "Kmlset_column called with no buffer" , yyscanner); - yycolumn = column_no; } @@ -1759,28 +1817,32 @@ void Kmlset_column (int column_no , yyscan_t yyscanner) * @param yyscanner The scanner object. * @see Kml_switch_to_buffer */ -void Kmlset_in (FILE * in_str , yyscan_t yyscanner) +void +Kmlset_in (FILE * in_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyin = in_str; } -void Kmlset_out (FILE * out_str , yyscan_t yyscanner) +void +Kmlset_out (FILE * out_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyout = out_str; } -int Kmlget_debug (yyscan_t yyscanner) +int +Kmlget_debug (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } -void Kmlset_debug (int bdebug , yyscan_t yyscanner) +void +Kmlset_debug (int bdebug, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ @@ -1792,25 +1854,27 @@ void Kmlset_debug (int bdebug , yyscan_t yyscanner) * That's why we explicitly handle the declaration, instead of using our macros. */ -int Kmllex_init(yyscan_t* ptr_yy_globals) - +int +Kmllex_init (yyscan_t * ptr_yy_globals) { - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } - *ptr_yy_globals = (yyscan_t) Kmlalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), NULL); - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); - return yy_init_globals ( *ptr_yy_globals ); + return yy_init_globals (*ptr_yy_globals); } /* Kmllex_init_extra has the same functionality as Kmllex_init, but follows the @@ -1821,37 +1885,41 @@ int Kmllex_init(yyscan_t* ptr_yy_globals) * the yyextra field. */ -int Kmllex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int +Kmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Kmlset_extra (yy_user_defined, &dummy_yyguts); - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) Kmlalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = + (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); + + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } + /* By setting to 0xAA, we expose bugs in - yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yy_init_globals. Leave at 0x00 for releases. */ + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); + Kmlset_extra (yy_user_defined, *ptr_yy_globals); - - return yy_init_globals ( *ptr_yy_globals ); + + return yy_init_globals (*ptr_yy_globals); } -static int yy_init_globals (yyscan_t yyscanner) +static int +yy_init_globals (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Kmllex_destroy(), so don't allocate here. */ @@ -1865,7 +1933,7 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = NULL; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -1883,31 +1951,33 @@ static int yy_init_globals (yyscan_t yyscanner) } /* Kmllex_destroy is for both reentrant and non-reentrant scanners. */ -int Kmllex_destroy (yyscan_t yyscanner) +int +Kmllex_destroy (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - Kml_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); - YY_CURRENT_BUFFER_LVALUE = NULL; - Kmlpop_buffer_state(yyscanner); - } + while (YY_CURRENT_BUFFER) + { + Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + Kmlpop_buffer_state (yyscanner); + } - /* Destroy the stack itself. */ - Kmlfree(yyg->yy_buffer_stack ,yyscanner); - yyg->yy_buffer_stack = NULL; + /* Destroy the stack itself. */ + Kmlfree (yyg->yy_buffer_stack, yyscanner); + yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - Kmlfree(yyg->yy_start_stack ,yyscanner ); - yyg->yy_start_stack = NULL; + Kmlfree (yyg->yy_start_stack, yyscanner); + yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Kmllex() is called, initialization will occur. */ - yy_init_globals( yyscanner); + yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ - Kmlfree ( yyscanner , yyscanner ); + Kmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } @@ -1917,51 +1987,56 @@ int Kmllex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void +yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; + register int i; + for (i = 0; i < n; ++i) + s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int +yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { - register int n; - for ( n = 0; s[n]; ++n ) - ; + register int n; + for (n = 0; s[n]; ++n) + ; - return n; + return n; } #endif -void *Kmlalloc (yy_size_t size , yyscan_t yyscanner) +void * +Kmlalloc (yy_size_t size, yyscan_t yyscanner) { - return (void *) malloc( size ); + return (void *) malloc (size); } -void *Kmlrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void * +Kmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc ((char *) ptr, size); } -void Kmlfree (void * ptr , yyscan_t yyscanner) +void +Kmlfree (void *ptr, yyscan_t yyscanner) { - free( (char *) ptr ); /* see Kmlrealloc() for (char *) cast */ + free ((char *) ptr); /* see Kmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -int Kmlwrap(yyscan_t yyscanner ) +int +Kmlwrap (yyscan_t yyscanner) { - return 1; + return 1; } - diff --git a/src/spatialite/src/gaiageo/lex.VanuatuWkt.c b/src/spatialite/src/gaiageo/lex.VanuatuWkt.c index 35fc882..b97e3ba 100644 --- a/src/spatialite/src/gaiageo/lex.VanuatuWkt.c +++ b/src/spatialite/src/gaiageo/lex.VanuatuWkt.c @@ -50,9 +50,10 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#endif /* ! C99 */ - #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -92,15 +91,15 @@ typedef unsigned int flex_uint32_t; /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST -#else /* ! __cplusplus */ +#else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const @@ -121,7 +120,7 @@ typedef unsigned int flex_uint32_t; /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T -typedef void* yyscan_t; +typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) @@ -158,15 +157,7 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -182,8 +173,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - #define YY_LESS_LINENO(n) - +#define YY_LESS_LINENO(n) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ @@ -208,66 +199,66 @@ typedef size_t yy_size_t; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state - { - FILE *yy_input_file; +{ + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - int yy_buffer_status; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via VanuatuWktrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via VanuatuWktrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ #define YY_BUFFER_EOF_PENDING 2 - }; +}; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the @@ -285,27 +276,34 @@ struct yy_buffer_state */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void VanuatuWktrestart (FILE *input_file ,yyscan_t yyscanner ); -void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void VanuatuWktpop_buffer_state (yyscan_t yyscanner ); - -static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner ); -static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner ); -static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +void VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner); +void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, + yyscan_t yyscanner); +YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size, + yyscan_t yyscanner); +void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); +void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, + yyscan_t yyscanner); +void VanuatuWktpop_buffer_state (yyscan_t yyscanner); + +static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner); +static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner); +static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, + yyscan_t yyscanner); #define YY_FLUSH_BUFFER VanuatuWkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) -YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base, yy_size_t size, + yyscan_t yyscanner); +YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yy_str, + yyscan_t yyscanner); +YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *bytes, int len, + yyscan_t yyscanner); -void *VanuatuWktalloc (yy_size_t ,yyscan_t yyscanner ); -void *VanuatuWktrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void VanuatuWktfree (void * ,yyscan_t yyscanner ); +void *VanuatuWktalloc (yy_size_t, yyscan_t yyscanner); +void *VanuatuWktrealloc (void *, yy_size_t, yyscan_t yyscanner); +void VanuatuWktfree (void *, yyscan_t yyscanner); #define yy_new_buffer VanuatuWkt_create_buffer @@ -339,10 +337,11 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state (yyscan_t yyscanner); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state, + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner); +static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -359,174 +358,165 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[114] = - { 0, - 0, 0, 37, 35, 33, 34, 3, 4, 35, 2, - 35, 1, 35, 35, 35, 35, 1, 1, 1, 1, - 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 0, 7, - 6, 0, 0, 0, 0, 0, 8, 13, 0, 0, - 0, 0, 0, 0, 15, 14, 0, 0, 0, 0, - 0, 16, 0, 9, 0, 17, 0, 0, 0, 11, - 10, 0, 0, 19, 18, 0, 0, 12, 0, 20, - 25, 0, 0, 0, 27, 26, 0, 0, 28, 0, - - 21, 0, 0, 23, 22, 0, 24, 29, 0, 31, - 30, 32, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, - 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, - 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, - 1, 20, 21, 22, 23, 1, 1, 1, 24, 25, - 1, 1, 1, 1, 1, 1, 1, 1, 26, 1, - - 27, 1, 28, 1, 29, 1, 1, 30, 31, 32, - 33, 34, 1, 35, 36, 37, 38, 1, 1, 1, - 39, 40, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[41] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int16_t yy_base[115] = - { 0, - 0, 33, 211, 255, 255, 255, 255, 255, 192, 255, - 191, 2, 2, 3, 4, 0, 11, 13, 185, 15, - 26, 28, 32, 36, 162, 161, 154, 37, 42, 33, - 39, 33, 71, 16, 46, 53, 61, 54, 64, 56, - 57, 65, 80, 67, 66, 67, 74, 79, 0, 255, - 82, 87, 82, 93, 91, 95, 255, 112, 105, 100, - 106, 109, 103, 0, 255, 113, 112, 121, 114, 114, - 125, 255, 124, 144, 118, 154, 130, 143, 0, 255, - 143, 141, 0, 255, 146, 148, 154, 255, 153, 255, - 184, 157, 161, 0, 255, 172, 167, 177, 255, 177, - - 194, 174, 0, 255, 182, 182, 255, 214, 0, 255, - 192, 255, 255, 0 - } ; - -static yyconst flex_int16_t yy_def[115] = - { 0, - 114, 114, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 43, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 58, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 74, 113, - 113, 113, 76, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 91, 113, 113, 113, 113, 113, 113, - - 113, 113, 101, 113, 113, 113, 113, 113, 108, 113, - 113, 113, 0, 113 - } ; - -static yyconst flex_int16_t yy_nxt[296] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 11, 113, 12, - 19, 20, 13, 21, 14, 15, 22, 24, 16, 25, - 17, 26, 18, 19, 20, 34, 23, 13, 21, 14, - 15, 22, 24, 16, 5, 6, 7, 8, 9, 10, - 11, 23, 12, 28, 29, 13, 30, 14, 15, 31, - 32, 16, 35, 36, 37, 38, 39, 40, 28, 29, - 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 33, 49, 49, 48, 52, 53, 54, 55, 41, 42, - 43, 44, 45, 46, 47, 50, 56, 57, 48, 52, - - 53, 54, 55, 58, 51, 59, 60, 61, 62, 63, - 50, 56, 57, 64, 64, 67, 68, 69, 58, 51, - 59, 60, 61, 62, 63, 70, 71, 65, 72, 73, - 67, 68, 69, 74, 75, 76, 66, 77, 78, 82, - 70, 71, 65, 72, 73, 79, 79, 86, 74, 75, - 76, 66, 77, 78, 82, 83, 83, 87, 88, 80, - 89, 90, 86, 27, 91, 92, 93, 97, 81, 84, - 34, 33, 87, 88, 80, 89, 90, 98, 85, 91, - 92, 93, 97, 81, 84, 94, 94, 99, 100, 101, - 102, 106, 98, 85, 27, 103, 103, 107, 108, 95, - - 18, 17, 99, 100, 101, 102, 106, 112, 96, 104, - 113, 113, 107, 108, 95, 109, 109, 113, 105, 113, - 113, 113, 112, 96, 104, 113, 113, 113, 113, 110, - 113, 113, 113, 105, 113, 113, 113, 113, 111, 113, - 113, 113, 113, 113, 110, 113, 113, 113, 113, 113, - 113, 113, 113, 111, 3, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113 - - } ; - -static yyconst flex_int16_t yy_chk[296] = - { 0, - 114, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 12, 12, 1, 13, 1, 1, 14, 16, 1, 17, - 17, 18, 18, 20, 20, 34, 15, 1, 13, 1, - 1, 14, 16, 1, 2, 2, 2, 2, 2, 2, - 2, 15, 2, 21, 22, 2, 23, 2, 2, 24, - 24, 2, 28, 29, 30, 31, 32, 35, 21, 22, - 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, - 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, - 33, 43, 43, 42, 44, 45, 46, 47, 36, 37, - 38, 39, 40, 41, 42, 43, 48, 51, 42, 44, - - 45, 46, 47, 52, 43, 53, 54, 55, 56, 56, - 43, 48, 51, 58, 58, 59, 60, 61, 52, 43, - 53, 54, 55, 56, 56, 62, 63, 58, 66, 67, - 59, 60, 61, 68, 69, 70, 58, 71, 73, 75, - 62, 63, 58, 66, 67, 74, 74, 77, 68, 69, - 70, 58, 71, 73, 75, 76, 76, 78, 81, 74, - 82, 85, 77, 27, 86, 87, 89, 92, 74, 76, - 26, 25, 78, 81, 74, 82, 85, 93, 76, 86, - 87, 89, 92, 74, 76, 91, 91, 96, 97, 98, - 100, 102, 93, 76, 19, 101, 101, 105, 106, 91, - - 11, 9, 96, 97, 98, 100, 102, 111, 91, 101, - 3, 0, 105, 106, 91, 108, 108, 0, 101, 0, - 0, 0, 111, 91, 101, 0, 0, 0, 0, 108, - 0, 0, 0, 101, 0, 0, 0, 0, 108, 0, - 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113 - - } ; +{ + flex_int32_t yy_verify; + flex_int32_t yy_nxt; +}; +static yyconst flex_int16_t yy_accept[114] = { 0, + 0, 0, 37, 35, 33, 34, 3, 4, 35, 2, + 35, 1, 35, 35, 35, 35, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 7, + 6, 0, 0, 0, 0, 0, 8, 13, 0, 0, + 0, 0, 0, 0, 15, 14, 0, 0, 0, 0, + 0, 16, 0, 9, 0, 17, 0, 0, 0, 11, + 10, 0, 0, 19, 18, 0, 0, 12, 0, 20, + 25, 0, 0, 0, 27, 26, 0, 0, 28, 0, + + 21, 0, 0, 23, 22, 0, 24, 29, 0, 31, + 30, 32, 0 +}; + +static yyconst flex_int32_t yy_ec[256] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, + 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, + 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, + 1, 20, 21, 22, 23, 1, 1, 1, 24, 25, + 1, 1, 1, 1, 1, 1, 1, 1, 26, 1, + + 27, 1, 28, 1, 29, 1, 1, 30, 31, 32, + 33, 34, 1, 35, 36, 37, 38, 1, 1, 1, + 39, 40, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 +}; + +static yyconst flex_int32_t yy_meta[41] = { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static yyconst flex_int16_t yy_base[115] = { 0, + 0, 33, 211, 255, 255, 255, 255, 255, 192, 255, + 191, 2, 2, 3, 4, 0, 11, 13, 185, 15, + 26, 28, 32, 36, 162, 161, 154, 37, 42, 33, + 39, 33, 71, 16, 46, 53, 61, 54, 64, 56, + 57, 65, 80, 67, 66, 67, 74, 79, 0, 255, + 82, 87, 82, 93, 91, 95, 255, 112, 105, 100, + 106, 109, 103, 0, 255, 113, 112, 121, 114, 114, + 125, 255, 124, 144, 118, 154, 130, 143, 0, 255, + 143, 141, 0, 255, 146, 148, 154, 255, 153, 255, + 184, 157, 161, 0, 255, 172, 167, 177, 255, 177, + + 194, 174, 0, 255, 182, 182, 255, 214, 0, 255, + 192, 255, 255, 0 +}; + +static yyconst flex_int16_t yy_def[115] = { 0, + 114, 114, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 43, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 58, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 74, 113, + 113, 113, 76, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 91, 113, 113, 113, 113, 113, 113, + + 113, 113, 101, 113, 113, 113, 113, 113, 108, 113, + 113, 113, 0, 113 +}; + +static yyconst flex_int16_t yy_nxt[296] = { 0, + 4, 5, 6, 7, 8, 9, 10, 11, 113, 12, + 19, 20, 13, 21, 14, 15, 22, 24, 16, 25, + 17, 26, 18, 19, 20, 34, 23, 13, 21, 14, + 15, 22, 24, 16, 5, 6, 7, 8, 9, 10, + 11, 23, 12, 28, 29, 13, 30, 14, 15, 31, + 32, 16, 35, 36, 37, 38, 39, 40, 28, 29, + 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 33, 49, 49, 48, 52, 53, 54, 55, 41, 42, + 43, 44, 45, 46, 47, 50, 56, 57, 48, 52, + + 53, 54, 55, 58, 51, 59, 60, 61, 62, 63, + 50, 56, 57, 64, 64, 67, 68, 69, 58, 51, + 59, 60, 61, 62, 63, 70, 71, 65, 72, 73, + 67, 68, 69, 74, 75, 76, 66, 77, 78, 82, + 70, 71, 65, 72, 73, 79, 79, 86, 74, 75, + 76, 66, 77, 78, 82, 83, 83, 87, 88, 80, + 89, 90, 86, 27, 91, 92, 93, 97, 81, 84, + 34, 33, 87, 88, 80, 89, 90, 98, 85, 91, + 92, 93, 97, 81, 84, 94, 94, 99, 100, 101, + 102, 106, 98, 85, 27, 103, 103, 107, 108, 95, + + 18, 17, 99, 100, 101, 102, 106, 112, 96, 104, + 113, 113, 107, 108, 95, 109, 109, 113, 105, 113, + 113, 113, 112, 96, 104, 113, 113, 113, 113, 110, + 113, 113, 113, 105, 113, 113, 113, 113, 111, 113, + 113, 113, 113, 113, 110, 113, 113, 113, 113, 113, + 113, 113, 113, 111, 3, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113 +}; + +static yyconst flex_int16_t yy_chk[296] = { 0, + 114, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 12, 12, 1, 13, 1, 1, 14, 16, 1, 17, + 17, 18, 18, 20, 20, 34, 15, 1, 13, 1, + 1, 14, 16, 1, 2, 2, 2, 2, 2, 2, + 2, 15, 2, 21, 22, 2, 23, 2, 2, 24, + 24, 2, 28, 29, 30, 31, 32, 35, 21, 22, + 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, + 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, + 33, 43, 43, 42, 44, 45, 46, 47, 36, 37, + 38, 39, 40, 41, 42, 43, 48, 51, 42, 44, + + 45, 46, 47, 52, 43, 53, 54, 55, 56, 56, + 43, 48, 51, 58, 58, 59, 60, 61, 52, 43, + 53, 54, 55, 56, 56, 62, 63, 58, 66, 67, + 59, 60, 61, 68, 69, 70, 58, 71, 73, 75, + 62, 63, 58, 66, 67, 74, 74, 77, 68, 69, + 70, 58, 71, 73, 75, 76, 76, 78, 81, 74, + 82, 85, 77, 27, 86, 87, 89, 92, 74, 76, + 26, 25, 78, 81, 74, 82, 85, 93, 76, 86, + 87, 89, 92, 74, 76, 91, 91, 96, 97, 98, + 100, 102, 93, 76, 19, 101, 101, 105, 106, 91, + + 11, 9, 96, 97, 98, 100, 102, 111, 91, 101, + 3, 0, 105, 106, 91, 108, 108, 0, 101, 0, + 0, 0, 111, 91, 101, 0, 0, 0, 0, 108, + 0, 0, 0, 101, 0, 0, 0, 0, 108, 0, + 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113 +}; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -623,16 +613,16 @@ Greg Wilson gvwilson@cs.toronto.ca /* Holds the entire state of the reentrant scanner. */ struct yyguts_t - { +{ /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; @@ -644,7 +634,7 @@ struct yyguts_t int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; @@ -653,42 +643,46 @@ struct yyguts_t int yy_more_flag; int yy_more_len; - }; /* end struct yyguts_t */ +}; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals (yyscan_t yyscanner); -int VanuatuWktlex_init (yyscan_t* scanner); +int VanuatuWktlex_init (yyscan_t * scanner); -int VanuatuWktlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int VanuatuWktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int VanuatuWktlex_destroy (yyscan_t yyscanner ); +int VanuatuWktlex_destroy (yyscan_t yyscanner); + +int VanuatuWktget_debug (yyscan_t yyscanner); -int VanuatuWktget_debug (yyscan_t yyscanner ); +void VanuatuWktset_debug (int debug_flag, yyscan_t yyscanner); -void VanuatuWktset_debug (int debug_flag ,yyscan_t yyscanner ); +YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner); -YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner ); +void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); -void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +FILE *VanuatuWktget_in (yyscan_t yyscanner); -FILE *VanuatuWktget_in (yyscan_t yyscanner ); +void VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner); -void VanuatuWktset_in (FILE * in_str ,yyscan_t yyscanner ); +FILE *VanuatuWktget_out (yyscan_t yyscanner); -FILE *VanuatuWktget_out (yyscan_t yyscanner ); +void VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner); -void VanuatuWktset_out (FILE * out_str ,yyscan_t yyscanner ); +int VanuatuWktget_leng (yyscan_t yyscanner); -int VanuatuWktget_leng (yyscan_t yyscanner ); +char *VanuatuWktget_text (yyscan_t yyscanner); -char *VanuatuWktget_text (yyscan_t yyscanner ); +int VanuatuWktget_lineno (yyscan_t yyscanner); -int VanuatuWktget_lineno (yyscan_t yyscanner ); +void VanuatuWktset_lineno (int line_number, yyscan_t yyscanner); -void VanuatuWktset_lineno (int line_number ,yyscan_t yyscanner ); +int VanuatuWktget_column (yyscan_t yyscanner); + +void VanuatuWktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -696,38 +690,33 @@ void VanuatuWktset_lineno (int line_number ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int VanuatuWktwrap (yyscan_t yyscanner ); +extern "C" int VanuatuWktwrap (yyscan_t yyscanner); #else -extern int VanuatuWktwrap (yyscan_t yyscanner ); +extern int VanuatuWktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput (yyscan_t yyscanner); #else -static int input (yyscan_t yyscanner ); +static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -746,7 +735,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -824,337 +813,405 @@ extern int VanuatuWktlex (yyscan_t yyscanner); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( !yyg->yy_init ) - { - yyg->yy_init = 1; + if (!yyg->yy_init) + { + yyg->yy_init = 1; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if ( ! yyg->yy_start ) - yyg->yy_start = 1; /* first start state */ + if (!yyg->yy_start) + yyg->yy_start = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if (!yyin) + yyin = stdin; - if ( ! yyout ) - yyout = stdout; + if (!yyout) + yyout = stdout; - if ( ! YY_CURRENT_BUFFER ) { - VanuatuWktensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + VanuatuWktensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } + + VanuatuWkt_load_buffer_state (yyscanner); + } + + while (1) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != + yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 114) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while (yy_base[yy_current_state] != 255); + + yy_find_action: + yy_act = yy_accept[yy_current_state]; + if (yy_act == 0) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } - VanuatuWkt_load_buffer_state(yyscanner ); - } + YY_DO_BEFORE_ACTION; - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yyg->yy_c_buf_p; + do_action: /* This label is used only to access EOF actions. */ - /* Support of yytext. */ + switch (yy_act) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yyg->yy_start; -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 114 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 255 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yyg->yy_hold_char; - yy_cp = yyg->yy_last_accepting_cpos; - yy_current_state = yyg->yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -{ VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); VanuatuWktlval.dval = atof(yytext); return VANUATU_NUM; } - YY_BREAK -case 2: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_COMMA; } - YY_BREAK -case 3: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } - YY_BREAK -case 4: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } - YY_BREAK -case 5: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POINT; } - YY_BREAK -case 6: + case 1: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->vanuatu_col += + (int) strlen (yytext); + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = + atof (yytext); + return VANUATU_NUM; + } + YY_BREAK case 2:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_COMMA; + } + YY_BREAK case 3:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_OPEN_BRACKET; + } + YY_BREAK case 4:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_CLOSE_BRACKET; + } + YY_BREAK case 5:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POINT; + } + YY_BREAK case 6: /* rule 6 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } - YY_BREAK -case 7: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POINT_Z; + } + YY_BREAK case 7: /* rule 7 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } - YY_BREAK -case 8: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POINT_M; + } + YY_BREAK case 8: /* rule 8 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } - YY_BREAK -case 9: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } - YY_BREAK -case 10: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POINT_ZM; + } + YY_BREAK case 9:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_LINESTRING; + } + YY_BREAK case 10: /* rule 10 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } - YY_BREAK -case 11: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_LINESTRING_Z; + } + YY_BREAK case 11: /* rule 11 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } - YY_BREAK -case 12: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_LINESTRING_M; + } + YY_BREAK case 12: /* rule 12 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } - YY_BREAK -case 13: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } - YY_BREAK -case 14: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_LINESTRING_ZM; + } + YY_BREAK case 13:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POLYGON; + } + YY_BREAK case 14: /* rule 14 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } - YY_BREAK -case 15: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POLYGON_Z; + } + YY_BREAK case 15: /* rule 15 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } - YY_BREAK -case 16: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POLYGON_M; + } + YY_BREAK case 16: /* rule 16 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } - YY_BREAK -case 17: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } - YY_BREAK -case 18: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_POLYGON_ZM; + } + YY_BREAK case 17:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOINT; + } + YY_BREAK case 18: /* rule 18 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } - YY_BREAK -case 19: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOINT_Z; + } + YY_BREAK case 19: /* rule 19 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } - YY_BREAK -case 20: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOINT_M; + } + YY_BREAK case 20: /* rule 20 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } - YY_BREAK -case 21: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } - YY_BREAK -case 22: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOINT_ZM; + } + YY_BREAK case 21:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTILINESTRING; + } + YY_BREAK case 22: /* rule 22 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } - YY_BREAK -case 23: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTILINESTRING_Z; + } + YY_BREAK case 23: /* rule 23 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } - YY_BREAK -case 24: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTILINESTRING_M; + } + YY_BREAK case 24: /* rule 24 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } - YY_BREAK -case 25: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } - YY_BREAK -case 26: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTILINESTRING_ZM; + } + YY_BREAK case 25:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOLYGON; + } + YY_BREAK case 26: /* rule 26 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } - YY_BREAK -case 27: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOLYGON_Z; + } + YY_BREAK case 27: /* rule 27 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } - YY_BREAK -case 28: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOLYGON_M; + } + YY_BREAK case 28: /* rule 28 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } - YY_BREAK -case 29: -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } - YY_BREAK -case 30: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_MULTIPOLYGON_ZM; + } + YY_BREAK case 29:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_GEOMETRYCOLLECTION; + } + YY_BREAK case 30: /* rule 30 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } - YY_BREAK -case 31: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_GEOMETRYCOLLECTION_Z; + } + YY_BREAK case 31: /* rule 31 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } - YY_BREAK -case 32: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_GEOMETRYCOLLECTION_M; + } + YY_BREAK case 32: /* rule 32 can match eol */ -YY_RULE_SETUP -{ VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } - YY_BREAK -case 33: -YY_RULE_SETUP -{ VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); } /* ignore but count white space */ - YY_BREAK -case 34: + YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; + return VANUATU_GEOMETRYCOLLECTION_ZM; + } + YY_BREAK case 33:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->vanuatu_col += + (int) strlen (yytext); + } /* ignore but count white space */ + YY_BREAK case 34: /* rule 34 can match eol */ -YY_RULE_SETUP -{ VanuatuWktget_extra(yyscanner)->vanuatu_col = 0; VanuatuWktget_extra(yyscanner)->vanuatu_line++; } - YY_BREAK -case 35: -YY_RULE_SETUP -{ VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); return -1; } - YY_BREAK -case 36: -YY_RULE_SETUP -ECHO; - YY_BREAK -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: + YY_RULE_SETUP { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yyg->yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * VanuatuWktlex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); - - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + VanuatuWktget_extra (yyscanner)->vanuatu_col = 0; + VanuatuWktget_extra (yyscanner)->vanuatu_line++; + } + YY_BREAK case 35:YY_RULE_SETUP + { + VanuatuWktget_extra (yyscanner)->vanuatu_col += + (int) strlen (yytext); + return -1; + } + YY_BREAK case 36:YY_RULE_SETUP ECHO; + YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); - if ( yy_next_state ) - { + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = + (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == + YY_BUFFER_NEW) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * VanuatuWktlex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = + YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if (yyg->yy_c_buf_p <= + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state (yyscanner); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = + yy_try_NUL_trans (yy_current_state, yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if (yy_next_state) + { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; - } + } - else - { + else + { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_END_OF_FILE: - { - yyg->yy_did_buffer_switch_on_eof = 0; - - if ( VanuatuWktwrap(yyscanner ) ) - { + } + } + + else + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if (VanuatuWktwrap (yyscanner)) + { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up @@ -1164,49 +1221,53 @@ case YY_STATE_EOF(INITIAL): * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + yyg->yy_c_buf_p = + yyg->yytext_ptr + YY_MORE_ADJ; - yy_act = YY_STATE_EOF(YY_START); + yy_act = YY_STATE_EOF (YY_START); goto do_action; - } - - else - { - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = - yyg->yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yyg->yy_c_buf_p = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; - - yy_current_state = yy_get_previous_state( yyscanner ); - - yy_cp = yyg->yy_c_buf_p; - yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; + } + + else + { + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> + yy_n_chars]; + + yy_current_state = + yy_get_previous_state (yyscanner); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; } - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of VanuatuWktlex */ + default: + YY_FATAL_ERROR + ("fatal flex scanner internal error--no action found"); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of VanuatuWktlex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1215,167 +1276,180 @@ case YY_STATE_EOF(INITIAL): * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer (yyscan_t yyscanner) +static int +yy_get_next_buffer (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if (yyg->yy_c_buf_p > + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) + YY_FATAL_ERROR + ("fatal flex scanner internal error--end of buffer missed"); + + if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) + { /* Don't try to fill the buffer, so this is an EOF. */ + if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ + return EOB_ACT_END_OF_FILE; + } - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; + /* Try to read more data. */ - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - VanuatuWktrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + for (i = 0; i < number_to_move; ++i) + *(dest++) = *(source++); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); + if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + while (num_to_read <= 0) + { /* Not enough room in the buffer - grow it. */ - } + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; + int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + if (b->yy_is_our_buffer) + { + int new_size = b->yy_buf_size * 2; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - if ( yyg->yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - VanuatuWktrestart(yyin ,yyscanner); - } + if (new_size <= 0) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + VanuatuWktrealloc ((void *) b->yy_ch_buf, + b->yy_buf_size + 2, yyscanner); + } else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) VanuatuWktrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - yyg->yy_n_chars += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if (!b->yy_ch_buf) + YY_FATAL_ERROR + ("fatal error - scanner input buffer overflow"); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if (num_to_read > YY_READ_BUF_SIZE) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if (yyg->yy_n_chars == 0) + { + if (number_to_move == YY_MORE_ADJ) + { + ret_val = EOB_ACT_END_OF_FILE; + VanuatuWktrestart (yyin, yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > + YY_CURRENT_BUFFER_LVALUE->yy_buf_size) + { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = + yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = + (char *) VanuatuWktrealloc ((void *) + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, + new_size, yyscanner); + if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = + YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = + YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ - static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +static yy_state_type +yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - yy_current_state = yyg->yy_start; - - for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 114 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + yy_current_state = yyg->yy_start; + + for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; + ++yy_cp) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 114) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = + yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character @@ -1383,167 +1457,172 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +static yy_state_type +yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { - register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yyg->yy_last_accepting_state = yy_current_state; - yyg->yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 114 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 113); - - return yy_is_jam ? 0 : yy_current_state; + register int yy_is_jam; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if (yy_accept[yy_current_state]) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) + { + yy_current_state = (int) yy_def[yy_current_state]; + if (yy_current_state >= 114) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 113); + + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus - static int yyinput (yyscan_t yyscanner) +static int +yyinput (yyscan_t yyscanner) #else - static int input (yyscan_t yyscanner) +static int +input (yyscan_t yyscanner) #endif - { - int c; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - *yyg->yy_c_buf_p = yyg->yy_hold_char; - - if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) - /* This was really a NUL. */ - *yyg->yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; - ++yyg->yy_c_buf_p; - - switch ( yy_get_next_buffer( yyscanner ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - VanuatuWktrestart(yyin ,yyscanner); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( VanuatuWktwrap(yyscanner ) ) - return EOF; - - if ( ! yyg->yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; + int c; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if (yyg->yy_c_buf_p < + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch (yy_get_next_buffer (yyscanner)) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + VanuatuWktrestart (yyin, yyscanner); + + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: + { + if (VanuatuWktwrap (yyscanner)) + return EOF; + + if (!yyg->yy_did_buffer_switch_on_eof) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(yyscanner); + return yyinput (yyscanner); #else - return input(yyscanner); + return input (yyscanner); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yyg->yy_c_buf_p = yyg->yytext_ptr + offset; - break; - } - } - } + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } - c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ - *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ - yyg->yy_hold_char = *++yyg->yy_c_buf_p; + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; - return c; + return c; } -#endif /* ifndef YY_NO_INPUT */ +#endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void VanuatuWktrestart (FILE * input_file , yyscan_t yyscanner) +void +VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! YY_CURRENT_BUFFER ){ - VanuatuWktensure_buffer_stack (yyscanner); - YY_CURRENT_BUFFER_LVALUE = - VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); - } + if (!YY_CURRENT_BUFFER) + { + VanuatuWktensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); + } - VanuatuWkt_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - VanuatuWkt_load_buffer_state(yyscanner ); + VanuatuWkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); + VanuatuWkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - /* TODO. We should be able to replace this entire function body - * with - * VanuatuWktpop_buffer_state(); - * VanuatuWktpush_buffer_state(new_buffer); + /* TODO. We should be able to replace this entire function body + * with + * VanuatuWktpop_buffer_state(); + * VanuatuWktpush_buffer_state(new_buffer); */ - VanuatuWktensure_buffer_stack (yyscanner); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - VanuatuWkt_load_buffer_state(yyscanner ); - - /* We don't actually know whether we did this switch during - * EOF (VanuatuWktwrap()) processing, but the only time this flag - * is looked at is after VanuatuWktwrap() is called, so it's safe - * to go ahead and always set it. - */ - yyg->yy_did_buffer_switch_on_eof = 1; + VanuatuWktensure_buffer_stack (yyscanner); + if (YY_CURRENT_BUFFER == new_buffer) + return; + + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + VanuatuWkt_load_buffer_state (yyscanner); + + /* We don't actually know whether we did this switch during + * EOF (VanuatuWktwrap()) processing, but the only time this flag + * is looked at is after VanuatuWktwrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; } -static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner) +static void +VanuatuWkt_load_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - yyg->yy_hold_char = *yyg->yy_c_buf_p; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. @@ -1552,109 +1631,114 @@ static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size , yyscan_t yyscanner) +YY_BUFFER_STATE +VanuatuWkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) VanuatuWktalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWkt_create_buffer()" ); + YY_BUFFER_STATE b; - b->yy_buf_size = size; + b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) VanuatuWktalloc(b->yy_buf_size + 2 ,yyscanner ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWkt_create_buffer()" ); + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) VanuatuWktalloc (b->yy_buf_size + 2, yyscanner); + if (!b->yy_ch_buf) + YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); - b->yy_is_our_buffer = 1; + b->yy_is_our_buffer = 1; - VanuatuWkt_init_buffer(b,file ,yyscanner); + VanuatuWkt_init_buffer (b, file, yyscanner); - return b; + return b; } /** Destroy the buffer. * @param b a buffer created with VanuatuWkt_create_buffer() * @param yyscanner The scanner object. */ - void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - if ( ! b ) - return; + if (!b) + return; - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - if ( b->yy_is_our_buffer ) - VanuatuWktfree((void *) b->yy_ch_buf ,yyscanner ); + if (b->yy_is_our_buffer) + VanuatuWktfree ((void *) b->yy_ch_buf, yyscanner); - VanuatuWktfree((void *) b ,yyscanner ); + VanuatuWktfree ((void *) b, yyscanner); } #ifndef __cplusplus -extern int isatty (int ); +extern int isatty (int); #endif /* __cplusplus */ - + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a VanuatuWktrestart() or at EOF. */ - static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) - +static void +VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { - int oerrno = errno; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + int oerrno = errno; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; - VanuatuWkt_flush_buffer(b ,yyscanner); + VanuatuWkt_flush_buffer (b, yyscanner); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; /* If b is the current buffer, then VanuatuWkt_init_buffer was _probably_ * called from VanuatuWktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; + if (b != YY_CURRENT_BUFFER) + { + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; + + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +void +VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if ( ! b ) - return; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!b) + return; - b->yy_n_chars = 0; + b->yy_n_chars = 0; - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - b->yy_buf_pos = &b->yy_ch_buf[0]; + b->yy_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == YY_CURRENT_BUFFER ) - VanuatuWkt_load_buffer_state(yyscanner ); + if (b == YY_CURRENT_BUFFER) + VanuatuWkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes @@ -1663,99 +1747,107 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void +VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (new_buffer == NULL) - return; - - VanuatuWktensure_buffer_stack(yyscanner); - - /* This block is copied from VanuatuWkt_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *yyg->yy_c_buf_p = yyg->yy_hold_char; - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - yyg->yy_buffer_stack_top++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from VanuatuWkt_switch_to_buffer. */ - VanuatuWkt_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (new_buffer == NULL) + return; + + VanuatuWktensure_buffer_stack (yyscanner); + + /* This block is copied from VanuatuWkt_switch_to_buffer. */ + if (YY_CURRENT_BUFFER) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from VanuatuWkt_switch_to_buffer. */ + VanuatuWkt_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ -void VanuatuWktpop_buffer_state (yyscan_t yyscanner) +void +VanuatuWktpop_buffer_state (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - if (!YY_CURRENT_BUFFER) - return; - - VanuatuWkt_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); - YY_CURRENT_BUFFER_LVALUE = NULL; - if (yyg->yy_buffer_stack_top > 0) - --yyg->yy_buffer_stack_top; - - if (YY_CURRENT_BUFFER) { - VanuatuWkt_load_buffer_state(yyscanner ); - yyg->yy_did_buffer_switch_on_eof = 1; - } + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) + { + VanuatuWkt_load_buffer_state (yyscanner); + yyg->yy_did_buffer_switch_on_eof = 1; + } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner) +static void +VanuatuWktensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (!yyg->yy_buffer_stack) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)VanuatuWktalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWktensure_buffer_stack()" ); - - memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - yyg->yy_buffer_stack_max = num_to_alloc; - yyg->yy_buffer_stack_top = 0; - return; - } - - if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)VanuatuWktrealloc - (yyg->yy_buffer_stack, - num_to_alloc * sizeof(struct yy_buffer_state*) - , yyscanner); - if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWktensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); - yyg->yy_buffer_stack_max = num_to_alloc; - } + int num_to_alloc; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!yyg->yy_buffer_stack) + { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktalloc + (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); + + memset (yyg->yy_buffer_stack, 0, + num_to_alloc * sizeof (struct yy_buffer_state *)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) + { + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */ ; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); + if (!yyg->yy_buffer_stack) + YY_FATAL_ERROR + ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); + + /* zero only the new slots. */ + memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, + grow_size * sizeof (struct yy_buffer_state *)); + yyg->yy_buffer_stack_max = num_to_alloc; + } } /** Setup the input buffer state to scan directly from a user-specified character buffer. @@ -1764,33 +1856,35 @@ static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE VanuatuWkt_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE +VanuatuWkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) VanuatuWktalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWkt_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - VanuatuWkt_switch_to_buffer(b ,yyscanner ); - - return b; + YY_BUFFER_STATE b; + + if (size < 2 || + base[size - 2] != YY_END_OF_BUFFER_CHAR || + base[size - 1] != YY_END_OF_BUFFER_CHAR) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), + yyscanner); + if (!b) + YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_buffer()"); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + VanuatuWkt_switch_to_buffer (b, yyscanner); + + return b; } /** Setup the input buffer state to scan a string. The next call to VanuatuWktlex() will @@ -1801,57 +1895,61 @@ YY_BUFFER_STATE VanuatuWkt_scan_buffer (char * base, yy_size_t size , yyscan_t * @note If you want to scan bytes that may contain NUL values, then use * VanuatuWkt_scan_bytes() instead. */ -YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE +VanuatuWkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { - - return VanuatuWkt_scan_bytes(yystr,strlen(yystr) ,yyscanner); + + return VanuatuWkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to VanuatuWktlex() will * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE +VanuatuWkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, + yyscan_t yyscanner) { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) VanuatuWktalloc(n ,yyscanner ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in VanuatuWkt_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = VanuatuWkt_scan_buffer(buf,n ,yyscanner); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in VanuatuWkt_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) VanuatuWktalloc (n, yyscanner); + if (!buf) + YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_bytes()"); + + for (i = 0; i < _yybytes_len; ++i) + buf[i] = yybytes[i]; - return b; + buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; + + b = VanuatuWkt_scan_buffer (buf, n, yyscanner); + if (!b) + YY_FATAL_ERROR ("bad buffer in VanuatuWkt_scan_bytes()"); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void +yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { - (void) spatialite_e("%s\n", msg ); - exit( YY_EXIT_FAILURE ); + (void) fprintf (stderr, "%s\n", msg); + exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ @@ -1876,62 +1974,68 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE +VanuatuWktget_extra (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ -int VanuatuWktget_lineno (yyscan_t yyscanner) +int +VanuatuWktget_lineno (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ -int VanuatuWktget_column (yyscan_t yyscanner) +int +VanuatuWktget_column (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - - if (! YY_CURRENT_BUFFER) - return 0; - + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + if (!YY_CURRENT_BUFFER) + return 0; + return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *VanuatuWktget_in (yyscan_t yyscanner) +FILE * +VanuatuWktget_in (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *VanuatuWktget_out (yyscan_t yyscanner) +FILE * +VanuatuWktget_out (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ -int VanuatuWktget_leng (yyscan_t yyscanner) +int +VanuatuWktget_leng (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } @@ -1939,9 +2043,10 @@ int VanuatuWktget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *VanuatuWktget_text (yyscan_t yyscanner) +char * +VanuatuWktget_text (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } @@ -1949,24 +2054,27 @@ char *VanuatuWktget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void +VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyextra = user_defined ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ -void VanuatuWktset_lineno (int line_number , yyscan_t yyscanner) +void +VanuatuWktset_lineno (int line_number, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("VanuatuWktset_lineno called with no buffer", + yyscanner); - /* lineno is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "VanuatuWktset_lineno called with no buffer" , yyscanner); - yylineno = line_number; } @@ -1974,14 +2082,16 @@ void VanuatuWktset_lineno (int line_number , yyscan_t yyscanner) * @param line_number * @param yyscanner The scanner object. */ -void VanuatuWktset_column (int column_no , yyscan_t yyscanner) +void +VanuatuWktset_column (int column_no, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + + /* column is only valid if an input buffer exists. */ + if (!YY_CURRENT_BUFFER) + yy_fatal_error ("VanuatuWktset_column called with no buffer", + yyscanner); - /* column is only valid if an input buffer exists. */ - if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "VanuatuWktset_column called with no buffer" , yyscanner); - yycolumn = column_no; } @@ -1991,28 +2101,32 @@ void VanuatuWktset_column (int column_no , yyscan_t yyscanner) * @param yyscanner The scanner object. * @see VanuatuWkt_switch_to_buffer */ -void VanuatuWktset_in (FILE * in_str , yyscan_t yyscanner) +void +VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyin = in_str; } -void VanuatuWktset_out (FILE * out_str , yyscan_t yyscanner) +void +VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yyout = out_str; } -int VanuatuWktget_debug (yyscan_t yyscanner) +int +VanuatuWktget_debug (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } -void VanuatuWktset_debug (int bdebug , yyscan_t yyscanner) +void +VanuatuWktset_debug (int bdebug, yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; + yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ @@ -2024,25 +2138,28 @@ void VanuatuWktset_debug (int bdebug , yyscan_t yyscanner) * That's why we explicitly handle the declaration, instead of using our macros. */ -int VanuatuWktlex_init(yyscan_t* ptr_yy_globals) - +int +VanuatuWktlex_init (yyscan_t * ptr_yy_globals) { - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } - *ptr_yy_globals = (yyscan_t) VanuatuWktalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = + (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), NULL); - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); - return yy_init_globals ( *ptr_yy_globals ); + return yy_init_globals (*ptr_yy_globals); } /* VanuatuWktlex_init_extra has the same functionality as VanuatuWktlex_init, but follows the @@ -2053,37 +2170,42 @@ int VanuatuWktlex_init(yyscan_t* ptr_yy_globals) * the yyextra field. */ -int VanuatuWktlex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int +VanuatuWktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, + yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; VanuatuWktset_extra (yy_user_defined, &dummy_yyguts); - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) VanuatuWktalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - + if (ptr_yy_globals == NULL) + { + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = + (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), &dummy_yyguts); + + if (*ptr_yy_globals == NULL) + { + errno = ENOMEM; + return 1; + } + /* By setting to 0xAA, we expose bugs in - yy_init_globals. Leave at 0x00 for releases. */ - memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yy_init_globals. Leave at 0x00 for releases. */ + memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); + VanuatuWktset_extra (yy_user_defined, *ptr_yy_globals); - - return yy_init_globals ( *ptr_yy_globals ); + + return yy_init_globals (*ptr_yy_globals); } -static int yy_init_globals (yyscan_t yyscanner) +static int +yy_init_globals (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from VanuatuWktlex_destroy(), so don't allocate here. */ @@ -2097,7 +2219,7 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = NULL; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -2115,31 +2237,33 @@ static int yy_init_globals (yyscan_t yyscanner) } /* VanuatuWktlex_destroy is for both reentrant and non-reentrant scanners. */ -int VanuatuWktlex_destroy (yyscan_t yyscanner) +int +VanuatuWktlex_destroy (yyscan_t yyscanner) { - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - VanuatuWkt_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); - YY_CURRENT_BUFFER_LVALUE = NULL; - VanuatuWktpop_buffer_state(yyscanner); - } + while (YY_CURRENT_BUFFER) + { + VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + VanuatuWktpop_buffer_state (yyscanner); + } - /* Destroy the stack itself. */ - VanuatuWktfree(yyg->yy_buffer_stack ,yyscanner); - yyg->yy_buffer_stack = NULL; + /* Destroy the stack itself. */ + VanuatuWktfree (yyg->yy_buffer_stack, yyscanner); + yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - VanuatuWktfree(yyg->yy_start_stack ,yyscanner ); - yyg->yy_start_stack = NULL; + VanuatuWktfree (yyg->yy_start_stack, yyscanner); + yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * VanuatuWktlex() is called, initialization will occur. */ - yy_init_globals( yyscanner); + yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ - VanuatuWktfree ( yyscanner , yyscanner ); + VanuatuWktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } @@ -2149,52 +2273,58 @@ int VanuatuWktlex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void +yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; + register int i; + for (i = 0; i < n; ++i) + s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int +yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { - register int n; - for ( n = 0; s[n]; ++n ) - ; + register int n; + for (n = 0; s[n]; ++n) + ; - return n; + return n; } #endif -void *VanuatuWktalloc (yy_size_t size , yyscan_t yyscanner) +void * +VanuatuWktalloc (yy_size_t size, yyscan_t yyscanner) { - return (void *) malloc( size ); + return (void *) malloc (size); } -void *VanuatuWktrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void * +VanuatuWktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc ((char *) ptr, size); } -void VanuatuWktfree (void * ptr , yyscan_t yyscanner) +void +VanuatuWktfree (void *ptr, yyscan_t yyscanner) { - free( (char *) ptr ); /* see VanuatuWktrealloc() for (char *) cast */ + free ((char *) ptr); /* see VanuatuWktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -int VanuatuWktwrap(yyscan_t yyscanner ) +int +VanuatuWktwrap (yyscan_t yyscanner) { - return 1; + return 1; } /****************************************************************************** @@ -2216,4 +2346,3 @@ Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ - diff --git a/src/spatialite/src/gaiageo/vanuatuWkt.c b/src/spatialite/src/gaiageo/vanuatuWkt.c index a4b875e..7ef3caf 100644 --- a/src/spatialite/src/gaiageo/vanuatuWkt.c +++ b/src/spatialite/src/gaiageo/vanuatuWkt.c @@ -18,7 +18,7 @@ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE -# define INTERFACE 1 +#define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -58,17 +58,18 @@ #define YYNOCODE 133 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * -typedef union { - int yyinit; - ParseTOKENTYPE yy0; +typedef union +{ + int yyinit; + ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct vanuatu_data *p_data ; -#define ParseARG_PDECL , struct vanuatu_data *p_data -#define ParseARG_FETCH struct vanuatu_data *p_data = yypParser->p_data -#define ParseARG_STORE yypParser->p_data = p_data +#define ParseARG_PDECL , struct vanuatu_data *p_data +#define ParseARG_FETCH struct vanuatu_data *p_data = yypParser->p_data +#define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 490 #define YYNRULE 201 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) @@ -88,7 +89,7 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** for testing. */ #ifndef yytestcase -# define yytestcase(X) +#define yytestcase(X) #endif @@ -140,249 +141,254 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 230, 316, 317, 318, 319, 320, 321, 322, 323, 324, - /* 10 */ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - /* 20 */ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - /* 30 */ 345, 346, 347, 348, 490, 238, 231, 51, 93, 233, - /* 40 */ 235, 237, 94, 46, 54, 57, 60, 63, 66, 72, - /* 50 */ 78, 84, 90, 97, 105, 113, 122, 127, 132, 137, - /* 60 */ 142, 147, 152, 157, 162, 179, 196, 213, 231, 231, - /* 70 */ 101, 351, 350, 233, 47, 102, 54, 54, 234, 57, - /* 80 */ 66, 66, 47, 72, 90, 90, 241, 97, 122, 122, - /* 90 */ 47, 127, 142, 142, 233, 147, 177, 170, 58, 194, - /* 100 */ 57, 235, 47, 235, 72, 692, 1, 60, 97, 60, - /* 110 */ 59, 78, 127, 78, 47, 105, 147, 105, 253, 132, - /* 120 */ 187, 132, 47, 152, 237, 152, 48, 211, 91, 204, - /* 130 */ 63, 237, 254, 351, 84, 98, 47, 63, 113, 106, - /* 140 */ 351, 84, 137, 114, 351, 113, 157, 232, 351, 137, - /* 150 */ 228, 109, 46, 157, 49, 236, 110, 221, 49, 163, - /* 160 */ 172, 173, 174, 175, 176, 164, 165, 166, 167, 168, - /* 170 */ 169, 180, 189, 190, 191, 192, 193, 181, 182, 183, - /* 180 */ 184, 185, 186, 353, 50, 197, 206, 207, 208, 209, - /* 190 */ 210, 355, 198, 199, 200, 201, 202, 203, 18, 52, - /* 200 */ 358, 20, 214, 223, 224, 225, 226, 227, 21, 53, - /* 210 */ 215, 216, 217, 218, 219, 220, 239, 118, 55, 51, - /* 220 */ 56, 46, 119, 46, 243, 46, 61, 49, 62, 49, - /* 230 */ 245, 49, 51, 64, 65, 51, 51, 248, 249, 250, - /* 240 */ 70, 357, 46, 46, 46, 46, 255, 76, 240, 258, - /* 250 */ 47, 47, 49, 259, 260, 82, 49, 49, 49, 361, - /* 260 */ 263, 264, 51, 51, 265, 88, 51, 51, 359, 23, - /* 270 */ 242, 24, 26, 362, 27, 29, 67, 30, 69, 364, - /* 280 */ 244, 73, 365, 34, 367, 246, 368, 79, 251, 370, - /* 290 */ 75, 38, 81, 85, 256, 374, 68, 42, 247, 71, - /* 300 */ 87, 261, 10, 373, 92, 74, 378, 252, 77, 267, - /* 310 */ 377, 266, 95, 80, 382, 257, 83, 269, 381, 268, - /* 320 */ 86, 91, 96, 262, 89, 386, 385, 11, 389, 99, - /* 330 */ 391, 100, 270, 272, 271, 103, 98, 12, 104, 394, - /* 340 */ 396, 107, 106, 108, 111, 274, 273, 13, 401, 277, - /* 350 */ 120, 114, 123, 112, 275, 115, 125, 279, 399, 406, - /* 360 */ 278, 116, 117, 276, 128, 404, 408, 130, 121, 133, - /* 370 */ 280, 135, 138, 409, 140, 143, 145, 148, 153, 150, - /* 380 */ 124, 126, 155, 158, 129, 131, 160, 2, 3, 4, - /* 390 */ 134, 5, 136, 693, 693, 693, 693, 139, 693, 141, - /* 400 */ 693, 693, 693, 144, 693, 146, 693, 6, 412, 7, - /* 410 */ 411, 693, 149, 151, 693, 281, 415, 154, 414, 156, - /* 420 */ 693, 693, 282, 693, 417, 159, 418, 161, 693, 693, - /* 430 */ 693, 8, 283, 421, 420, 693, 284, 693, 423, 424, - /* 440 */ 693, 693, 9, 693, 285, 693, 693, 427, 693, 426, - /* 450 */ 693, 693, 286, 693, 429, 693, 693, 693, 693, 693, - /* 460 */ 430, 693, 693, 693, 693, 287, 432, 693, 433, 693, - /* 470 */ 434, 435, 693, 436, 437, 171, 315, 14, 438, 15, - /* 480 */ 288, 289, 290, 291, 292, 293, 460, 178, 294, 445, - /* 490 */ 349, 352, 16, 19, 354, 17, 693, 447, 360, 356, - /* 500 */ 448, 693, 22, 363, 693, 449, 693, 450, 366, 25, - /* 510 */ 451, 693, 452, 188, 453, 28, 295, 369, 296, 297, - /* 520 */ 298, 299, 300, 195, 371, 31, 32, 33, 372, 375, - /* 530 */ 35, 36, 37, 376, 379, 39, 301, 40, 462, 463, - /* 540 */ 464, 465, 205, 466, 467, 41, 380, 468, 302, 303, - /* 550 */ 304, 383, 212, 305, 43, 306, 384, 307, 44, 475, - /* 560 */ 45, 387, 388, 390, 392, 308, 477, 393, 478, 395, - /* 570 */ 479, 480, 397, 398, 481, 222, 482, 400, 402, 403, - /* 580 */ 405, 483, 407, 410, 309, 413, 310, 416, 419, 422, - /* 590 */ 425, 428, 311, 431, 439, 440, 229, 312, 313, 441, - /* 600 */ 442, 443, 314, 444, 446, 454, 455, 456, 457, 458, - /* 610 */ 459, 461, 469, 470, 471, 472, 473, 474, 476, 484, - /* 620 */ 485, 486, 487, 488, 489, + /* 0 */ 230, 316, 317, 318, 319, 320, 321, 322, 323, 324, + /* 10 */ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + /* 20 */ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + /* 30 */ 345, 346, 347, 348, 490, 238, 231, 51, 93, 233, + /* 40 */ 235, 237, 94, 46, 54, 57, 60, 63, 66, 72, + /* 50 */ 78, 84, 90, 97, 105, 113, 122, 127, 132, 137, + /* 60 */ 142, 147, 152, 157, 162, 179, 196, 213, 231, 231, + /* 70 */ 101, 351, 350, 233, 47, 102, 54, 54, 234, 57, + /* 80 */ 66, 66, 47, 72, 90, 90, 241, 97, 122, 122, + /* 90 */ 47, 127, 142, 142, 233, 147, 177, 170, 58, 194, + /* 100 */ 57, 235, 47, 235, 72, 692, 1, 60, 97, 60, + /* 110 */ 59, 78, 127, 78, 47, 105, 147, 105, 253, 132, + /* 120 */ 187, 132, 47, 152, 237, 152, 48, 211, 91, 204, + /* 130 */ 63, 237, 254, 351, 84, 98, 47, 63, 113, 106, + /* 140 */ 351, 84, 137, 114, 351, 113, 157, 232, 351, 137, + /* 150 */ 228, 109, 46, 157, 49, 236, 110, 221, 49, 163, + /* 160 */ 172, 173, 174, 175, 176, 164, 165, 166, 167, 168, + /* 170 */ 169, 180, 189, 190, 191, 192, 193, 181, 182, 183, + /* 180 */ 184, 185, 186, 353, 50, 197, 206, 207, 208, 209, + /* 190 */ 210, 355, 198, 199, 200, 201, 202, 203, 18, 52, + /* 200 */ 358, 20, 214, 223, 224, 225, 226, 227, 21, 53, + /* 210 */ 215, 216, 217, 218, 219, 220, 239, 118, 55, 51, + /* 220 */ 56, 46, 119, 46, 243, 46, 61, 49, 62, 49, + /* 230 */ 245, 49, 51, 64, 65, 51, 51, 248, 249, 250, + /* 240 */ 70, 357, 46, 46, 46, 46, 255, 76, 240, 258, + /* 250 */ 47, 47, 49, 259, 260, 82, 49, 49, 49, 361, + /* 260 */ 263, 264, 51, 51, 265, 88, 51, 51, 359, 23, + /* 270 */ 242, 24, 26, 362, 27, 29, 67, 30, 69, 364, + /* 280 */ 244, 73, 365, 34, 367, 246, 368, 79, 251, 370, + /* 290 */ 75, 38, 81, 85, 256, 374, 68, 42, 247, 71, + /* 300 */ 87, 261, 10, 373, 92, 74, 378, 252, 77, 267, + /* 310 */ 377, 266, 95, 80, 382, 257, 83, 269, 381, 268, + /* 320 */ 86, 91, 96, 262, 89, 386, 385, 11, 389, 99, + /* 330 */ 391, 100, 270, 272, 271, 103, 98, 12, 104, 394, + /* 340 */ 396, 107, 106, 108, 111, 274, 273, 13, 401, 277, + /* 350 */ 120, 114, 123, 112, 275, 115, 125, 279, 399, 406, + /* 360 */ 278, 116, 117, 276, 128, 404, 408, 130, 121, 133, + /* 370 */ 280, 135, 138, 409, 140, 143, 145, 148, 153, 150, + /* 380 */ 124, 126, 155, 158, 129, 131, 160, 2, 3, 4, + /* 390 */ 134, 5, 136, 693, 693, 693, 693, 139, 693, 141, + /* 400 */ 693, 693, 693, 144, 693, 146, 693, 6, 412, 7, + /* 410 */ 411, 693, 149, 151, 693, 281, 415, 154, 414, 156, + /* 420 */ 693, 693, 282, 693, 417, 159, 418, 161, 693, 693, + /* 430 */ 693, 8, 283, 421, 420, 693, 284, 693, 423, 424, + /* 440 */ 693, 693, 9, 693, 285, 693, 693, 427, 693, 426, + /* 450 */ 693, 693, 286, 693, 429, 693, 693, 693, 693, 693, + /* 460 */ 430, 693, 693, 693, 693, 287, 432, 693, 433, 693, + /* 470 */ 434, 435, 693, 436, 437, 171, 315, 14, 438, 15, + /* 480 */ 288, 289, 290, 291, 292, 293, 460, 178, 294, 445, + /* 490 */ 349, 352, 16, 19, 354, 17, 693, 447, 360, 356, + /* 500 */ 448, 693, 22, 363, 693, 449, 693, 450, 366, 25, + /* 510 */ 451, 693, 452, 188, 453, 28, 295, 369, 296, 297, + /* 520 */ 298, 299, 300, 195, 371, 31, 32, 33, 372, 375, + /* 530 */ 35, 36, 37, 376, 379, 39, 301, 40, 462, 463, + /* 540 */ 464, 465, 205, 466, 467, 41, 380, 468, 302, 303, + /* 550 */ 304, 383, 212, 305, 43, 306, 384, 307, 44, 475, + /* 560 */ 45, 387, 388, 390, 392, 308, 477, 393, 478, 395, + /* 570 */ 479, 480, 397, 398, 481, 222, 482, 400, 402, 403, + /* 580 */ 405, 483, 407, 410, 309, 413, 310, 416, 419, 422, + /* 590 */ 425, 428, 311, 431, 439, 440, 229, 312, 313, 441, + /* 600 */ 442, 443, 314, 444, 446, 454, 455, 456, 457, 458, + /* 610 */ 459, 461, 469, 470, 471, 472, 473, 474, 476, 484, + /* 620 */ 485, 486, 487, 488, 489, }; + static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - /* 10 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 20 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - /* 30 */ 67, 68, 69, 70, 0, 74, 2, 76, 71, 5, - /* 40 */ 6, 7, 75, 76, 10, 11, 12, 13, 14, 15, - /* 50 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - /* 60 */ 26, 27, 28, 29, 30, 31, 32, 33, 2, 2, - /* 70 */ 72, 8, 76, 5, 76, 77, 10, 10, 72, 11, - /* 80 */ 14, 14, 76, 15, 18, 18, 72, 19, 22, 22, - /* 90 */ 76, 23, 26, 26, 5, 27, 30, 30, 72, 31, - /* 100 */ 11, 6, 76, 6, 15, 35, 36, 12, 19, 12, - /* 110 */ 72, 16, 23, 16, 76, 20, 27, 20, 72, 24, - /* 120 */ 31, 24, 76, 28, 7, 28, 76, 32, 3, 32, - /* 130 */ 13, 7, 72, 8, 17, 3, 76, 13, 21, 3, - /* 140 */ 8, 17, 25, 3, 8, 21, 29, 71, 8, 25, - /* 150 */ 33, 73, 76, 29, 76, 73, 78, 33, 76, 43, - /* 160 */ 44, 45, 46, 47, 48, 43, 44, 45, 46, 47, - /* 170 */ 48, 57, 58, 59, 60, 61, 62, 57, 58, 59, - /* 180 */ 60, 61, 62, 76, 76, 50, 51, 52, 53, 54, - /* 190 */ 55, 76, 50, 51, 52, 53, 54, 55, 3, 76, - /* 200 */ 88, 9, 64, 65, 66, 67, 68, 69, 3, 76, - /* 210 */ 64, 65, 66, 67, 68, 69, 71, 74, 71, 76, - /* 220 */ 71, 76, 79, 76, 73, 76, 73, 76, 73, 76, - /* 230 */ 74, 76, 76, 74, 74, 76, 76, 71, 71, 71, - /* 240 */ 71, 76, 76, 76, 76, 76, 72, 72, 84, 73, - /* 250 */ 76, 76, 76, 73, 73, 73, 76, 76, 76, 89, - /* 260 */ 74, 74, 76, 76, 74, 74, 76, 76, 84, 9, - /* 270 */ 85, 3, 9, 85, 3, 9, 3, 3, 9, 90, - /* 280 */ 86, 3, 86, 3, 91, 87, 87, 3, 84, 92, - /* 290 */ 9, 3, 9, 3, 85, 93, 96, 3, 97, 96, - /* 300 */ 9, 86, 3, 97, 76, 98, 94, 99, 98, 76, - /* 310 */ 99, 87, 9, 100, 95, 101, 100, 80, 101, 84, - /* 320 */ 102, 3, 75, 103, 102, 104, 103, 3, 80, 76, - /* 330 */ 105, 76, 76, 81, 85, 9, 3, 3, 77, 81, - /* 340 */ 106, 76, 3, 76, 9, 86, 76, 3, 107, 87, - /* 350 */ 9, 3, 3, 78, 82, 76, 9, 112, 82, 108, - /* 360 */ 83, 76, 76, 76, 3, 83, 112, 9, 79, 3, - /* 370 */ 113, 9, 3, 109, 9, 3, 9, 3, 3, 9, - /* 380 */ 88, 88, 9, 3, 89, 89, 9, 3, 9, 3, - /* 390 */ 90, 9, 90, 132, 132, 132, 132, 91, 132, 91, - /* 400 */ 132, 132, 132, 92, 132, 92, 132, 3, 110, 9, - /* 410 */ 113, 132, 93, 93, 132, 114, 111, 94, 114, 94, - /* 420 */ 132, 132, 115, 132, 115, 95, 116, 95, 132, 132, - /* 430 */ 132, 3, 120, 117, 120, 132, 121, 132, 121, 118, - /* 440 */ 132, 132, 9, 132, 122, 132, 132, 119, 132, 122, - /* 450 */ 132, 132, 123, 132, 123, 132, 132, 132, 132, 132, - /* 460 */ 124, 132, 132, 132, 132, 128, 128, 132, 128, 132, - /* 470 */ 128, 128, 132, 128, 128, 124, 1, 3, 128, 3, - /* 480 */ 128, 128, 128, 128, 128, 128, 126, 124, 129, 125, - /* 490 */ 4, 4, 3, 9, 4, 3, 132, 129, 4, 4, - /* 500 */ 129, 132, 9, 4, 132, 129, 132, 129, 4, 9, - /* 510 */ 129, 132, 129, 125, 129, 9, 129, 4, 129, 129, - /* 520 */ 129, 129, 129, 125, 4, 9, 9, 9, 4, 4, - /* 530 */ 9, 9, 9, 4, 4, 9, 130, 9, 130, 130, - /* 540 */ 130, 130, 126, 130, 130, 9, 4, 130, 130, 130, - /* 550 */ 130, 4, 126, 130, 9, 130, 4, 130, 9, 127, - /* 560 */ 9, 4, 4, 4, 4, 131, 131, 4, 131, 4, - /* 570 */ 131, 131, 4, 4, 131, 127, 131, 4, 4, 4, - /* 580 */ 4, 131, 4, 4, 131, 4, 131, 4, 4, 4, - /* 590 */ 4, 4, 131, 4, 4, 4, 127, 131, 131, 4, - /* 600 */ 4, 4, 131, 4, 4, 4, 4, 4, 4, 4, - /* 610 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - /* 620 */ 4, 4, 4, 4, 4, + /* 0 */ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + /* 10 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + /* 20 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + /* 30 */ 67, 68, 69, 70, 0, 74, 2, 76, 71, 5, + /* 40 */ 6, 7, 75, 76, 10, 11, 12, 13, 14, 15, + /* 50 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 60 */ 26, 27, 28, 29, 30, 31, 32, 33, 2, 2, + /* 70 */ 72, 8, 76, 5, 76, 77, 10, 10, 72, 11, + /* 80 */ 14, 14, 76, 15, 18, 18, 72, 19, 22, 22, + /* 90 */ 76, 23, 26, 26, 5, 27, 30, 30, 72, 31, + /* 100 */ 11, 6, 76, 6, 15, 35, 36, 12, 19, 12, + /* 110 */ 72, 16, 23, 16, 76, 20, 27, 20, 72, 24, + /* 120 */ 31, 24, 76, 28, 7, 28, 76, 32, 3, 32, + /* 130 */ 13, 7, 72, 8, 17, 3, 76, 13, 21, 3, + /* 140 */ 8, 17, 25, 3, 8, 21, 29, 71, 8, 25, + /* 150 */ 33, 73, 76, 29, 76, 73, 78, 33, 76, 43, + /* 160 */ 44, 45, 46, 47, 48, 43, 44, 45, 46, 47, + /* 170 */ 48, 57, 58, 59, 60, 61, 62, 57, 58, 59, + /* 180 */ 60, 61, 62, 76, 76, 50, 51, 52, 53, 54, + /* 190 */ 55, 76, 50, 51, 52, 53, 54, 55, 3, 76, + /* 200 */ 88, 9, 64, 65, 66, 67, 68, 69, 3, 76, + /* 210 */ 64, 65, 66, 67, 68, 69, 71, 74, 71, 76, + /* 220 */ 71, 76, 79, 76, 73, 76, 73, 76, 73, 76, + /* 230 */ 74, 76, 76, 74, 74, 76, 76, 71, 71, 71, + /* 240 */ 71, 76, 76, 76, 76, 76, 72, 72, 84, 73, + /* 250 */ 76, 76, 76, 73, 73, 73, 76, 76, 76, 89, + /* 260 */ 74, 74, 76, 76, 74, 74, 76, 76, 84, 9, + /* 270 */ 85, 3, 9, 85, 3, 9, 3, 3, 9, 90, + /* 280 */ 86, 3, 86, 3, 91, 87, 87, 3, 84, 92, + /* 290 */ 9, 3, 9, 3, 85, 93, 96, 3, 97, 96, + /* 300 */ 9, 86, 3, 97, 76, 98, 94, 99, 98, 76, + /* 310 */ 99, 87, 9, 100, 95, 101, 100, 80, 101, 84, + /* 320 */ 102, 3, 75, 103, 102, 104, 103, 3, 80, 76, + /* 330 */ 105, 76, 76, 81, 85, 9, 3, 3, 77, 81, + /* 340 */ 106, 76, 3, 76, 9, 86, 76, 3, 107, 87, + /* 350 */ 9, 3, 3, 78, 82, 76, 9, 112, 82, 108, + /* 360 */ 83, 76, 76, 76, 3, 83, 112, 9, 79, 3, + /* 370 */ 113, 9, 3, 109, 9, 3, 9, 3, 3, 9, + /* 380 */ 88, 88, 9, 3, 89, 89, 9, 3, 9, 3, + /* 390 */ 90, 9, 90, 132, 132, 132, 132, 91, 132, 91, + /* 400 */ 132, 132, 132, 92, 132, 92, 132, 3, 110, 9, + /* 410 */ 113, 132, 93, 93, 132, 114, 111, 94, 114, 94, + /* 420 */ 132, 132, 115, 132, 115, 95, 116, 95, 132, 132, + /* 430 */ 132, 3, 120, 117, 120, 132, 121, 132, 121, 118, + /* 440 */ 132, 132, 9, 132, 122, 132, 132, 119, 132, 122, + /* 450 */ 132, 132, 123, 132, 123, 132, 132, 132, 132, 132, + /* 460 */ 124, 132, 132, 132, 132, 128, 128, 132, 128, 132, + /* 470 */ 128, 128, 132, 128, 128, 124, 1, 3, 128, 3, + /* 480 */ 128, 128, 128, 128, 128, 128, 126, 124, 129, 125, + /* 490 */ 4, 4, 3, 9, 4, 3, 132, 129, 4, 4, + /* 500 */ 129, 132, 9, 4, 132, 129, 132, 129, 4, 9, + /* 510 */ 129, 132, 129, 125, 129, 9, 129, 4, 129, 129, + /* 520 */ 129, 129, 129, 125, 4, 9, 9, 9, 4, 4, + /* 530 */ 9, 9, 9, 4, 4, 9, 130, 9, 130, 130, + /* 540 */ 130, 130, 126, 130, 130, 9, 4, 130, 130, 130, + /* 550 */ 130, 4, 126, 130, 9, 130, 4, 130, 9, 127, + /* 560 */ 9, 4, 4, 4, 4, 131, 131, 4, 131, 4, + /* 570 */ 131, 131, 4, 4, 131, 127, 131, 4, 4, 4, + /* 580 */ 4, 131, 4, 4, 131, 4, 131, 4, 4, 4, + /* 590 */ 4, 4, 131, 4, 4, 4, 127, 131, 131, 4, + /* 600 */ 4, 4, 131, 4, 4, 4, 4, 4, 4, 4, + /* 610 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 620 */ 4, 4, 4, 4, 4, }; + #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 314 static const short yy_shift_ofst[] = { - /* 0 */ -1, 34, 66, 67, 68, 89, 95, 97, 117, 124, - /* 10 */ 125, 132, 136, 140, 63, 63, 63, 63, 63, 63, - /* 20 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - /* 30 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - /* 40 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - /* 50 */ 63, 63, 63, 63, 195, 192, 192, 205, 260, 260, - /* 60 */ 268, 263, 263, 271, 266, 266, 273, 274, 269, 274, - /* 70 */ 192, 269, 278, 280, 281, 280, 260, 281, 284, 288, - /* 80 */ 283, 288, 263, 283, 290, 294, 291, 294, 266, 291, - /* 90 */ 299, 63, 63, 192, 303, 318, 303, 324, 63, 63, - /* 100 */ 63, 260, 326, 333, 326, 334, 63, 63, 63, 263, - /* 110 */ 335, 339, 335, 344, 63, 63, 63, 63, 266, 341, - /* 120 */ 348, 341, 349, 195, 347, 195, 347, 361, 205, 358, - /* 130 */ 205, 358, 366, 268, 362, 268, 362, 369, 271, 365, - /* 140 */ 271, 365, 372, 273, 367, 273, 367, 374, 278, 370, - /* 150 */ 278, 370, 375, 284, 373, 284, 373, 380, 290, 377, - /* 160 */ 290, 377, 384, 379, 379, 379, 379, 379, 379, 379, - /* 170 */ 384, 379, 379, 379, 379, 379, 379, 384, 379, 386, - /* 180 */ 382, 382, 382, 382, 382, 382, 382, 386, 382, 382, - /* 190 */ 382, 382, 382, 382, 386, 382, 404, 400, 400, 400, - /* 200 */ 400, 400, 400, 400, 404, 400, 400, 400, 400, 400, - /* 210 */ 400, 404, 400, 428, 433, 433, 433, 433, 433, 433, - /* 220 */ 433, 428, 433, 433, 433, 433, 433, 433, 428, 433, - /* 230 */ 475, 474, 486, 476, 487, 489, 490, 492, 495, 484, - /* 240 */ 494, 493, 499, 500, 504, 506, 513, 520, 516, 517, - /* 250 */ 518, 524, 525, 521, 522, 523, 529, 530, 526, 528, - /* 260 */ 536, 542, 547, 545, 549, 551, 552, 557, 558, 559, - /* 270 */ 560, 563, 565, 568, 569, 573, 574, 575, 576, 578, - /* 280 */ 579, 581, 583, 584, 585, 586, 587, 589, 590, 591, - /* 290 */ 595, 596, 597, 599, 600, 601, 602, 603, 604, 605, - /* 300 */ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - /* 310 */ 616, 617, 618, 619, 620, + /* 0 */ -1, 34, 66, 67, 68, 89, 95, 97, 117, 124, + /* 10 */ 125, 132, 136, 140, 63, 63, 63, 63, 63, 63, + /* 20 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + /* 30 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + /* 40 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + /* 50 */ 63, 63, 63, 63, 195, 192, 192, 205, 260, 260, + /* 60 */ 268, 263, 263, 271, 266, 266, 273, 274, 269, 274, + /* 70 */ 192, 269, 278, 280, 281, 280, 260, 281, 284, 288, + /* 80 */ 283, 288, 263, 283, 290, 294, 291, 294, 266, 291, + /* 90 */ 299, 63, 63, 192, 303, 318, 303, 324, 63, 63, + /* 100 */ 63, 260, 326, 333, 326, 334, 63, 63, 63, 263, + /* 110 */ 335, 339, 335, 344, 63, 63, 63, 63, 266, 341, + /* 120 */ 348, 341, 349, 195, 347, 195, 347, 361, 205, 358, + /* 130 */ 205, 358, 366, 268, 362, 268, 362, 369, 271, 365, + /* 140 */ 271, 365, 372, 273, 367, 273, 367, 374, 278, 370, + /* 150 */ 278, 370, 375, 284, 373, 284, 373, 380, 290, 377, + /* 160 */ 290, 377, 384, 379, 379, 379, 379, 379, 379, 379, + /* 170 */ 384, 379, 379, 379, 379, 379, 379, 384, 379, 386, + /* 180 */ 382, 382, 382, 382, 382, 382, 382, 386, 382, 382, + /* 190 */ 382, 382, 382, 382, 386, 382, 404, 400, 400, 400, + /* 200 */ 400, 400, 400, 400, 404, 400, 400, 400, 400, 400, + /* 210 */ 400, 404, 400, 428, 433, 433, 433, 433, 433, 433, + /* 220 */ 433, 428, 433, 433, 433, 433, 433, 433, 428, 433, + /* 230 */ 475, 474, 486, 476, 487, 489, 490, 492, 495, 484, + /* 240 */ 494, 493, 499, 500, 504, 506, 513, 520, 516, 517, + /* 250 */ 518, 524, 525, 521, 522, 523, 529, 530, 526, 528, + /* 260 */ 536, 542, 547, 545, 549, 551, 552, 557, 558, 559, + /* 270 */ 560, 563, 565, 568, 569, 573, 574, 575, 576, 578, + /* 280 */ 579, 581, 583, 584, 585, 586, 587, 589, 590, 591, + /* 290 */ 595, 596, 597, 599, 600, 601, 602, 603, 604, 605, + /* 300 */ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + /* 310 */ 616, 617, 618, 619, 620, }; + #define YY_REDUCE_USE_DFLT (-40) #define YY_REDUCE_MAX 229 static const short yy_reduce_ofst[] = { - /* 0 */ 70, -37, 116, 122, 114, 120, 135, 142, 138, 146, - /* 10 */ -33, -2, 78, 143, 76, 6, 82, -39, 145, 147, - /* 20 */ 149, 14, 26, 38, 151, 153, 155, 156, 159, 160, - /* 30 */ 166, 167, 168, 169, 46, 60, 174, 175, 176, 180, - /* 40 */ 181, 182, 186, 187, 190, 191, -4, 50, 107, 108, - /* 50 */ 115, 123, 133, 165, 112, 164, 184, 170, 185, 188, - /* 60 */ 189, 194, 196, 193, 198, 199, 197, 200, 201, 203, - /* 70 */ 204, 206, 202, 207, 208, 210, 209, 211, 212, 213, - /* 80 */ 214, 216, 215, 217, 219, 218, 220, 222, 224, 223, - /* 90 */ 221, 228, 233, 235, 237, 247, 248, 225, 253, 255, - /* 100 */ 256, 249, 252, 261, 258, 234, 265, 267, 270, 259, - /* 110 */ 272, 275, 276, 241, 279, 285, 286, 287, 262, 277, - /* 120 */ 289, 282, 251, 292, 245, 293, 254, 264, 295, 257, - /* 130 */ 296, 297, 298, 300, 301, 302, 304, 305, 306, 307, - /* 140 */ 308, 309, 310, 311, 312, 313, 314, 316, 319, 315, - /* 150 */ 320, 317, 321, 323, 322, 325, 327, 328, 330, 329, - /* 160 */ 332, 331, 336, 337, 338, 340, 342, 343, 345, 346, - /* 170 */ 351, 350, 352, 353, 354, 355, 356, 363, 357, 364, - /* 180 */ 359, 368, 371, 376, 378, 381, 383, 388, 385, 387, - /* 190 */ 389, 390, 391, 392, 398, 393, 360, 406, 408, 409, - /* 200 */ 410, 411, 413, 414, 416, 417, 418, 419, 420, 423, - /* 210 */ 425, 426, 427, 432, 434, 435, 437, 439, 440, 443, - /* 220 */ 445, 448, 450, 453, 455, 461, 466, 467, 469, 471, + /* 0 */ 70, -37, 116, 122, 114, 120, 135, 142, 138, 146, + /* 10 */ -33, -2, 78, 143, 76, 6, 82, -39, 145, 147, + /* 20 */ 149, 14, 26, 38, 151, 153, 155, 156, 159, 160, + /* 30 */ 166, 167, 168, 169, 46, 60, 174, 175, 176, 180, + /* 40 */ 181, 182, 186, 187, 190, 191, -4, 50, 107, 108, + /* 50 */ 115, 123, 133, 165, 112, 164, 184, 170, 185, 188, + /* 60 */ 189, 194, 196, 193, 198, 199, 197, 200, 201, 203, + /* 70 */ 204, 206, 202, 207, 208, 210, 209, 211, 212, 213, + /* 80 */ 214, 216, 215, 217, 219, 218, 220, 222, 224, 223, + /* 90 */ 221, 228, 233, 235, 237, 247, 248, 225, 253, 255, + /* 100 */ 256, 249, 252, 261, 258, 234, 265, 267, 270, 259, + /* 110 */ 272, 275, 276, 241, 279, 285, 286, 287, 262, 277, + /* 120 */ 289, 282, 251, 292, 245, 293, 254, 264, 295, 257, + /* 130 */ 296, 297, 298, 300, 301, 302, 304, 305, 306, 307, + /* 140 */ 308, 309, 310, 311, 312, 313, 314, 316, 319, 315, + /* 150 */ 320, 317, 321, 323, 322, 325, 327, 328, 330, 329, + /* 160 */ 332, 331, 336, 337, 338, 340, 342, 343, 345, 346, + /* 170 */ 351, 350, 352, 353, 354, 355, 356, 363, 357, 364, + /* 180 */ 359, 368, 371, 376, 378, 381, 383, 388, 385, 387, + /* 190 */ 389, 390, 391, 392, 398, 393, 360, 406, 408, 409, + /* 200 */ 410, 411, 413, 414, 416, 417, 418, 419, 420, 423, + /* 210 */ 425, 426, 427, 432, 434, 435, 437, 439, 440, 443, + /* 220 */ 445, 448, 450, 453, 455, 461, 466, 467, 469, 471, }; + static const YYACTIONTYPE yy_default[] = { - /* 0 */ 491, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 10 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 20 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 30 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 40 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 50 */ 691, 691, 691, 691, 691, 547, 547, 691, 549, 549, - /* 60 */ 691, 551, 551, 691, 553, 553, 691, 691, 572, 691, - /* 70 */ 547, 572, 691, 691, 575, 691, 549, 575, 691, 691, - /* 80 */ 578, 691, 551, 578, 691, 691, 581, 691, 553, 581, - /* 90 */ 691, 691, 691, 547, 539, 691, 539, 691, 691, 691, - /* 100 */ 691, 549, 541, 691, 541, 691, 691, 691, 691, 551, - /* 110 */ 543, 691, 543, 691, 691, 691, 691, 691, 553, 545, - /* 120 */ 691, 545, 691, 691, 600, 691, 600, 691, 691, 603, - /* 130 */ 691, 603, 691, 691, 606, 691, 606, 691, 691, 609, - /* 140 */ 691, 609, 691, 691, 616, 691, 616, 691, 691, 619, - /* 150 */ 691, 619, 691, 691, 622, 691, 622, 691, 691, 625, - /* 160 */ 691, 625, 691, 638, 638, 638, 638, 638, 638, 638, - /* 170 */ 691, 638, 638, 638, 638, 638, 638, 691, 638, 691, - /* 180 */ 653, 653, 653, 653, 653, 653, 653, 691, 653, 653, - /* 190 */ 653, 653, 653, 653, 691, 653, 691, 668, 668, 668, - /* 200 */ 668, 668, 668, 668, 691, 668, 668, 668, 668, 668, - /* 210 */ 668, 691, 668, 691, 683, 683, 683, 683, 683, 683, - /* 220 */ 683, 691, 683, 683, 683, 683, 683, 683, 691, 683, - /* 230 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 240 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 250 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 260 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 270 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 280 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 290 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 300 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, - /* 310 */ 691, 691, 691, 691, 691, 492, 493, 494, 495, 496, - /* 320 */ 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - /* 330 */ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - /* 340 */ 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - /* 350 */ 534, 538, 527, 535, 528, 536, 529, 537, 555, 548, - /* 360 */ 559, 556, 550, 560, 557, 552, 561, 558, 554, 562, - /* 370 */ 563, 567, 571, 573, 564, 568, 574, 576, 565, 569, - /* 380 */ 577, 579, 566, 570, 580, 582, 583, 530, 587, 540, - /* 390 */ 591, 584, 531, 588, 542, 592, 585, 532, 589, 544, - /* 400 */ 593, 586, 533, 590, 546, 594, 595, 599, 601, 596, - /* 410 */ 602, 604, 597, 605, 607, 598, 608, 610, 611, 615, - /* 420 */ 617, 612, 618, 620, 613, 621, 623, 614, 624, 626, - /* 430 */ 627, 631, 639, 640, 641, 642, 643, 644, 645, 632, - /* 440 */ 633, 634, 635, 636, 637, 628, 646, 654, 655, 656, - /* 450 */ 657, 658, 659, 660, 647, 648, 649, 650, 651, 652, - /* 460 */ 629, 661, 669, 670, 671, 672, 673, 674, 675, 662, - /* 470 */ 663, 664, 665, 666, 667, 630, 676, 684, 685, 686, - /* 480 */ 687, 688, 689, 690, 677, 678, 679, 680, 681, 682, + /* 0 */ 491, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 10 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 20 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 30 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 40 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 50 */ 691, 691, 691, 691, 691, 547, 547, 691, 549, 549, + /* 60 */ 691, 551, 551, 691, 553, 553, 691, 691, 572, 691, + /* 70 */ 547, 572, 691, 691, 575, 691, 549, 575, 691, 691, + /* 80 */ 578, 691, 551, 578, 691, 691, 581, 691, 553, 581, + /* 90 */ 691, 691, 691, 547, 539, 691, 539, 691, 691, 691, + /* 100 */ 691, 549, 541, 691, 541, 691, 691, 691, 691, 551, + /* 110 */ 543, 691, 543, 691, 691, 691, 691, 691, 553, 545, + /* 120 */ 691, 545, 691, 691, 600, 691, 600, 691, 691, 603, + /* 130 */ 691, 603, 691, 691, 606, 691, 606, 691, 691, 609, + /* 140 */ 691, 609, 691, 691, 616, 691, 616, 691, 691, 619, + /* 150 */ 691, 619, 691, 691, 622, 691, 622, 691, 691, 625, + /* 160 */ 691, 625, 691, 638, 638, 638, 638, 638, 638, 638, + /* 170 */ 691, 638, 638, 638, 638, 638, 638, 691, 638, 691, + /* 180 */ 653, 653, 653, 653, 653, 653, 653, 691, 653, 653, + /* 190 */ 653, 653, 653, 653, 691, 653, 691, 668, 668, 668, + /* 200 */ 668, 668, 668, 668, 691, 668, 668, 668, 668, 668, + /* 210 */ 668, 691, 668, 691, 683, 683, 683, 683, 683, 683, + /* 220 */ 683, 691, 683, 683, 683, 683, 683, 683, 691, 683, + /* 230 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 240 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 250 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 260 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 270 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 280 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 290 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 300 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, + /* 310 */ 691, 691, 691, 691, 691, 492, 493, 494, 495, 496, + /* 320 */ 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + /* 330 */ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + /* 340 */ 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + /* 350 */ 534, 538, 527, 535, 528, 536, 529, 537, 555, 548, + /* 360 */ 559, 556, 550, 560, 557, 552, 561, 558, 554, 562, + /* 370 */ 563, 567, 571, 573, 564, 568, 574, 576, 565, 569, + /* 380 */ 577, 579, 566, 570, 580, 582, 583, 530, 587, 540, + /* 390 */ 591, 584, 531, 588, 542, 592, 585, 532, 589, 544, + /* 400 */ 593, 586, 533, 590, 546, 594, 595, 599, 601, 596, + /* 410 */ 602, 604, 597, 605, 607, 598, 608, 610, 611, 615, + /* 420 */ 617, 612, 618, 620, 613, 621, 623, 614, 624, 626, + /* 430 */ 627, 631, 639, 640, 641, 642, 643, 644, 645, 632, + /* 440 */ 633, 634, 635, 636, 637, 628, 646, 654, 655, 656, + /* 450 */ 657, 658, 659, 660, 647, 648, 649, 650, 651, 652, + /* 460 */ 629, 661, 669, 670, 671, 672, 673, 674, 675, 662, + /* 470 */ 663, 664, 665, 666, 667, 630, 676, 684, 685, 686, + /* 480 */ 687, 688, 689, 690, 677, 678, 679, 680, 681, 682, }; + #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct @@ -412,29 +418,31 @@ static const YYCODETYPE yyFallback[] = { ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ +struct yyStackEntry +{ + YYACTIONTYPE stateno; /* The state-number */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ +struct yyParser +{ + int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ + int yyidxMax; /* Maximum value of yyidx */ #endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ + int yyerrcnt; /* Shifts left before out of the error */ + ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ #else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; @@ -463,51 +471,71 @@ static char *yyTracePrompt = 0; ** Outputs: ** None. */ -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; +void +ParseTrace (FILE * TraceFILE, char *zTracePrompt) +{ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if (yyTraceFILE == 0) + yyTracePrompt = 0; + else if (yyTracePrompt == 0) + yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { - "$", "VANUATU_NEWLINE", "VANUATU_POINT", "VANUATU_OPEN_BRACKET", - "VANUATU_CLOSE_BRACKET", "VANUATU_POINT_M", "VANUATU_POINT_Z", "VANUATU_POINT_ZM", - "VANUATU_NUM", "VANUATU_COMMA", "VANUATU_LINESTRING", "VANUATU_LINESTRING_M", - "VANUATU_LINESTRING_Z", "VANUATU_LINESTRING_ZM", "VANUATU_POLYGON", "VANUATU_POLYGON_M", - "VANUATU_POLYGON_Z", "VANUATU_POLYGON_ZM", "VANUATU_MULTIPOINT", "VANUATU_MULTIPOINT_M", - "VANUATU_MULTIPOINT_Z", "VANUATU_MULTIPOINT_ZM", "VANUATU_MULTILINESTRING", "VANUATU_MULTILINESTRING_M", - "VANUATU_MULTILINESTRING_Z", "VANUATU_MULTILINESTRING_ZM", "VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M", - "VANUATU_MULTIPOLYGON_Z", "VANUATU_MULTIPOLYGON_ZM", "VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M", - "VANUATU_GEOMETRYCOLLECTION_Z", "VANUATU_GEOMETRYCOLLECTION_ZM", "error", "main", - "in", "state", "program", "geo_text", - "geo_textz", "geo_textm", "geo_textzm", "point", - "linestring", "polygon", "multipoint", "multilinestring", - "multipolygon", "geocoll", "pointz", "linestringz", - "polygonz", "multipointz", "multilinestringz", "multipolygonz", - "geocollz", "pointm", "linestringm", "polygonm", - "multipointm", "multilinestringm", "multipolygonm", "geocollm", - "pointzm", "linestringzm", "polygonzm", "multipointzm", - "multilinestringzm", "multipolygonzm", "geocollzm", "point_coordxy", - "point_coordxym", "point_coordxyz", "point_coordxyzm", "point_brkt_coordxy", - "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", - "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", - "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", - "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", - "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", - "ring", "extra_rings", "ringm", "extra_ringsm", - "ringz", "extra_ringsz", "ringzm", "extra_ringszm", - "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", - "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", - "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", - "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", - "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", - "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", - "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", +static const char *const yyTokenName[] = { + "$", "VANUATU_NEWLINE", "VANUATU_POINT", "VANUATU_OPEN_BRACKET", + "VANUATU_CLOSE_BRACKET", "VANUATU_POINT_M", "VANUATU_POINT_Z", + "VANUATU_POINT_ZM", + "VANUATU_NUM", "VANUATU_COMMA", "VANUATU_LINESTRING", + "VANUATU_LINESTRING_M", + "VANUATU_LINESTRING_Z", "VANUATU_LINESTRING_ZM", "VANUATU_POLYGON", + "VANUATU_POLYGON_M", + "VANUATU_POLYGON_Z", "VANUATU_POLYGON_ZM", "VANUATU_MULTIPOINT", + "VANUATU_MULTIPOINT_M", + "VANUATU_MULTIPOINT_Z", "VANUATU_MULTIPOINT_ZM", "VANUATU_MULTILINESTRING", + "VANUATU_MULTILINESTRING_M", + "VANUATU_MULTILINESTRING_Z", "VANUATU_MULTILINESTRING_ZM", + "VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M", + "VANUATU_MULTIPOLYGON_Z", "VANUATU_MULTIPOLYGON_ZM", + "VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M", + "VANUATU_GEOMETRYCOLLECTION_Z", "VANUATU_GEOMETRYCOLLECTION_ZM", "error", + "main", + "in", "state", "program", "geo_text", + "geo_textz", "geo_textm", "geo_textzm", "point", + "linestring", "polygon", "multipoint", "multilinestring", + "multipolygon", "geocoll", "pointz", "linestringz", + "polygonz", "multipointz", "multilinestringz", "multipolygonz", + "geocollz", "pointm", "linestringm", "polygonm", + "multipointm", "multilinestringm", "multipolygonm", "geocollm", + "pointzm", "linestringzm", "polygonzm", "multipointzm", + "multilinestringzm", "multipolygonzm", "geocollzm", "point_coordxy", + "point_coordxym", "point_coordxyz", "point_coordxyzm", "point_brkt_coordxy", + "coord", "point_brkt_coordxym", "point_brkt_coordxyz", + "point_brkt_coordxyzm", + "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", + "extra_brkt_pointsxyzm", + "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", + "linestring_text", "linestring_textm", "linestring_textz", + "linestring_textzm", + "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", + "ring", "extra_rings", "ringm", "extra_ringsm", + "ringz", "extra_ringsz", "ringzm", "extra_ringszm", + "multipoint_text", "multipoint_textm", "multipoint_textz", + "multipoint_textzm", + "multilinestring_text", "multilinestring_textm", "multilinestring_textz", + "multilinestring_textzm", + "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", + "multilinestring_textzm2", + "multipolygon_text", "multipolygon_textm", "multipolygon_textz", + "multipolygon_textzm", + "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", + "multipolygon_textzm2", + "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", + "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ @@ -515,207 +543,298 @@ static const char *const yyTokenName[] = { /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { - /* 0 */ "main ::= in", - /* 1 */ "in ::=", - /* 2 */ "in ::= in state VANUATU_NEWLINE", - /* 3 */ "state ::= program", - /* 4 */ "program ::= geo_text", - /* 5 */ "program ::= geo_textz", - /* 6 */ "program ::= geo_textm", - /* 7 */ "program ::= geo_textzm", - /* 8 */ "geo_text ::= point", - /* 9 */ "geo_text ::= linestring", - /* 10 */ "geo_text ::= polygon", - /* 11 */ "geo_text ::= multipoint", - /* 12 */ "geo_text ::= multilinestring", - /* 13 */ "geo_text ::= multipolygon", - /* 14 */ "geo_text ::= geocoll", - /* 15 */ "geo_textz ::= pointz", - /* 16 */ "geo_textz ::= linestringz", - /* 17 */ "geo_textz ::= polygonz", - /* 18 */ "geo_textz ::= multipointz", - /* 19 */ "geo_textz ::= multilinestringz", - /* 20 */ "geo_textz ::= multipolygonz", - /* 21 */ "geo_textz ::= geocollz", - /* 22 */ "geo_textm ::= pointm", - /* 23 */ "geo_textm ::= linestringm", - /* 24 */ "geo_textm ::= polygonm", - /* 25 */ "geo_textm ::= multipointm", - /* 26 */ "geo_textm ::= multilinestringm", - /* 27 */ "geo_textm ::= multipolygonm", - /* 28 */ "geo_textm ::= geocollm", - /* 29 */ "geo_textzm ::= pointzm", - /* 30 */ "geo_textzm ::= linestringzm", - /* 31 */ "geo_textzm ::= polygonzm", - /* 32 */ "geo_textzm ::= multipointzm", - /* 33 */ "geo_textzm ::= multilinestringzm", - /* 34 */ "geo_textzm ::= multipolygonzm", - /* 35 */ "geo_textzm ::= geocollzm", - /* 36 */ "point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET", - /* 37 */ "pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET", - /* 38 */ "pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET", - /* 39 */ "pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET", - /* 40 */ "point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET", - /* 41 */ "point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", - /* 42 */ "point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", - /* 43 */ "point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET", - /* 44 */ "point_coordxy ::= coord coord", - /* 45 */ "point_coordxym ::= coord coord coord", - /* 46 */ "point_coordxyz ::= coord coord coord", - /* 47 */ "point_coordxyzm ::= coord coord coord coord", - /* 48 */ "coord ::= VANUATU_NUM", - /* 49 */ "extra_brkt_pointsxy ::=", - /* 50 */ "extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy", - /* 51 */ "extra_brkt_pointsxym ::=", - /* 52 */ "extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym", - /* 53 */ "extra_brkt_pointsxyz ::=", - /* 54 */ "extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", - /* 55 */ "extra_brkt_pointsxyzm ::=", - /* 56 */ "extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", - /* 57 */ "extra_pointsxy ::=", - /* 58 */ "extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy", - /* 59 */ "extra_pointsxym ::=", - /* 60 */ "extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym", - /* 61 */ "extra_pointsxyz ::=", - /* 62 */ "extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz", - /* 63 */ "extra_pointsxyzm ::=", - /* 64 */ "extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm", - /* 65 */ "linestring ::= VANUATU_LINESTRING linestring_text", - /* 66 */ "linestringm ::= VANUATU_LINESTRING_M linestring_textm", - /* 67 */ "linestringz ::= VANUATU_LINESTRING_Z linestring_textz", - /* 68 */ "linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm", - /* 69 */ "linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", - /* 70 */ "linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", - /* 71 */ "linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", - /* 72 */ "linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", - /* 73 */ "polygon ::= VANUATU_POLYGON polygon_text", - /* 74 */ "polygonm ::= VANUATU_POLYGON_M polygon_textm", - /* 75 */ "polygonz ::= VANUATU_POLYGON_Z polygon_textz", - /* 76 */ "polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm", - /* 77 */ "polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET", - /* 78 */ "polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET", - /* 79 */ "polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET", - /* 80 */ "polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET", - /* 81 */ "ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", - /* 82 */ "extra_rings ::=", - /* 83 */ "extra_rings ::= VANUATU_COMMA ring extra_rings", - /* 84 */ "ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", - /* 85 */ "extra_ringsm ::=", - /* 86 */ "extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm", - /* 87 */ "ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", - /* 88 */ "extra_ringsz ::=", - /* 89 */ "extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz", - /* 90 */ "ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", - /* 91 */ "extra_ringszm ::=", - /* 92 */ "extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm", - /* 93 */ "multipoint ::= VANUATU_MULTIPOINT multipoint_text", - /* 94 */ "multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm", - /* 95 */ "multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz", - /* 96 */ "multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm", - /* 97 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", - /* 98 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", - /* 99 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", - /* 100 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", - /* 101 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET", - /* 102 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET", - /* 103 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET", - /* 104 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET", - /* 105 */ "multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text", - /* 106 */ "multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm", - /* 107 */ "multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz", - /* 108 */ "multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm", - /* 109 */ "multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET", - /* 110 */ "multilinestring_text2 ::=", - /* 111 */ "multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2", - /* 112 */ "multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET", - /* 113 */ "multilinestring_textm2 ::=", - /* 114 */ "multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2", - /* 115 */ "multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET", - /* 116 */ "multilinestring_textz2 ::=", - /* 117 */ "multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2", - /* 118 */ "multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET", - /* 119 */ "multilinestring_textzm2 ::=", - /* 120 */ "multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2", - /* 121 */ "multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text", - /* 122 */ "multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm", - /* 123 */ "multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz", - /* 124 */ "multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm", - /* 125 */ "multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET", - /* 126 */ "multipolygon_text2 ::=", - /* 127 */ "multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2", - /* 128 */ "multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET", - /* 129 */ "multipolygon_textm2 ::=", - /* 130 */ "multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2", - /* 131 */ "multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET", - /* 132 */ "multipolygon_textz2 ::=", - /* 133 */ "multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2", - /* 134 */ "multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET", - /* 135 */ "multipolygon_textzm2 ::=", - /* 136 */ "multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2", - /* 137 */ "geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text", - /* 138 */ "geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm", - /* 139 */ "geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz", - /* 140 */ "geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm", - /* 141 */ "geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 142 */ "geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 143 */ "geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 144 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 145 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 146 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 147 */ "geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET", - /* 148 */ "geocoll_text2 ::=", - /* 149 */ "geocoll_text2 ::= VANUATU_COMMA point geocoll_text2", - /* 150 */ "geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2", - /* 151 */ "geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2", - /* 152 */ "geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2", - /* 153 */ "geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2", - /* 154 */ "geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2", - /* 155 */ "geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2", - /* 156 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 157 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 158 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 159 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 160 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 161 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 162 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET", - /* 163 */ "geocoll_textm2 ::=", - /* 164 */ "geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2", - /* 165 */ "geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2", - /* 166 */ "geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2", - /* 167 */ "geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2", - /* 168 */ "geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2", - /* 169 */ "geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2", - /* 170 */ "geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", - /* 171 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 172 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 173 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 174 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 175 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 176 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 177 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET", - /* 178 */ "geocoll_textz2 ::=", - /* 179 */ "geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2", - /* 180 */ "geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2", - /* 181 */ "geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2", - /* 182 */ "geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2", - /* 183 */ "geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2", - /* 184 */ "geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2", - /* 185 */ "geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2", - /* 186 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 187 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 188 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 189 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 190 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 191 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 192 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", - /* 193 */ "geocoll_textzm2 ::=", - /* 194 */ "geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2", - /* 195 */ "geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2", - /* 196 */ "geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2", - /* 197 */ "geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2", - /* 198 */ "geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2", - /* 199 */ "geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2", - /* 200 */ "geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2", + /* 0 */ "main ::= in", + /* 1 */ "in ::=", + /* 2 */ "in ::= in state VANUATU_NEWLINE", + /* 3 */ "state ::= program", + /* 4 */ "program ::= geo_text", + /* 5 */ "program ::= geo_textz", + /* 6 */ "program ::= geo_textm", + /* 7 */ "program ::= geo_textzm", + /* 8 */ "geo_text ::= point", + /* 9 */ "geo_text ::= linestring", + /* 10 */ "geo_text ::= polygon", + /* 11 */ "geo_text ::= multipoint", + /* 12 */ "geo_text ::= multilinestring", + /* 13 */ "geo_text ::= multipolygon", + /* 14 */ "geo_text ::= geocoll", + /* 15 */ "geo_textz ::= pointz", + /* 16 */ "geo_textz ::= linestringz", + /* 17 */ "geo_textz ::= polygonz", + /* 18 */ "geo_textz ::= multipointz", + /* 19 */ "geo_textz ::= multilinestringz", + /* 20 */ "geo_textz ::= multipolygonz", + /* 21 */ "geo_textz ::= geocollz", + /* 22 */ "geo_textm ::= pointm", + /* 23 */ "geo_textm ::= linestringm", + /* 24 */ "geo_textm ::= polygonm", + /* 25 */ "geo_textm ::= multipointm", + /* 26 */ "geo_textm ::= multilinestringm", + /* 27 */ "geo_textm ::= multipolygonm", + /* 28 */ "geo_textm ::= geocollm", + /* 29 */ "geo_textzm ::= pointzm", + /* 30 */ "geo_textzm ::= linestringzm", + /* 31 */ "geo_textzm ::= polygonzm", + /* 32 */ "geo_textzm ::= multipointzm", + /* 33 */ "geo_textzm ::= multilinestringzm", + /* 34 */ "geo_textzm ::= multipolygonzm", + /* 35 */ "geo_textzm ::= geocollzm", + /* 36 */ + "point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET", + /* 37 */ + "pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET", + /* 38 */ + "pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET", + /* 39 */ + "pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET", + /* 40 */ + "point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET", + /* 41 */ + "point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", + /* 42 */ + "point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", + /* 43 */ + "point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET", + /* 44 */ "point_coordxy ::= coord coord", + /* 45 */ "point_coordxym ::= coord coord coord", + /* 46 */ "point_coordxyz ::= coord coord coord", + /* 47 */ "point_coordxyzm ::= coord coord coord coord", + /* 48 */ "coord ::= VANUATU_NUM", + /* 49 */ "extra_brkt_pointsxy ::=", + /* 50 */ + "extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy", + /* 51 */ "extra_brkt_pointsxym ::=", + /* 52 */ + "extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym", + /* 53 */ "extra_brkt_pointsxyz ::=", + /* 54 */ + "extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", + /* 55 */ "extra_brkt_pointsxyzm ::=", + /* 56 */ + "extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", + /* 57 */ "extra_pointsxy ::=", + /* 58 */ "extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy", + /* 59 */ "extra_pointsxym ::=", + /* 60 */ + "extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym", + /* 61 */ "extra_pointsxyz ::=", + /* 62 */ + "extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz", + /* 63 */ "extra_pointsxyzm ::=", + /* 64 */ + "extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm", + /* 65 */ "linestring ::= VANUATU_LINESTRING linestring_text", + /* 66 */ "linestringm ::= VANUATU_LINESTRING_M linestring_textm", + /* 67 */ "linestringz ::= VANUATU_LINESTRING_Z linestring_textz", + /* 68 */ "linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm", + /* 69 */ + "linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", + /* 70 */ + "linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", + /* 71 */ + "linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", + /* 72 */ + "linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", + /* 73 */ "polygon ::= VANUATU_POLYGON polygon_text", + /* 74 */ "polygonm ::= VANUATU_POLYGON_M polygon_textm", + /* 75 */ "polygonz ::= VANUATU_POLYGON_Z polygon_textz", + /* 76 */ "polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm", + /* 77 */ + "polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET", + /* 78 */ + "polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET", + /* 79 */ + "polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET", + /* 80 */ + "polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET", + /* 81 */ + "ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", + /* 82 */ "extra_rings ::=", + /* 83 */ "extra_rings ::= VANUATU_COMMA ring extra_rings", + /* 84 */ + "ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", + /* 85 */ "extra_ringsm ::=", + /* 86 */ "extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm", + /* 87 */ + "ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", + /* 88 */ "extra_ringsz ::=", + /* 89 */ "extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz", + /* 90 */ + "ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", + /* 91 */ "extra_ringszm ::=", + /* 92 */ "extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm", + /* 93 */ "multipoint ::= VANUATU_MULTIPOINT multipoint_text", + /* 94 */ "multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm", + /* 95 */ "multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz", + /* 96 */ "multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm", + /* 97 */ + "multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", + /* 98 */ + "multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", + /* 99 */ + "multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", + /* 100 */ + "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", + /* 101 */ + "multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET", + /* 102 */ + "multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET", + /* 103 */ + "multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET", + /* 104 */ + "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET", + /* 105 */ + "multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text", + /* 106 */ + "multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm", + /* 107 */ + "multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz", + /* 108 */ + "multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm", + /* 109 */ + "multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET", + /* 110 */ "multilinestring_text2 ::=", + /* 111 */ + "multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2", + /* 112 */ + "multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET", + /* 113 */ "multilinestring_textm2 ::=", + /* 114 */ + "multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2", + /* 115 */ + "multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET", + /* 116 */ "multilinestring_textz2 ::=", + /* 117 */ + "multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2", + /* 118 */ + "multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET", + /* 119 */ "multilinestring_textzm2 ::=", + /* 120 */ + "multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2", + /* 121 */ "multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text", + /* 122 */ "multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm", + /* 123 */ "multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz", + /* 124 */ "multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm", + /* 125 */ + "multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET", + /* 126 */ "multipolygon_text2 ::=", + /* 127 */ + "multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2", + /* 128 */ + "multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET", + /* 129 */ "multipolygon_textm2 ::=", + /* 130 */ + "multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2", + /* 131 */ + "multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET", + /* 132 */ "multipolygon_textz2 ::=", + /* 133 */ + "multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2", + /* 134 */ + "multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET", + /* 135 */ "multipolygon_textzm2 ::=", + /* 136 */ + "multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2", + /* 137 */ "geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text", + /* 138 */ "geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm", + /* 139 */ "geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz", + /* 140 */ "geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm", + /* 141 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 142 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 143 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 144 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 145 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 146 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 147 */ + "geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET", + /* 148 */ "geocoll_text2 ::=", + /* 149 */ "geocoll_text2 ::= VANUATU_COMMA point geocoll_text2", + /* 150 */ "geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2", + /* 151 */ "geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2", + /* 152 */ "geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2", + /* 153 */ "geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2", + /* 154 */ "geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2", + /* 155 */ + "geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2", + /* 156 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 157 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 158 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 159 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 160 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 161 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 162 */ + "geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET", + /* 163 */ "geocoll_textm2 ::=", + /* 164 */ "geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2", + /* 165 */ "geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2", + /* 166 */ "geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2", + /* 167 */ "geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2", + /* 168 */ + "geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2", + /* 169 */ "geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2", + /* 170 */ + "geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", + /* 171 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 172 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 173 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 174 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 175 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 176 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 177 */ + "geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET", + /* 178 */ "geocoll_textz2 ::=", + /* 179 */ "geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2", + /* 180 */ "geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2", + /* 181 */ "geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2", + /* 182 */ "geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2", + /* 183 */ + "geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2", + /* 184 */ "geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2", + /* 185 */ + "geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2", + /* 186 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 187 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 188 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 189 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 190 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 191 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 192 */ + "geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", + /* 193 */ "geocoll_textzm2 ::=", + /* 194 */ "geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2", + /* 195 */ "geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2", + /* 196 */ "geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2", + /* 197 */ "geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2", + /* 198 */ + "geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2", + /* 199 */ + "geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2", + /* 200 */ + "geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ @@ -724,22 +843,26 @@ static const char *const yyRuleName[] = { /* ** Try to increase the size of the parser stack. */ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; +static void +yyGrowStack (yyParser * p) +{ + int newSize; + yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; + newSize = p->yystksz * 2 + 100; + pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); + if (pNew) + { + p->yystack = pNew; + p->yystksz = newSize; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", + yyTracePrompt, p->yystksz); + } #endif - } + } } #endif @@ -755,21 +878,24 @@ static void yyGrowStack(yyParser *p){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); - if( pParser ){ - pParser->yyidx = -1; +void * +ParseAlloc (void *(*mallocProc) (size_t)) +{ + yyParser *pParser; + pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); + if (pParser) + { + pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; + pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); + pParser->yystack = NULL; + pParser->yystksz = 0; + yyGrowStack (pParser); #endif - } - return pParser; + } + return pParser; } /* The following function deletes the value associated with a @@ -777,25 +903,28 @@ void *ParseAlloc(void *(*mallocProc)(size_t)){ ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - ParseARG_FETCH; - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } +static void +yy_destructor (yyParser * yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE * yypminor /* The object to be destroyed */ + ) +{ + ParseARG_FETCH; + switch (yymajor) + { + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + default: + break; /* If no destructor action specified: do nothing */ + } } /* @@ -806,22 +935,25 @@ static void yy_destructor( ** ** Return the major token number for the symbol popped. */ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; +static int +yy_pop_parser_stack (yyParser * pParser) +{ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - if( pParser->yyidx<0 ) return 0; + if (pParser->yyidx < 0) + return 0; #ifndef NDEBUG - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } + if (yyTraceFILE && pParser->yyidx >= 0) + { + fprintf (yyTraceFILE, "%sPopping %s\n", + yyTracePrompt, yyTokenName[yytos->major]); + } #endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; + yymajor = yytos->major; + yy_destructor (pParser, yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; } /* @@ -836,26 +968,31 @@ static int yy_pop_parser_stack(yyParser *pParser){ ** from malloc. ** </ul> */ -void ParseFree( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); +void +ParseFree (void *p, /* The parser to be deleted */ + void (*freeProc) (void *) /* Function used to reclaim memory */ + ) +{ + yyParser *pParser = (yyParser *) p; + if (pParser == 0) + return; + while (pParser->yyidx >= 0) + yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 - free(pParser->yystack); + free (pParser->yystack); #endif - (*freeProc)((void*)pParser); + (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH -int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; +int +ParseStackPeak (void *p) +{ + yyParser *pParser = (yyParser *) p; + return pParser->yyidxMax; } #endif @@ -867,52 +1004,66 @@ int ParseStackPeak(void *p){ ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ +static int +yy_find_shift_action (yyParser * pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if (stateno > YY_SHIFT_MAX + || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) + { + return yy_default[stateno]; + } + assert (iLookAhead != YYNOCODE); + i += iLookAhead; + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + if (iLookAhead > 0) + { #ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) - && (iFallback = yyFallback[iLookAhead])!=0 ){ + YYCODETYPE iFallback; /* Fallback token */ + if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) + && (iFallback = yyFallback[iLookAhead]) != 0) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[iFallback]); + } #endif - return yy_find_shift_action(pParser, iFallback); - } + return yy_find_shift_action (pParser, iFallback); + } #endif #ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( j>=0 && j<YY_SZ_ACTTAB && yy_lookahead[j]==YYWILDCARD ){ + { + int j = i - iLookAhead + YYWILDCARD; + if (j >= 0 && j < YY_SZ_ACTTAB + && yy_lookahead[j] == YYWILDCARD) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } #endif /* NDEBUG */ - return yy_action[j]; - } - } + return yy_action[j]; + } + } #endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } + } + return yy_default[stateno]; + } + else + { + return yy_action[i]; + } } /* @@ -923,822 +1074,1410 @@ static int yy_find_shift_action( ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; +static int +yy_find_reduce_action (int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ + ) +{ + int i; #ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_MAX ){ - return yy_default[stateno]; - } + if (stateno > YY_REDUCE_MAX) + { + return yy_default[stateno]; + } #else - assert( stateno<=YY_REDUCE_MAX ); + assert (stateno <= YY_REDUCE_MAX); #endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; + i = yy_reduce_ofst[stateno]; + assert (i != YY_REDUCE_USE_DFLT); + assert (iLookAhead != YYNOCODE); + i += iLookAhead; #ifdef YYERRORSYMBOL - if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } + if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) + { + return yy_default[stateno]; + } #else - assert( i>=0 && i<YY_SZ_ACTTAB ); - assert( yy_lookahead[i]==iLookAhead ); + assert (i >= 0 && i < YY_SZ_ACTTAB); + assert (yy_lookahead[i] == iLookAhead); #endif - return yy_action[i]; + return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ -static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ - ParseARG_FETCH; - yypParser->yyidx--; +static void +yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) +{ + ParseARG_FETCH; + yypParser->yyidx--; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ - spatialite_e( "Giving up. Parser stack overflow\n"); - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ + spatialite_e ("Giving up. Parser stack overflow\n"); + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; +static void +yy_shift (yyParser * yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ + ) +{ + yyStackEntry *yytos; + yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } + if (yypParser->yyidx > yypParser->yyidxMax) + { + yypParser->yyidxMax = yypParser->yyidx; + } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } +#if YYSTACKDEPTH>0 + if (yypParser->yyidx >= YYSTACKDEPTH) + { + yyStackOverflow (yypParser, yypMinor); + return; + } #else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } + if (yypParser->yyidx >= yypParser->yystksz) + { + yyGrowStack (yypParser); + if (yypParser->yyidx >= yypParser->yystksz) + { + yyStackOverflow (yypParser, yypMinor); + return; + } + } #endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = (YYACTIONTYPE) yyNewState; + yytos->major = (YYCODETYPE) yyMajor; + yytos->minor = *yypMinor; #ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } + if (yyTraceFILE && yypParser->yyidx > 0) + { + int i; + fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); + fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); + for (i = 1; i <= yypParser->yyidx; i++) + fprintf (yyTraceFILE, " %s", + yyTokenName[yypParser->yystack[i].major]); + fprintf (yyTraceFILE, "\n"); + } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { - { 35, 1 }, - { 36, 0 }, - { 36, 3 }, - { 37, 1 }, - { 38, 1 }, - { 38, 1 }, - { 38, 1 }, - { 38, 1 }, - { 39, 1 }, - { 39, 1 }, - { 39, 1 }, - { 39, 1 }, - { 39, 1 }, - { 39, 1 }, - { 39, 1 }, - { 40, 1 }, - { 40, 1 }, - { 40, 1 }, - { 40, 1 }, - { 40, 1 }, - { 40, 1 }, - { 40, 1 }, - { 41, 1 }, - { 41, 1 }, - { 41, 1 }, - { 41, 1 }, - { 41, 1 }, - { 41, 1 }, - { 41, 1 }, - { 42, 1 }, - { 42, 1 }, - { 42, 1 }, - { 42, 1 }, - { 42, 1 }, - { 42, 1 }, - { 42, 1 }, - { 43, 4 }, - { 57, 4 }, - { 50, 4 }, - { 64, 4 }, - { 75, 4 }, - { 77, 5 }, - { 78, 5 }, - { 79, 6 }, - { 71, 2 }, - { 72, 3 }, - { 73, 3 }, - { 74, 4 }, - { 76, 1 }, - { 80, 0 }, - { 80, 3 }, - { 81, 0 }, - { 81, 3 }, - { 82, 0 }, - { 82, 3 }, - { 83, 0 }, - { 83, 3 }, - { 84, 0 }, - { 84, 3 }, - { 85, 0 }, - { 85, 3 }, - { 86, 0 }, - { 86, 3 }, - { 87, 0 }, - { 87, 3 }, - { 44, 2 }, - { 58, 2 }, - { 51, 2 }, - { 65, 2 }, - { 88, 6 }, - { 89, 6 }, - { 90, 6 }, - { 91, 6 }, - { 45, 2 }, - { 59, 2 }, - { 52, 2 }, - { 66, 2 }, - { 92, 4 }, - { 93, 4 }, - { 94, 4 }, - { 95, 4 }, - { 96, 10 }, - { 97, 0 }, - { 97, 3 }, - { 98, 10 }, - { 99, 0 }, - { 99, 3 }, - { 100, 10 }, - { 101, 0 }, - { 101, 3 }, - { 102, 10 }, - { 103, 0 }, - { 103, 3 }, - { 46, 2 }, - { 60, 2 }, - { 53, 2 }, - { 67, 2 }, - { 104, 4 }, - { 105, 4 }, - { 106, 4 }, - { 107, 4 }, - { 104, 4 }, - { 105, 4 }, - { 106, 4 }, - { 107, 4 }, - { 47, 2 }, - { 61, 2 }, - { 54, 2 }, - { 68, 2 }, - { 108, 4 }, - { 112, 0 }, - { 112, 3 }, - { 109, 4 }, - { 113, 0 }, - { 113, 3 }, - { 110, 4 }, - { 114, 0 }, - { 114, 3 }, - { 111, 4 }, - { 115, 0 }, - { 115, 3 }, - { 48, 2 }, - { 62, 2 }, - { 55, 2 }, - { 69, 2 }, - { 116, 4 }, - { 120, 0 }, - { 120, 3 }, - { 117, 4 }, - { 121, 0 }, - { 121, 3 }, - { 118, 4 }, - { 122, 0 }, - { 122, 3 }, - { 119, 4 }, - { 123, 0 }, - { 123, 3 }, - { 49, 2 }, - { 63, 2 }, - { 56, 2 }, - { 70, 2 }, - { 124, 4 }, - { 124, 4 }, - { 124, 4 }, - { 124, 4 }, - { 124, 4 }, - { 124, 4 }, - { 124, 5 }, - { 128, 0 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 3 }, - { 128, 4 }, - { 125, 4 }, - { 125, 4 }, - { 125, 4 }, - { 125, 4 }, - { 125, 4 }, - { 125, 4 }, - { 125, 5 }, - { 129, 0 }, - { 129, 3 }, - { 129, 3 }, - { 129, 3 }, - { 129, 3 }, - { 129, 3 }, - { 129, 3 }, - { 129, 4 }, - { 126, 4 }, - { 126, 4 }, - { 126, 4 }, - { 126, 4 }, - { 126, 4 }, - { 126, 4 }, - { 126, 5 }, - { 130, 0 }, - { 130, 3 }, - { 130, 3 }, - { 130, 3 }, - { 130, 3 }, - { 130, 3 }, - { 130, 3 }, - { 130, 4 }, - { 127, 4 }, - { 127, 4 }, - { 127, 4 }, - { 127, 4 }, - { 127, 4 }, - { 127, 4 }, - { 127, 5 }, - { 131, 0 }, - { 131, 3 }, - { 131, 3 }, - { 131, 3 }, - { 131, 3 }, - { 131, 3 }, - { 131, 3 }, - { 131, 4 }, -}; +static const struct +{ + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = +{ + { + 35, 1}, + { + 36, 0}, + { + 36, 3}, + { + 37, 1}, + { + 38, 1}, + { + 38, 1}, + { + 38, 1}, + { + 38, 1}, + { + 39, 1}, + { + 39, 1}, + { + 39, 1}, + { + 39, 1}, + { + 39, 1}, + { + 39, 1}, + { + 39, 1}, + { + 40, 1}, + { + 40, 1}, + { + 40, 1}, + { + 40, 1}, + { + 40, 1}, + { + 40, 1}, + { + 40, 1}, + { + 41, 1}, + { + 41, 1}, + { + 41, 1}, + { + 41, 1}, + { + 41, 1}, + { + 41, 1}, + { + 41, 1}, + { + 42, 1}, + { + 42, 1}, + { + 42, 1}, + { + 42, 1}, + { + 42, 1}, + { + 42, 1}, + { + 42, 1}, + { + 43, 4}, + { + 57, 4}, + { + 50, 4}, + { + 64, 4}, + { + 75, 4}, + { + 77, 5}, + { + 78, 5}, + { + 79, 6}, + { + 71, 2}, + { + 72, 3}, + { + 73, 3}, + { + 74, 4}, + { + 76, 1}, + { + 80, 0}, + { + 80, 3}, + { + 81, 0}, + { + 81, 3}, + { + 82, 0}, + { + 82, 3}, + { + 83, 0}, + { + 83, 3}, + { + 84, 0}, + { + 84, 3}, + { + 85, 0}, + { + 85, 3}, + { + 86, 0}, + { + 86, 3}, + { + 87, 0}, + { + 87, 3}, + { + 44, 2}, + { + 58, 2}, + { + 51, 2}, + { + 65, 2}, + { + 88, 6}, + { + 89, 6}, + { + 90, 6}, + { + 91, 6}, + { + 45, 2}, + { + 59, 2}, + { + 52, 2}, + { + 66, 2}, + { + 92, 4}, + { + 93, 4}, + { + 94, 4}, + { + 95, 4}, + { + 96, 10}, + { + 97, 0}, + { + 97, 3}, + { + 98, 10}, + { + 99, 0}, + { + 99, 3}, + { + 100, 10}, + { + 101, 0}, + { + 101, 3}, + { + 102, 10}, + { + 103, 0}, + { + 103, 3}, + { + 46, 2}, + { + 60, 2}, + { + 53, 2}, + { + 67, 2}, + { + 104, 4}, + { + 105, 4}, + { + 106, 4}, + { + 107, 4}, + { + 104, 4}, + { + 105, 4}, + { + 106, 4}, + { + 107, 4}, + { + 47, 2}, + { + 61, 2}, + { + 54, 2}, + { + 68, 2}, + { + 108, 4}, + { + 112, 0}, + { + 112, 3}, + { + 109, 4}, + { + 113, 0}, + { + 113, 3}, + { + 110, 4}, + { + 114, 0}, + { + 114, 3}, + { + 111, 4}, + { + 115, 0}, + { + 115, 3}, + { + 48, 2}, + { + 62, 2}, + { + 55, 2}, + { + 69, 2}, + { + 116, 4}, + { + 120, 0}, + { + 120, 3}, + { + 117, 4}, + { + 121, 0}, + { + 121, 3}, + { + 118, 4}, + { + 122, 0}, + { + 122, 3}, + { + 119, 4}, + { + 123, 0}, + { + 123, 3}, + { + 49, 2}, + { + 63, 2}, + { + 56, 2}, + { + 70, 2}, + { + 124, 4}, + { + 124, 4}, + { + 124, 4}, + { + 124, 4}, + { + 124, 4}, + { + 124, 4}, + { + 124, 5}, + { + 128, 0}, + { + 128, 3}, + { + 128, 3}, + { + 128, 3}, + { + 128, 3}, + { + 128, 3}, + { + 128, 3}, + { + 128, 4}, + { + 125, 4}, + { + 125, 4}, + { + 125, 4}, + { + 125, 4}, + { + 125, 4}, + { + 125, 4}, + { + 125, 5}, + { + 129, 0}, + { + 129, 3}, + { + 129, 3}, + { + 129, 3}, + { + 129, 3}, + { + 129, 3}, + { + 129, 3}, + { + 129, 4}, + { + 126, 4}, + { + 126, 4}, + { + 126, 4}, + { + 126, 4}, + { + 126, 4}, + { + 126, 4}, + { + 126, 5}, + { + 130, 0}, + { + 130, 3}, + { + 130, 3}, + { + 130, 3}, + { + 130, 3}, + { + 130, 3}, + { + 130, 3}, + { + 130, 4}, + { + 127, 4}, + { + 127, 4}, + { + 127, 4}, + { + 127, 4}, + { + 127, 4}, + { + 127, 4}, + { + 127, 5}, + { + 131, 0}, + { + 131, 3}, + { + 131, 3}, + { + 131, 3}, + { + 131, 3}, + { + 131, 3}, + { + 131, 3}, + { +131, 4},}; -static void yy_accept(yyParser*); /* Forward Declaration */ +static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; +static void +yy_reduce (yyParser * yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ + ) +{ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } + if (yyTraceFILE && yyruleno >= 0 + && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) + { + fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } #endif /* NDEBUG */ - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&yygotominor, 0, sizeof(yygotominor)); */ + yygotominor = yyzerominor; - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line <lineno> <grammarfile> - ** { ... } // User supplied code - ** #line <lineno> <thisfile> - ** break; - */ - case 8: /* geo_text ::= point */ - case 9: /* geo_text ::= linestring */ yytestcase(yyruleno==9); - case 10: /* geo_text ::= polygon */ yytestcase(yyruleno==10); - case 11: /* geo_text ::= multipoint */ yytestcase(yyruleno==11); - case 12: /* geo_text ::= multilinestring */ yytestcase(yyruleno==12); - case 13: /* geo_text ::= multipolygon */ yytestcase(yyruleno==13); - case 14: /* geo_text ::= geocoll */ yytestcase(yyruleno==14); - case 15: /* geo_textz ::= pointz */ yytestcase(yyruleno==15); - case 16: /* geo_textz ::= linestringz */ yytestcase(yyruleno==16); - case 17: /* geo_textz ::= polygonz */ yytestcase(yyruleno==17); - case 18: /* geo_textz ::= multipointz */ yytestcase(yyruleno==18); - case 19: /* geo_textz ::= multilinestringz */ yytestcase(yyruleno==19); - case 20: /* geo_textz ::= multipolygonz */ yytestcase(yyruleno==20); - case 21: /* geo_textz ::= geocollz */ yytestcase(yyruleno==21); - case 22: /* geo_textm ::= pointm */ yytestcase(yyruleno==22); - case 23: /* geo_textm ::= linestringm */ yytestcase(yyruleno==23); - case 24: /* geo_textm ::= polygonm */ yytestcase(yyruleno==24); - case 25: /* geo_textm ::= multipointm */ yytestcase(yyruleno==25); - case 26: /* geo_textm ::= multilinestringm */ yytestcase(yyruleno==26); - case 27: /* geo_textm ::= multipolygonm */ yytestcase(yyruleno==27); - case 28: /* geo_textm ::= geocollm */ yytestcase(yyruleno==28); - case 29: /* geo_textzm ::= pointzm */ yytestcase(yyruleno==29); - case 30: /* geo_textzm ::= linestringzm */ yytestcase(yyruleno==30); - case 31: /* geo_textzm ::= polygonzm */ yytestcase(yyruleno==31); - case 32: /* geo_textzm ::= multipointzm */ yytestcase(yyruleno==32); - case 33: /* geo_textzm ::= multilinestringzm */ yytestcase(yyruleno==33); - case 34: /* geo_textzm ::= multipolygonzm */ yytestcase(yyruleno==34); - case 35: /* geo_textzm ::= geocollzm */ yytestcase(yyruleno==35); -{ p_data->result = yymsp[0].minor.yy0; } - break; - case 36: /* point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET */ -{ yygotominor.yy0 = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 37: /* pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET */ - case 38: /* pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==38); - case 39: /* pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==39); -{ yygotominor.yy0 = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)yymsp[-1].minor.yy0); } - break; - case 40: /* point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) vanuatu_point_xy( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 41: /* point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) vanuatu_point_xym( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 42: /* point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) vanuatu_point_xyz( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 43: /* point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET */ -{ yygotominor.yy0 = (void *) vanuatu_point_xyzm( p_data, (double *)yymsp[-4].minor.yy0, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0); } - break; - case 44: /* point_coordxy ::= coord coord */ -{ yygotominor.yy0 = (void *) vanuatu_point_xy( p_data, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 45: /* point_coordxym ::= coord coord coord */ -{ yygotominor.yy0 = (void *) vanuatu_point_xym( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 46: /* point_coordxyz ::= coord coord coord */ -{ yygotominor.yy0 = (void *) vanuatu_point_xyz( p_data, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 47: /* point_coordxyzm ::= coord coord coord coord */ -{ yygotominor.yy0 = (void *) vanuatu_point_xyzm( p_data, (double *)yymsp[-3].minor.yy0, (double *)yymsp[-2].minor.yy0, (double *)yymsp[-1].minor.yy0, (double *)yymsp[0].minor.yy0); } - break; - case 48: /* coord ::= VANUATU_NUM */ - case 93: /* multipoint ::= VANUATU_MULTIPOINT multipoint_text */ yytestcase(yyruleno==93); - case 94: /* multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm */ yytestcase(yyruleno==94); - case 95: /* multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz */ yytestcase(yyruleno==95); - case 96: /* multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm */ yytestcase(yyruleno==96); - case 105: /* multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text */ yytestcase(yyruleno==105); - case 106: /* multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm */ yytestcase(yyruleno==106); - case 107: /* multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz */ yytestcase(yyruleno==107); - case 108: /* multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm */ yytestcase(yyruleno==108); - case 121: /* multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text */ yytestcase(yyruleno==121); - case 122: /* multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm */ yytestcase(yyruleno==122); - case 123: /* multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz */ yytestcase(yyruleno==123); - case 124: /* multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm */ yytestcase(yyruleno==124); - case 137: /* geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text */ yytestcase(yyruleno==137); - case 138: /* geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase(yyruleno==138); - case 139: /* geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz */ yytestcase(yyruleno==139); - case 140: /* geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm */ yytestcase(yyruleno==140); -{ yygotominor.yy0 = yymsp[0].minor.yy0; } - break; - case 49: /* extra_brkt_pointsxy ::= */ - case 51: /* extra_brkt_pointsxym ::= */ yytestcase(yyruleno==51); - case 53: /* extra_brkt_pointsxyz ::= */ yytestcase(yyruleno==53); - case 55: /* extra_brkt_pointsxyzm ::= */ yytestcase(yyruleno==55); - case 57: /* extra_pointsxy ::= */ yytestcase(yyruleno==57); - case 59: /* extra_pointsxym ::= */ yytestcase(yyruleno==59); - case 61: /* extra_pointsxyz ::= */ yytestcase(yyruleno==61); - case 63: /* extra_pointsxyzm ::= */ yytestcase(yyruleno==63); - case 82: /* extra_rings ::= */ yytestcase(yyruleno==82); - case 85: /* extra_ringsm ::= */ yytestcase(yyruleno==85); - case 88: /* extra_ringsz ::= */ yytestcase(yyruleno==88); - case 91: /* extra_ringszm ::= */ yytestcase(yyruleno==91); - case 110: /* multilinestring_text2 ::= */ yytestcase(yyruleno==110); - case 113: /* multilinestring_textm2 ::= */ yytestcase(yyruleno==113); - case 116: /* multilinestring_textz2 ::= */ yytestcase(yyruleno==116); - case 119: /* multilinestring_textzm2 ::= */ yytestcase(yyruleno==119); - case 126: /* multipolygon_text2 ::= */ yytestcase(yyruleno==126); - case 129: /* multipolygon_textm2 ::= */ yytestcase(yyruleno==129); - case 132: /* multipolygon_textz2 ::= */ yytestcase(yyruleno==132); - case 135: /* multipolygon_textzm2 ::= */ yytestcase(yyruleno==135); - case 148: /* geocoll_text2 ::= */ yytestcase(yyruleno==148); - case 163: /* geocoll_textm2 ::= */ yytestcase(yyruleno==163); - case 178: /* geocoll_textz2 ::= */ yytestcase(yyruleno==178); - case 193: /* geocoll_textzm2 ::= */ yytestcase(yyruleno==193); -{ yygotominor.yy0 = NULL; } - break; - case 50: /* extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy */ - case 52: /* extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase(yyruleno==52); - case 54: /* extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase(yyruleno==54); - case 56: /* extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase(yyruleno==56); - case 58: /* extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy */ yytestcase(yyruleno==58); - case 60: /* extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym */ yytestcase(yyruleno==60); - case 62: /* extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz */ yytestcase(yyruleno==62); - case 64: /* extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase(yyruleno==64); -{ ((gaiaPointPtr)yymsp[-1].minor.yy0)->Next = (gaiaPointPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 65: /* linestring ::= VANUATU_LINESTRING linestring_text */ - case 66: /* linestringm ::= VANUATU_LINESTRING_M linestring_textm */ yytestcase(yyruleno==66); - case 67: /* linestringz ::= VANUATU_LINESTRING_Z linestring_textz */ yytestcase(yyruleno==67); - case 68: /* linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm */ yytestcase(yyruleno==68); -{ yygotominor.yy0 = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)yymsp[0].minor.yy0); } - break; - case 69: /* linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_linestring_xy( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 70: /* linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_linestring_xym( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 71: /* linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_linestring_xyz( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 72: /* linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_linestring_xyzm( p_data, (gaiaPointPtr)yymsp[-4].minor.yy0); - } - break; - case 73: /* polygon ::= VANUATU_POLYGON polygon_text */ - case 74: /* polygonm ::= VANUATU_POLYGON_M polygon_textm */ yytestcase(yyruleno==74); - case 75: /* polygonz ::= VANUATU_POLYGON_Z polygon_textz */ yytestcase(yyruleno==75); - case 76: /* polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm */ yytestcase(yyruleno==76); -{ yygotominor.yy0 = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)yymsp[0].minor.yy0); } - break; - case 77: /* polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_polygon_xy( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 78: /* polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_polygon_xym( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 79: /* polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_polygon_xyz( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 80: /* polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET */ -{ - ((gaiaRingPtr)yymsp[-2].minor.yy0)->Next = (gaiaRingPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_polygon_xyzm( p_data, (gaiaRingPtr)yymsp[-2].minor.yy0); - } - break; - case 81: /* ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_ring_xy( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 83: /* extra_rings ::= VANUATU_COMMA ring extra_rings */ - case 86: /* extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm */ yytestcase(yyruleno==86); - case 89: /* extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz */ yytestcase(yyruleno==89); - case 92: /* extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm */ yytestcase(yyruleno==92); -{ - ((gaiaRingPtr)yymsp[-1].minor.yy0)->Next = (gaiaRingPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 84: /* ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_ring_xym( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 87: /* ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_ring_xyz( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 90: /* ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPointPtr)yymsp[-8].minor.yy0)->Next = (gaiaPointPtr)yymsp[-6].minor.yy0; - ((gaiaPointPtr)yymsp[-6].minor.yy0)->Next = (gaiaPointPtr)yymsp[-4].minor.yy0; - ((gaiaPointPtr)yymsp[-4].minor.yy0)->Next = (gaiaPointPtr)yymsp[-2].minor.yy0; - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_ring_xyzm( p_data, (gaiaPointPtr)yymsp[-8].minor.yy0); - } - break; - case 97: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ - case 101: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==101); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipoint_xy( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 98: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ - case 102: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==102); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipoint_xym( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 99: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ - case 103: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==103); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipoint_xyz( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 100: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ - case 104: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==104); -{ - ((gaiaPointPtr)yymsp[-2].minor.yy0)->Next = (gaiaPointPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipoint_xyzm( p_data, (gaiaPointPtr)yymsp[-2].minor.yy0); - } - break; - case 109: /* multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multilinestring_xy( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 111: /* multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2 */ - case 114: /* multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2 */ yytestcase(yyruleno==114); - case 117: /* multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2 */ yytestcase(yyruleno==117); - case 120: /* multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase(yyruleno==120); -{ ((gaiaLinestringPtr)yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 112: /* multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multilinestring_xym( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 115: /* multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multilinestring_xyz( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 118: /* multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaLinestringPtr)yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multilinestring_xyzm( p_data, (gaiaLinestringPtr)yymsp[-2].minor.yy0); - } - break; - case 125: /* multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipolygon_xy( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 127: /* multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2 */ - case 130: /* multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2 */ yytestcase(yyruleno==130); - case 133: /* multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2 */ yytestcase(yyruleno==133); - case 136: /* multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase(yyruleno==136); -{ ((gaiaPolygonPtr)yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } - break; - case 128: /* multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipolygon_xym( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 131: /* multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipolygon_xyz( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 134: /* multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET */ -{ - ((gaiaPolygonPtr)yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_multipolygon_xyzm( p_data, (gaiaPolygonPtr)yymsp[-2].minor.yy0); - } - break; - case 141: /* geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET */ - case 142: /* geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==142); - case 143: /* geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==143); - case 144: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==144); - case 145: /* geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==145); - case 146: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==146); - case 147: /* geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==147); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 149: /* geocoll_text2 ::= VANUATU_COMMA point geocoll_text2 */ - case 150: /* geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2 */ yytestcase(yyruleno==150); - case 151: /* geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2 */ yytestcase(yyruleno==151); - case 152: /* geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2 */ yytestcase(yyruleno==152); - case 153: /* geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2 */ yytestcase(yyruleno==153); - case 154: /* geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2 */ yytestcase(yyruleno==154); - case 155: /* geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase(yyruleno==155); - case 164: /* geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2 */ yytestcase(yyruleno==164); - case 165: /* geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2 */ yytestcase(yyruleno==165); - case 166: /* geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2 */ yytestcase(yyruleno==166); - case 167: /* geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2 */ yytestcase(yyruleno==167); - case 168: /* geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2 */ yytestcase(yyruleno==168); - case 169: /* geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2 */ yytestcase(yyruleno==169); - case 170: /* geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase(yyruleno==170); - case 179: /* geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2 */ yytestcase(yyruleno==179); - case 180: /* geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2 */ yytestcase(yyruleno==180); - case 181: /* geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2 */ yytestcase(yyruleno==181); - case 182: /* geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2 */ yytestcase(yyruleno==182); - case 183: /* geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2 */ yytestcase(yyruleno==183); - case 184: /* geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2 */ yytestcase(yyruleno==184); - case 185: /* geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 */ yytestcase(yyruleno==185); - case 194: /* geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2 */ yytestcase(yyruleno==194); - case 195: /* geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2 */ yytestcase(yyruleno==195); - case 196: /* geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2 */ yytestcase(yyruleno==196); - case 197: /* geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2 */ yytestcase(yyruleno==197); - case 198: /* geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2 */ yytestcase(yyruleno==198); - case 199: /* geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2 */ yytestcase(yyruleno==199); - case 200: /* geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 */ yytestcase(yyruleno==200); -{ - ((gaiaGeomCollPtr)yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[0].minor.yy0; - yygotominor.yy0 = yymsp[-1].minor.yy0; - } - break; - case 156: /* geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ - case 157: /* geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==157); - case 158: /* geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==158); - case 159: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==159); - case 160: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==160); - case 161: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==161); - case 162: /* geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==162); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 171: /* geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ - case 172: /* geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==172); - case 173: /* geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==173); - case 174: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==174); - case 175: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==175); - case 176: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==176); - case 177: /* geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==177); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; - case 186: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ - case 187: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==187); - case 188: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==188); - case 189: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==189); - case 190: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==190); - case 191: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==191); - case 192: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase(yyruleno==192); -{ - ((gaiaGeomCollPtr)yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr)yymsp[-1].minor.yy0; - yygotominor.yy0 = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)yymsp[-2].minor.yy0); - } - break; + switch (yyruleno) + { + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line <lineno> <grammarfile> + ** { ... } // User supplied code + ** #line <lineno> <thisfile> + ** break; + */ + case 8: /* geo_text ::= point */ + case 9: /* geo_text ::= linestring */ + yytestcase (yyruleno == 9); + case 10: /* geo_text ::= polygon */ + yytestcase (yyruleno == 10); + case 11: /* geo_text ::= multipoint */ + yytestcase (yyruleno == 11); + case 12: /* geo_text ::= multilinestring */ + yytestcase (yyruleno == 12); + case 13: /* geo_text ::= multipolygon */ + yytestcase (yyruleno == 13); + case 14: /* geo_text ::= geocoll */ + yytestcase (yyruleno == 14); + case 15: /* geo_textz ::= pointz */ + yytestcase (yyruleno == 15); + case 16: /* geo_textz ::= linestringz */ + yytestcase (yyruleno == 16); + case 17: /* geo_textz ::= polygonz */ + yytestcase (yyruleno == 17); + case 18: /* geo_textz ::= multipointz */ + yytestcase (yyruleno == 18); + case 19: /* geo_textz ::= multilinestringz */ + yytestcase (yyruleno == 19); + case 20: /* geo_textz ::= multipolygonz */ + yytestcase (yyruleno == 20); + case 21: /* geo_textz ::= geocollz */ + yytestcase (yyruleno == 21); + case 22: /* geo_textm ::= pointm */ + yytestcase (yyruleno == 22); + case 23: /* geo_textm ::= linestringm */ + yytestcase (yyruleno == 23); + case 24: /* geo_textm ::= polygonm */ + yytestcase (yyruleno == 24); + case 25: /* geo_textm ::= multipointm */ + yytestcase (yyruleno == 25); + case 26: /* geo_textm ::= multilinestringm */ + yytestcase (yyruleno == 26); + case 27: /* geo_textm ::= multipolygonm */ + yytestcase (yyruleno == 27); + case 28: /* geo_textm ::= geocollm */ + yytestcase (yyruleno == 28); + case 29: /* geo_textzm ::= pointzm */ + yytestcase (yyruleno == 29); + case 30: /* geo_textzm ::= linestringzm */ + yytestcase (yyruleno == 30); + case 31: /* geo_textzm ::= polygonzm */ + yytestcase (yyruleno == 31); + case 32: /* geo_textzm ::= multipointzm */ + yytestcase (yyruleno == 32); + case 33: /* geo_textzm ::= multilinestringzm */ + yytestcase (yyruleno == 33); + case 34: /* geo_textzm ::= multipolygonzm */ + yytestcase (yyruleno == 34); + case 35: /* geo_textzm ::= geocollzm */ + yytestcase (yyruleno == 35); + { + p_data->result = yymsp[0].minor.yy0; + } + break; + case 36: /* point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET */ + { + yygotominor.yy0 = + vanuatu_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor. + yy0); + } + break; + case 37: /* pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET */ + case 38: /* pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 38); + case 39: /* pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 39); + { + yygotominor.yy0 = + vanuatu_buildGeomFromPoint (p_data, + (gaiaPointPtr) yymsp[-1].minor. + yy0); + } + break; + case 40: /* point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xy (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 41: /* point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xym (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 42: /* point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xyz (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 43: /* point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xyzm (p_data, + (double *) yymsp[-4].minor.yy0, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0); + } + break; + case 44: /* point_coordxy ::= coord coord */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xy (p_data, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 45: /* point_coordxym ::= coord coord coord */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xym (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 46: /* point_coordxyz ::= coord coord coord */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xyz (p_data, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 47: /* point_coordxyzm ::= coord coord coord coord */ + { + yygotominor.yy0 = + (void *) vanuatu_point_xyzm (p_data, + (double *) yymsp[-3].minor.yy0, + (double *) yymsp[-2].minor.yy0, + (double *) yymsp[-1].minor.yy0, + (double *) yymsp[0].minor.yy0); + } + break; + case 48: /* coord ::= VANUATU_NUM */ + case 93: /* multipoint ::= VANUATU_MULTIPOINT multipoint_text */ + yytestcase (yyruleno == 93); + case 94: /* multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm */ + yytestcase (yyruleno == 94); + case 95: /* multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz */ + yytestcase (yyruleno == 95); + case 96: /* multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm */ + yytestcase (yyruleno == 96); + case 105: /* multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text */ + yytestcase (yyruleno == 105); + case 106: /* multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm */ + yytestcase (yyruleno == 106); + case 107: /* multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz */ + yytestcase (yyruleno == 107); + case 108: /* multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm */ + yytestcase (yyruleno == 108); + case 121: /* multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text */ + yytestcase (yyruleno == 121); + case 122: /* multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm */ + yytestcase (yyruleno == 122); + case 123: /* multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz */ + yytestcase (yyruleno == 123); + case 124: /* multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm */ + yytestcase (yyruleno == 124); + case 137: /* geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text */ + yytestcase (yyruleno == 137); + case 138: /* geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm */ + yytestcase (yyruleno == 138); + case 139: /* geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz */ + yytestcase (yyruleno == 139); + case 140: /* geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm */ + yytestcase (yyruleno == 140); + { + yygotominor.yy0 = yymsp[0].minor.yy0; + } + break; + case 49: /* extra_brkt_pointsxy ::= */ + case 51: /* extra_brkt_pointsxym ::= */ + yytestcase (yyruleno == 51); + case 53: /* extra_brkt_pointsxyz ::= */ + yytestcase (yyruleno == 53); + case 55: /* extra_brkt_pointsxyzm ::= */ + yytestcase (yyruleno == 55); + case 57: /* extra_pointsxy ::= */ + yytestcase (yyruleno == 57); + case 59: /* extra_pointsxym ::= */ + yytestcase (yyruleno == 59); + case 61: /* extra_pointsxyz ::= */ + yytestcase (yyruleno == 61); + case 63: /* extra_pointsxyzm ::= */ + yytestcase (yyruleno == 63); + case 82: /* extra_rings ::= */ + yytestcase (yyruleno == 82); + case 85: /* extra_ringsm ::= */ + yytestcase (yyruleno == 85); + case 88: /* extra_ringsz ::= */ + yytestcase (yyruleno == 88); + case 91: /* extra_ringszm ::= */ + yytestcase (yyruleno == 91); + case 110: /* multilinestring_text2 ::= */ + yytestcase (yyruleno == 110); + case 113: /* multilinestring_textm2 ::= */ + yytestcase (yyruleno == 113); + case 116: /* multilinestring_textz2 ::= */ + yytestcase (yyruleno == 116); + case 119: /* multilinestring_textzm2 ::= */ + yytestcase (yyruleno == 119); + case 126: /* multipolygon_text2 ::= */ + yytestcase (yyruleno == 126); + case 129: /* multipolygon_textm2 ::= */ + yytestcase (yyruleno == 129); + case 132: /* multipolygon_textz2 ::= */ + yytestcase (yyruleno == 132); + case 135: /* multipolygon_textzm2 ::= */ + yytestcase (yyruleno == 135); + case 148: /* geocoll_text2 ::= */ + yytestcase (yyruleno == 148); + case 163: /* geocoll_textm2 ::= */ + yytestcase (yyruleno == 163); + case 178: /* geocoll_textz2 ::= */ + yytestcase (yyruleno == 178); + case 193: /* geocoll_textzm2 ::= */ + yytestcase (yyruleno == 193); + { + yygotominor.yy0 = NULL; + } + break; + case 50: /* extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy */ + case 52: /* extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym */ + yytestcase (yyruleno == 52); + case 54: /* extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ + yytestcase (yyruleno == 54); + case 56: /* extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ + yytestcase (yyruleno == 56); + case 58: /* extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy */ + yytestcase (yyruleno == 58); + case 60: /* extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym */ + yytestcase (yyruleno == 60); + case 62: /* extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz */ + yytestcase (yyruleno == 62); + case 64: /* extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm */ + yytestcase (yyruleno == 64); + { + ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPointPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 65: /* linestring ::= VANUATU_LINESTRING linestring_text */ + case 66: /* linestringm ::= VANUATU_LINESTRING_M linestring_textm */ + yytestcase (yyruleno == 66); + case 67: /* linestringz ::= VANUATU_LINESTRING_Z linestring_textz */ + yytestcase (yyruleno == 67); + case 68: /* linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm */ + yytestcase (yyruleno == 68); + { + yygotominor.yy0 = + vanuatu_buildGeomFromLinestring (p_data, + (gaiaLinestringPtr) + yymsp[0].minor.yy0); + } + break; + case 69: /* linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_linestring_xy (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 70: /* linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_linestring_xym (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 71: /* linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_linestring_xyz (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 72: /* linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_linestring_xyzm (p_data, + (gaiaPointPtr) + yymsp[-4].minor.yy0); + } + break; + case 73: /* polygon ::= VANUATU_POLYGON polygon_text */ + case 74: /* polygonm ::= VANUATU_POLYGON_M polygon_textm */ + yytestcase (yyruleno == 74); + case 75: /* polygonz ::= VANUATU_POLYGON_Z polygon_textz */ + yytestcase (yyruleno == 75); + case 76: /* polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm */ + yytestcase (yyruleno == 76); + { + yygotominor.yy0 = + vanuatu_buildGeomFromPolygon (p_data, + (gaiaPolygonPtr) yymsp[0].minor. + yy0); + } + break; + case 77: /* polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_polygon_xy (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 78: /* polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_polygon_xym (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 79: /* polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_polygon_xyz (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 80: /* polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET */ + { + ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = + (gaiaRingPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_polygon_xyzm (p_data, + (gaiaRingPtr) yymsp[-2].minor. + yy0); + } + break; + case 81: /* ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_ring_xy (p_data, + (gaiaPointPtr) yymsp[-8].minor.yy0); + } + break; + case 83: /* extra_rings ::= VANUATU_COMMA ring extra_rings */ + case 86: /* extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm */ + yytestcase (yyruleno == 86); + case 89: /* extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz */ + yytestcase (yyruleno == 89); + case 92: /* extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm */ + yytestcase (yyruleno == 92); + { + ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = + (gaiaRingPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 84: /* ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_ring_xym (p_data, + (gaiaPointPtr) yymsp[-8].minor. + yy0); + } + break; + case 87: /* ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_ring_xyz (p_data, + (gaiaPointPtr) yymsp[-8].minor. + yy0); + } + break; + case 90: /* ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ + { + ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-6].minor.yy0; + ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-4].minor.yy0; + ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-2].minor.yy0; + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_ring_xyzm (p_data, + (gaiaPointPtr) yymsp[-8].minor. + yy0); + } + break; + case 97: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ + case 101: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 101); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipoint_xy (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 98: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ + case 102: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 102); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipoint_xym (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 99: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ + case 103: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 103); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipoint_xyz (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 100: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ + case 104: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 104); + { + ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPointPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipoint_xyzm (p_data, + (gaiaPointPtr) + yymsp[-2].minor.yy0); + } + break; + case 109: /* multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multilinestring_xy (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 111: /* multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2 */ + case 114: /* multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2 */ + yytestcase (yyruleno == 114); + case 117: /* multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2 */ + yytestcase (yyruleno == 117); + case 120: /* multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2 */ + yytestcase (yyruleno == 120); + { + ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 112: /* multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multilinestring_xym (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 115: /* multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multilinestring_xyz (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 118: /* multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = + (gaiaLinestringPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multilinestring_xyzm (p_data, + (gaiaLinestringPtr) + yymsp[-2].minor.yy0); + } + break; + case 125: /* multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipolygon_xy (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 127: /* multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2 */ + case 130: /* multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2 */ + yytestcase (yyruleno == 130); + case 133: /* multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2 */ + yytestcase (yyruleno == 133); + case 136: /* multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2 */ + yytestcase (yyruleno == 136); + { + ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 128: /* multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipolygon_xym (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 131: /* multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipolygon_xyz (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 134: /* multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET */ + { + ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = + (gaiaPolygonPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_multipolygon_xyzm (p_data, + (gaiaPolygonPtr) + yymsp[-2].minor.yy0); + } + break; + case 141: /* geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET */ + case 142: /* geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 142); + case 143: /* geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 143); + case 144: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 144); + case 145: /* geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 145); + case 146: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 146); + case 147: /* geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 147); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_geomColl_xy (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; + case 149: /* geocoll_text2 ::= VANUATU_COMMA point geocoll_text2 */ + case 150: /* geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2 */ + yytestcase (yyruleno == 150); + case 151: /* geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2 */ + yytestcase (yyruleno == 151); + case 152: /* geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2 */ + yytestcase (yyruleno == 152); + case 153: /* geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2 */ + yytestcase (yyruleno == 153); + case 154: /* geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2 */ + yytestcase (yyruleno == 154); + case 155: /* geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ + yytestcase (yyruleno == 155); + case 164: /* geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2 */ + yytestcase (yyruleno == 164); + case 165: /* geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2 */ + yytestcase (yyruleno == 165); + case 166: /* geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2 */ + yytestcase (yyruleno == 166); + case 167: /* geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2 */ + yytestcase (yyruleno == 167); + case 168: /* geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2 */ + yytestcase (yyruleno == 168); + case 169: /* geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2 */ + yytestcase (yyruleno == 169); + case 170: /* geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ + yytestcase (yyruleno == 170); + case 179: /* geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2 */ + yytestcase (yyruleno == 179); + case 180: /* geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2 */ + yytestcase (yyruleno == 180); + case 181: /* geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2 */ + yytestcase (yyruleno == 181); + case 182: /* geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2 */ + yytestcase (yyruleno == 182); + case 183: /* geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2 */ + yytestcase (yyruleno == 183); + case 184: /* geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2 */ + yytestcase (yyruleno == 184); + case 185: /* geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 */ + yytestcase (yyruleno == 185); + case 194: /* geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2 */ + yytestcase (yyruleno == 194); + case 195: /* geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2 */ + yytestcase (yyruleno == 195); + case 196: /* geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2 */ + yytestcase (yyruleno == 196); + case 197: /* geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2 */ + yytestcase (yyruleno == 197); + case 198: /* geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2 */ + yytestcase (yyruleno == 198); + case 199: /* geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2 */ + yytestcase (yyruleno == 199); + case 200: /* geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 */ + yytestcase (yyruleno == 200); + { + ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[0].minor.yy0; + yygotominor.yy0 = yymsp[-1].minor.yy0; + } + break; + case 156: /* geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + case 157: /* geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 157); + case 158: /* geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 158); + case 159: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 159); + case 160: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 160); + case 161: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 161); + case 162: /* geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 162); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_geomColl_xym (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; + case 171: /* geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + case 172: /* geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 172); + case 173: /* geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 173); + case 174: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 174); + case 175: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 175); + case 176: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 176); + case 177: /* geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 177); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_geomColl_xyz (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; + case 186: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + case 187: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 187); + case 188: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 188); + case 189: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 189); + case 190: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 190); + case 191: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 191); + case 192: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ + yytestcase (yyruleno == 192); + { + ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = + (gaiaGeomCollPtr) yymsp[-1].minor.yy0; + yygotominor.yy0 = + (void *) vanuatu_geomColl_xyzm (p_data, + (gaiaGeomCollPtr) + yymsp[-2].minor.yy0); + } + break; default: - /* (0) main ::= in */ yytestcase(yyruleno==0); - /* (1) in ::= */ yytestcase(yyruleno==1); - /* (2) in ::= in state VANUATU_NEWLINE */ yytestcase(yyruleno==2); - /* (3) state ::= program */ yytestcase(yyruleno==3); - /* (4) program ::= geo_text */ yytestcase(yyruleno==4); - /* (5) program ::= geo_textz */ yytestcase(yyruleno==5); - /* (6) program ::= geo_textm */ yytestcase(yyruleno==6); - /* (7) program ::= geo_textzm */ yytestcase(yyruleno==7); - break; - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ + /* (0) main ::= in */ yytestcase (yyruleno == 0); + /* (1) in ::= */ yytestcase (yyruleno == 1); + /* (2) in ::= in state VANUATU_NEWLINE */ yytestcase (yyruleno == 2); + /* (3) state ::= program */ yytestcase (yyruleno == 3); + /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); + /* (5) program ::= geo_textz */ yytestcase (yyruleno == 5); + /* (6) program ::= geo_textm */ yytestcase (yyruleno == 6); + /* (7) program ::= geo_textzm */ yytestcase (yyruleno == 7); + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); + if (yyact < YYNSTATE) + { #ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if (yysize) + { + yypParser->yyidx++; + yymsp -= yysize - 1; + yymsp->stateno = (YYACTIONTYPE) yyact; + yymsp->major = (YYCODETYPE) yygoto; + yymsp->minor = yygotominor; + } + else #endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } + { + yy_shift (yypParser, yyact, yygoto, &yygotominor); + } + } + else + { + assert (yyact == YYNSTATE + YYNRULE + 1); + yy_accept (yypParser); + } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_parse_failed (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; +static void +yy_syntax_error (yyParser * yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ + ) +{ + ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* @@ -1746,27 +2485,30 @@ static void yy_syntax_error( ** when the LEMON parser encounters an error ** then this global variable is set */ - p_data->vanuatu_parse_error = 1; - p_data->result = NULL; - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + p_data->vanuatu_parse_error = 1; + p_data->result = NULL; + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; +static void +yy_accept (yyParser * yypParser /* The parser */ + ) +{ + ParseARG_FETCH; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); + } #endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ + while (yypParser->yyidx >= 0) + yy_pop_parser_stack (yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -1788,153 +2530,179 @@ static void yy_accept( ** Outputs: ** None. */ -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ +void +Parse (void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ + ) +{ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser *) yyp; + if (yypParser->yyidx < 0) + { #if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } + if (yypParser->yystksz <= 0) + { + /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ + yyminorunion = yyzerominor; + yyStackOverflow (yypParser, &yyminorunion); + return; + } #endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor == 0); + ParseARG_STORE; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, + yyTokenName[yymajor]); + } #endif - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyact<YYNSTATE ){ - assert( !yyendofinput ); /* Impossible to shift the $ token */ - yy_shift(yypParser,yyact,yymajor,&yyminorunion); - yypParser->yyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); + do + { + yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); + if (yyact < YYNSTATE) + { + assert (!yyendofinput); /* Impossible to shift the $ token */ + yy_shift (yypParser, yyact, yymajor, &yyminorunion); + yypParser->yyerrcnt--; + yymajor = YYNOCODE; + } + else if (yyact < YYNSTATE + YYNRULE) + { + yy_reduce (yypParser, yyact - YYNSTATE); + } + else + { + assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL - int yymx; + int yymx; #endif #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); + } #endif #ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if (yypParser->yyerrcnt < 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if (yymx == YYERRORSYMBOL || yyerrorhit) + { #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } + if (yyTraceFILE) + { + fprintf (yyTraceFILE, "%sDiscard input token %s\n", + yyTracePrompt, yyTokenName[yymajor]); + } #endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yymajor = YYNOCODE; + } + else + { + while (yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = + yy_find_reduce_action (yypParser->yystack + [yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= + YYNSTATE) + { + yy_pop_parser_stack (yypParser); + } + if (yypParser->yyidx < 0 || yymajor == 0) + { + yy_destructor (yypParser, (YYCODETYPE) yymajor, + &yyminorunion); + yy_parse_failed (yypParser); + yymajor = YYNOCODE; + } + else if (yymx != YYERRORSYMBOL) + { + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error (yypParser, yymajor, yyminorunion); + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if (yypParser->yyerrcnt <= 0) + { + yy_syntax_error (yypParser, yymajor, yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); + if (yyendofinput) + { + yy_parse_failed (yypParser); + } + yymajor = YYNOCODE; #endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; + } + } + while (yymajor != YYNOCODE && yypParser->yyidx >= 0); + return; } diff --git a/src/spatialite/src/geopackage/Makefile.am b/src/spatialite/src/geopackage/Makefile.am new file mode 100644 index 0000000..8d36eac --- /dev/null +++ b/src/spatialite/src/geopackage/Makefile.am @@ -0,0 +1,39 @@ +AM_CFLAGS = $(GCOV_FLAGS) + +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers + +noinst_LTLIBRARIES = libgeopackage.la geopackage.la + +SHARED_SOURCES = \ + gpkg_add_tile_triggers.c \ + gpkg_get_normal_row.c \ + gpkg_get_normal_zoom.c \ + gpkgGetImageType.c \ + gpkgCreateBaseTables.c \ + gpkgInsertEpsgSRID.c \ + gpkgCreateTilesTable.c \ + gpkgCreateTilesZoomLevel.c \ + gpkgAddGeometryColumn.c \ + gpkgMakePoint.c \ + gpkgBinary.c \ + gpkg_add_geometry_triggers.c \ + gpkg_add_spatial_index.c \ + gaia_cvt_gpkg.c + +libgeopackage_la_SOURCES = $(SHARED_SOURCES) + +libgeopackage_la_CFLAGS = -fvisibility=hidden + +geopackage_la_SOURCES = $(SHARED_SOURCES) + +geopackage_la_CPPFLAGS = @CFLAGS@ +geopackage_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +geopackage_la_CPPFLAGS += -DLOADABLE_EXTENSION +geopackage_la_CPPFLAGS += -fvisibility=hidden +geopackage_la_LDFLAGS = -module +geopackage_la_LIBTOOLFLAGS = --tag=disable-static + +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda + +EXTRA_DIST = geopackage_internal.h diff --git a/src/spatialite/src/geopackage/Makefile.in b/src/spatialite/src/geopackage/Makefile.in new file mode 100644 index 0000000..c73f0c3 --- /dev/null +++ b/src/spatialite/src/geopackage/Makefile.in @@ -0,0 +1,876 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/geopackage +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +geopackage_la_LIBADD = +am__objects_1 = geopackage_la-gpkg_add_tile_triggers.lo \ + geopackage_la-gpkg_get_normal_row.lo \ + geopackage_la-gpkg_get_normal_zoom.lo \ + geopackage_la-gpkgGetImageType.lo \ + geopackage_la-gpkgCreateBaseTables.lo \ + geopackage_la-gpkgInsertEpsgSRID.lo \ + geopackage_la-gpkgCreateTilesTable.lo \ + geopackage_la-gpkgCreateTilesZoomLevel.lo \ + geopackage_la-gpkgAddGeometryColumn.lo \ + geopackage_la-gpkgMakePoint.lo geopackage_la-gpkgBinary.lo \ + geopackage_la-gpkg_add_geometry_triggers.lo \ + geopackage_la-gpkg_add_spatial_index.lo \ + geopackage_la-gaia_cvt_gpkg.lo +am_geopackage_la_OBJECTS = $(am__objects_1) +geopackage_la_OBJECTS = $(am_geopackage_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +geopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(geopackage_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +libgeopackage_la_LIBADD = +am__objects_2 = libgeopackage_la-gpkg_add_tile_triggers.lo \ + libgeopackage_la-gpkg_get_normal_row.lo \ + libgeopackage_la-gpkg_get_normal_zoom.lo \ + libgeopackage_la-gpkgGetImageType.lo \ + libgeopackage_la-gpkgCreateBaseTables.lo \ + libgeopackage_la-gpkgInsertEpsgSRID.lo \ + libgeopackage_la-gpkgCreateTilesTable.lo \ + libgeopackage_la-gpkgCreateTilesZoomLevel.lo \ + libgeopackage_la-gpkgAddGeometryColumn.lo \ + libgeopackage_la-gpkgMakePoint.lo \ + libgeopackage_la-gpkgBinary.lo \ + libgeopackage_la-gpkg_add_geometry_triggers.lo \ + libgeopackage_la-gpkg_add_spatial_index.lo \ + libgeopackage_la-gaia_cvt_gpkg.lo +am_libgeopackage_la_OBJECTS = $(am__objects_2) +libgeopackage_la_OBJECTS = $(am_libgeopackage_la_OBJECTS) +libgeopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgeopackage_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES) +DIST_SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CFLAGS = $(GCOV_FLAGS) +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libgeopackage.la geopackage.la +SHARED_SOURCES = \ + gpkg_add_tile_triggers.c \ + gpkg_get_normal_row.c \ + gpkg_get_normal_zoom.c \ + gpkgGetImageType.c \ + gpkgCreateBaseTables.c \ + gpkgInsertEpsgSRID.c \ + gpkgCreateTilesTable.c \ + gpkgCreateTilesZoomLevel.c \ + gpkgAddGeometryColumn.c \ + gpkgMakePoint.c \ + gpkgBinary.c \ + gpkg_add_geometry_triggers.c \ + gpkg_add_spatial_index.c \ + gaia_cvt_gpkg.c + +libgeopackage_la_SOURCES = $(SHARED_SOURCES) +libgeopackage_la_CFLAGS = -fvisibility=hidden +geopackage_la_SOURCES = $(SHARED_SOURCES) +geopackage_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION -fvisibility=hidden +geopackage_la_LDFLAGS = -module +geopackage_la_LIBTOOLFLAGS = --tag=disable-static +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda +EXTRA_DIST = geopackage_internal.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/geopackage/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/geopackage/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +geopackage.la: $(geopackage_la_OBJECTS) $(geopackage_la_DEPENDENCIES) $(EXTRA_geopackage_la_DEPENDENCIES) + $(AM_V_CCLD)$(geopackage_la_LINK) $(geopackage_la_OBJECTS) $(geopackage_la_LIBADD) $(LIBS) + +libgeopackage.la: $(libgeopackage_la_OBJECTS) $(libgeopackage_la_DEPENDENCIES) $(EXTRA_libgeopackage_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgeopackage_la_LINK) $(libgeopackage_la_OBJECTS) $(libgeopackage_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgBinary.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgGetImageType.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgMakePoint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgBinary.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +geopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_tile_triggers.c' object='geopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c + +geopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_row.c' object='geopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c + +geopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_zoom.c' object='geopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c + +geopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/geopackage_la-gpkgGetImageType.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgGetImageType.c' object='geopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c + +geopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateBaseTables.c' object='geopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c + +geopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='geopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c + +geopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesTable.c' object='geopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c + +geopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='geopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c + +geopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgAddGeometryColumn.c' object='geopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c + +geopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/geopackage_la-gpkgMakePoint.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgMakePoint.c' object='geopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c + +geopackage_la-gpkgBinary.lo: gpkgBinary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgBinary.Tpo -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgBinary.Tpo $(DEPDIR)/geopackage_la-gpkgBinary.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgBinary.c' object='geopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c + +geopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='geopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c + +geopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_spatial_index.c' object='geopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c + +geopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_cvt_gpkg.c' object='geopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c + +libgeopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_tile_triggers.c' object='libgeopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c + +libgeopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_row.c' object='libgeopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c + +libgeopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_zoom.c' object='libgeopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c + +libgeopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgGetImageType.c' object='libgeopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c + +libgeopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateBaseTables.c' object='libgeopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c + +libgeopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='libgeopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c + +libgeopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesTable.c' object='libgeopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c + +libgeopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='libgeopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c + +libgeopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgAddGeometryColumn.c' object='libgeopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c + +libgeopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgMakePoint.c' object='libgeopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c + +libgeopackage_la-gpkgBinary.lo: gpkgBinary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo $(DEPDIR)/libgeopackage_la-gpkgBinary.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgBinary.c' object='libgeopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c + +libgeopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='libgeopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c + +libgeopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_spatial_index.c' object='libgeopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c + +libgeopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_cvt_gpkg.c' object='libgeopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/geopackage/gaia_cvt_gpkg.c b/src/spatialite/src/geopackage/gaia_cvt_gpkg.c new file mode 100644 index 0000000..2702fca --- /dev/null +++ b/src/spatialite/src/geopackage/gaia_cvt_gpkg.c @@ -0,0 +1,1412 @@ +/* + + gaia_cvt_gpkg.c -- implements GPKG DB conversion [both directions] + + version 4.2, 2014 May 10 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): Brad Hards <bradh@frogmouth.net> + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "config.h" + +#ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include <spatialite/sqlite.h> +#include <spatialite/debug.h> +#include <spatialite.h> +#include <spatialite/gaiaaux.h> +#include <spatialite/geopackage.h> + +struct pk_item +{ +/* a struct wrapping a Primary Key item */ + int position; + char *column; + struct pk_item *next; +}; + +struct primary_key +{ +/* a struct wrapping a Primary Key */ + struct pk_item *first; + struct pk_item *last; + int num_items; + struct pk_item **array; +}; + +static struct primary_key * +alloc_pk () +{ +/* creating an empty Primary Key */ + struct primary_key *pk = malloc (sizeof (struct primary_key)); + pk->first = NULL; + pk->last = NULL; + pk->num_items = 0; + pk->array = NULL; + return pk; +} + +static void +destroy_pk (struct primary_key *pk) +{ +/* destroying a Primary Key */ + struct pk_item *pi; + struct pk_item *pin; + if (pk == NULL) + return; + pi = pk->first; + while (pi != NULL) + { + pin = pi->next; + if (pi->column != NULL) + free (pi->column); + free (pi); + pi = pin; + } + if (pk->array != NULL) + free (pk->array); + free (pk); +} + +static void +add_to_pk (struct primary_key *pk, int position, const char *column) +{ +/* appending an item to a Primary Key */ + int len; + struct pk_item *pi; + if (pk == NULL) + return; + pi = malloc (sizeof (struct pk_item)); + pi->position = position; + len = strlen (column); + pi->column = malloc (len + 1); + strcpy (pi->column, column); + pi->next = NULL; + if (pk->first == NULL) + pk->first = pi; + if (pk->last != NULL) + pk->last->next = pi; + pk->last = pi; + pk->num_items += 1; +} + +static void +sort_pk (struct primary_key *pk) +{ +/* sorting the PK items by increasing position */ + struct pk_item *pi; + struct pk_item *pi2; + int i; + int ok = 1; + if (pk == NULL) + return; + if (pk->array != NULL) + free (pk->array); + pk->array = NULL; + if (pk->num_items <= 0) + return; + pk->array = malloc (sizeof (struct pk_item *) * pk->num_items); + pi = pk->first; + i = 0; + while (pi != NULL) + { + /* pre-loading the array */ + *(pk->array + i++) = pi; + pi = pi->next; + } + while (ok) + { + /* bubble sort */ + ok = 0; + for (i = 1; i < pk->num_items; i++) + { + pi = *(pk->array + (i - 1)); + pi2 = *(pk->array + i); + if (pi->position > pi2->position) + { + /* swapping */ + *(pk->array + (i - 1)) = pi2; + *(pk->array + i) = pi; + ok = 1; + } + } + } +} + +static int +create_gpkg_destination (sqlite3 * handle, const char *create_sql, + const char *table_name, const char *column_name, + const char *geometry_type, int has_z, int has_m, + int srid, int spatial_index) +{ +/* attempting to create a GPKG destination table */ + int ret; + char *sql_err = NULL; + char *sql; + +/* creating the table */ + ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* adding the geometry column */ + sql = + sqlite3_mprintf + ("SELECT gpkgAddGeometryColumn(Lower(%Q), Lower(%Q), %Q, %d, %d, %d)", + table_name, column_name, geometry_type, has_z, has_m, srid); + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("gpkgAddGeometryColumn \"%s\" error: %s\n", table_name, + sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* adding the geometry triggers */ + sql = + sqlite3_mprintf + ("SELECT gpkgAddGeometryTriggers(Lower(%Q), Lower(%Q))", + table_name, column_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("gpkgAddGeometryTriggers \"%s\" error: %s\n", + table_name, sql_err); + sqlite3_free (sql_err); + return 0; + } + + if (spatial_index) + { + /* adding Spatial Index support */ + sql = + sqlite3_mprintf + ("SELECT gpkgAddSpatialIndex(Lower(%Q), Lower(%Q))", + table_name, column_name); + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("gpkgAddSpatialIndex \"%s\" error: %s\n", + table_name, sql_err); + sqlite3_free (sql_err); + return 0; + } + } + return 1; +} + +static int +create_spatialite_destination (sqlite3 * handle, const char *create_sql, + const char *table_name, const char *column_name, + const char *geometry_type, const char *dims, + int srid) +{ +/* attempting to create a Spatialite destination table */ + int ret; + char *sql_err = NULL; + char *sql; + int i; + char **results; + int rows; + int columns; + int ok = 0; + +/* creating the table */ + ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* adding the geometry column */ + sql = + sqlite3_mprintf + ("SELECT AddGeometryColumn(Lower(%Q), Lower(%Q), %d, %Q, %Q)", + table_name, column_name, srid, geometry_type, dims); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + ok = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (!ok) + { + spatialite_e ("AddGeometryColumn \"%s\": error\n", table_name); + return 0; + } + return 1; +} + +static char * +prepare_create_table (sqlite3 * handle, const char *table_name, + const char *column_name) +{ +/* building a CREATE TABLE statement */ + int ret; + char *sql; + int i; + char **results; + int rows; + int columns; + char *create_sql; + char *prev_sql; + char *xtable; + int first = 1; + struct primary_key *pk = alloc_pk (); + + xtable = gaiaDoubleQuotedSql (table_name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + create_sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (", xtable); + free (xtable); + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *name; + const char *type; + int not_null; + int pk_idx; + char *xname; + char *xtype; + name = results[(i * columns) + 1]; + if (strcasecmp (name, column_name) == 0) + { + /* skipping the geometry column */ + continue; + } + type = results[(i * columns) + 2]; + not_null = atoi (results[(i * columns) + 3]); + pk_idx = atoi (results[(i * columns) + 5]); + if (pk_idx > 0) + add_to_pk (pk, pk_idx, name); + xname = gaiaDoubleQuotedSql (name); + xtype = gaiaDoubleQuotedSql (type); + prev_sql = create_sql; + if (first) + { + if (not_null) + create_sql = + sqlite3_mprintf ("%s\n\t\"%s\" \"%s\" NOT NULL", + prev_sql, xname, xtype); + else + create_sql = + sqlite3_mprintf ("%s\n\t\"%s\" \"%s\"", prev_sql, + xname, xtype); + first = 0; + } + else + { + if (not_null) + create_sql = + sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\" NOT NULL", + prev_sql, xname, xtype); + else + create_sql = + sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\"", prev_sql, + xname, xtype); + } + free (xname); + free (xtype); + sqlite3_free (prev_sql); + } + } + sqlite3_free_table (results); + + if (pk->num_items > 0) + { + /* setting up the Primary Key (if any) */ + char *pk_name; + char *xpk_name; + int idx; + sort_pk (pk); + prev_sql = create_sql; + pk_name = sqlite3_mprintf ("pk_%s", table_name); + xpk_name = gaiaDoubleQuotedSql (pk_name); + sqlite3_free (pk_name); + create_sql = + sqlite3_mprintf ("%s,\n\tCONSTRAINT \"%s\" PRIMARY KEY (", + prev_sql, xpk_name); + free (xpk_name); + sqlite3_free (prev_sql); + for (idx = 0; idx < pk->num_items; idx++) + { + char *xcolumn; + struct pk_item *pi = *(pk->array + idx); + prev_sql = create_sql; + xcolumn = gaiaDoubleQuotedSql (pi->column); + if (idx == 0) + create_sql = + sqlite3_mprintf ("%s\"%s\"", prev_sql, xcolumn); + else + create_sql = + sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn); + free (xcolumn); + sqlite3_free (prev_sql); + } + prev_sql = create_sql; + create_sql = sqlite3_mprintf ("%s)", prev_sql); + sqlite3_free (prev_sql); + } + destroy_pk (pk); + + prev_sql = create_sql; + create_sql = sqlite3_mprintf ("%s)", prev_sql); + sqlite3_free (prev_sql); + return create_sql; +} + +static int +create_Spatialite2GPKG_statements (sqlite3 * handle_in, sqlite3 * handle_out, + const char *table_name, + const char *geometry_column, + sqlite3_stmt ** stmt_in, + sqlite3_stmt ** stmt_out) +{ +/* attempting to create the IN and OUT prepared stmts */ + int ret; + char *sql; + int i; + char **results; + int rows; + int columns; + char *in_sql; + char *in2_sql; + char *out_sql; + char *out2_sql; + char *prev_sql; + char *prev2_sql; + char *xtable; + int first_in = 1; + int first_out = 1; + char *sql_err = NULL; + sqlite3_stmt *xstmt_in; + sqlite3_stmt *xstmt_out; + +/* starting a transaction */ + ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* building the IN and OUT sql expressions */ + xtable = gaiaDoubleQuotedSql (table_name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); + ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + in_sql = sqlite3_mprintf ("SELECT"); + in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable); + out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable); + out2_sql = sqlite3_mprintf (") VALUES ("); + free (xtable); + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *name; + char *xname; + name = results[(i * columns) + 1]; + xname = gaiaDoubleQuotedSql (name); + if (strcasecmp (name, geometry_column) == 0) + { + /* the geometry column */ + prev_sql = in_sql; + if (first_in) + { + in_sql = + sqlite3_mprintf ("%s AsGPB(\"%s\")", prev_sql, + xname); + first_in = 0; + } + else + { + in_sql = + sqlite3_mprintf ("%s, AsGPB(\"%s\")", prev_sql, + xname); + } + sqlite3_free (prev_sql); + prev_sql = out_sql; + prev2_sql = out2_sql; + if (first_out) + { + out_sql = + sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s?", prev2_sql); + first_out = 0; + } + else + { + out_sql = + sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); + } + sqlite3_free (prev_sql); + sqlite3_free (prev2_sql); + free (xname); + continue; + } + prev_sql = in_sql; + if (first_in) + { + in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname); + first_in = 0; + } + else + { + in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + } + sqlite3_free (prev_sql); + prev_sql = out_sql; + prev2_sql = out2_sql; + if (first_out) + { + out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s?", prev2_sql); + first_out = 0; + } + else + { + out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); + } + sqlite3_free (prev_sql); + sqlite3_free (prev2_sql); + free (xname); + } + } + sqlite3_free_table (results); + prev_sql = in_sql; + in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql); + sqlite3_free (prev_sql); + sqlite3_free (in2_sql); + prev_sql = out_sql; + out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql); + sqlite3_free (prev_sql); + sqlite3_free (out2_sql); + +/* preparing the IN stmt */ + ret = + sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name, + sqlite3_errmsg (handle_in)); + goto stop; + } + +/* preparing the OUT stmt */ + ret = + sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name, + sqlite3_errmsg (handle_out)); + goto stop; + } + + sqlite3_free (in_sql); + sqlite3_free (out_sql); + *stmt_in = xstmt_in; + *stmt_out = xstmt_out; + return 1; + + stop: + sqlite3_free (in_sql); + sqlite3_free (out_sql); + if (xstmt_in != NULL) + sqlite3_finalize (xstmt_in); + if (xstmt_out != NULL) + sqlite3_finalize (xstmt_out); + return 0; +} + +static int +create_GPKG2Spatialite_statements (sqlite3 * handle_in, sqlite3 * handle_out, + const char *table_name, + const char *geometry_column, + sqlite3_stmt ** stmt_in, + sqlite3_stmt ** stmt_out) +{ +/* attempting to create the IN and OUT prepared stmts */ + int ret; + char *sql; + int i; + char **results; + int rows; + int columns; + char *in_sql; + char *in2_sql; + char *out_sql; + char *out2_sql; + char *prev_sql; + char *prev2_sql; + char *xtable; + int first_in = 1; + int first_out = 1; + char *sql_err = NULL; + sqlite3_stmt *xstmt_in; + sqlite3_stmt *xstmt_out; + +/* starting a transaction */ + ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* building the IN and OUT sql expressions */ + xtable = gaiaDoubleQuotedSql (table_name); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); + ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + in_sql = sqlite3_mprintf ("SELECT"); + in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable); + out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable); + out2_sql = sqlite3_mprintf (") VALUES ("); + free (xtable); + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *name; + char *xname; + name = results[(i * columns) + 1]; + xname = gaiaDoubleQuotedSql (name); + if (strcasecmp (name, geometry_column) == 0) + { + /* the geometry column */ + prev_sql = in_sql; + if (first_in) + { + in_sql = + sqlite3_mprintf ("%s GeomFromGPB(\"%s\")", + prev_sql, xname); + first_in = 0; + } + else + { + in_sql = + sqlite3_mprintf ("%s, GeomFromGPB(\"%s\")", + prev_sql, xname); + } + sqlite3_free (prev_sql); + prev_sql = out_sql; + prev2_sql = out2_sql; + if (first_out) + { + out_sql = + sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s?", prev2_sql); + first_out = 0; + } + else + { + out_sql = + sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); + } + sqlite3_free (prev_sql); + sqlite3_free (prev2_sql); + free (xname); + continue; + } + prev_sql = in_sql; + if (first_in) + { + in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname); + first_in = 0; + } + else + { + in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + } + sqlite3_free (prev_sql); + prev_sql = out_sql; + prev2_sql = out2_sql; + if (first_out) + { + out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s?", prev2_sql); + first_out = 0; + } + else + { + out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); + out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); + } + sqlite3_free (prev_sql); + sqlite3_free (prev2_sql); + free (xname); + } + } + sqlite3_free_table (results); + prev_sql = in_sql; + in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql); + sqlite3_free (prev_sql); + sqlite3_free (in2_sql); + prev_sql = out_sql; + out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql); + sqlite3_free (prev_sql); + sqlite3_free (out2_sql); + +/* preparing the IN stmt */ + ret = + sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name, + sqlite3_errmsg (handle_in)); + goto stop; + } + +/* preparing the OUT stmt */ + ret = + sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name, + sqlite3_errmsg (handle_out)); + goto stop; + } + + sqlite3_free (in_sql); + sqlite3_free (out_sql); + *stmt_in = xstmt_in; + *stmt_out = xstmt_out; + return 1; + + stop: + sqlite3_free (in_sql); + sqlite3_free (out_sql); + if (xstmt_in != NULL) + sqlite3_finalize (xstmt_in); + if (xstmt_out != NULL) + sqlite3_finalize (xstmt_out); + return 0; +} + +static int +do_copy_table (sqlite3 * handle_in, sqlite3 * handle_out, + sqlite3_stmt * stmt_in, sqlite3_stmt * stmt_out, + const char *table_name) +{ +/* copying all rows from IN and OUT tables */ + int ret; + char *sql_err = NULL; + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + int c; + int cols = sqlite3_column_count (stmt_in); + sqlite3_reset (stmt_out); + sqlite3_clear_bindings (stmt_out); + for (c = 0; c < cols; c++) + { + /* binding column values */ + switch (sqlite3_column_type (stmt_in, c)) + { + case SQLITE_INTEGER: + sqlite3_bind_int64 (stmt_out, c + 1, + sqlite3_column_int64 (stmt_in, + c)); + break; + case SQLITE_FLOAT: + sqlite3_bind_double (stmt_out, c + 1, + sqlite3_column_double (stmt_in, + c)); + break; + case SQLITE_TEXT: + sqlite3_bind_text (stmt_out, c + 1, + (const char *) + sqlite3_column_text (stmt_in, c), + sqlite3_column_bytes (stmt_in, + c), + SQLITE_STATIC); + break; + case SQLITE_BLOB: + sqlite3_bind_blob (stmt_out, c + 1, + sqlite3_column_blob (stmt_in, c), + sqlite3_column_bytes (stmt_in, + c), + SQLITE_STATIC); + break; + default: + sqlite3_bind_null (stmt_out, c + 1); + break; + }; + } + ret = sqlite3_step (stmt_out); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + /* an unexpected error occurred */ + spatialite_e ("Error while inserting into \"%s\": %s\n", + table_name, sqlite3_errmsg (handle_out)); + goto stop; + } + } + else + { + /* an unexpected error occurred */ + spatialite_e ("Error while querying from \"%s\": %s\n", + table_name, sqlite3_errmsg (handle_in)); + goto stop; + } + } + +/* committing the still pending transaction */ + ret = sqlite3_exec (handle_out, "COMMIT", NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("COMMIT TRANSACTION error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + return 1; + + stop: +/* invalidating the still pending transaction */ + ret = sqlite3_exec (handle_out, "ROLLBACK", NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("ROLLBACK TRANSACTION error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + return 0; +} + +static int +do_insert_content (sqlite3 * handle, const char *table_name, + const char *geometry_column, int srid) +{ +/* registering the GPKG table in GPKG_CONTENTS */ + char *sql; + char *xgeom; + char *xtable; + int ret; + char *sql_err = NULL; + + xtable = gaiaDoubleQuotedSql (table_name); + xgeom = gaiaDoubleQuotedSql (geometry_column); + sql = sqlite3_mprintf ("INSERT INTO gpkg_contents (table_name, data_type, " + "identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id) " + "SELECT Lower(%Q), 'features', Lower(%Q), ' ', " + "strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), Min(ST_MinX(\"%s\")), " + "Min(ST_MinY(\"%s\")), Max(ST_MaxX(\"%s\")), Max(ST_MaxY(\"%s\")), %d " + "FROM \"%s\"", table_name, table_name, xgeom, xgeom, + xgeom, xgeom, srid, xtable); + free (xgeom); + free (xtable); + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("INSERT INTO gpkg_contents error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + return 1; +} + +static int +copy_spatialite2GPKG (sqlite3 * handle_in, sqlite3 * handle_out, int legacy) +{ +/* attempting to copy all Geometry Tables */ + int ret; + const char *sql; + int i; + char **results; + int rows; + int columns; + char *create_sql; + sqlite3_stmt *stmt_in = NULL; + sqlite3_stmt *stmt_out = NULL; + + if (legacy) + { + sql = "SELECT f_table_name, f_geometry_column, type, " + "coord_dimension, srid, spatial_index_enabled " + "FROM geometry_columns"; + } + else + { + sql = "SELECT f_table_name, f_geometry_column, geometry_type, " + "srid, spatial_index_enabled FROM geometry_columns"; + } + ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *table_name; + const char *geometry_column; + const char *geometry_type; + int has_z = 0; + int has_m = 0; + int srid; + int spatial_index; + table_name = results[(i * columns) + 0]; + geometry_column = results[(i * columns) + 1]; + if (legacy) + { + const char *dims; + geometry_type = results[(i * columns) + 2]; + if (strcasecmp (geometry_type, "GEOMETRYCOLLECTION") == 0) + geometry_type = "GEOMCOLLECTION"; + dims = results[(i * columns) + 2]; + if (strcasecmp (dims, "XYZ") == 0 + || strcasecmp (dims, "XYZM") == 0) + has_z = 1; + if (strcasecmp (dims, "XYM") == 0 + || strcasecmp (dims, "XYZM") == 0) + has_m = 1; + srid = atoi (results[(i * columns) + 4]); + spatial_index = atoi (results[(i * columns) + 5]); + } + else + { + int gtype = atoi (results[(i * columns) + 2]); + switch (gtype) + { + case GAIA_POINT: + case GAIA_POINTM: + case GAIA_POINTZ: + case GAIA_POINTZM: + geometry_type = "POINT"; + break; + case GAIA_LINESTRING: + case GAIA_LINESTRINGM: + case GAIA_LINESTRINGZ: + case GAIA_LINESTRINGZM: + geometry_type = "LINESTRING"; + break; + case GAIA_POLYGON: + case GAIA_POLYGONM: + case GAIA_POLYGONZ: + case GAIA_POLYGONZM: + geometry_type = "POLYGON"; + break; + case GAIA_MULTIPOINT: + case GAIA_MULTIPOINTM: + case GAIA_MULTIPOINTZ: + case GAIA_MULTIPOINTZM: + geometry_type = "MULTIPOINT"; + break; + case GAIA_MULTILINESTRING: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTILINESTRINGZM: + geometry_type = "MULTILINESTRING"; + break; + case GAIA_MULTIPOLYGON: + case GAIA_MULTIPOLYGONM: + case GAIA_MULTIPOLYGONZ: + case GAIA_MULTIPOLYGONZM: + geometry_type = "MULTIPOLYGON"; + break; + case GAIA_GEOMETRYCOLLECTION: + case GAIA_GEOMETRYCOLLECTIONM: + case GAIA_GEOMETRYCOLLECTIONZ: + case GAIA_GEOMETRYCOLLECTIONZM: + geometry_type = "GEOMCOLLECTION"; + break; + case 0: + case 1000: + case 2000: + case 3000: + geometry_type = "GEOMETRY"; + break; + }; + switch (gtype) + { + case 2000: + case GAIA_POINTM: + case GAIA_LINESTRINGM: + case GAIA_POLYGONM: + case GAIA_MULTIPOINTM: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTIPOLYGONM: + case GAIA_GEOMETRYCOLLECTIONM: + has_m = 1; + break; + case 1000: + case GAIA_POINTZ: + case GAIA_LINESTRINGZ: + case GAIA_POLYGONZ: + case GAIA_MULTIPOINTZ: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTIPOLYGONZ: + case GAIA_GEOMETRYCOLLECTIONZ: + has_z = 1; + break; + case 3000: + case GAIA_POINTZM: + case GAIA_LINESTRINGZM: + case GAIA_POLYGONZM: + case GAIA_MULTIPOINTZM: + case GAIA_MULTILINESTRINGZM: + case GAIA_MULTIPOLYGONZM: + case GAIA_GEOMETRYCOLLECTIONZM: + has_z = 1; + has_m = 1; + break; + }; + srid = atoi (results[(i * columns) + 3]); + spatial_index = atoi (results[(i * columns) + 4]); + } + create_sql = + prepare_create_table (handle_in, table_name, + geometry_column); + if (create_sql == NULL) + { + /* error: unable to create CREATE TABLE sql statement */ + sqlite3_free_table (results); + return 0; + } + if (!create_gpkg_destination + (handle_out, create_sql, table_name, geometry_column, + geometry_type, has_z, has_m, srid, spatial_index)) + { + /* error: unable to create the target destination */ + sqlite3_free (create_sql); + sqlite3_free_table (results); + return 0; + } + sqlite3_free (create_sql); + if (!create_Spatialite2GPKG_statements + (handle_in, handle_out, table_name, geometry_column, + &stmt_in, &stmt_out)) + { + /* error: unable to create the IN and OUT stmts */ + sqlite3_free_table (results); + return 0; + } + if (!do_copy_table + (handle_in, handle_out, stmt_in, stmt_out, table_name)) + { + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + sqlite3_free_table (results); + return 0; + } + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + if (!do_insert_content + (handle_out, table_name, geometry_column, srid)) + { + sqlite3_free_table (results); + return 0; + } + } + } + sqlite3_free_table (results); + return 1; +} + +static int +copy_GPKG2Spatialite (sqlite3 * handle_in, sqlite3 * handle_out) +{ +/* attempting to copy all Geometry Tables */ + int ret; + const char *sql; + int i; + char **results; + int rows; + int columns; + char *create_sql; + sqlite3_stmt *stmt_in = NULL; + sqlite3_stmt *stmt_out = NULL; + + sql = "SELECT table_name, column_name, geometry_type_name, " + "srs_id, z, m FROM gpkg_geometry_columns"; + ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *table_name; + const char *geometry_column; + const char *geometry_type; + int has_z = 0; + int has_m = 0; + int srid; + const char *dims = "XY"; + table_name = results[(i * columns) + 0]; + geometry_column = results[(i * columns) + 1]; + geometry_type = results[(i * columns) + 2]; + if (strcasecmp (geometry_type, "GEOMCOLLECTION") == 0) + geometry_type = "GEOMETRYCOLLECTION"; + srid = atoi (results[(i * columns) + 3]); + has_z = atoi (results[(i * columns) + 4]); + has_m = atoi (results[(i * columns) + 5]); + if (has_z && has_m) + dims = "XYZM"; + else if (has_z) + dims = "XYZ"; + else if (has_m) + dims = "XYM"; + create_sql = + prepare_create_table (handle_in, table_name, + geometry_column); + if (create_sql == NULL) + { + /* error: unable to create CREATE TABLE sql statement */ + sqlite3_free_table (results); + return 0; + } + if (!create_spatialite_destination + (handle_out, create_sql, table_name, geometry_column, + geometry_type, dims, srid)) + { + /* error: unable to create the target destination */ + sqlite3_free (create_sql); + sqlite3_free_table (results); + return 0; + } + sqlite3_free (create_sql); + if (!create_GPKG2Spatialite_statements + (handle_in, handle_out, table_name, geometry_column, + &stmt_in, &stmt_out)) + { + /* error: unable to create the IN and OUT stmts */ + sqlite3_free_table (results); + return 0; + } + if (!do_copy_table + (handle_in, handle_out, stmt_in, stmt_out, table_name)) + { + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + sqlite3_free_table (results); + return 0; + } + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + } + } + sqlite3_free_table (results); + return 1; +} + +static int +check_valid_gpkg (sqlite3 * handle) +{ +/* checking for a valid GPKG origin */ + int ret; + int i; + char **results; + int rows; + int columns; + int result; + const char *sql; + +/* checking Metadata tables */ + sql = "SELECT CheckGeoPackageMetaData()"; + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + result = 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + result = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (result != 1) + { + /* not presenting acceptable Metadata tables */ + return 0; + } + +/* testing that at least one Geometry is actually defined */ + sql = "SELECT Count(*) FROM gpkg_geometry_columns"; + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + result = 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + result = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (result <= 0) + return 0; + return 1; +} + +static int +check_valid_spatialite (sqlite3 * handle, int *legacy) +{ +/* checking for a valid SpatiaLite origin */ + int ret; + int i; + char **results; + int rows; + int columns; + int result; + const char *sql; + +/* checking Metadata tables */ + sql = "SELECT CheckSpatialMetaData()"; + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + result = 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + result = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (result == 1 || result == 3) + ; + else + { + /* not presenting acceptable Metadata tables */ + return 0; + } + if (result == 1) + *legacy = 1; + else + *legacy = 0; + +/* testing that at least one Geometry is actually defined */ + sql = "SELECT Count(*) FROM geometry_columns"; + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + result = 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + result = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (result <= 0) + return 0; + return 1; +} + +static int +initialize_gpkg (sqlite3 * handle) +{ +/* attempting to initialize a GPKG destination */ + int ret; + const char *sql; + char *sql_err = NULL; + +/* creating Metadata tables */ + sql = "SELECT gpkgCreateBaseTables()"; + + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + spatialite_e ("gpkgCreateBaseTables error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + return 1; +} + +static int +initialize_spatialite (sqlite3 * handle) +{ +/* attempting to initialize a SpatiaLite destination */ + int ret; + int i; + char **results; + int rows; + int columns; + int result; + const char *sql; + +/* creating Metadata tables */ + sql = "SELECT InitSpatialMetaData(1)"; + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + result = 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + result = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + return result; +} + +SPATIALITE_DECLARE int +gaiaGPKG2Spatialite (sqlite3 * handle_in, const char *gpkg_in_path, + sqlite3 * handle_out, const char *splite_out_path) +{ +/* attempting to create a SpatiaLite DB by converting a GPKG DB */ + if (handle_in == NULL) + goto error; + if (!check_valid_gpkg (handle_in)) + { + /* not a valid IN GPKG: quitting */ + spatialite_e ("Invalid GPKG origin:\n\"%s\"\n", gpkg_in_path); + goto error; + } + if (handle_out == NULL) + goto error; + if (!initialize_spatialite (handle_out)) + { + /* unable to initialize a valid SpatiaLite DB: quitting */ + spatialite_e + ("Unable to initialize SpatiaLite destination:\n\"%s\"\n", + splite_out_path); + goto error; + } + +/* copying/converting all Spatial tables */ + if (!copy_GPKG2Spatialite (handle_in, handle_out)) + goto error; + return 1; + + error: + spatialite_e ("Conversion aborted due to previous error(s)\n"); + return 0; +} + +SPATIALITE_DECLARE int +gaiaSpatialite2GPKG (sqlite3 * handle_in, const char *splite_in_path, + sqlite3 * handle_out, const char *gpkg_out_path) +{ +/* attempting to create a GPKG DB by converting a SpatiaLite DB */ + int legacy; + + if (handle_in == NULL) + goto error; + if (!check_valid_spatialite (handle_in, &legacy)) + { + /* not a valid IN GPKG: quitting */ + spatialite_e ("Invalid SpatiaLite origin:\n\"%s\"\n", splite_in_path); + goto error; + } + if (handle_out == NULL) + goto error; + if (!initialize_gpkg (handle_out)) + { + /* unable to initialize a valid GPKG DB: quitting */ + spatialite_e ("Unable to initialize GPKG destination:\n\"%s\"\n", + gpkg_out_path); + goto error; + } + +/* copying/converting all Spatial tables */ + if (!copy_spatialite2GPKG (handle_in, handle_out, legacy)) + goto error; + return 1; + + error: + spatialite_e ("Conversion aborted due to previous error(s)\n"); + return 0; +} + +#endif /* end enabling GeoPackage extensions */ diff --git a/src/spatialite/src/geopackage/geopackage_internal.h b/src/spatialite/src/geopackage/geopackage_internal.h new file mode 100644 index 0000000..31c7058 --- /dev/null +++ b/src/spatialite/src/geopackage/geopackage_internal.h @@ -0,0 +1,46 @@ +#include <errno.h> +#include <limits.h> +#include <stdio.h> +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +#include <spatialite/sqlite.h> + +#include "spatialite/debug.h" + +#include "spatialite.h" +#include <spatialite_private.h> + +#define GEOPACKAGE_HEADER_LEN 8 +#define GEOPACKAGE_2D_ENVELOPE_LEN 32 +#define GEOPACKAGE_3D_ENVELOPE_LEN 48 +#define GEOPACKAGE_4D_ENVELOPE_LEN 64 +#define GEOPACKAGE_MAGIC1 0x47 +#define GEOPACKAGE_MAGIC2 0x50 +#define GEOPACKAGE_VERSION 0x00 +#define GEOPACKAGE_WKB_LITTLEENDIAN 0x01 +#define GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG (0x01 << 5) +#define GEOPACKAGE_WKB_EMPTY_FLAG (0x01 << 4) +#define GEOPACKAGE_2D_ENVELOPE 0x01 +#define GEOPACKAGE_3D_ENVELOPE 0x02 +#define GEOPACKAGE_2DM_ENVELOPE 0x03 +#define GEOPACKAGE_3DM_ENVELOPE 0x04 +#define GEOPACKAGE_FLAGS_2D_LITTLEENDIAN ((GEOPACKAGE_2D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) +#define GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN ((GEOPACKAGE_2DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) +#define GEOPACKAGE_FLAGS_3D_LITTLEENDIAN ((GEOPACKAGE_3D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) +#define GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN ((GEOPACKAGE_3DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) +#define GEOPACKAGE_WKB_POINT 1 +#define GEOPACKAGE_WKB_POINTZ 1001 +#define GEOPACKAGE_WKB_POINTM 2001 +#define GEOPACKAGE_WKB_POINTZM 3001 +#define GEOPACKAGE_WKB_HEADER_LEN ((sizeof(char) + sizeof(int))) + +#define GEOPACKAGE_DEFAULT_UNDEFINED_SRID 0 + +GEOPACKAGE_DECLARE void gpkgSetHeader2DLittleEndian (unsigned char *ptr, + int srid, int endian_arch); + +GEOPACKAGE_DECLARE void gpkgSetHeader2DMbr (unsigned char *ptr, double min_x, + double min_y, double max_x, + double max_y, int endian_arch); diff --git a/src/spatialite/src/geopackage/gpkgAddGeometryColumn.c b/src/spatialite/src/geopackage/gpkgAddGeometryColumn.c new file mode 100644 index 0000000..e44b77f --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgAddGeometryColumn.c @@ -0,0 +1,209 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include <math.h> + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE + +static char *SUPPORTED_GEOMETRY_TYPES[] = { + "GEOMETRY", + "POINT", + "LINESTRING", + "POLYGON", + "MULTIPOINT", + "MULTILINESTRING", + "MULTIPOLYGON", + "GEOMCOLLECTION", + NULL +}; + +GEOPACKAGE_DECLARE void +fnct_gpkgAddGeometryColumn (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgAddGeomtryColumn(table_name, geometry_column_name, geometry_type, with_z, with_m, srs_id) +/ +/ Adds a geometry column to the specified table +/ geometry_type is a normal WKT name: "GEOMETRY", "POINT", "LINESTRING", "POLYGON", +/ "MULTIPOINT", "MULTILINESTRING", "MULTIPOLYGON", "GEOMCOLLECTION" +/ with_z is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values) +/ with_m is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values) +/ +/ returns nothing on success, raises exception on error +/ +/ This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, +/ 256x256 pixels, 1 tile at the top level (zoom level 0). +/ +*/ + const unsigned char *table; + const unsigned char *geometry_column_name; + const unsigned char *geometry_type_name = NULL; + int with_z; + int with_m; + int srid; + int i = 0; + + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type", + -1); + return; + } + geometry_column_name = sqlite3_value_text (argv[1]); + + if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type", + -1); + return; + } + for (i = 0; SUPPORTED_GEOMETRY_TYPES[i] != NULL; ++i) + { + if (strcasecmp + ((const char *) sqlite3_value_text (argv[2]), + SUPPORTED_GEOMETRY_TYPES[i]) == 0) + { + geometry_type_name = + (const unsigned char *) SUPPORTED_GEOMETRY_TYPES[i]; + break; + } + } + if (geometry_type_name == NULL) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type", + -1); + return; + } + + if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type", + -1); + return; + } + with_z = (double) sqlite3_value_int (argv[3]); + if ((with_z != 0) && (with_z != 1) && (with_z != 2)) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)", + -1); + return; + } + + if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type", + -1); + return; + } + with_m = (double) sqlite3_value_int (argv[4]); + if ((with_m != 0) && (with_m != 1) && (with_m != 2)) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)", + -1); + return; + } + + if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type", + -1); + return; + } + srid = sqlite3_value_int (argv[5]); + + sqlite = sqlite3_context_db_handle (context); + + /* Add column definition to metadata table */ + sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_geometry_columns " + "(table_name, column_name, geometry_type_name, srs_id, z, m) " + "VALUES (%Q, %Q, %Q, %i, %i, %i)", + table, geometry_column_name, geometry_type_name, + srid, with_z, with_m); + + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + + /* extend table_name to actually have a geometry column */ + sql_stmt = sqlite3_mprintf ("ALTER TABLE %s ADD COLUMN %s BLOB", + table, geometry_column_name); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + + /* TODO: add triggers */ +} + +#endif diff --git a/src/spatialite/src/geopackage/gpkgBinary.c b/src/spatialite/src/geopackage/gpkgBinary.c new file mode 100644 index 0000000..849c332 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgBinary.c @@ -0,0 +1,512 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE + +#define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc; + +GEOPACKAGE_DECLARE void +gpkgSetHeader2DLittleEndian (unsigned char *ptr, int srid, int endian_arch) +{ + *ptr = GEOPACKAGE_MAGIC1; + *(ptr + 1) = GEOPACKAGE_MAGIC2; + *(ptr + 2) = GEOPACKAGE_VERSION; + *(ptr + 3) = GEOPACKAGE_FLAGS_2D_LITTLEENDIAN; + gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ +} + +GEOPACKAGE_DECLARE void +gpkgSetHeader2DMbr (unsigned char *ptr, double min_x, double min_y, + double max_x, double max_y, int endian_arch) +{ + gaiaExport64 (ptr, min_x, 1, endian_arch); + gaiaExport64 (ptr + sizeof (double), max_x, 1, endian_arch); + gaiaExport64 (ptr + 2 * sizeof (double), min_y, 1, endian_arch); + gaiaExport64 (ptr + 3 * sizeof (double), max_y, 1, endian_arch); +} + +static void +gaiaToGPB (gaiaGeomCollPtr geom, unsigned char **result, unsigned int *size) +{ + int wkbOnlyLength; + unsigned char *wkbOnlyGeometry = NULL; + unsigned char *ptr; + int endian_arch = gaiaEndianArch (); + + gaiaToWkb (geom, &wkbOnlyGeometry, &wkbOnlyLength); + /* Calculate output size */ + /* We only do 2D envelopes (MBR) irrespective of the input geometry dimensions */ + *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN; + *size += wkbOnlyLength; + + /* allocate result and fill with "canary" value */ + *result = malloc (*size); + if (*result == NULL) + { + return; + } + memset (*result, 0xD9, *size); + ptr = *result; + + /* build header */ + gpkgSetHeader2DLittleEndian (ptr, geom->Srid, endian_arch); + + /* build MBR */ + gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, geom->MinX, geom->MinY, + geom->MaxX, geom->MaxY, endian_arch); + + /* copy wkbonly results to result */ + memcpy (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN, + wkbOnlyGeometry, wkbOnlyLength); + + free (wkbOnlyGeometry); +} + + +GEOPACKAGE_DECLARE void +fnct_ToGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ AsGPB(BLOB encoded geometry) +/ +/ converts the (spatialite) geometry blob into a GeoPackage format geometry blob +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + unsigned int len; + unsigned char *p_result = NULL; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { + sqlite3_result_null (context); + return; + } + else + { + gaiaToGPB (geo, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } + } + gaiaFreeGeomColl (geo); +} + +static int +sanity_check_gpb (const unsigned char *wkb, int size, int *srid, + unsigned int *envelope_length) +{ + /* checking type coherency for GeoPackageBinary encoded GEOMETRY */ + int little_endian; + int endian_arch = gaiaEndianArch (); + char flags; + int envelope_code; + + if (size < GEOPACKAGE_HEADER_LEN) + { + return 0; /* too short to be GPB */ + } + if ((*(wkb + 0) != GEOPACKAGE_MAGIC1) || (*(wkb + 1) != GEOPACKAGE_MAGIC2)) + { + return 0; /* doesn't match required signature */ + } + if (*(wkb + 2) != GEOPACKAGE_VERSION) + { + return 0; /* we only know how to parse version 1 */ + } + + flags = *(wkb + 3); + + little_endian = flags & GEOPACKAGE_WKB_LITTLEENDIAN; + + envelope_code = ((flags >> 1) & 0x07); + switch (envelope_code) + { + case 0: + *envelope_length = 0; + break; + case 1: + *envelope_length = 32; + break; + case 2: + case 3: + *envelope_length = 48; + break; + case 4: + *envelope_length = 64; + break; + default: + /* illegal value - not valid GeoPackageBinary */ + fprintf (stderr, "Unsupported geopackage envelope value: 0x%x\n", + envelope_code); + return 0; + } + + if (flags & GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG) + { + fprintf (stderr, + "unsupported geopackage binary type (extended geopackage binary)\n"); + return 0; + } + + *srid = gaiaImport32 (wkb + 4, little_endian, endian_arch); + + return 1; +} + +GEOPACKAGE_DECLARE gaiaGeomCollPtr +gaiaFromGeoPackageGeometryBlob (const unsigned char *gpb, unsigned int gpb_len) +{ + gaiaGeomCollPtr geo = NULL; + int srid = GEOPACKAGE_DEFAULT_UNDEFINED_SRID; + unsigned int envelope_length = 0; + const unsigned char *wkb; + unsigned int wkb_len; + + if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) + { + return NULL; + } + + wkb = gpb + GEOPACKAGE_HEADER_LEN + envelope_length; + wkb_len = gpb_len - (GEOPACKAGE_HEADER_LEN + envelope_length); + + geo = gaiaFromWkb (wkb, wkb_len); + if (geo == NULL) + { + return NULL; + } + geo->Srid = srid; + + return geo; +} + +GEOPACKAGE_DECLARE void +fnct_GeomFromGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromGPB(GPB encoded geometry) +/ +/ returns a geometry created by parsing a GeoPackageBinary encoded blob +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *gpb; + unsigned int gpb_len; + gaiaGeomCollPtr geo = NULL; + + + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + gpb = sqlite3_value_blob (argv[0]); + gpb_len = sqlite3_value_bytes (argv[0]); + + geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +/* Sandro Furieri - 2014-05-19 */ + +GEOPACKAGE_DECLARE int +gaiaIsValidGPB (const unsigned char *gpb, int gpb_len) +{ +/* checks for a valid GPB */ + int srid; + unsigned int envelope_length; + + if (gpb == NULL) + return 0; + return sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length); +} + +GEOPACKAGE_DECLARE int +gaiaGetSridFromGPB (const unsigned char *gpb, int gpb_len) +{ +/* extracts the SRID from a valid GPB */ + int srid; + unsigned int envelope_length; + + if (gpb == NULL) + return -1; + if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) + return -1; + return srid; +} + +GEOPACKAGE_DECLARE int +gaiaIsEmptyGPB (const unsigned char *gpb, int gpb_len) +{ +/* checks for an empty GPB */ + int srid; + unsigned int envelope_length; + int is_empty; + + if (gpb == NULL) + return -1; + if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) + return -1; + is_empty = *(gpb + 3) & GEOPACKAGE_WKB_EMPTY_FLAG; + return is_empty; +} + +GEOPACKAGE_DECLARE int +gaiaGetEnvelopeFromGPB (const unsigned char *gpb, int gpb_len, double *min_x, + double *max_x, double *min_y, double *max_y, int *has_z, + double *min_z, double *max_z, int *has_m, double *min_m, + double *max_m) +{ +/* attempts to retrieve a full Envelope from a GPB */ + gaiaGeomCollPtr geo; + double min; + double max; + if (gpb == NULL) + return 0; + geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); + if (geo == NULL) + return 0; +/* +/ defensive programming +/ +/ the GPKG seems to be a rather sparse and inconsistent standard +/ so we'll always ignore the Envelope declared by GPB +/ and we'll instead recompute 'our' Envelope from scratch +*/ + gaiaMbrGeometry (geo); + *min_x = geo->MinX; + *max_x = geo->MaxX; + *min_y = geo->MinY; + *max_y = geo->MaxY; + if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) + { + *has_z = 1; + gaiaZRangeGeometry (geo, &min, &max); + *min_z = min; + *max_z = max; + } + else + *has_z = 0; + if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) + { + *has_m = 1; + gaiaMRangeGeometry (geo, &min, &max); + *min_m = min; + *max_m = max; + } + else + *has_m = 0; + gaiaFreeGeomColl (geo); + return 1; +} + +GEOPACKAGE_DECLARE char * +gaiaGetGeometryTypeFromGPB (const unsigned char *gpb, int gpb_len) +{ +/* attempts to retrieve the Geometry Type from a GPB */ + gaiaGeomCollPtr geo; + const char *type = NULL; + int len; + char *gtype; + + if (gpb == NULL) + return NULL; + geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); + if (geo == NULL) + return NULL; +/* +/ defensive programming +/ +/ the GPKG seems to be a rather sparse and inconsistent standard +/ so we'll always fetch the Geometry Type from 'our' Geometry Type +*/ + switch (gaiaGeometryType (geo)) + { + case GAIA_POINT: + case GAIA_POINTZ: + case GAIA_POINTM: + case GAIA_POINTZM: + type = "POINT"; + break; + case GAIA_LINESTRING: + case GAIA_LINESTRINGZ: + case GAIA_LINESTRINGM: + case GAIA_LINESTRINGZM: + type = "LINESTRING"; + break; + case GAIA_POLYGON: + case GAIA_POLYGONZ: + case GAIA_POLYGONM: + case GAIA_POLYGONZM: + type = "POLYGON"; + break; + case GAIA_MULTIPOINT: + case GAIA_MULTIPOINTZ: + case GAIA_MULTIPOINTM: + case GAIA_MULTIPOINTZM: + type = "MULTIPOINT"; + break; + case GAIA_MULTILINESTRING: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTILINESTRINGZM: + type = "MULTILINESTRING"; + break; + case GAIA_MULTIPOLYGON: + case GAIA_MULTIPOLYGONZ: + case GAIA_MULTIPOLYGONM: + case GAIA_MULTIPOLYGONZM: + type = "MULTIPOLYGON"; + break; + case GAIA_GEOMETRYCOLLECTION: + case GAIA_GEOMETRYCOLLECTIONZ: + case GAIA_GEOMETRYCOLLECTIONM: + case GAIA_GEOMETRYCOLLECTIONZM: + type = "GEOMCOLLECTION"; + break; + }; + gaiaFreeGeomColl (geo); + + if (type == NULL) + return NULL; + len = strlen (type); + gtype = malloc (len + 1); + strcpy (gtype, type); + return gtype; +} + +GEOPACKAGE_DECLARE void +fnct_GPKG_IsAssignable (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GPKG_IsAssignale(expected_type_name TEXT, actual_type_name TEXT) +/ +/ returns: +/ 1 if the expected type is the same or a super-type of actual type +/ 0 otherwise +*/ + const char *expected; + const char *actual; + int ret = 0; + + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, ret); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_int (context, ret); + return; + } + expected = (const char *) sqlite3_value_text (argv[0]); + actual = (const char *) sqlite3_value_text (argv[1]); + if (strcasecmp (expected, actual) == 0) + ret = 1; + if (strcasecmp (expected, "GEOMETRY") == 0) + ret = 1; + if (strcasecmp (expected, "MULTIPOINT") == 0 + && strcasecmp (actual, "POINT") == 0) + ret = 1; + if (strcasecmp (expected, "MULTILINESTRING") == 0 + && strcasecmp (actual, "LINESTRING") == 0) + ret = 1; + if (strcasecmp (expected, "MULTIPOLYGON") == 0 + && strcasecmp (actual, "POLYGON") == 0) + ret = 1; + sqlite3_result_int (context, ret); +} + +GEOPACKAGE_DECLARE void +fnct_IsValidGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidGPB(GPB encoded geometry) +/ +/ check for a valid GPB encoded geometry +*/ + const unsigned char *gpb; + unsigned int gpb_len; + + + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, 0); + return; + } + gpb = sqlite3_value_blob (argv[0]); + gpb_len = sqlite3_value_bytes (argv[0]); + sqlite3_result_int (context, gaiaIsValidGPB (gpb, gpb_len)); +} + +/* end Sandro Furieri - 2014-05-19 */ + +#endif diff --git a/src/spatialite/src/geopackage/gpkgCreateBaseTables.c b/src/spatialite/src/geopackage/gpkgCreateBaseTables.c new file mode 100644 index 0000000..aa7bf8b --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgCreateBaseTables.c @@ -0,0 +1,373 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#define GAIA_UNUSED() if (argc || argv) argc = argc; + +#ifdef ENABLE_GEOPACKAGE + +GEOPACKAGE_DECLARE void +fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgCreateBaseTables() +/ +/ Create base tables for an "empty" GeoPackage +/ returns nothing on success, raises exception on error +/ +*/ + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + int i = 0; + + const char *tableSchemas[] = { + "PRAGMA application_id = 1196437808", + + /* GeoPackage specification Table 18 */ + "CREATE TABLE gpkg_spatial_ref_sys (\n" + "srs_name TEXT NOT NULL,\n" + "srs_id INTEGER NOT NULL PRIMARY KEY,\n" + "organization TEXT NOT NULL,\n" + "organization_coordsys_id INTEGER NOT NULL,\n" + "definition TEXT NOT NULL,\n" "description TEXT\n" ")", + + /* GeoPackage Section 1.1.2.1.2 */ + "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Cartesian', -1, 'NONE', -1, 'Undefined')", + "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Geographic', 0, 'NONE', 0, 'Undefined')", + "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('WGS84', 4326, 'epsg', 4326, 'GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]')", + + /* GeoPackage specification Table 4 / Table 21 */ + /* Note that NULL is distinct on UNIQUE columns, so identifier definition isn't quite that far out-there */ + "CREATE TABLE gpkg_contents (\n" + "table_name TEXT NOT NULL PRIMARY KEY,\n" + "data_type TEXT NOT NULL,\n" + "identifier TEXT UNIQUE,\n" + "description TEXT DEFAULT '',\n" + "last_change TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" + "min_x DOUBLE,\n" + "min_y DOUBLE,\n" + "max_x DOUBLE,\n" + "max_y DOUBLE,\n" + "srs_id INTEGER,\n" + "CONSTRAINT fk_gc_r_srid FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))", + + /* GeoPackage specification Table 6 / Table 22 */ + "CREATE TABLE gpkg_geometry_columns (\n" + "table_name TEXT NOT NULL,\n" + "column_name TEXT,\n" + "geometry_type_name TEXT,\n" + "srs_id INTEGER NOT NULL,\n" + "z INTEGER NOT NULL,\n" + "m TINYINT NOT NULL,\n" + "CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name),\n" + "CONSTRAINT uk_gc_table_name UNIQUE (table_name),\n" + "CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n" + "CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))", + + /* GeoPackage specification Table 8 / Table 26 */ + "CREATE TABLE gpkg_tile_matrix_set (\n" + "table_name TEXT NOT NULL PRIMARY KEY,\n" + "srs_id INTEGER NOT NULL,\n" + "min_x DOUBLE NOT NULL,\n" + "min_y DOUBLE NOT NULL,\n" + "max_x DOUBLE NOT NULL,\n" + "max_y DOUBLE NOT NULL,\n" + "CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n" + "CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))", + + /* Geopackage specification Table 9 / Table 27 */ + /* TODO: figure out if the defaults are required - https://github.com/opengis/geopackage/issues/67 */ + "CREATE TABLE gpkg_tile_matrix (\n" + "table_name TEXT NOT NULL,\n" + "zoom_level INTEGER NOT NULL,\n" + "matrix_width INTEGER NOT NULL,\n" + "matrix_height INTEGER NOT NULL,\n" + "tile_width INTEGER NOT NULL,\n" + "tile_height INTEGER NOT NULL,\n" + "pixel_x_size DOUBLE NOT NULL,\n" + "pixel_y_size DOUBLE NOT NULL,\n" + "CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level),\n" + "CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))", + + /* GeoPackage specification Table 11 / Table 31 */ + "CREATE TABLE gpkg_data_columns (\n" + "table_name TEXT NOT NULL,\n" + "column_name TEXT NOT NULL,\n" + "name TEXT,\n" + "title TEXT,\n" + "description TEXT,\n" + "mime_type TEXT,\n" + "constraint_name TEXT,\n" + "CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name),\n" + "CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))", + + /* GeoPackage specification Table 12 / Table 32 */ + "CREATE TABLE gpkg_data_column_constraints (\n" + "constraint_name TEXT NOT NULL,\n" + "constraint_type TEXT NOT NULL,\n" + "value TEXT,\n" + "min NUMERIC,\n" + "minIsInclusive BOOLEAN,\n" + "max NUMERIC,\n" + "maxIsInclusive BOOLEAN,\n" + "CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))", + + /* GeoPackage specification Table 14 / Table 33 */ + "CREATE TABLE gpkg_metadata (\n" + "id INTEGER CONSTRAINT m_pk PRIMARY KEY ASC NOT NULL UNIQUE,\n" + "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" + "md_standard_uri TEXT NOT NULL,\n" + "mime_type TEXT NOT NULL DEFAULT 'text/xml',\n" + "metadata TEXT NOT NULL)", + + /* GeoPackage specification Table 16 / Table 34 */ + "CREATE TABLE gpkg_metadata_reference (\n" + "reference_scope TEXT NOT NULL,\n" + "table_name TEXT,\n" + "column_name TEXT,\n" + "row_id_value INTEGER,\n" + "timestamp DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" + "md_file_id INTEGER NOT NULL,\n" + "md_parent_id INTEGER,\n" + "CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id),\n" + "CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id))", + + /* GeoPackage specification Table 17 / Table 36 */ + "CREATE TABLE gpkg_extensions (\n" + "table_name TEXT,\n" + "column_name TEXT,\n" + "extension_name TEXT NOT NULL,\n" + "definition TEXT NOT NULL,\n" + "scope TEXT NOT NULL,\n" + "CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))", + + /* Next 10 constraints are from GeoPackage specification Table 37 */ + "CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert'\n" + "BEFORE INSERT ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n" + "WHERE (NEW.zoom_level < 0);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update'\n" + "BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n" + "WHERE (NEW.zoom_level < 0);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert'\n" + "BEFORE INSERT ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n" + "WHERE (NEW.matrix_width < 1);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update'\n" + "BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n" + "WHERE (NEW.matrix_width < 1);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert'\n" + "BEFORE INSERT ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n" + "WHERE (NEW.matrix_height < 1);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update'\n" + "BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n" + "WHERE (NEW.matrix_height < 1);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert'\n" + "BEFORE INSERT ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n" + "WHERE NOT (NEW.pixel_x_size > 0);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update'\n" + "BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n" + "WHERE NOT (NEW.pixel_x_size > 0);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert'\n" + "BEFORE INSERT ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n" + "WHERE NOT (NEW.pixel_y_size > 0);\n" "END", + + "CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update'\n" + "BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n" + "WHERE NOT (NEW.pixel_y_size > 0);\n" "END", + + /* Next two constraints are from GeoPackage specification Table 38 */ + /* Note the change from catalogue to catalog, per https://github.com/opengis/geopackage/issues/69 */ + "CREATE TRIGGER 'gpkg_metadata_md_scope_insert'\n" + "BEFORE INSERT ON 'gpkg_metadata'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" + "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_md_scope_update'\n" + "BEFORE UPDATE OF 'md_scope' ON 'gpkg_metadata'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" + "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n" + "END", + + /* The following eight constraints are from GeoPackage specification Table 39 */ + "CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_insert'\n" + "BEFORE INSERT ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n" + "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_update'\n" + "BEFORE UPDATE OF 'reference_scope' ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n" + "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_column_name_insert'\n" + "BEFORE INSERT ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n" + "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_name IS NOT NULL);\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" + "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_column_name_update'\n" + "BEFORE UPDATE OF column_name ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n" + "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_nameIS NOT NULL);\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" + "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_insert'\n" + "BEFORE INSERT ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n" + "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" + "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_update'\n" + "BEFORE UPDATE OF 'row_id_value' ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n" + "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" + "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_timestamp_insert'\n" + "BEFORE INSERT ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" + "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n" + "END", + + "CREATE TRIGGER 'gpkg_metadata_reference_timestamp_update'\n" + "BEFORE UPDATE OF 'timestamp' ON 'gpkg_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" + "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n" + "END", + + /* the following four constraints probably should be in the GeoPackage spec, but aren't */ + "CREATE TRIGGER 'gpkg_geometry_columns_z_insert'\n" + "BEFORE INSERT ON 'gpkg_geometry_columns'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n" + "WHERE NOT(NEW.z IN (0, 1, 2));\n" "END", + + "CREATE TRIGGER 'gpkg_geometry_columns_z_update'\n" + "BEFORE UPDATE OF 'z' ON 'gpkg_geometry_columns'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n" + "WHERE NOT NEW.z IN (0, 1, 2);\n" "END", + + "CREATE TRIGGER 'gpkg_geometry_columns_m_insert'\n" + "BEFORE INSERT ON 'gpkg_geometry_columns'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n" + "WHERE NOT(NEW.m IN (0, 1, 2));\n" "END", + + "CREATE TRIGGER 'gpkg_geometry_columns_m_update'\n" + "BEFORE UPDATE OF 'm' ON 'gpkg_geometry_columns'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n" + "WHERE NOT NEW.m IN (0, 1, 2);\n" "END", + + NULL + }; + + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + for (i = 0; tableSchemas[i] != NULL; ++i) + { + sql_stmt = sqlite3_mprintf ("%s", tableSchemas[i]); + sqlite = sqlite3_context_db_handle (context); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkgCreateTilesTable.c b/src/spatialite/src/geopackage/gpkgCreateTilesTable.c new file mode 100644 index 0000000..2a3a3ed --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgCreateTilesTable.c @@ -0,0 +1,205 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgCreateTilesTable(table_name, srid, min_x, min_y, max_x, max_y) +/ +/ Create a new (empty) Tiles table and the triggers for that table +/ It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set +/ +/ TODO: consider adding description and identifier to gpkg_contents +/ +/ returns nothing on success, raises exception on error +/ +/ This function assumes usual tile conventions, including that the tiles are power-of-two-zoom. +/ +*/ + const unsigned char *table; + int srid = -1; + double min_x; + double min_y; + double max_x; + double max_y; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + int i = 0; + + const char *metaTableSchemas[] = { + "INSERT INTO gpkg_contents (table_name, data_type, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, 'tiles', %i, %f, %f, %f, %f)", + "INSERT INTO gpkg_tile_matrix_set (table_name, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, %i, %f, %f, %f, %f)", + NULL + }; + + const char *tableSchemas[] = { + "CREATE TABLE %q (\n" + "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "zoom_level INTEGER NOT NULL DEFAULT 0,\n" + "tile_column INTEGER NOT NULL DEFAULT 0,\n" + "tile_row INTEGER NOT NULL DEFAULT 0,\n" + "tile_data BLOB NOT NULL,\n" + "UNIQUE (zoom_level, tile_column, tile_row))", + + "SELECT gpkgAddTileTriggers(%Q)", + + NULL + }; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type", + -1); + return; + } + srid = sqlite3_value_int (argv[1]); + + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + min_x = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + min_x = (double) sqlite3_value_int (argv[2]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type", + -1); + return; + } + + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + min_y = sqlite3_value_double (argv[3]); + } + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + min_y = (double) sqlite3_value_int (argv[3]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type", + -1); + return; + } + + if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + { + max_x = sqlite3_value_double (argv[4]); + } + else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + max_x = (double) sqlite3_value_int (argv[4]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type", + -1); + return; + } + + if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + { + max_y = sqlite3_value_double (argv[5]); + } + else if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + max_y = (double) sqlite3_value_int (argv[5]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type", + -1); + return; + } + sqlite = sqlite3_context_db_handle (context); + + for (i = 0; metaTableSchemas[i] != NULL; ++i) + { + sql_stmt = + sqlite3_mprintf (metaTableSchemas[i], table, srid, min_x, min_y, + max_x, max_y); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + } + + for (i = 0; tableSchemas[i] != NULL; ++i) + { + sql_stmt = sqlite3_mprintf (tableSchemas[i], table); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkgCreateTilesZoomLevel.c b/src/spatialite/src/geopackage/gpkgCreateTilesZoomLevel.c new file mode 100644 index 0000000..6dda9e4 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgCreateTilesZoomLevel.c @@ -0,0 +1,148 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include <math.h> + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgCreateTilesZoomLevel(table_name, zoom_level, extent_width, extent_height) +/ +/ Adds a zoom level for the specified table +/ +/ returns nothing on success, raises exception on error +/ +/ This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, +/ 256x256 pixels, 1 tile at the top level (zoom level 0). +/ +*/ + const unsigned char *table; + int zoomlevel = 0; + int columns = 1; + int rows = 1; + int tilesize = 256; + double extent_height; + double extent_width; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type", + -1); + return; + } + zoomlevel = sqlite3_value_int (argv[1]); + if (zoomlevel < 0) + { + sqlite3_result_error (context, + "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0", + -1); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + extent_width = (double) sqlite3_value_int (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + extent_width = sqlite3_value_double (argv[2]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type", + -1); + return; + } + + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + extent_height = (double) sqlite3_value_int (argv[3]); + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + extent_height = sqlite3_value_double (argv[3]); + } + else + { + sqlite3_result_error (context, + "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type", + -1); + return; + } + + sqlite = sqlite3_context_db_handle (context); + columns = pow (2, zoomlevel); + rows = columns; + + sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_tile_matrix" + "(table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size)" + "VALUES (%Q, %i, %i, %i, %i, %i, %g, %g)", + table, zoomlevel, columns, rows, tilesize, + tilesize, extent_width / (tilesize * columns), + extent_height / (tilesize * rows)); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkgGetImageType.c b/src/spatialite/src/geopackage/gpkgGetImageType.c new file mode 100644 index 0000000..a6b7f36 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgGetImageType.c @@ -0,0 +1,106 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include <spatialite/gaiaexif.h> +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE + +GEOPACKAGE_DECLARE void +fnct_gpkgGetImageType (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgGetImageType(blob) +/ +/ Gets the image type (as a string) of the blob argument, or "unknown" if +/ the image type is not one of the PNG, JPEG, TIFF or WebP format types that +/ are supported in GeoPackage. This function raises exception on error (e.g. +/ wrong argument type). +/ +/ The result will be one of: +/ - "png" - for PNG +/ - "jpeg" - for JPEG +/ - "tiff" - for TIFF +/ - "x-webp" - for WebP +/ These are the mime type for the image format (without the "image/" prefix) +/ +*/ + unsigned char *p_blob = NULL; + int n_bytes = 0; + int blobType; + + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_error (context, + "gpkgGetImageType() error: argument 1 [image blob] is not of the BLOB type", + -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + + blobType = gaiaGuessBlobType (p_blob, n_bytes); + switch (blobType) + { + case GAIA_TIFF_BLOB: + sqlite3_result_text (context, "tiff", strlen ("tiff"), + SQLITE_TRANSIENT); + break; + case GAIA_PNG_BLOB: + sqlite3_result_text (context, "png", strlen ("png"), + SQLITE_TRANSIENT); + break; + case GAIA_JPEG_BLOB: + sqlite3_result_text (context, "jpeg", strlen ("jpeg"), + SQLITE_TRANSIENT); + break; + case GAIA_WEBP_BLOB: + sqlite3_result_text (context, "x-webp", strlen ("x-webp"), + SQLITE_TRANSIENT); + break; + default: + sqlite3_result_text (context, "unknown", strlen ("unknown"), + SQLITE_TRANSIENT); + break; + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkgInsertEpsgSRID.c b/src/spatialite/src/geopackage/gpkgInsertEpsgSRID.c new file mode 100644 index 0000000..13f9798 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgInsertEpsgSRID.c @@ -0,0 +1,129 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgInsertEpsgSRID (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgInsertEpsgSRID(srid) +/ +/ Adds a spatial reference system entry for the specified EPSG identifier +/ +/ It is an error to try to add the entry if it already exists (this is often indicated by +/ the "PRIMARY KEY must be unique" error message) +/ +/ returns nothing on success, raises exception on error +*/ + char *sqlcmd = NULL; + sqlite3 *sqlite = NULL; + sqlite3_stmt *sql_stmt; + int ret = 0; + int srid; + struct epsg_defs *first = NULL; + struct epsg_defs *last = NULL; + + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type", + -1); + return; + } + srid = sqlite3_value_int (argv[0]); + + /* get the EPSG definition for this SRID from our master list */ + initialize_epsg (srid, &first, &last); + if (first == NULL) + { + sqlite3_result_error (context, + "gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset", + -1); + return; + } + + /* get a context handle */ + sqlite = sqlite3_context_db_handle (context); + + /* add the definition for the SRID */ + sqlcmd = + "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, " + "organization_coordsys_id, definition) VALUES (?, ?, ?, ?, ?)"; + ret = sqlite3_prepare_v2 (sqlite, sqlcmd, strlen (sqlcmd), &sql_stmt, NULL); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1); + goto stop; + } + sqlite3_bind_text (sql_stmt, 1, first->ref_sys_name, + strlen (first->ref_sys_name), SQLITE_STATIC); + sqlite3_bind_int (sql_stmt, 2, first->srid); + sqlite3_bind_text (sql_stmt, 3, first->auth_name, strlen (first->auth_name), + SQLITE_STATIC); + sqlite3_bind_int (sql_stmt, 4, first->auth_srid); + if (strlen (first->srs_wkt) == 0) + { + sqlite3_bind_text (sql_stmt, 5, "Undefined", 9, SQLITE_STATIC); + } + else + { + sqlite3_bind_text (sql_stmt, 5, first->srs_wkt, + strlen (first->srs_wkt), SQLITE_STATIC); + } + ret = sqlite3_step (sql_stmt); + if (ret != SQLITE_DONE && ret != SQLITE_ROW) + { + sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1); + goto stop; + } + stop: + if (sql_stmt != NULL) + { + sqlite3_finalize (sql_stmt); + } + +/* freeing the EPSG defs list */ + free_epsg (first); +} +#endif diff --git a/src/spatialite/src/geopackage/gpkgMakePoint.c b/src/spatialite/src/geopackage/gpkgMakePoint.c new file mode 100644 index 0000000..0e47b11 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkgMakePoint.c @@ -0,0 +1,826 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE + +#define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc; + +static void +gpkgMakePoint (double x, double y, int srid, unsigned char **result, + unsigned int *size) +{ + /* build a Blob encoded Geometry representing a POINT */ + unsigned char *ptr; + int endian_arch = gaiaEndianArch (); + + /* computing the Blob size and then allocating it */ + *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN; + *size += GEOPACKAGE_WKB_HEADER_LEN; + *size += (sizeof (double) * 2); /* [x,y] coords */ + *result = malloc (*size); + if (*result == NULL) + { + return; + } + memset (*result, 0xD9, *size); + ptr = *result; + + /* setting the Blob value */ + gpkgSetHeader2DLittleEndian (ptr, srid, endian_arch); + + gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, x, y, x, y, endian_arch); + + *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN) = + GEOPACKAGE_WKB_LITTLEENDIAN; + gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + 1, + GEOPACKAGE_WKB_POINT, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, + endian_arch); +} + +static void +gpkgMakePointZ (double x, double y, double z, int srid, unsigned char **result, + unsigned int *size) +{ +/* build a Blob encoded Geometry representing a POINT */ + unsigned char *ptr; + int endian_arch = gaiaEndianArch (); +/* computing the Blob size and then allocating it */ + *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN; + *size += GEOPACKAGE_WKB_HEADER_LEN; + *size += (sizeof (double) * 3); /* [x,y,z] coords */ + *result = malloc (*size); + if (*result == NULL) + { + return; + } + memset (*result, 0xD9, *size); /* just a flag value */ + ptr = *result; +/* setting the Blob value */ + *ptr = GEOPACKAGE_MAGIC1; + *(ptr + 1) = GEOPACKAGE_MAGIC2; + *(ptr + 2) = GEOPACKAGE_VERSION; + *(ptr + 3) = GEOPACKAGE_FLAGS_3D_LITTLEENDIAN; + gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch); /* MBR - maximum x */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ + *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) = + GEOPACKAGE_WKB_LITTLEENDIAN; + gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1, + GEOPACKAGE_WKB_POINTZ, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, + endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1, + endian_arch); +} + +static void +gpkgMakePointM (double x, double y, double m, int srid, unsigned char **result, + unsigned int *size) +{ +/* build a Blob encoded Geometry representing a POINT */ + unsigned char *ptr; + int endian_arch = gaiaEndianArch (); +/* computing the Blob size and then allocating it */ + *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN; + *size += GEOPACKAGE_WKB_HEADER_LEN; + *size += (sizeof (double) * 3); /* [x,y,m] coords */ + *result = malloc (*size); + if (*result == NULL) + { + return; + } + memset (*result, 0xD9, *size); /* just a flag value */ + ptr = *result; +/* setting the Blob value */ + *ptr = GEOPACKAGE_MAGIC1; + *(ptr + 1) = GEOPACKAGE_MAGIC2; + *(ptr + 2) = GEOPACKAGE_VERSION; + *(ptr + 3) = GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN; + gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch); /* MBR - maximum X */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ + *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) = + GEOPACKAGE_WKB_LITTLEENDIAN; + gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1, + GEOPACKAGE_WKB_POINTM, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, + endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), m, 1, + endian_arch); +} + +static void +gpkgMakePointZM (double x, double y, double z, double m, int srid, + unsigned char **result, unsigned int *size) +{ +/* build a Blob encoded Geometry representing a POINT */ + unsigned char *ptr; + int endian_arch = gaiaEndianArch (); +/* computing the Blob size and then allocating it */ + *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN; + *size += GEOPACKAGE_WKB_HEADER_LEN; + *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ + *result = malloc (*size); + if (*result == NULL) + { + return; + } + memset (*result, 0xD9, *size); /* just a flag value */ + ptr = *result; +/* setting the Blob value */ + *ptr = GEOPACKAGE_MAGIC1; + *(ptr + 1) = GEOPACKAGE_MAGIC2; + *(ptr + 2) = GEOPACKAGE_VERSION; + *(ptr + 3) = GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN; + gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 1 * sizeof (double), x, 1, endian_arch); /* MBR - maximum X */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch); /* MBR - minimum Z */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 6 * sizeof (double), m, 1, endian_arch); /* MBR - minimum M */ + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 7 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ + *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN) = + GEOPACKAGE_WKB_LITTLEENDIAN; + gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + 1, + GEOPACKAGE_WKB_POINTZM, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, + endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1, + endian_arch); + gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + + GEOPACKAGE_WKB_HEADER_LEN + (3 * sizeof (double)), m, 1, + endian_arch); +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePoint (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePoint(x, y) +/ +/ Creates a GeoPackage geometry POINT +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + gpkgMakePoint (x, y, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointWithSRID (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePoint(x, y, srid) +/ +/ Creates a GeoPackage geometry POINT +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + int srid; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + srid = sqlite3_value_int (argv[2]); + + gpkgMakePoint (x, y, srid, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointZ (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointZ(x, y, z) +/ +/ Creates a GeoPackage geometry POINT Z +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double z; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + z = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + z = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + + gpkgMakePointZ (x, y, z, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, + &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointZWithSRID (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointZ(x, y, z, srid) +/ +/ Creates a GeoPackage geometry POINT Z +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double z; + int srid; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + z = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + z = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + srid = sqlite3_value_int (argv[3]); + + gpkgMakePointZ (x, y, z, srid, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointM (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointM(x, y, m) +/ +/ Creates a GeoPackage geometry POINT M +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double m; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + m = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + m = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + + gpkgMakePointM (x, y, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, + &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointMWithSRID (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointM(x, y, m, srid) +/ +/ Creates a GeoPackage geometry POINT M +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double m; + int srid; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + m = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + m = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + srid = sqlite3_value_int (argv[3]); + + gpkgMakePointM (x, y, m, srid, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointZM (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointM(x, y, z, m) +/ +/ Creates a GeoPackage geometry POINT ZM +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double z; + double m; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + z = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + z = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + m = sqlite3_value_double (argv[3]); + } + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + m = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + + gpkgMakePointZM (x, y, z, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, + &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} + +GEOPACKAGE_DECLARE void +fnct_gpkgMakePointZMWithSRID (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgMakePointZM(x, y, z, m, srid) +/ +/ Creates a GeoPackage geometry POINT ZM +/ +/ returns nothing on success, raises exception on error +*/ + unsigned int len; + int int_value; + unsigned char *p_result = NULL; + double x; + double y; + double z; + double m; + int srid; + GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = sqlite3_value_double (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + y = sqlite3_value_double (argv[1]); + } + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + z = sqlite3_value_double (argv[2]); + } + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + z = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + m = sqlite3_value_double (argv[3]); + } + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + m = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + srid = sqlite3_value_int (argv[4]); + + gpkgMakePointZM (x, y, z, m, srid, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + } + else + { + sqlite3_result_blob (context, p_result, len, free); + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkg_add_geometry_triggers.c b/src/spatialite/src/geopackage/gpkg_add_geometry_triggers.c new file mode 100644 index 0000000..f91e358 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkg_add_geometry_triggers.c @@ -0,0 +1,191 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Sandro Furieri (a.furieri@lqt.it) + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards (bradh@frogmouth.net) + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "spatialite/gaiaaux.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgAddGeometryTriggers (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgAddGeometryTriggers(table, column) +/ +/ Adds Geopackage geometry table triggers for the named table +/ returns nothing on success, raises exception on error +/ +*/ + const char *table; + const char *column; + char *xtable; + char *xcolumn; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + int i = 0; + const char *trigger_stmts[] = { + "CREATE TRIGGER \"fgti_%s_%s\"\n" + "BEFORE INSERT ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: " + "ST_GeometryType(\"%s\") is not assignable from " + "gpkg_geometry_columns.geometry_type_name value')\n" + "WHERE (SELECT geometry_type_name\n" + "FROM gpkg_geometry_columns\n" + "WHERE Lower(table_name) = Lower(%Q)\n" + "AND Lower(column_name) = Lower(%Q)\n" + "AND gpkg_IsAssignable(geometry_type_name, " + "ST_GeometryType(NEW.\"%s\")) = 0);\nEND", + + "CREATE TRIGGER \"fgtu_%s_%s\"\n" + "BEFORE UPDATE OF \"%s\" ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: " + "ST_GeometryType(\"%s\") is not assignable from " + "gpkg_geometry_columns.geometry_type_name value')\n" + "WHERE (SELECT geometry_type_name\n" + "FROM gpkg_geometry_columns\n" + "WHERE Lower(table_name) = Lower(%Q) " + "AND Lower(column_name) = Lower(%Q) " + "AND gpkg_IsAssignable(geometry_type_name, " + "ST_GeometryType(NEW.\"%s\")) = 0);\nEND", + + "CREATE TRIGGER \"fgsi_%s_%s\"\n" + "BEFORE INSERT ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: " + "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n" + "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n" + "WHERE Lower(table_name) = Lower(%Q) " + "AND Lower(column_name) = Lower(%Q) " + "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND", + + "CREATE TRIGGER \"fgsu_%s_%s\"\n" + "BEFORE UPDATE OF \"%s\" ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: " + "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n" + "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n" + "WHERE Lower(table_name) = Lower(%Q) " + "AND Lower(column_name) = Lower(%Q) " + "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND", + + NULL + }; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddGeometryTriggers() error: argument 1 [table] is not of the String type", + -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddGeometryTriggers() error: argument 2 [column] is not of the String type", + -1); + return; + } + table = (const char *) sqlite3_value_text (argv[0]); + column = (const char *) sqlite3_value_text (argv[1]); + xtable = gaiaDoubleQuotedSql (table); + xcolumn = gaiaDoubleQuotedSql (column); + sqlite = sqlite3_context_db_handle (context); + + for (i = 0; i < 4; i++) + { + /* inserting the Triggers */ + if (i == 0 || i == 2) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, + table, xcolumn, column, column, xcolumn); + else + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, + xtable, table, column, xcolumn, column, + column, xcolumn); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + free (xtable); + free (xcolumn); + return; + } + } + free (xtable); + free (xcolumn); + +/* registering the GPKG extensions */ + sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " + "(table_name, column_name, extension_name, definition, scope) " + "VALUES (Lower(%Q), Lower(%Q), 'gpkg_geometry_type_trigger', " + "'GeoPackage 1.0 Specification Annex N', 'write-only')", + table, column); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " + "(table_name, column_name, extension_name, definition, scope) " + "VALUES (Lower(%Q), Lower(%Q), 'gpkg_srs_id_trigger', " + "'GeoPackage 1.0 Specification Annex N', 'write-only')", + table, column); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkg_add_spatial_index.c b/src/spatialite/src/geopackage/gpkg_add_spatial_index.c new file mode 100644 index 0000000..d3be278 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkg_add_spatial_index.c @@ -0,0 +1,214 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Sandro Furieri (a.furieri@lqt.it) + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards (bradh@frogmouth.net) + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "spatialite/gaiaaux.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgAddSpatialIndex (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgAddSpatialIndex(table, column) +/ +/ Adds Geopackage SpatialIndex triggers for the named table +/ and creates the "rtree_<T>_<C> Virtual Table +/ returns nothing on success, raises exception on error +/ +*/ + const char *table; + const char *column; + char *xtable; + char *xcolumn; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + int i = 0; + const char *trigger_stmts[] = { + "CREATE TRIGGER \"rtree_%s_%s_insert\"\n" + "AFTER INSERT ON \"%s\"\n" + "WHEN (new.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" + "BEGIN\n" + "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " + "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " + "ST_MaxY(NEW.\"%s\"));\nEND", + + "CREATE TRIGGER \"rtree_%s_%s_update1\"\n" + "AFTER UPDATE OF \"%s\" ON \"%s\"\n" + "WHEN OLD.ROWID = NEW.ROWID AND " + "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" + "BEGIN\n" + "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " + "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " + "ST_MaxY(NEW.\"%s\"));\nEND", + + "CREATE TRIGGER \"rtree_%s_%s_update2\"\n" + "AFTER UPDATE OF \"%s\" ON \"%s\"\n" + "WHEN OLD.ROWID = NEW.ROWID AND " + "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n" + "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND", + + "CREATE TRIGGER \"rtree_%s_%s_update3\"\n" + "AFTER UPDATE OF \"%s\" ON \"%s\"\n" + "WHEN OLD.ROWID != NEW.ROWID AND " + "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" + "BEGIN\n" + "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\n" + "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " + "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " + "ST_MaxY(NEW.\"%s\"));\nEND", + + "CREATE TRIGGER \"rtree_%s_%s_update4\"\n" + "AFTER UPDATE ON \"%s\"\n" + "WHEN OLD.ROWID != NEW.ROWID AND " + "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n" + "BEGIN\n" + "DELETE FROM \"rtree_%s_%s\" WHERE id IN (OLD.ROWID, NEW.ROWID);\n" + "END", + + "CREATE TRIGGER \"rtree_%s_%s_delete\"\n" + "AFTER DELETE ON \"%s\"" + "WHEN old.\"%s\" NOT NULL\n" + "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND", + + NULL + }; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddSpatialIndex() error: argument 1 [table] is not of the String type", + -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddSpatialIndex() error: argument 2 [column] is not of the String type", + -1); + return; + } + table = (const char *) sqlite3_value_text (argv[0]); + column = (const char *) sqlite3_value_text (argv[1]); + xtable = gaiaDoubleQuotedSql (table); + xcolumn = gaiaDoubleQuotedSql (column); + sqlite = sqlite3_context_db_handle (context); + + for (i = 0; i < 6; i++) + { + /* inserting the Triggers */ + if (i == 0) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, + xcolumn, xcolumn, xtable, xcolumn, xcolumn, + xcolumn, xcolumn, xcolumn); + else if (i == 1) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, + xtable, xcolumn, xcolumn, xtable, xcolumn, + xcolumn, xcolumn, xcolumn, xcolumn, xcolumn); + else if (i == 2) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, + xtable, xcolumn, xcolumn, xtable, xcolumn); + else if (i == 3) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, + xtable, xcolumn, xcolumn, xtable, xcolumn, + xtable, xcolumn, xcolumn, xcolumn, xcolumn, + xcolumn); + else if (i == 4) + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, + xcolumn, xcolumn, xtable, xcolumn); + else + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, + xcolumn, xtable, xcolumn); + + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + free (xtable); + free (xcolumn); + return; + } + } + +/* creating the R*Tree Virtual Table */ + sql_stmt = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"rtree_%s_%s\" " + "USING rtree(id, minx, maxx, miny, maxy)", + xtable, xcolumn); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + free (xtable); + free (xcolumn); + return; + } + free (xtable); + free (xcolumn); + +/* registering the GPKG extensions */ + sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " + "(table_name, column_name, extension_name, definition, scope) " + "VALUES (Lower(%Q), Lower(%Q), 'gpkg_rtree_index', " + "'GeoPackage 1.0 Specification Annex L', 'write-only')", + table, column); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkg_add_tile_triggers.c b/src/spatialite/src/geopackage/gpkg_add_tile_triggers.c new file mode 100644 index 0000000..2e0d33b --- /dev/null +++ b/src/spatialite/src/geopackage/gpkg_add_tile_triggers.c @@ -0,0 +1,143 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc + __attribute__ ((unused)), sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgAddTileTriggers(table) +/ +/ Adds Geopackage tile table triggers for the named table +/ returns nothing on success, raises exception on error +/ +*/ + const unsigned char *table; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + int ret = 0; + int i = 0; + /* Note: the code below relies on there being twelve (or less) varargs, all of which are the table name */ + const char *trigger_stmts[] = { + "CREATE TRIGGER \"%s_zoom_insert\"\n" + "BEFORE INSERT ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n" + "END", + + "CREATE TRIGGER \"%s_zoom_update\"\n" + "BEFORE UPDATE OF zoom_level ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n" + "END", + + "CREATE TRIGGER \"%s_tile_column_insert\"\n" + "BEFORE INSERT ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column cannot be < 0')\n" + "WHERE (NEW.tile_column < 0) ;\n" + "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" + "END", + + "CREATE TRIGGER \"%s_tile_column_update\"\n" + "BEFORE UPDATE OF tile_column ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column cannot be < 0')\n" + "WHERE (NEW.tile_column < 0) ;\n" + "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" + "END", + + "CREATE TRIGGER \"%s_tile_row_insert\"\n" + "BEFORE INSERT ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row cannot be < 0')\n" + "WHERE (NEW.tile_row < 0) ;\n" + "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" + "END", + + "CREATE TRIGGER \"%s_tile_row_update\"\n" + "BEFORE UPDATE OF tile_row ON \"%s\"\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row cannot be < 0')\n" + "WHERE (NEW.tile_row < 0) ;\n" + "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n" + "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" + "END", + + NULL + }; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + for (i = 0; trigger_stmts[i] != NULL; ++i) + { + sql_stmt = + sqlite3_mprintf (trigger_stmts[i], table, table, table, table, + table, table, table, table, table, table, table, + table); + sqlite = sqlite3_context_db_handle (context); + ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + } +} +#endif diff --git a/src/spatialite/src/geopackage/gpkg_get_normal_row.c b/src/spatialite/src/geopackage/gpkg_get_normal_row.c new file mode 100644 index 0000000..73da7b7 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkg_get_normal_row.c @@ -0,0 +1,150 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgGetNormalRow (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgGetNormalRow(tile_table_name, normal_zoom_level, inverted_row_number) +/ +/ Gets the normal integer row number for the specified table, normal zoom level +/ and inverted row number. Raises a SQL exception if no zoom level row record in +/ tile_matrix_metadata +/ +/ Note that this function can also be used to convert from a normal row number +/ to an inverted row number - this conversion is symmetric. +*/ + const unsigned char *table; + int zoom_level; + int inverted_row_number; + int matrix_height; + int normal_row_number; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + char **results; + char *endptr = 0; + int rows = 0; + int columns = 0; + int ret = 0; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type", + -1); + return; + } + zoom_level = sqlite3_value_int (argv[1]); + + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type", + -1); + return; + } + inverted_row_number = sqlite3_value_int (argv[2]); + + sql_stmt = + sqlite3_mprintf + ("SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name=\"%q\" AND zoom_level=%i", + table, zoom_level); + + sqlite = sqlite3_context_db_handle (context); + ret = + sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + if (rows != 1) + { + sqlite3_result_error (context, + "gpkgGetNormalRow: tile table or zoom level not found", + -1); + sqlite3_free_table (results); + sqlite3_free (errMsg); + return; + } + errno = 0; + matrix_height = strtol (results[1 * columns + 0], &endptr, 10); + if ((endptr == results[1 * columns + 0]) + || (matrix_height < 0) + || (errno == ERANGE && matrix_height == INT_MAX) + || (errno != 0 && matrix_height == 0)) + { + sqlite3_free_table (results); + sqlite3_result_error (context, + "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)", + -1); + return; + } + sqlite3_free_table (results); + if ((inverted_row_number >= matrix_height) || (inverted_row_number < 0)) + { + sqlite3_result_error (context, + "gpkgGetNormalRow: row number outside of matrix height range", + -1); + return; + } + + normal_row_number = matrix_height - inverted_row_number - 1; + sqlite3_result_int (context, normal_row_number); +} +#endif diff --git a/src/spatialite/src/geopackage/gpkg_get_normal_zoom.c b/src/spatialite/src/geopackage/gpkg_get_normal_zoom.c new file mode 100644 index 0000000..1a88b78 --- /dev/null +++ b/src/spatialite/src/geopackage/gpkg_get_normal_zoom.c @@ -0,0 +1,140 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include "spatialite/geopackage.h" +#include "config.h" +#include "geopackage_internal.h" + +#ifdef ENABLE_GEOPACKAGE +GEOPACKAGE_DECLARE void +fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc UNUSED, + sqlite3_value ** argv) +{ +/* SQL function: +/ gpkgGetNormalZoom(tile_table_name, inverted_zoom_level) +/ +/ Gets the normal integer zoom level for data stored in the specified table. +/ Raises a SQL exception if inverted zoom level is outside the range of +/ tile_matrix_metadata table normal zoom levels defined for the tile_table +/ +/ Note that this function can also be used to convert from a normal zoom level +/ to an inverted zoom level - this conversion is symmetric. +*/ + const unsigned char *table; + int inverted_zoom_level; + long max_zoom_level; + long normal_zoom_level; + char *sql_stmt = NULL; + sqlite3 *sqlite = NULL; + char *errMsg = NULL; + char **results; + char *endptr = 0; + int rows = 0; + int columns = 0; + int ret = 0; + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_error (context, + "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type", + -1); + return; + } + table = sqlite3_value_text (argv[0]); + + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_error (context, + "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type", + -1); + return; + } + inverted_zoom_level = sqlite3_value_int (argv[1]); + + sql_stmt = + sqlite3_mprintf + ("SELECT MAX(zoom_level) FROM gpkg_tile_matrix WHERE table_name=\"%q\"", + table); + + sqlite = sqlite3_context_db_handle (context); + ret = + sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_stmt); + if (ret != SQLITE_OK) + { + sqlite3_result_error (context, errMsg, -1); + sqlite3_free (errMsg); + return; + } + if ((rows != 1) || (results[1 * columns + 0] == NULL)) + { + sqlite3_free_table (results); + sqlite3_result_error (context, + "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix", + -1); + sqlite3_free (errMsg); + return; + } + errno = 0; + max_zoom_level = strtol (results[1 * columns + 0], &endptr, 10); + if ((endptr == results[1 * columns + 0]) + || (max_zoom_level < 0) + || (errno == ERANGE && max_zoom_level == LONG_MAX) + || (errno != 0 && max_zoom_level == 0)) + { + sqlite3_free_table (results); + sqlite3_result_error (context, + "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)", + -1); + return; + } + sqlite3_free_table (results); + if ((inverted_zoom_level > max_zoom_level) || (inverted_zoom_level < 0)) + { + sqlite3_result_error (context, + "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels", + -1); + return; + } + + normal_zoom_level = max_zoom_level - inverted_zoom_level; + sqlite3_result_int (context, normal_zoom_level); +} +#endif diff --git a/src/spatialite/src/headers/Makefile.am b/src/spatialite/src/headers/Makefile.am index 492cef7..2c99ee7 100644 --- a/src/spatialite/src/headers/Makefile.am +++ b/src/spatialite/src/headers/Makefile.am @@ -11,6 +11,10 @@ nobase_include_HEADERS = spatialite.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ + spatialite/gg_xml.h \ + spatialite/gg_wfs.h \ + spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ - spatialite/debug.h + spatialite/debug.h \ + spatialite/geopackage.h diff --git a/src/spatialite/src/headers/Makefile.in b/src/spatialite/src/headers/Makefile.in index 888bd69..2a43e50 100644 --- a/src/spatialite/src/headers/Makefile.in +++ b/src/spatialite/src/headers/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/headers -DIST_COMMON = $(nobase_include_HEADERS) $(noinst_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(nobase_include_HEADERS) $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -65,6 +92,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -101,11 +140,29 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(nobase_include_HEADERS) $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -147,6 +204,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -168,6 +227,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -239,9 +301,13 @@ nobase_include_HEADERS = spatialite.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ + spatialite/gg_xml.h \ + spatialite/gg_wfs.h \ + spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ - spatialite/debug.h + spatialite/debug.h \ + spatialite/geopackage.h all: all-am @@ -307,26 +373,15 @@ uninstall-nobase_includeHEADERS: $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -338,15 +393,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -355,6 +406,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -494,18 +560,19 @@ uninstall-am: uninstall-nobase_includeHEADERS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-nobase_includeHEADERS \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-nobase_includeHEADERS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-nobase_includeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-nobase_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/headers/spatialite.h b/src/spatialite/src/headers/spatialite.h index 64bfdcd..af26d87 100644 --- a/src/spatialite/src/headers/spatialite.h +++ b/src/spatialite/src/headers/spatialite.h @@ -1,7 +1,7 @@ /* spatialite.h -- Gaia spatial support for SQLite - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -64,6 +64,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #define _SPATIALITE_H #endif + #ifdef __cplusplus extern "C" { @@ -71,22 +72,84 @@ extern "C" #include <spatialite/gaiageo.h> +#ifdef LOADABLE_EXTENSION +/* SPATIALITE_DECLARE int + sqlite3_spatialite_init (sqlite3 * db, char **pzErrMsg, + const sqlite3_api_routines * pApi);*/ +#endif + +/** + Initializes the library + + \note you are always expected to explicitly call this function + before attempting to call any SpatiaLite own function. + */ + SPATIALITE_DECLARE void spatialite_initialize (void); + +/** + Finalizes the library + + \note you are always expected to explicitly call this function + immediately before exiting the main application.\n + This function will free any memory allocation and will release + any system resource internally used by the library.\n + */ + SPATIALITE_DECLARE void spatialite_shutdown (void); + /** Return the current library version. + + \return the version string. */ SPATIALITE_DECLARE const char *spatialite_version (void); /** - Initializes the library. + Return the target CPU name. + + \return the target CPU string. + */ + SPATIALITE_DECLARE const char *spatialite_target_cpu (void); + +/** + Initializes the internal memory block supporting each connection + + \sa spatialite_init_ex, spatialite_cleanup_ex + + */ + SPATIALITE_DECLARE void *spatialite_alloc_connection (void); + +/** + Initializes a SpatiaLite connection. + + This function is now \b DEPRECATED because is not reentrant (not thread safe); + use spatialite_init_ex() for all new development. \param verbose if TRUE a short start-up message is shown on stderr + \sa spatialite_cleanup, spatialite_init_ex + \note You absolutely must invoke this function before attempting to perform any other SpatiaLite's call. */ SPATIALITE_DECLARE void spatialite_init (int verbose); +/** + Initializes a SpatiaLite connection. + + \param db_handle handle to the current SQLite connection + \param ptr a memory pointer returned by spatialite_alloc_connection() + \param verbose if TRUE a short start-up message is shown on stderr + + \sa spatialite_alloc_connection, spatialite_cleanup_ex, spatialite_init + + \note You absolutely must invoke this function before attempting to perform + any other SpatiaLite's call. + + */ + SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, + const void *ptr, int verbose); + /** Initializes the GEOS library. @@ -96,7 +159,9 @@ extern "C" SPATIALITE_DECLARE void spatialite_init_geos (void); /** - Cleanup spatialite + Cleanup a SpatiaLite connection + + This function is now \b DEPRECATED; use spatialite_cleanup_ex() for all new development. This function performs general cleanup, essentially undoing the effect of spatialite_init(). @@ -105,6 +170,19 @@ extern "C" */ SPATIALITE_DECLARE void spatialite_cleanup (void); +/** + Cleanup a SpatiaLite connection + + This function performs general cleanup, essentially undoing the effect + of spatialite_init_ex(). + + \param ptr the same memory pointer passed to the corresponding call to + spatialite_init_ex() and returned by spatialite_alloc_connection() + + \sa spatialite_init_ex, spatialite_alloc_connection +*/ + SPATIALITE_DECLARE void spatialite_cleanup_ex (const void *ptr); + /** Dumps a full geometry-table into an external Shapefile @@ -393,7 +471,7 @@ extern "C" \param sqlite handle to current DB connection \param table name of the table to be cleaned - \sa check_duplicated_rows + \sa check_duplicated_rows, remove_duplicated_rows_ex \note when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence. @@ -401,6 +479,23 @@ extern "C" SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 * sqlite, char *table); +/** + Remove duplicated rows from a table + + \param sqlite handle to current DB connection + \param table name of the table to be cleaned + \param removed on successful completion will contain the total + count of removed duplicate rows + + \sa check_duplicated_rows, remove_duplicated_rows + + \note when two (or more) duplicated rows exist, only the first occurence + will be preserved, then deleting any further occurrence. + */ + SPATIALITE_DECLARE void remove_duplicated_rows_ex (sqlite3 * sqlite, + char *table, + int *removed); + /** Creates a derived table surely containing elementary Geometries @@ -467,36 +562,144 @@ extern "C" - if both table and column are not NULL, then only the given entry will be processed. + \sa gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList + \return 0 on failure, the total count of processed entries on success */ SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column); +/** + Immediately and unconditionally invalidates the already existing Statistics + + \param handle SQLite handle to current DB connection. + \param table VectorLayer Table (or View, or VirtualShape). + \param geometry Geometry Column name. + + \return 0 on success, any other value on success + + \sa update_layer_statistics, gaiaGetLayerExtent, gaiaGetVectorLayersList + + \note if the table arg is NULL all Statistics for any VectorLayer defined within + the DB will be invalidated; otherwise only a single Layer will be affectedd (if existing). + \n By defining the geometry arg (not NULL) you can further restrict your selection. + */ + SPATIALITE_DECLARE int gaiaStatisticsInvalidate (sqlite3 * handle, + const char *table, + const char *geometry); + +/** + Queries the Metadata tables returning the Layer Full Extent + + \param handle SQLite handle to current DB connection. + \param table VectorLayer Table (or View, or VirtualShape). + \param geometry Geometry Column name. + \param mode if TRUE a PESSIMISTIC statistics update will be implied, + otherwise OPTIMISTIC. + + \return the pointer to the newly created Geometry (Envelope): NULL on failure + + \sa update_layer_statistic, gaiaStatisticsInvalidate, gaiaGetVectorLayersList + + \note you are responsible to destroy (before or after) any allocated + Geometry returned by gaiaGetLayerExtent(). + \n The geometry arg is optional when the table simply has a single Geometry Column, + and can be NULL in this case. + \n When the mode arg is set to FALSE (default) then the returned infos + will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). + \n If the mode arg is set to TRUE a preliminary attempt to update the + statistic tables will be always performed (probably slower, but surely accurate). + \n If the named Layer doesn't exist, or if it's completely empty (not containing + any valid Geometry) NULL will be returned. + */ + SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 * handle, + const char *table, + const char *geometry, + int mode); + /** Queries the Metadata tables supporting Vector Layers \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. - \param mode one of GAIA_VECTORS_LIST_LOOSE or GAIA_VECTORS_LIST_STRICT. + \param mode one of GAIA_VECTORS_LIST_OPTIMISTIC or GAIA_VECTORS_LIST_PESSIMISTIC. \return the pointer to the newly created VectorLayersList object: NULL on failure - \sa gaiaFreeVectorLayersList + \sa gaiaFreeVectorLayersList, update_layer_statistics, gaiaStatisticsInvalidate, + gaiaGetLayerExtent, gaiaGetVectorLayersList \note you are responsible to destroy (before or after) any allocated VectorLayersList returned by gaiaGetVectorLayersList(). \n If the table arg is NULL all VectorLayers defined within the DB will be reported; otherwise only a single Layer will be reported (if existing). \n By defining the geometry arg (not NULL) you can further restrict the returned report. - \n When the mode arg is set to GAIA_VECTORS_LIST_FAST (default) then the returned infos + \n When the mode arg is set to GAIA_VECTORS_LIST_OPTIMISTIC (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). - \n If the mode arg is set to GAIA_VECTORS_LIST_PRECISE a preliminary attempt to update the + \n If the mode arg is set to GAIA_VECTORS_LIST_PESSIMISTIC a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate). */ - SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 * - handle, const char *table, const char *geometry, int mode); + SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 + * + handle, + const + char + *table, + const + char + *geometry, + int + mode); + +/** + Creates (or re-creates) the "splite_metacatalog" and + "splite_metacalog_statistics" tables. + + \param handle SQLite handle to current DB connection. + + \return 0 (FALSE) on failure, any other value (TRUE) on success + + \sa gaiaUpdateMetaCatalogStatistics, gaiaUpdateMetaCatalogStatisticsFromMaster + */ + SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables (sqlite3 * handle); + +/** + Updates the "splite_metacatalog_statistics" table. + + \param handle SQLite handle to current DB connection. + \param table name of the table to be processed. + \param column name of the column to be processed. + + \return 0 (FALSE) on failure, any other value (TRUE) on success + + \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatisticsFromMaster + */ + SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics (sqlite3 * handle, + const char *table, + const char *column); + +/** + Updates the "splite_metacatalog_statistics" table (using a Master Table). + + \param handle SQLite handle to current DB connection. + \param master_table name of the master-table controlling the whole process. + \param table_name name of the column into the master-table containing table-names. + \param column_name name of the column into the master-table containing column-names. + + \return 0 (FALSE) on failure, any other value (TRUE) on success + + \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatistics + */ + SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 * + handle, + const char + *master_table, + const char + *table_name, + const char + *column_name); /** Destroys a VectorLayersList object @@ -505,7 +708,8 @@ extern "C" \sa gaiaGetVectorLayersList */ - SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr ptr); + SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr + ptr); /** Drops a layer-table, removing any related dependency @@ -519,9 +723,325 @@ extern "C" selected table will be removed from the Metadata tables. \return 0 on failure, any other value on success + + \sa gaiaDropTableEx + + \note this one simply is a convenience method alway defaulting to + gaiaDropTableEx(sqlite, "main", table); */ SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table); +/** + Drops a layer-table, removing any related dependency + + \param sqlite handle to current DB connection + \param prefix schema prefix identifying the target DB\n + "main" always identifies the main DB (primary, not Attached). + \param table name of the table to be removed + + \note this function will drop a SpatialTable, SpatialView or VirtualShape being + properly registered within the Metadata tables. + \n an eventual Spatial Index will be dropped as well, and any row referring the + selected table will be removed from the Metadata tables. + + \return 0 on failure, any other value on success + + \sa gaiaDropTable + */ + SPATIALITE_DECLARE int gaiaDropTableEx (sqlite3 * sqlite, + const char *prefix, + const char *table); + +/** + Checks a Geometry Column for validity + + \param sqlite handle to current DB connection + \param table name of the table + \param geometry name of the column to be checked + \param report_path pathname of the report-file + \param n_rows if this variable is not NULL on successful completion will + contain the total number of rows found into the checkeck table + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found into the checkeck table + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa check_geometry_column_r, check_all_geometry_columns, + sanitize_geometry_column, sanitize_all_geometry_columns + + \note this function will check a Geometry Column (layer) for validity; + a HTML report will be produced. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + not reentrant and thread unsafe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, + const char *table, + const char *geom, + const char *report_path, + int *n_rows, int *n_invalids, + char **err_msg); + +/** + Checks a Geometry Column for validity + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param sqlite handle to current DB connection + \param table name of the table + \param geometry name of the column to be checked + \param report_path pathname of the report-file + \param n_rows if this variable is not NULL on successful completion will + contain the total number of rows found into the checkeck table + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found into the checkeck table + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa check_geometry_column, check_all_geometry_columns, + sanitize_geometry_column, sanitize_all_geometry_columns + + \note this function will check a Geometry Column (layer) for validity; + a HTML report will be produced. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + reentrant and thread-safe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache, + sqlite3 * sqlite, + const char *table, + const char *geom, + const char *report_path, + int *n_rows, + int *n_invalids, + char **err_msg); + +/** + Checks all Geometry Columns for validity + + \param sqlite handle to current DB connection + \param output_dir pathname of the directory to be created for report-files + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa check_all_geometry_columns_r, check_geometry_column, + sanitize_geometry_column, sanitize_all_geometry_columns + + \note this function will check all Geometry Columns (vector layers) for validity; + a HTML report will be produced. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + not reentrant and thread unsafe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, + const char *output_dir, + int *n_invalids, + char **err_msg); + +/** + Checks all Geometry Columns for validity + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param sqlite handle to current DB connection + \param output_dir pathname of the directory to be created for report-files + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa check_all_geometry_columns, check_geometry_column, + sanitize_geometry_column, sanitize_all_geometry_columns + + \note this function will check all Geometry Columns (vector layers) for validity; + a HTML report will be produced. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + reentrant and thread-safe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache, + sqlite3 * sqlite, + const char *output_dir, + int *n_invalids, + char **err_msg); + +/** + Sanitizes a Geometry Column making all invalid geometries to be valid + + \param sqlite handle to current DB connection + \param table name of the table + \param geometry name of the column to be checked + \param tmp_table name of the temporary table + \param report_path pathname of the report-file + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found into the sanitize table + \param n_repaired if this variable is not NULL on successful completion will + contain the total number of repaired Geometries + \param n_discarded if this variable is not NULL on successful completion will + contain the total number of repaired Geometries (by discarding fragments) + \param n_failures if this variable is not NULL on successful completion will + contain the total number of repair failures (i.e. Geometries beyond possible repair) + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa sanitize_geometry_column_r, check_geometry_column, + check_all_geometry_columns, sanitize_all_geometry_columns + + \note this function will attempt to make valid all invalid geometries + found within a Geometry Column (layer); a temporary table is required. + \n if the process has full success the temprary table will be deleted; + otherwise it will be preserved for further inspection. + a HTML report will be produced as well. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + not reentrant and thread unsafe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, + const char *table, + const char *geom, + const char *tmp_table, + const char *report_path, + int *n_invalids, + int *n_repaired, + int *n_discarded, + int *n_failures, + char **err_msg); + +/** + Sanitizes a Geometry Column making all invalid geometries to be valid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param sqlite handle to current DB connection + \param table name of the table + \param geometry name of the column to be checked + \param tmp_table name of the temporary table + \param report_path pathname of the report-file + \param n_invalids if this variable is not NULL on successful completion will + contain the total number of invalid Geometries found into the sanitize table + \param n_repaired if this variable is not NULL on successful completion will + contain the total number of repaired Geometries + \param n_discarded if this variable is not NULL on successful completion will + contain the total number of repaired Geometries (by discarding fragments) + \param n_failures if this variable is not NULL on successful completion will + contain the total number of repair failures (i.e. Geometries beyond possible repair) + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa sanitize_geometry_column, check_geometry_column, + check_all_geometry_columns, sanitize_all_geometry_columns + + \note this function will attempt to make valid all invalid geometries + found within a Geometry Column (layer); a temporary table is required. + \n if the process has full success the temprary table will be deleted; + otherwise it will be preserved for further inspection. + a HTML report will be produced as well. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + reentrant and thread-safe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache, + sqlite3 * sqlite, + const char *table, + const char *geom, + const char *tmp_table, + const char *report_path, + int *n_invalids, + int *n_repaired, + int *n_discarded, + int *n_failures, + char **err_msg); + +/** + Sanitizes all Geometry Columns making all invalid geometries to be valid + + \param sqlite handle to current DB connection + \param tmp_prefix name-prefix for temporary tables + \param output_dir pathname of the directory to be created for report-files + \param not_repaired if this variable is not NULL on successful completion will + contain the total count of repair failures (i.e. Geometries beyond possible repair) + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa sanitize_all_geometry_columns_r, check_geometry_column, + check_all_geometry_columns, sanitize_geometry_column + + \note this function will attempt to make valid all invalid geometries + found within all Geometry Columns (vector layers); a temporary table is + required so to support each input table. + \n if the process has full success the temprary table will be deleted; + otherwise it will be preserved for further inspection. + a HTML report will be produced as well. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + not reentrant and thread unsafe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, + const char + *tmp_prefix, + const char + *output_dir, + int *not_repaired, + char **err_msg); + +/** + Sanitizes all Geometry Columns making all invalid geometries to be valid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param sqlite handle to current DB connection + \param tmp_prefix name-prefix for temporary tables + \param output_dir pathname of the directory to be created for report-files + \param not_repaired if this variable is not NULL on successful completion will + contain the total count of repair failures (i.e. Geometries beyond possible repair) + \param err_msg if this variable is not NULL and the return status is ZERO + (failure), an appropriate error message will be returned + + \sa sanitize_all_geometry_columns, check_geometry_column, + check_all_geometry_columns, sanitize_geometry_column + + \note this function will attempt to make valid all invalid geometries + found within all Geometry Columns (vector layers); a temporary table is + required so to support each input table. + \n if the process has full success the temprary table will be deleted; + otherwise it will be preserved for further inspection. + a HTML report will be produced as well. + \n an eventual error message returned via err_msg requires to be deallocated + by invoking free()\n + reentrant and thread-safe. + + \return 0 on failure, any other value on success + */ + SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache, + sqlite3 * sqlite, + const char + *tmp_prefix, + const char + *output_dir, + int *not_repaired, + char **err_msg); + + SPATIALITE_DECLARE int gaiaGPKG2Spatialite (sqlite3 * handle_in, + const char *gpkg_in_path, + sqlite3 * handle_out, + const char *splite_out_path); + SPATIALITE_DECLARE int gaiaSpatialite2GPKG (sqlite3 * handle_in, + const char *splite_in_path, + sqlite3 * handle_out, + const char *gpkg_out_path); + #ifdef __cplusplus } #endif diff --git a/src/spatialite/src/headers/spatialite/debug.h b/src/spatialite/src/headers/spatialite/debug.h index 39127cb..8d5a0b0 100644 --- a/src/spatialite/src/headers/spatialite/debug.h +++ b/src/spatialite/src/headers/spatialite/debug.h @@ -1,7 +1,7 @@ /* debug.h -- abstract defs for standard output functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2012 +Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): diff --git a/src/spatialite/src/headers/spatialite/gaiaaux.h b/src/spatialite/src/headers/spatialite/gaiaaux.h index d1332f3..38d8605 100644 --- a/src/spatialite/src/headers/spatialite/gaiaaux.h +++ b/src/spatialite/src/headers/spatialite/gaiaaux.h @@ -1,7 +1,7 @@ /* gaiaaux.h -- Gaia common utility functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -270,11 +270,14 @@ extern "C" \sa gaiaUpdateSqlLog - \note this function inserts an \i event into the SQL Log, and + \note this function inserts an \b event into the SQL Log, and is expected to be invoked immediately \b before executing the SQL statement itself. */ - GAIAAUX_DECLARE void gaiaInsertIntoSqlLog(sqlite3 *sqlite, const char *user_agent, const char *utf8Sql, sqlite3_int64 *sqllog_pk); + GAIAAUX_DECLARE void gaiaInsertIntoSqlLog (sqlite3 * sqlite, + const char *user_agent, + const char *utf8Sql, + sqlite3_int64 * sqllog_pk); /** SQL log: statement start @@ -287,11 +290,113 @@ extern "C" \sa gaiaInsertIntoSqlLog - \note this function completes an \i event inserted into the SQL Log, and + \note this function completes an \b event inserted into the SQL Log, and is expected to be invoked immediately \b after executing the SQL statement itself. */ - GAIAAUX_DECLARE void gaiaUpdateSqlLog(sqlite3 *sqlite, sqlite3_int64 sqllog_pk, int success, const char *errMsg); + GAIAAUX_DECLARE void gaiaUpdateSqlLog (sqlite3 * sqlite, + sqlite3_int64 sqllog_pk, int success, + const char *errMsg); + +/** + Creates a persistent MD5 checksum object + + \return the handle of an MD5 checksum object, or NULL on failure + + \sa gaiaFreeMD5Checksum, gaiaUpdateMD5Checksum, gaiaFinalizeMD5Checksum + + \note you must properly destroy the MD5 object + when it isn't any longer used. + */ + GAIAAUX_DECLARE void *gaiaCreateMD5Checksum (void); + +/** + Destroys an MD5 checksum object + + \param md5 the handle of the MD5 checksum object (returned by + a previous call to gaiaCreateMD5Checksum). + + \sa gaiaCreateMD5Checksum + */ + GAIAAUX_DECLARE void gaiaFreeMD5Checksum (void *md5); + +/** + Updates an MD5 checksum object + + \param md5 the handle of the MD5 checksum object (returned by + a previous call to gaiaCreateMD5Checksum). + \param blob an arbitrary sequence of binary data + \param blob_size the length (in bytes) of the binary data + + \sa gaiaCreateMD5Checksum, gaiaFreeMD5Checksum, gaiaFinalizeMD5Checksum + + \note you can repeatedly invoke gaiaUpdateMD5Checksum more than a single + time and always using the same MD5 object. + In this case the final MD5 checksum returned by gaiaGetMD5Checsum will be + the total checksum for any data processed by the MD5 object since its + initialization. + */ + GAIAAUX_DECLARE void gaiaUpdateMD5Checksum (void *md5, + const unsigned char *blob, + int blob_len); + +/** + Return an MD5 checksum value + + \param md5 the handle of the MD5 checksum object (returned by + a previous call to gaiaCreateMD5Checksum). + + \return an hexadecimal text string representing the MD checksum: + NULL on failure + + \sa gaiaCreateMD5Checksum, gaiaUpdateMD5Checksum, gaiaFreeMD5Checksum + + \note this function will return the MD5 checksum into a dynamically allocated + buffer created by malloc(). + You are required to explicitly free() any string returned by this function. + + \note gaiaFinalizeMD5Checksum will implicitly reset the MD5 object to its + initial state. + */ + GAIAAUX_DECLARE char *gaiaFinalizeMD5Checksum (void *md5); + +/** + Return longitude and latitude angles from a DMS string + + \param dms a text string representing a valid DMS (Degrees/Minutes/Seconds) + expression. + \param longitude on completion this variable will contain the longitude angle + expressed in Decimal Degrees. + \param latitude on completion this variable will contain the latitude angle + expressed in Decimal Degrees. + + \return ZERO (FALSE) on failure, any other different value (TRUE) on success. + + \sa gaiaConvertToDMS + + \note this function will return a dynamically allocated buffer created + by malloc(). + You are required to explicitly free() any string returned by this function. + */ + GAIAAUX_DECLARE int gaiaParseDMS (const char *dms, double *longitude, + double *latitude); + +/** + Return a DMS string + + \param longitude the angle of longitude expressed in Decimal Degrees. + \param latitude the angle of latitude expressed in Decimal Degrees. + + \return the corresponding DMS (Degrees/Minutes/Seconds) text string, + or NULL on failure + + \sa gaiaLongitudeFromDMS, gaiaLatitudeFromDMS + + \note this function will return a dynamically allocated buffer created + by malloc(). + You are required to explicitly free() any string returned by this function. + */ + GAIAAUX_DECLARE char *gaiaConvertToDMS (double longitude, double latitude); #ifdef __cplusplus } diff --git a/src/spatialite/src/headers/spatialite/gaiaexif.h b/src/spatialite/src/headers/spatialite/gaiaexif.h index 8c7970b..a62f40a 100644 --- a/src/spatialite/src/headers/spatialite/gaiaexif.h +++ b/src/spatialite/src/headers/spatialite/gaiaexif.h @@ -1,7 +1,7 @@ /* gaiaexif.h -- Gaia common EXIF Metadata reading functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -89,6 +89,10 @@ extern "C" #define GAIA_TIFF_BLOB 9 /** this BLOB does actually contain a WebP image */ #define GAIA_WEBP_BLOB 10 +/** this BLOB does actually contain a SpatiaLite XmlBLOB */ +#define GAIA_XML_BLOB 11 +/** this BLOB does actually contain a GPKG Geometry */ +#define GAIA_GPB_BLOB 12 /* constants used for EXIF value types */ /** unrecognized EXIF value */ @@ -606,7 +610,8 @@ extern "C" \return the BLOB type: one of GAIA_HEX_BLOB, GAIA_GIF_BLOB, GAIA_PNG_BLOB, GAIA_JPEG_BLOB, GAIA_EXIF_BLOB, GAIA_EXIF_GPS_BLOB, GAIA_ZIP_BLOB, - GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB + GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB, GAIA_WEBP_BLOB, + GAIA_XML_BLOB, GAIA_GPB_BLOB */ GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob, int size); diff --git a/src/spatialite/src/headers/spatialite/gaiageo.h b/src/spatialite/src/headers/spatialite/gaiageo.h index 163f210..7ddb412 100644 --- a/src/spatialite/src/headers/spatialite/gaiageo.h +++ b/src/spatialite/src/headers/spatialite/gaiageo.h @@ -1,7 +1,7 @@ /* gaiageo.h -- Gaia common support for geometries - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -72,5 +72,6 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "gg_formats.h" #include "gg_dynamic.h" #include "gg_advanced.h" +#include "gg_xml.h" #endif /* _GAIAGEO_H */ diff --git a/src/spatialite/src/headers/spatialite/geopackage.h b/src/spatialite/src/headers/spatialite/geopackage.h new file mode 100644 index 0000000..e042fc6 --- /dev/null +++ b/src/spatialite/src/headers/spatialite/geopackage.h @@ -0,0 +1,184 @@ +/* + + GeoPackage extensions for SpatiaLite / SQLite + + version 4.2, 2014 July 25 + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage Extensions + +The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Sandro Furieri (a.furieri@lqt.it) + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +/** + \file geopackage.h + + GeoPackage: supporting functions and constants + */ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#ifdef DLL_EXPORT +#define GEOPACKAGE_DECLARE __declspec(dllexport) +#else +#define GEOPACKAGE_DECLARE extern +#endif +#endif + +#ifndef _GEOPACKAGE_H +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#define _GEOPACKAGE_H +#endif + +#include "sqlite.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include <spatialite/gaiageo.h> + +/* Internal geopackage SQL function implementation */ + GEOPACKAGE_DECLARE void fnct_gpkgCreateBaseTables (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesTable (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesZoomLevel (sqlite3_context * + context, int argc, + sqlite3_value ** + argv); + GEOPACKAGE_DECLARE void fnct_gpkgInsertEpsgSRID (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgAddTileTriggers (sqlite3_context * context, + int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgGetNormalRow (sqlite3_context * context, + int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgGetNormalZoom (sqlite3_context * context, + int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgGetImageType (sqlite3_context * context, + int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryColumn (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePoint (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointWithSRID (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointZ (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointZWithSRID (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointM (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointMWithSRID (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointZM (sqlite3_context * + context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgMakePointZMWithSRID (sqlite3_context * + context, int argc, + sqlite3_value ** + argv); + GEOPACKAGE_DECLARE void fnct_ToGPB (sqlite3_context * context, int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_GeomFromGPB (sqlite3_context * context, + int argc, sqlite3_value ** argv); + + GEOPACKAGE_DECLARE gaiaGeomCollPtr gaiaFromGeoPackageGeometryBlob (const + unsigned + char + *gpb, + unsigned + int + gpb_len); + +/* Sandro Furieri - 2014-05-19 */ + GEOPACKAGE_DECLARE int gaiaIsValidGPB (const unsigned char *gpb, + int gpb_len); + GEOPACKAGE_DECLARE int gaiaGetSridFromGPB (const unsigned char *gpb, + int gpb_len); + GEOPACKAGE_DECLARE int gaiaIsEmptyGPB (const unsigned char *gpb, + int gpb_len); + GEOPACKAGE_DECLARE int gaiaGetEnvelopeFromGPB (const unsigned char *gpb, + int gpb_len, double *min_x, + double *max_x, double *min_y, + double *max_y, int *has_z, + double *min_z, double *max_z, + int *has_m, double *min_m, + double *max_m); + GEOPACKAGE_DECLARE char *gaiaGetGeometryTypeFromGPB (const unsigned char + *gpb, int gpb_len); + GEOPACKAGE_DECLARE void fnct_IsValidGPB (sqlite3_context * context, + int argc, sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_GPKG_IsAssignable (sqlite3_context * context, + int argc, + sqlite3_value ** argv); + GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryTriggers (sqlite3_context * + context, int argc, + sqlite3_value ** + argv); + GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryTriggers (sqlite3_context * + context, int argc, + sqlite3_value ** + argv); + GEOPACKAGE_DECLARE void fnct_gpkgAddSpatialIndex (sqlite3_context * context, + int argc, + sqlite3_value ** argv); +/* end Sandro Furieri - 2014-05-19 */ + + +/* Markers for unused arguments / variable */ +#if __GNUC__ +#define UNUSED __attribute__ ((__unused__)) +#else +#define UNUSED +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/spatialite/src/headers/spatialite/gg_advanced.h b/src/spatialite/src/headers/spatialite/gg_advanced.h index 45d1da1..db8014a 100644 --- a/src/spatialite/src/headers/spatialite/gg_advanced.h +++ b/src/spatialite/src/headers/spatialite/gg_advanced.h @@ -1,7 +1,7 @@ /* gg_advanced.h -- Gaia common support for geometries: advanced - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -65,9 +65,16 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale #define _GG_ADVANCED_H #endif +/** Gaia-to-GEOS: all geometries */ #define GAIA2GEOS_ALL 0 + +/** Gaia-to-GEOS: only geometries of the Point type */ #define GAIA2GEOS_ONLY_POINTS 1 + +/** Gaia-to-GEOS: only geometries of the Linestring type */ #define GAIA2GEOS_ONLY_LINESTRINGS 2 + +/** Gaia-to-GEOS: only geometries of the Polygon type */ #define GAIA2GEOS_ONLY_POLYGONS 3 #ifdef __cplusplus @@ -75,7 +82,9 @@ extern "C" { #endif +#ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef OMIT_PROJ /* including PROJ.4 */ +#endif /** Converts and angle from Radians into Degrees @@ -104,6 +113,7 @@ extern "C" /** Tansforms a Geometry object into a different Reference System [aka Reprojection] + \param org pointer to input Geometry object. \param proj_from geodetic parameters string [EPSG format] qualifying the input Reference System @@ -112,9 +122,10 @@ extern "C" \return the pointer to newly created Geometry object: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaTransform_r, gaiaFreeGeomColl - \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform() + \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform()\n + not reentrant and thread unsafe. \remark \b PROJ.4 support required */ @@ -122,6 +133,31 @@ extern "C" char *proj_from, char *proj_to); +/** + Tansforms a Geometry object into a different Reference System + [aka Reprojection] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param org pointer to input Geometry object. + \param proj_from geodetic parameters string [EPSG format] qualifying the + input Reference System + \param proj_to geodetic parameters string [EPSG format] qualifying the + output Reference System + + \return the pointer to newly created Geometry object: NULL on failure. + + \sa gaiaTransform, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform()\n + reentrant and thread-safe. + + \remark \b PROJ.4 support required + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache, + gaiaGeomCollPtr org, + char *proj_from, + char *proj_to); + #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ @@ -129,63 +165,270 @@ extern "C" /** Resets the GEOS error and warning messages to an empty state - \sa gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, - gaiaSetGeosWarningMsg + \sa gaiaResetGeosMsg_r, + gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaResetGeosMsg (void); +/** + Resets the GEOS error and warning messages to an empty state + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \sa gaiaResetGeosMsg, + gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache); + /** Return the latest GEOS error message (if any) \return the latest GEOS error message: an empty string if no error was previoysly found. - \sa gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, - gaiaSetGeosWarningMsg + \sa gaiaGetGeosErrorMsg_r, + gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, + gaiaCriticalPointFromGEOSmsg + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void); +/** + Return the latest GEOS error message (if any) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return the latest GEOS error message: an empty string if no error was + previoysly found. + + \sa gaiaGetGeosErrorMsg, + gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, + gaiaCriticalPointFromGEOSmsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache); + /** Return the latest GEOS warning message (if any) \return the latest GEOS warning message: an empty string if no warning was previoysly found. - \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaSetGeosErrorMsg, - gaiaSetGeosWarningMsg + \sa gaiaGetGeosWarningMsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, + gaiaCriticalPointFromGEOSmsg + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void); +/** + Return the latest GEOS warning message (if any) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return the latest GEOS warning message: an empty string if no warning was + previoysly found. + + \sa gaiaGetGeosWarningMsg, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, + gaiaCriticalPointFromGEOSmsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache); + +/** + Return the latest GEOS (auxiliary) error message (if any) + + \return the latest GEOS (auxiliary) error message: an empty string if no + error was previoysly found. + + \sa gaiaGetGeosAuxErrorMsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void); + +/** + Return the latest GEOS (auxiliary) error message (if any) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return the latest GEOS (auxiliary) error message: an empty string if no + error was previoysly found. + + \sa gaiaGetGeosAuxErrorMsg, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache); + +/** + Attempts to (possibile) return a Point Geometry extracted from the latest + GEOS error / warning message + + \return a Point Geometry: NULL if no warning/error was previoysly found + or if the current GEOS message doesn't contains a critical Point. + + \sa gaiaCriticalPointFromGEOSmsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void); + +/** + Attempts to (possibile) return a Point Geometry extracted from the latest + GEOS error / warning message + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return a Point Geometry: NULL if no warning/error was previoysly found + or if the current GEOS message doesn't contains a critical Point. + + \sa gaiaCriticalPointFromGEOSmsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void + *p_cache); + /** Set the current GEOS error message \param msg the error message to be set. - \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, - gaiaSetGeosWarningMsg + \sa gaiaSetGeosErrorMsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg); +/** + Set the current GEOS error message + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param msg the error message to be set. + + \sa gaiaSetGeosErrorMsg, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache, + const char *msg); + /** Set the current GEOS warning message \param msg the warning message to be set. - \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, - gaiaSetGeosErrorMsg + \sa gaiaSetGeosWarningMsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg); +/** + Set the current GEOS warning message + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param msg the warning message to be set. + + \sa gaiaSetGeosWarningMsg, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache, + const char *msg); + +/** + Set the current GEOS (auxiliary) error message + + \param msg the error message to be set. + + \sa gaiaSetAuxErrorMsg_r, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg); + +/** + Set the current GEOS (auxiliary) error message + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param msg the error message to be set. + + \sa gaiaSetAuxErrorMsg, + gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, + gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache, + const char *msg); + /** Converts a Geometry object into a GEOS Geometry @@ -193,15 +436,35 @@ extern "C" \return handle to GEOS Geometry - \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM, - gaiaToGeosSelective + \sa gaiaToGeos_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, + gaiaFromGeos_XYZM, gaiaToGeosSelective - \note convenience method, simply defaulting to gaiaToGeos(geom, GAIA2GEOS_ALL) + \note convenience method, simply defaulting to gaiaToGeosSelective(geom, GAIA2GEOS_ALL)\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia); +/** + Converts a Geometry object into a GEOS Geometry + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param gaia pointer to Geometry object + + \return handle to GEOS Geometry + + \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, + gaiaFromGeos_XYZM, gaiaToGeosSelective_r + + \note convenience method, simply defaulting to gaiaToGeosSelective_r(p_cache, geom, GAIA2GEOS_ALL)\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache, + const gaiaGeomCollPtr gaia); + /** Converts a Geometry object into a GEOS Geometry @@ -211,16 +474,41 @@ extern "C" \return handle to GEOS Geometry - \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM + \sa gaiaToGeosSelective_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ, + gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries - of the selected type will be passed to GEOS, ignoring any other. + of the selected type will be passed to GEOS, ignoring any other.\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode); +/** + Converts a Geometry object into a GEOS Geometry + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param gaia pointer to Geometry object + \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS, + GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS + + \return handle to GEOS Geometry + + \sa gaiaToGeosSelective, gaiaFromGeos_XY, gaiaFromGeos_XYZ, + gaiaFromGeos_XYM, gaiaFromGeos_XYZM + + \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries + of the selected type will be passed to GEOS, ignoring any other.\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache, + const gaiaGeomCollPtr gaia, + int mode); + /** Converts a GEOS Geometry into a Geometry object [XY dims] @@ -228,15 +516,37 @@ extern "C" \return the pointer to the newly created Geometry object - \sa gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM + \sa gaiaFromGeos_XY_r, + gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated - Geometry, this including any Geometry returned by gaiaFromGeos_XY() + Geometry, this including any Geometry returned by gaiaFromGeos_XY()\n + not reentrant and thread usafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos); +/** + Converts a GEOS Geometry into a Geometry object [XY dims] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geos handle to GEOS Geometry + + \return the pointer to the newly created Geometry object + + \sa gaiaFromGeos_XY, + gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM + + \note you are responsible to destroy (before or after) any allocated + Geometry, this including any Geometry returned by gaiaFromGeos_XY_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache, + const void *geos); + /** Converts a GEOS Geometry into a Geometry object [XYZ dims] @@ -244,15 +554,37 @@ extern "C" \return the pointer to the newly created Geometry object - \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM + \sa gaiaFromGeos_XYZ_r, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated - Geometry, this including any Geometry returned by gaiaFromGeos_XYZ() + Geometry, this including any Geometry returned by gaiaFromGeos_XYZ()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos); +/** + Converts a GEOS Geometry into a Geometry object [XYZ dims] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geos handle to GEOS Geometry + + \return the pointer to the newly created Geometry object + + \sa gaiaFromGeos_XYZ, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM + + \note you are responsible to destroy (before or after) any allocated + Geometry, this including any Geometry returned by gaiaFromGeos_XYZ_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache, + const void *geos); + /** Converts a GEOS Geometry into a Geometry object [XYM dims] @@ -260,15 +592,37 @@ extern "C" \return the pointer to the newly created Geometry object - \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM + \sa gaiaFromGeos_XYM_r, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated - Geometry, this including any Geometry returned by gaiaFromGeos_XYM() + Geometry, this including any Geometry returned by gaiaFromGeos_XYM()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos); +/** + Converts a GEOS Geometry into a Geometry object [XYM dims] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geos handle to GEOS Geometry + + \return the pointer to the newly created Geometry object + + \sa gaiaFromGeos_XYM, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM + + \note you are responsible to destroy (before or after) any allocated + Geometry, this including any Geometry returned by gaiaFromGeos_XYM_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache, + const void *geos); + /** Converts a GEOS Geometry into a Geometry object [XYZM dims] @@ -276,15 +630,37 @@ extern "C" \return the pointer to the newly created Geometry object - \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM + \sa gaiaFromGeos_XYZM_r, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM \note you are responsible to destroy (before or after) any allocated - Geometry, this including any Geometry returned by gaiaFromGeos_XYZM() + Geometry, this including any Geometry returned by gaiaFromGeos_XYZM()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos); +/** + Converts a GEOS Geometry into a Geometry object [XYZM dims] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geos handle to GEOS Geometry + + \return the pointer to the newly created Geometry object + + \sa gaiaFromGeos_XYZM, + gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM + + \note you are responsible to destroy (before or after) any allocated + Geometry, this including any Geometry returned by gaiaFromGeos_XYZM_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache, + const void *geos); + /** Checks if a Geometry object represents an OGC Simple Geometry @@ -292,12 +668,33 @@ extern "C" \return 0 if false; any other value if true - \sa gaiaIsClosed, gaiaIsRing, gaiaIsValid + \sa gaiaIsSimple_r, + gaiaIsClosed, gaiaIsRing, gaiaIsValid + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom); +/** + Checks if a Geometry object represents an OGC Simple Geometry + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object. + + \return 0 if false; any other value if true + + \sa gaiaIsSimple, + gaiaIsClosed, gaiaIsRing, gaiaIsValid + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache, + gaiaGeomCollPtr geom); + /** Checks if a Linestring object represents an OGC Closed Geometry @@ -318,75 +715,259 @@ extern "C" /** Checks if a Geometry object represents an OGC Closed Linestring - \param line pointer to Geometry object. + \param geom pointer to Geometry object. \return 0 if false; any other value if true - \sa gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed + \sa gaiaIsClosedGeom_r, + gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom); /** - Checks if a Linestring object represents an OGC Ring Geometry + Checks if a Geometry object represents an OGC Closed Linestring - \param line pointer to Geometry object. + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object. \return 0 if false; any other value if true - \sa gaiaIsSimple, gaiaIsClosed, gaiaIsValid + \sa gaiaIsClosedGeom, + gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed + + \note reentrant and thread-safe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line); + GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache, + gaiaGeomCollPtr geom); /** - Checks if a Geometry object represents an OGC Valid Geometry + Checks if a Linestring object represents an OGC Ring Geometry - \param geom pointer to Geometry object. + \param line pointer to Geometry object. \return 0 if false; any other value if true - \sa gaiaIsSimple, gaiaIsClosed, gaiaIsRing + \sa gaiaIsRing_r, + gaiaIsSimple, gaiaIsClosed, gaiaIsValid + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom); + GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line); /** - Measures the total Length for a Geometry object + Checks if a Linestring object represents an OGC Ring Geometry - \param geom pointer to Geometry object - \param length on completion this variable will contain the measured length + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param line pointer to Geometry object. - \return 0 on failure: any other value on success + \return 0 if false; any other value if true + + \sa gaiaIsRing, + gaiaIsSimple, gaiaIsClosed, gaiaIsValid - \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter + \note reentrant and thread-safe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, - double *length); + GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache, + gaiaLinestringPtr line); /** - Measures the total Length or Perimeter for a Geometry object + Checks if a Geometry object represents an OGC Valid Geometry - \param geom pointer to Geometry object - \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting + \param geom pointer to Geometry object. + + \return 0 if false; any other value if true + + \sa gaiaIsValid_r, + gaiaIsSimple, gaiaIsClosed, gaiaIsRing, gaiaIsValidReason + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom); + +/** + return a TEXT string stating if a Geometry is valid and if not + valid, a reason why + * + \param geom pointer to the Geometry object to be validated. + + \return a text string. + + \sa gaiaIsValid, gaiaIsValidReason_r, gaiaIsValidDetail + + \note you are responsible to free() the returned text string\n + not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom); + +/** + return a TEXT string stating if a Geometry is valid and if not + valid, a reason why + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to the Geometry object to be validated. + + \return a text string. + + \sa gaiaIsValid_r, gaiaIsValidReason, gaiaIsValidDetail_r + + \note you are responsible to free() the returned text string\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache, + gaiaGeomCollPtr geom); + +/** + return a Geometry detail causing a Geometry to be invalid + * + \param geom pointer to the Geometry object to be validated. + + \return pointer to a Geometry object causing invalidity, or NULL. + + \sa gaiaIsValid, gaiaIsValidReason, gaiaIsValidDetail_r + + \note you are responsible to destroy the returned Geometry\n + not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom); + +/** + return a Geometry detail causing a Geometry to be invalid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to the Geometry object to be validated. + + \return pointer to a Geometry object causing invalidity, or NULL. + + \sa gaiaIsValid_r, gaiaIsValidReason_r, gaiaIsValidDetail + + \note you are responsible to destroy the returned Geometry\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache, + gaiaGeomCollPtr geom); + +/** + Checks if a Geometry object represents an OGC Valid Geometry + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object. + + \return 0 if false; any other value if true + + \sa gaiaIsValid, + gaiaIsSimple, gaiaIsClosed, gaiaIsRing, gaiaIsValidReason_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache, + gaiaGeomCollPtr geom); + +/** + Measures the total Length for a Geometry object + + \param geom pointer to Geometry object + \param length on completion this variable will contain the measured length + + \return 0 on failure: any other value on success + + \sa gaiaGeomCollLenght_r, + gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, + double *length); + +/** + Measures the total Length for a Geometry object + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object + \param length on completion this variable will contain the measured length + + \return 0 on failure: any other value on success + + \sa gaiaGeomCollLenght, + gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache, + gaiaGeomCollPtr geom, + double *length); + +/** + Measures the total Length or Perimeter for a Geometry object + + \param geom pointer to Geometry object + \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon) \param length on completion this variable will contain the measured length or perimeter \return 0 on failure: any other value on success - \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength + \sa gaiaGeomCollLengthOrPerimeter_r, + gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, double *length); + +/** + Measures the total Length or Perimeter for a Geometry object + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object + \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting + \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon) + \param length on completion this variable will contain the measured length + or perimeter + + \return 0 on failure: any other value on success + + \sa gaiaGeomCollLengthOrPerimeter, + gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, + gaiaGeomCollPtr geom, + int perimeter, + double *length); + /** Measures the total Area for a Geometry object @@ -395,12 +976,33 @@ extern "C" \return 0 on failure: any other value on success - \sa gaiaGeomCollLength, gaiaMeasureArea + \sa gaiaGeoCollArea_r, + gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area); +/** + Measures the total Area for a Geometry object + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object + \param area on completion this variable will contain the measured area + + \return 0 on failure: any other value on success + + \sa gaiaGeoCollArea, + gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache, + gaiaGeomCollPtr geom, double *area); /** Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon @@ -412,15 +1014,39 @@ extern "C" \return the pointer to newly created Geometry object representing a Polygon or MultiPolygon Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaPolygonize_r, gaiaMakePolygon, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaPolygonize() + this including any Geometry returned by gaiaPolygonize()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi); + +/** + Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object + \param force_multi if not set to 0, then an eventual Polygon will be + returned casted to MultiPolygon + + \return the pointer to newly created Geometry object representing a + Polygon or MultiPolygon Geometry: NULL on failure. + + \sa gaiaPolygonize, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaPolygonize_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache, + gaiaGeomCollPtr geom, + int force_multi); /** Spatial relationship evalution: Equals @@ -429,14 +1055,36 @@ extern "C" \return 0 if false: any other value if true - \sa gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, - gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, - gaiaGeomCollTouches, gaiaGeomCollRelate + \sa gaiaGeomCollEquals_r, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate + + \note Obsolete: not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Spatial relationship evalution: Equals + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint @@ -446,15 +1094,65 @@ extern "C" \return 0 if false: any other value if true - \sa gaiaGeomCollEquals, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, - gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, - gaiaGeomCollTouches, gaiaGeomCollRelate + \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate + + \note Obsolete: not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Spatial relationship evalution: Disjoint + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Disjoint (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \sa gaiaGeomCollDisjoint, gaiaGeomCollDisjoint_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + /** Spatial relationship evalution: Intesects @@ -463,15 +1161,67 @@ extern "C" \return 0 if false: any other value if true - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, + \sa gaiaGeomCollIntersects_r, gaiaGeomCollPreparedIntersects, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate - + + \note not reentrant and thread unsafe. + \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Spatial relationship evalution: Intersects + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollIntersects, gaiaGeomCollPreparedIntersects, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, + gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Intersects (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \sa gaiaGeomCollIntersects, gaiaGeomCollIntersects_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + /** Spatial relationship evalution: Overlaps @@ -480,9 +1230,12 @@ extern "C" \return 0 if false: any other value if true - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + \sa gaiaGeomCollOverlaps_r, gaiaGeomCollPreparedOverlaps, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -490,91 +1243,376 @@ extern "C" gaiaGeomCollPtr geom2); /** - Spatial relationship evalution: Crosses + Spatial relationship evalution: Overlaps + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollOverlaps, gaiaGeomCollPreparedOverlaps, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Overlaps (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \sa gaiaGeomCollOverlaps, gaiaGeomCollOverlaps_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + +/** + Spatial relationship evalution: Crosses + + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollCrosses_r, gaiaGeomCollPreparedCrosses, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Crosses + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollCrosses, gaiaGeomCollPreparedCrosses, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Crosses (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \note reentrant and thread-safe. + + \sa gaiaGeomCollCrosses, gaiaGeomCollCrosses_r + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + +/** + Spatial relationship evalution: Contains + + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollContains_r, gaiaGeomCollPreparedContains, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Contains + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollContains, gaiaGeomCollPreparedContains, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Contains (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \sa gaiaGeomCollContains, gaiaGeomCollContains_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + +/** + Spatial relationship evalution: Within + + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollWithin_r, gaiaGeomCollPreparedWithin, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Within + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param geom2 the second Geometry object to be evaluated + + \return 0 if false: any other value if true + + \sa gaiaGeomCollWithin, gaiaGeomCollPreparedWithin, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollTouches, gaiaGeomCollRelate + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial relationship evalution: Within (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false: any other value if true + + \sa gaiaGeomCollWithin, gaiaGeomCollWithin_r + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + +/** + Spatial relationship evalution: Touches \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true + + \sa gaiaGeomCollTouches_r, gaiaGeomCollPreparedTouches, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollRelate - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, - gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, - gaiaGeomCollTouches, gaiaGeomCollRelate + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, + GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** - Spatial relationship evalution: Contains + Spatial relationship evalution: Touches + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true + + \sa gaiaGeomCollTouches, gaiaGeomCollPreparedTouches, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollRelate - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, - gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, - gaiaGeomCollTouches, gaiaGeomCollRelate + \note reentrant and thread-safe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, - gaiaGeomCollPtr geom2); + GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); /** - Spatial relationship evalution: Within + Spatial relationship evalution: Touches (GEOSPreparedGeometry) + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, - gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, - gaiaGeomCollTouches, gaiaGeomCollRelate + \sa gaiaGeomCollTouches, gaiaGeomCollTouches_r + + \note reentrant and thread-safe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, - gaiaGeomCollPtr geom2); + GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); /** - Spatial relationship evalution: Touches + Spatial relationship evalution: Relate + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated + \param pattern intersection matrix pattern [DE-9IM] \return 0 if false: any other value if true - - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, - gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, - gaiaGeomCollWithin, gaiaGeomCollRelate + \sa gaiaGeomCollRelate_r, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollRelate + + \note not reentrant and thread unsafe. + \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, - gaiaGeomCollPtr geom2); + GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, + const char *pattern); /** Spatial relationship evalution: Relate + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \param pattern intersection matrix pattern [DE-9IM] \return 0 if false: any other value if true - - \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, - gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, - gaiaGeomCollWithin, gaiaGeomCollTouches + \sa gaiaGeomCollRelate, + gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, + gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, + gaiaGeomCollWithin, gaiaGeomCollRelate + + \note reentrant and thread-safe. + \remark \b GEOS support required. */ - GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, - gaiaGeomCollPtr geom2, - const char *pattern); + GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, + const char *pattern); /** Calculates the maximum distance intercurring between two Geometry objects @@ -585,9 +1623,11 @@ extern "C" \return 0 on failure: any other value on success. - \sa gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance + \sa gaiaGeomCollDistance_r, + gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance - \note this function always computes the 2D cartesian distance. + \note this function always computes the 2D cartesian distance.\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -595,20 +1635,45 @@ extern "C" gaiaGeomCollPtr geom2, double *dist); +/** + Calculates the maximum distance intercurring between two Geometry objects + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object + \param geom2 the second Geometry object + \param dist on completion this variable will contain the calculated distance + + \return 0 on failure: any other value on success. + + \sa gaiaGeomCollDistance, + gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance + + \note this function always computes the 2D cartesian distance.\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, + double *dist); + /** Spatial operator: Intersection - + \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Intersection of both input Geometries: NULL on failure. - \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, + \sa gaiaGeometryIntersection_r, + gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaBoundary \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeometryIntersection() + this including any Geometry returned by gaiaGeometryIntersection()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -618,24 +1683,76 @@ extern "C" geom2); /** - Spatial operator: Union + Spatial operator: Intersection + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object + \param geom2 the second Geometry object + + \return the pointer to newly created Geometry object representing the + geometry Intersection of both input Geometries: NULL on failure. + + \sa gaiaGeometryIntersection, + gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, + gaiaGeometrySymDifference, gaiaBoundary + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeometryIntersection_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void + *p_cache, + gaiaGeomCollPtr + geom1, + gaiaGeomCollPtr + geom2); +/** + Spatial operator: Union + \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Union of both input Geometries: NULL on failure. - \sa gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded + \sa gaiaGeometryUnion_r, + gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeometryUnion() + this including any Geometry returned by gaiaGeometryUnion()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Spatial operator: Union + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object + \param geom2 the second Geometry object + + \return the pointer to newly created Geometry object representing the + geometry Union of both input Geometries: NULL on failure. + + \sa gaiaGeometryUnion, + gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeometryUnion_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + /** Spatial operator: Union Cascaded @@ -646,15 +1763,40 @@ extern "C" MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions. NULL on failure. - \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion + \sa gaiaUnionCascaded, + gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaUnionCascaded() + this including any Geometry returned by gaiaUnionCascaded()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom); +/** + Spatial operator: Union Cascaded + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object. + + \return the pointer to newly created Geometry object: NULL on failure. + \n this function is similar to gaiaUnaryUnion, but it only accepts Polygons and + MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions. + NULL on failure. + + \sa gaiaUnionCascaded, + gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaUnionCascaded_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache, + gaiaGeomCollPtr geom); + /** Spatial operator: Difference @@ -664,10 +1806,11 @@ extern "C" \return the pointer to newly created Geometry object representing the geometry Difference of both input Geometries: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaGeometryDifference_r, gaiaGeometrySymDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeometryDifference() + this including any Geometry returned by gaiaGeometryDifference()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -676,6 +1819,31 @@ extern "C" gaiaGeomCollPtr geom2); +/** + Spatial operator: Difference + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object + \param geom2 the second Geometry object + + \return the pointer to newly created Geometry object representing the + geometry Difference of both input Geometries: NULL on failure. + + \sa gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeometryDifference_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void + *p_cache, + gaiaGeomCollPtr + geom1, + gaiaGeomCollPtr + geom2); + /** Spatial operator: SymDifference @@ -685,10 +1853,11 @@ extern "C" \return the pointer to newly created Geometry object representing the geometry SymDifference of both input Geometries: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaGeometrySymDifference_r, gaiaGeometryDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeometrySymDifference() + this including any Geometry returned by gaiaGeometrySymDifference()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -697,6 +1866,31 @@ extern "C" gaiaGeomCollPtr geom2); +/** + Spatial operator: SymDifference + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 the first Geometry object + \param geom2 the second Geometry object + + \return the pointer to newly created Geometry object representing the + geometry SymDifference of both input Geometries: NULL on failure. + + \sa gaiaGeometrySymDifference, gaiaGeometryDifference, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeometrySymDifference_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void + *p_cache, + gaiaGeomCollPtr + geom1, + gaiaGeomCollPtr + geom2); + /** Spatial operator: Boundary @@ -705,15 +1899,36 @@ extern "C" \return the pointer to newly created Geometry object representing the geometry Boundary of the input Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaBoudary_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaBoundary() + this including any Geometry returned by gaiaBoundary()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom); +/** + Spatial operator: Boundary + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the Geometry object to be evaluated + + \return the pointer to newly created Geometry object representing the + geometry Boundary of the input Geometry: NULL on failure. + + \sa gaiaBoudary, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaBoundary_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache, + gaiaGeomCollPtr geom); + /** Spatial operator: Centroid @@ -723,13 +1938,35 @@ extern "C" \return 0 on failure: any other value on success - \sa gaiaRingCentroid + \sa gaiaGeomCollCentroid_r, gaiaRingCentroid + + \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y); +/** + Spatial operator: Centroid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object. + \param x on completion this variable will contain the centroid X coordinate + \param y on completion this variable will contain the centroid Y coordinate + + \return 0 on failure: any other value on success + + \sa gaiaGeomCollCentroid, gaiaRingCentroid + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache, + gaiaGeomCollPtr geom, double *x, + double *y); + /** Spatial operator: PointOnSurface @@ -739,11 +1976,35 @@ extern "C" \return 0 on failure: any other value on success + \sa gaiaGetPointOnSurface_r + + \note not reentrant and thread unsafe. + \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y); +/** + Spatial operator: PointOnSurface + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object. + \param x on completion this variable will contain the Point X coordinate + \param y on completion this variable will contain the Point Y coordinate + + \return 0 on failure: any other value on success + + \sa gaiaGetPointOnSurface + + \note reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache, + gaiaGeomCollPtr geom, + double *x, double *y); + /** Spatial operator: Simplify @@ -753,16 +2014,42 @@ extern "C" \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. - \sa gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology + \sa gaiaGeomCollSimplify_r, + gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeomCollSimplify() + this including any Geometry returned by gaiaGeomCollSimplify()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance); +/** + Spatial operator: Simplify + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object + \param tolerance approximation threshold + + \return the pointer to newly created Geometry object representing the + simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. + + \sa gaiaGeomCollSimplify, + gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeomCollSimplify_r()\n + reentrant and thread safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache, + gaiaGeomCollPtr + geom, + double tolerance); + /** Spatial operator: Simplify [preserving topology] @@ -772,10 +2059,12 @@ extern "C" \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. - \sa gaiaFreeGeomColl, gaiaGeomCollSimplify + \sa gaiaGeomCollSimplifyPreserveTopology_r, + gaiaFreeGeomColl, gaiaGeomCollSimplify \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeomCollSimplify() + this including any Geometry returned by gaiaGeomCollSimplify()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ @@ -783,26 +2072,95 @@ extern "C" gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance); +/** + Spatial operator: Simplify [preserving topology] + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object + \param tolerance approximation threshold + + \return the pointer to newly created Geometry object representing the + simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. + + \sa gaiaGeomCollSimplifyPreserveTopology, + gaiaFreeGeomColl, gaiaGeomCollSimplify + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaGeomCollSimplify_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr + gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache, + gaiaGeomCollPtr geom, + double tolerance); + +/** + Spatial operator: ConvexHull + + \param geom the input Geometry object + + \return the pointer to newly created Geometry object representing the + ConvexHull of input Geometry: NULL on failure. + + \sa gaiaConvexHull_r, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaConvexHull()\n + not reentrant and thread unsafe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom); + /** Spatial operator: ConvexHull + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \return the pointer to newly created Geometry object representing the - ConvexHull of input Geometry: NULL on failure. + ConvexHull of input Geometry: NULL on failure. + + \sa gaiaConvexHull, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaConvexHull_r()\n + reentrant and thread-safe. + + \remark \b GEOS support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache, + gaiaGeomCollPtr geom); + +/** + Spatial operator: Buffer + + \param geom the input Geometry object + \param radius the buffer's radius + \param points number of points (aka vertices) to be used in order to + approximate a circular arc. + + \return the pointer to newly created Geometry object representing the + Buffer of input Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaGeomCollBuffer_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaConvexHull() + this including any Geometry returned by gaiaGeomCollBuffer()\n + not reentrant and thread unsafe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom); + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, + double radius, + int points); /** Spatial operator: Buffer + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to @@ -811,16 +2169,18 @@ extern "C" \return the pointer to newly created Geometry object representing the Buffer of input Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaGeomCollBuffer, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaGeomCollBuffer() + this including any Geometry returned by gaiaGeomCollBuffer_r()\n + reentrant and thread-safe. \remark \b GEOS support required. */ - GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, - double radius, - int points); + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache, + gaiaGeomCollPtr geom, + double radius, + int points); #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef GEOS_ADVANCED @@ -836,12 +2196,38 @@ extern "C" \return 0 on failure: any other value on success. + \sa gaiaHausdorffDistance_r + + \note not reentrant and thread unsafe. + \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); +/** + Calculates the Hausdorff distance intercurring between two Geometry objects + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first Geometry object + \param geom2 pointer to second Geometry object + \param dist on completion this variable will contain the calculated Hausdorff + distance + + \return 0 on failure: any other value on success. + + \sa gaiaHausdorffDistance + + \note reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, + double *dist); + /** Spatial operator: Offset Curve @@ -855,10 +2241,11 @@ extern "C" \return the pointer to newly created Geometry object representing the OffsetCurve of input Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaOffsetCurve_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaOffsetCurve() + this including any Geometry returned by gaiaOffsetCurve()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -866,6 +2253,34 @@ extern "C" double radius, int points, int left_right); +/** + Spatial operator: Offset Curve + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object + \param radius the buffer's radius + \param points number of points (aka vertices) to be used in order to + approximate a circular arc. + \param left_right if set to 1 the left-sided OffsetCurve will be returned; + otherwise the right-sided one. + + \return the pointer to newly created Geometry object representing the + OffsetCurve of input Geometry: NULL on failure. + + \sa gaiaOffsetCurve, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaOffsetCurve_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache, + gaiaGeomCollPtr geom, + double radius, + int points, + int left_right); + /** Spatial operator: Single Sided Buffer @@ -879,10 +2294,11 @@ extern "C" \return the pointer to newly created Geometry object representing the single-sided Buffer of input Geometry: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaSingleSidedBuffer_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaSingleSidedBuffer() + this including any Geometry returned by gaiaSingleSidedBuffer()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -891,6 +2307,36 @@ extern "C" int points, int left_right); +/** + Spatial operator: Single Sided Buffer + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object + \param radius the buffer's radius + \param points number of points (aka vertices) to be used in order to + approximate a circular arc. + \param left_right if set to 1 the left-sided Buffer will be returned; + otherwise the right-sided one. + + \return the pointer to newly created Geometry object representing the + single-sided Buffer of input Geometry: NULL on failure. + + \sa gaiaSingleSidedBuffer, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaSingleSidedBuffer_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void + *p_cache, + gaiaGeomCollPtr + geom, + double radius, + int points, + int left_right); + /** Spatial operator: Shared Paths @@ -900,16 +2346,39 @@ extern "C" \return the pointer to newly created Geometry object representing any Share Path common to both input geometries: NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaSharedPaths_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaSharedPaths() + this including any Geometry returned by gaiaSharedPaths()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Spatial operator: Shared Paths + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first Geometry object + \param geom2 pointer to second Geometry object + + \return the pointer to newly created Geometry object representing any + Share Path common to both input geometries: NULL on failure. + + \sa gaiaSharedPaths, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaSharedPaths_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + /** Spatial operator: Line Interpolate Point @@ -920,11 +2389,12 @@ extern "C" laying on the input Geometry and positioned at the given length fraction: NULL on failure. - \sa gaiaLineInterpolateEquidistantPoints - \sa gaiaFreeGeomColl + \sa gaiaLineInterpolatePoint_r, + gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaLineInterpolatePoint() + this including any Geometry returned by gaiaLineInterpolatePoint()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -932,6 +2402,33 @@ extern "C" ln_geom, double fraction); +/** + Spatial operator: Line Interpolate Point + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param ln_geom the input Geometry object [expected to be of lineal type] + \param fraction total length fraction [in the range 0.0 / 1.0] + + \return the pointer to newly created Geometry object representing a Point + laying on the input Geometry and positioned at the given length fraction: + NULL on failure. + + \sa gaiaLineInterpolatePoint, + gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaLineInterpolatePoint_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void + *p_cache, + gaiaGeomCollPtr + ln_geom, + double + fraction); + /** Spatial operator: Line Interpolate Equidistant Points @@ -944,11 +2441,12 @@ extern "C" individual Points will be regularly spaced by the given distance: NULL on failure. - \sa gaiaLineInterpolatePoint - \sa gaiaFreeGeomColl + \sa gaiaLineInterpolateEquidistantPoints_r, + gaiaLineInterpolatePoint, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaLineInterpolateEquidistantPoints() + this including any Geometry returned by gaiaLineInterpolateEquidistantPoints()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -956,6 +2454,33 @@ extern "C" gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr ln_geom, double distance); +/** + Spatial operator: Line Interpolate Equidistant Points + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param ln_geom the input Geometry object [expected to be of lineal type] + \param distance regular distance between interpolated points + + \return the pointer to newly created Geometry object representing a MultiPoint; + such MultiPoint always supports the M coordinate (the corresponding value + representing the progressive distance for each interpolated Point). + individual Points will be regularly spaced by the given distance: + NULL on failure. + + \sa gaiaLineInterpolateEquidistantPoints, + gaiaLineInterpolatePoint, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaLineInterpolateEquidistantPoints_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr + gaiaLineInterpolateEquidistantPoints_r (const void *p_cache, + gaiaGeomCollPtr ln_geom, + double distance); + /** Spatial operator: Line Substring @@ -969,10 +2494,11 @@ extern "C" \n this Linestring will begin (and stop) at given total length fractions. NULL on failure. - \sa gaiaFreeGeomColl + \sa gaiaLineSubstring_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaLineSubstring() + this including any Geometry returned by gaiaLineSubstring()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -980,6 +2506,34 @@ extern "C" double start_fraction, double end_fraction); +/** + Spatial operator: Line Substring + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param ln_geom the input Geometry object [expected to be of lineal type] + \param start_fraction substring start, expressed as total length fraction + [in the range 0.0 / 1.0] + \param end_fraction substring end, expressed as total length fraction + + \return the pointer to newly created Geometry object representing a Linestring + laying on the input Geometry. + \n this Linestring will begin (and stop) at given total length fractions. + NULL on failure. + + \sa gaiaLineSubstring, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaLineSubstring_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache, + gaiaGeomCollPtr + ln_geom, + double start_fraction, + double end_fraction); + /** Spatial operator: Shortest Line @@ -991,10 +2545,11 @@ extern "C" \n the returned Linestring graphically represents the minimum distance intercurrinng between both input geometries. - \sa gaiaFreeGeomColl + \sa gaiaShortestLine_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaShortestLine() + this including any Geometry returned by gaiaShortestLine()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -1004,6 +2559,30 @@ extern "C" /** Spatial operator: Shortest Line + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to the first Geometry object. + \param geom2 pointer to the second Geometry object. + + \return the pointer to newly created Geometry object representing a Linestring; + NULL on failure. + \n the returned Linestring graphically represents the minimum distance + intercurrinng between both input geometries. + + \sa gaiaShortestLine, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaShortestLine_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Spatial operator: Snap + \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \param tolerance approximation factor @@ -1012,10 +2591,11 @@ extern "C" \n the returned Geometry represents the first input Geometry (nicely \e snapped to the second input Geometry, whenever is possible). - \sa gaiaFreeGeomColl + \sa gaiaSnap_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaShortestLine() + this including any Geometry returned by gaiaSnap()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ @@ -1023,6 +2603,31 @@ extern "C" gaiaGeomCollPtr geom2, double tolerance); +/** + Spatial operator: Snap + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to the first Geometry object. + \param geom2 pointer to the second Geometry object. + \param tolerance approximation factor + + \return the pointer to newly created Geometry object; NULL on failure. + \n the returned Geometry represents the first input Geometry (nicely + \e snapped to the second input Geometry, whenever is possible). + + \sa gaiaSnap, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaSnap_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2, + double tolerance); + /** Spatial operator: Line Merge @@ -1031,15 +2636,36 @@ extern "C" \return the pointer to newly created Geometry object; NULL on failure. \n if possible, this representing a reassembled Linestring or MultiLinestring. - \sa gaiaFreeGeomColl + \sa gaiaLineMerge_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaLineMerge() + this including any Geometry returned by gaiaLineMerge()\n + not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom); +/** + Spatial operator: Line Merge + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to input Geometry object. + + \return the pointer to newly created Geometry object; NULL on failure. + \n if possible, this representing a reassembled Linestring or MultiLinestring. + + \sa gaiaLineMerge, gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaLineMerge_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache, + gaiaGeomCollPtr geom); + /** Spatial operator: Line Cut At Nodes @@ -1070,45 +2696,142 @@ extern "C" works internally to the input Geometry itself. NULL on failure. - \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded + \sa gaiaUnaryUnion_r, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaUnaryUnion() + this including any Geometry returned by gaiaUnaryUnion()\n + not reentrant and thread unsafe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom); + +/** + Spatial operator: Unary Union + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the input Geometry object. + + \return the pointer to newly created Geometry object: NULL on failure. + \n this function is the same as gaiaGeometryUnion, except in that this + works internally to the input Geometry itself. + NULL on failure. + + \sa gaiaUnaryUnion, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaUnaryUnion_r()\n + reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache, + gaiaGeomCollPtr geom); + +/** + Determines the location of the closest Point on Linestring to the given Point + + \param ln_geom pointer to first input Geometry object [expected to be of + the lineal type]. + \param pt_geom pointer to second input Geometry object [expected to be a + Point]. + + \return the fraction [in the range 0.0 / 1.0] of ln_geom total length + where the closest Point to pt_geom lays. + + \sa gaiaLineLocatePoint_r + + \note not reentrant and thread unsafe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom, + gaiaGeomCollPtr pt_geom); + +/** + Determines the location of the closest Point on Linestring to the given Point + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param ln_geom pointer to first input Geometry object [expected to be of + the lineal type]. + \param pt_geom pointer to second input Geometry object [expected to be a + Point]. + + \return the fraction [in the range 0.0 / 1.0] of ln_geom total length + where the closest Point to pt_geom lays. + + \sa gaiaLineLocatePoint + + \note reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache, + gaiaGeomCollPtr ln_geom, + gaiaGeomCollPtr pt_geom); + +/** + Topology check: test if a Geometry covers another one + + \param geom1 pointer to first input Geometry object. + \param geom2 pointer to second input Geometry object. + + \return 0 if false; any other value if geom1 \e spatially \e covers geom2. + + \sa gaiaGeomCollCovers_r, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy + + \note not reentrant and thead unsafe. \remark \b GEOS-ADVANCED support required. */ - GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom); + GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); -/** - Determines the location of the closest Point on Linestring to the given Point +/** + Topology check: test if a Geometry covers another one - \param ln_geom pointer to first input Geometry object [expected to be of - the lineal type]. - \param pt_geom pointer to second input Geometry object [expected to be a - Point]. + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first input Geometry object. + \param geom2 pointer to second input Geometry object. - \return the fraction [in the range 0.0 / 1.0] of ln_geom total length - where the closest Point to pt_geom lays. + \return 0 if false; any other value if geom1 \e spatially \e covers geom2. + + \sa gaiaGeomCollCovers, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy + + \note reentrant and thead-safe. \remark \b GEOS-ADVANCED support required. */ - GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom, - gaiaGeomCollPtr pt_geom); + GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); /** - Topology check: test if a Geometry covers another one + Topology check: test if a Geometry covers another one (GEOSPreparedGeometry) + \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB \param geom2 pointer to second input Geometry object. + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB \return 0 if false; any other value if geom1 \e spatially \e covers geom2. - \sa gaiaGeomCollCoveredBy + \note reentrant and thread-safe. + + \sa gaiaGeomCollCovers, gaiaGeomCollCovers_r \remark \b GEOS-ADVANCED support required. */ - GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, - gaiaGeomCollPtr geom2); + GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); /** Topology check: test if a Geometry is covered by another one @@ -1119,13 +2842,63 @@ extern "C" \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. - \sa gaiaGeomCollCovers + \sa gaiaGeomCollCoveredBy_r, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers + + \note not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Topology check: test if a Geometry is covered by another one + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first input Geometry object. + \param geom2 pointer to second input Geometry object. + + \return 0 if false; any other value if geom2 is \e spatially \e covered \e by + geom1. + + \sa gaiaGeomCollCoveredBy, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers + + \note reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache, + gaiaGeomCollPtr geom1, + gaiaGeomCollPtr geom2); + +/** + Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first input Geometry object. + \param blob1 the BLOB corresponding to the first Geometry + \param size1 the size (in bytes) of the first BLOB + \param geom2 pointer to second input Geometry object. + \param blob2 the BLOB corresponding to the second Geometry + \param size2 the size (in bytes) of the second BLOB + + \return 0 if false; any other value if geom2 is \e spatially \e covered \e by + geom1. + + \sa gaiaGeomCollCoveredBy, gaiaGeomCollCoveredBy_r, gaiaGeomCollCovers + + \note reentrant and thread-safe. + + \remark \b GEOS-ADVANCED support required. + */ + GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache, + gaiaGeomCollPtr geom1, + unsigned char *blob1, + int size1, + gaiaGeomCollPtr geom2, + unsigned char *blob2, + int size2); + /** Utility function: SquareGrid @@ -1140,10 +2913,11 @@ extern "C" \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid + \sa gaiaSquareGrid_r, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaSquareGrid() + this including any Geometry returned by gaiaSquareGrid()\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, @@ -1152,6 +2926,35 @@ extern "C" double size, int only_edges); +/** + Utility function: SquareGrid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the Geometry to be covered by the Grid. + \param origin_x the X ccordinate identifying the Grid Origin. + \param origin_y the Y coordinate identifiying the Grid Origin. + \param size the Grid cell-side size. + \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will + return a MULTIPOLYGON containing square POLYGONs. + + \return the pointer to newly created Geometry object: NULL on failure. + \n this function will always return a MultiPolygon + \n NULL will be returned if any argument is invalid. + + \sa gaiaSquareGrid, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaSquareGrid_r()\n + reentrant and thread-safe. + + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache, + gaiaGeomCollPtr geom, + double origin_x, + double origin_y, + double size, + int only_edges); + /** Utility function: TriangularGrid @@ -1166,10 +2969,11 @@ extern "C" \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid + \sa gaiaTriangularGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaTriangularGrid() + this including any Geometry returned by gaiaTriangularGrid()\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, @@ -1178,6 +2982,35 @@ extern "C" double size, int only_edges); +/** + Utility function: TriangularGrid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the Geometry to be covered by the Grid. + \param origin_x the X ccordinate identifying the Grid Origin. + \param origin_y the Y coordinate identifiying the Grid Origin. + \param size the Grid cell-side size. + \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will + return a MULTIPOLYGON containing triangular POLYGONs. + + \return the pointer to newly created Geometry object: NULL on failure. + \n this function will always return a MultiPolygon + \n NULL will be returned if any argument is invalid. + + \sa gaiaTriangularGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaTriangularGrid_r()\n + reentrant and thread-safe. + + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache, + gaiaGeomCollPtr geom, + double origin_x, + double origin_y, + double size, + int only_edges); + /** Utility function: HexagonalGrid @@ -1192,10 +3025,11 @@ extern "C" \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid + \sa gaiaGexagonalGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaHexagonalGrid() + this including any Geometry returned by gaiaHexagonalGrid()\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, @@ -1204,6 +3038,35 @@ extern "C" double size, int only_edges); +/** + Utility function: HexagonalGrid + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom the Geometry to be covered by the Grid. + \param origin_x the X ccordinate identifying the Grid Origin. + \param origin_y the Y coordinate identifiying the Grid Origin. + \param size the Grid cell-side size. + \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will + return a MULTIPOLYGON containing hexagonal POLYGONs. + + \return the pointer to newly created Geometry object: NULL on failure. + \n this function will always return a MultiPolygon + \n NULL will be returned if any argument is invalid. + + \sa gaiaGexagonalGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaHexagonalGrid_r()\n + reentrant and thread-safe. + + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache, + gaiaGeomCollPtr geom, + double origin_x, + double origin_y, + double size, + int only_edges); + #endif /* end GEOS advanced features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS @@ -1221,10 +3084,12 @@ extern "C" \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull + \sa gaiaDelaunatTriangulation_r, + gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaDelaunayTriangulation() + this including any Geometry returned by gaiaDelaunayTriangulation()\n + not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ @@ -1233,6 +3098,36 @@ extern "C" double tolerance, int only_edges); +/** + Delaunay Triangulation + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to input Geometry object. + \param tolerance optional snapping tolerance. + \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will + return a MULTIPOLYGON containing triangular POLYGONs. + + \return the pointer to newly created Geometry object: NULL on failure. + \n NULL will be returned if any argument is invalid. + + \sa gaiaDelaunatTriangulation, + gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaDelaunayTriangulation_r()\n + reentrant and thread-safe. + + \remark \b GEOS-TRUNK support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void + *p_cache, + gaiaGeomCollPtr + geom, + double + tolerance, + int + only_edges); + /** Voronoj Diagram @@ -1245,10 +3140,11 @@ extern "C" \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation + \sa gaiaVoronojDiagram_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaVoronojDiagram() + this including any Geometry returned by gaiaVoronojDiagram()\n + not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ @@ -1257,19 +3153,47 @@ extern "C" double tolerance, int only_edges); +/** + Voronoj Diagram + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to input Geometry object. + \param extra_frame_size percent factor expanding the BBOX of input Geometry + \param tolerance optional snapping tolerance. + \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will + return a MULTIPOLYGON. + + \return the pointer to newly created Geometry object: NULL on failure. + \n NULL will be returned if any argument is invalid. + + \sa gaiaVoronojDiagram, gaiaFreeGeomColl, gaiaDelaunayTriangulation + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaVoronojDiagram_r()\n + reentrant and thread-safe. + + \remark \b GEOS-TRUNK support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache, + gaiaGeomCollPtr geom, + double + extra_frame_size, + double tolerance, + int only_edges); + /** Concave Hull \param geom pointer to input Geometry object. \param factor multiplier used for filtering Delaunay triangles: please read the note. \param tolerance optional snapping tolerance. - \param allow_hows if FALSE any interior hole will be suppressed. + \param allow_holes if FALSE any interior hole will be suppressed. \return the pointer to newly created Geometry object (always of the Polygon type): NULL on failure. \n NULL will be returned if any argument is invalid. - \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation + \sa gaiaConcaveHull_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note This function will first create the Delauany Triangulation corresponding to input Geometry, determining at the same time the \b standard \b deviation @@ -1280,7 +3204,8 @@ extern "C" \n All filtered triangles will then be merged altogether so to create the Concave Hull. \note you are responsible to destroy (before or after) any allocated Geometry, - this including any Geometry returned by gaiaConcaveHull() + this including any Geometry returned by gaiaConcaveHull()\n + not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ @@ -1289,12 +3214,117 @@ extern "C" double tolerance, int allow_holes); +/** + Concave Hull + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to input Geometry object. + \param factor multiplier used for filtering Delaunay triangles: please read the note. + \param tolerance optional snapping tolerance. + \param allow_holes if FALSE any interior hole will be suppressed. + + \return the pointer to newly created Geometry object (always of the Polygon type): + NULL on failure. + \n NULL will be returned if any argument is invalid. + + \sa gaiaConcaveHull, gaiaFreeGeomColl, gaiaDelaunayTriangulation + + \note This function will first create the Delauany Triangulation corresponding + to input Geometry, determining at the same time the \b standard \b deviation + for all edge's lengths. + \n Then in a second pass all Delaunay's triangles will be filtered, and all + triangles presenting at least one edge longer than \b standard \b deviation + \b * \b factor will be discarded. + \n All filtered triangles will then be merged altogether so to create the Concave Hull. + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaConcaveHull_r()\n + reentrant and thread-safe. + + \remark \b GEOS-TRUNK support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache, + gaiaGeomCollPtr geom, + double factor, + double tolerance, + int allow_holes); + #endif /* end GEOS experimental features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef ENABLE_LWGEOM #endif +/** + Resets the LWGEOM error and warning messages to an empty state + + \sa gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, + gaiaSetLwGeomWarningMsg + + \note not reentrant and thread unsafe. + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void); + +/** + Return the latest LWGEOM error message (if any) + + \return the latest LWGEOM error message: an empty string if no error was + previoysly found. + + \note not reentrant and thread unsafe. + + \sa gaiaResetLwGeomMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, + gaiaSetLwGeomWarningMsg + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE const char *gaiaGetLwGeomErrorMsg (void); + +/** + Return the latest LWGEOM warning message (if any) + + \return the latest LWGEOM warning message: an empty string if no warning was + previoysly found. + + \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaSetLwGeomErrorMsg, + gaiaSetLwGeomWarningMsg + + \note not reentrant and thread unsafe. + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void); + +/** + Set the current LWGEOM error message + + \param msg the error message to be set. + + \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, + gaiaSetLwGeomWarningMsg + + \note not reentrant and thread unsafe. + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg); + +/** + Set the current LWGEOM warning message + + \param msg the warning message to be set. + + \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, + gaiaSetLwGeomErrorMsg + + \note not reentrant and thread unsafe. + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg); + /** Utility function: MakeValid @@ -1362,7 +3392,7 @@ extern "C" /** Utility function: Azimuth - \param xa the X ccordinate of PointA. + \param xa the X coordinate of PointA. \param ya the Y coordinate of PointA. \param xb the X ccordinate of PointB. \param yb the Y coordinate of PointB. @@ -1372,11 +3402,60 @@ extern "C" \return 0 on failure: any other value on success + \sa gaiaProjectedPoint + \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth); +/** + Utility function: EllipsoidAzimuth + + \param xa the X coordinate of PointA. + \param ya the Y coordinate of PointA. + \param xb the X ccordinate of PointB. + \param yb the Y coordinate of PointB. + \param a major axis of the reference spheroid. + \param b minor axis of the reference spheroid. + \param azimuth on completion this variable will contain the angle in radians from + the horizontal of the vector defined by pointA and pointB. + \n Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. + + \return 0 on failure: any other value on success + + \sa gaiaAzimuth + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, + double yb, double a, double b, + double *azimuth); + +/** + Utility function: ProjectedPoint + + \param x1 the X coordinate of the Start Point. + \param y1 the Y coordinate of the Start Point. + \param a major axis of the reference spheroid. + \param b minor axis of the reference spheroid. + \param distance a distance expressed in Meters + \param azimuth (aka bearing aka heading) expressed in radians; + on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. + \param x2 on completion this variable will contain the the X coordinate + of the Projected Point. + \param y2 on completion this variable will contain the the Y coordinate + of the Projected Point. + + \return 0 on failure: any other value on success + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, + double b, double distance, + double azimuth, double *x2, + double *y2); + /** Utility function: GeoHash @@ -1410,7 +3489,7 @@ extern "C" */ GAIAGEO_DECLARE char *gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, - const char *defid); + const char *refid); /** Calculates the minimum 3D distance intercurring between two Geometry objects @@ -1531,6 +3610,43 @@ extern "C" GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); +/** + Measures the total Area for a Geometry object (geodesic) + + \param geom pointer to Geometry object + \param a major axis of the reference spheroid. + \param b minor axis of the reference spheroid. + \param use_ellipsoid if TRUE will measure the Area on the Ellipsoid, + otherwise on the Sphere + \param area on completion this variable will contain the measured area + + \return 0 on failure: any other value on success + + \sa gaiaGeomCollLength, gaiaMeasureArea, gaiaGeomCollArea + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, + double b, int use_ellipsoid, + double *area); + +/** + Utility function: re-noding lines + + \param input the input Geometry object. + + \return the pointer to newly created Geometry object: NULL on failure. + \n The function fully nodes a set of linestrings, using the least nodes + preserving all the input ones. + + \sa gaiaFreeGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaNode() + + \remark \b LWGEOM support required. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr input); #endif /* end LWGEOM support */ @@ -1539,8 +3655,11 @@ extern "C" /** Utility function: SnapToGrid + \param geom the input Geometry object. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. + \param origin_z the Z ccordinate identifying the Grid Origin. + \param origin_m the M coordinate identifiying the Grid Origin. \param size_x Grid cell size (X axis). \param size_y Grid cell size (Y axis). \param size_z Grid cell size (Z axis). diff --git a/src/spatialite/src/headers/spatialite/gg_const.h b/src/spatialite/src/headers/spatialite/gg_const.h index 4665eba..0ad1b5e 100644 --- a/src/spatialite/src/headers/spatialite/gg_const.h +++ b/src/spatialite/src/headers/spatialite/gg_const.h @@ -1,7 +1,7 @@ /* gg_const.h -- Gaia common support for geometries: constants - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -62,8 +62,8 @@ extern "C" /* constant values for getVectorLayersList modes */ -/** mode: FAST */ -#define GAIA_VECTORS_LIST_FAST 0 +/** mode: FAST (QGIS data-provider) */ +#define GAIA_VECTORS_LIST_FAST 0 /** mode: OPTIMISTIC */ #define GAIA_VECTORS_LIST_OPTIMISTIC 1 @@ -152,7 +152,6 @@ extern "C" #define GAIA_MULTILINESTRING 5 /** BLOB-Geometry CLASS: MULTIPOLYGON */ #define GAIA_MULTIPOLYGON 6 -#define GAIA_MULTIPOLYGON 6 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION */ #define GAIA_GEOMETRYCOLLECTION 7 /** BLOB-Geometry CLASS: POINT Z */ diff --git a/src/spatialite/src/headers/spatialite/gg_core.h b/src/spatialite/src/headers/spatialite/gg_core.h index 7a2d848..b543ab7 100644 --- a/src/spatialite/src/headers/spatialite/gg_core.h +++ b/src/spatialite/src/headers/spatialite/gg_core.h @@ -1,7 +1,7 @@ /* gg_core.h -- Gaia common support for geometries: core functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1166,17 +1166,39 @@ extern "C" \return 0 if the Geometry is not toxic: otherwise any other different value. - \sa gaiaSanitize + \sa gaiaIsToxic_r, gaiaSanitize \note a \b toxic Geometry is a Geometry containing severely malformed Polygons: i.e. containing less than 4 Points. \n Or containing severely malformed Linestrings: i.e. containing less than 2 Points. \n Attempting to pass any toxic Geometry to GEOS supported functions - will easily cause a crash. + will easily cause a crash.\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom); +/** + Checks for toxic Geometry object + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object + + \return 0 if the Geometry is not toxic: otherwise any other different value. + + \sa gaiaIsToxic, gaiaSanitize + + \note a \b toxic Geometry is a Geometry containing severely malformed + Polygons: i.e. containing less than 4 Points. + \n Or containing severely malformed Linestrings: i.e. containing less + than 2 Points. + \n Attempting to pass any toxic Geometry to GEOS supported functions + will easily cause a crash.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE int gaiaIsToxic_r (const void *p_cache, + gaiaGeomCollPtr geom); + /** Checks for not-closed Rings @@ -1184,16 +1206,37 @@ extern "C" \return 0 if the Ring in unclosed: otherwise any other different value. - \sa gaiaIsToxic, gaiaIsNotClosedGeomColl + \sa gaiaIsNotClosedRing_r, gaiaIsToxic, gaiaIsNotClosedGeomColl \note unclosed Rings cause GEOS supported functions to crash. \n SpatiaLite will always carefully check any Ring before passing it to GEOS, eventually silently inserting a further point required so to properly close the figure. - \n This function allows to explicitly identify any unclosed Ring. + \n This function allows to explicitly identify any unclosed Ring.\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring); +/** + Checks for not-closed Rings + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param ring pointer to Ring object + + \return 0 if the Ring in unclosed: otherwise any other different value. + + \sa gaiaIsNotClosedRing, gaiaIsToxic, gaiaIsNotClosedGeomColl + + \note unclosed Rings cause GEOS supported functions to crash. + \n SpatiaLite will always carefully check any Ring before passing it + to GEOS, eventually silently inserting a further point required so + to properly close the figure. + \n This function allows to explicitly identify any unclosed Ring.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE int gaiaIsNotClosedRing_r (const void *p_data, + gaiaRingPtr ring); + /** Checks for not-closed Rings in a Geometry object @@ -1201,13 +1244,31 @@ extern "C" \return 0 if the Geometry has no unclosed Rings: otherwise any other different value. - \sa gaiaIsToxic, gaiaIsNotClosedRing + \sa gaiaIsNotClosedGeomColl_r, gaiaIsToxic, gaiaIsNotClosedRing \note This function allows to explicitly identify any Geometry containing - at least one unclosed Ring. + at least one unclosed Ring.\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom); +/** + Checks for not-closed Rings in a Geometry object + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom pointer to Geometry object + + \return 0 if the Geometry has no unclosed Rings: otherwise any other different value. + + \sa gaiaIsNotClosedGeomColl, gaiaIsToxic, gaiaIsNotClosedRing + + \note This function allows to explicitly identify any Geometry containing + at least one unclosed Ring.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl_r (const void *p_data, + gaiaGeomCollPtr geom); + /** Attempts to sanitize a possibly malformed Geometry object @@ -1349,16 +1410,40 @@ extern "C" \return the pointer to newly created Geometry: NULL on failure. - \sa gaiaCloneGeomColl + \sa gaiaMergeGeometries_r, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaMergeGeometries() \n the newly created Geometry will contain any Point, Linestring and/or - Polygon contained in both input Geometries. + Polygon contained in both input Geometries.\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); +/** + Merges two Geometry objects into a single one + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param geom1 pointer to first Geometry object. + \param geom2 pointer to second Geometry object. + + \return the pointer to newly created Geometry: NULL on failure. + + \sa gaiaMergeGeometries, gaiaCloneGeomColl + + \note you are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry created by gaiaMergeGeometries() + \n the newly created Geometry will contain any Point, Linestring and/or + Polygon contained in both input Geometries.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries_r (const void *p_cache, + gaiaGeomCollPtr + geom1, + gaiaGeomCollPtr + geom2); + /** Return a GeometryCollection containing elements matching the specified range of measures @@ -1550,8 +1635,6 @@ extern "C" latitude values (-180.0 to 180.0 longitude and -90.0 to 90.0 latitude). \param geom pointer to Geometry object. - \param shift_x X axis shift factor. - \param shift_y Y axis shift factor. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords3D, gaiaShiftLongitude @@ -1774,6 +1857,101 @@ extern "C" GAIAGEO_DECLARE int gaiaConvertLength (double value, int unit_from, int unit_to, double *cvt); +/** + Creates a Circle (Linestring) Geometry + + \param center_x center point X coordinate. + \param center_y center point Y coordinate. + \param radius the circle's radius. + \param step angular distance (in degrees) between points on the circumference. + + \sa gaiaMakeArc, gaiaMakeEllipse, gaiaMakeEllipticArc + + \note simply a convenience method defaulting to gaiaMakeEllipse + with both axes set to radius value + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle (double center_x, + double center_y, + double radius, double step); + +/** + Creates an Ellipse (Linestring) Geometry + + \param center_x center point X coordinate. + \param center_y center point Y coordinate. + \param x_axis the ellipses's X axis. + \param y_axis the ellipses's Y axis. + \param step angular distance (in degrees) between points on the ellipse. + + \sa gaiaMakeEllipticArc, gaiaMakeCircle, gaiaMakeArc + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse (double center_x, + double center_y, + double x_axis, + double y_axis, + double step); + +/** + Creates a Circular Arc (Linestring) Geometry + + \param center_x center point X coordinate. + \param center_y center point Y coordinate. + \param radius the circle's radius. + \param start the start angle (in degrees). + \param start the stop angle (in degrees). + \param step angular distance (in degrees) between points on the circumference. + + \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc + + \note simply a convenience method defaulting to gaiaMakeEllipticArc + with both axes set to radius value + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc (double center_x, + double center_y, double radius, + double start, double stop, + double step); + +/** + Creates an Elliptic Arc (Linestring) Geometry + + \param center_x center point X coordinate. + \param center_y center point Y coordinate. + \param x_axis the ellipses's X axis. + \param y_axis the ellipses's Y axis. + \param start the start angle (in degrees). + \param start the stop angle (in degrees). + \param step angular distance (in degrees) between points on the ellipse. + + \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc (double center_x, + double center_y, + double x_axis, + double y_axis, + double start, + double stop, + double step); + +/** + Creates a Polygon from closed Linestrings + + \param exterior a closed Linestring assumed to represent the Exterior Ring. + \param interiors one (or more than one) clsed Linestrings assumed to represent + all Interior Rings (could be a Linstring or a MultiLinestring).\n + NULL if there are no Interior Rings at all. + + \sa gaiaPolygonize + + \note this method will simply check if all the received Linestrings are + closed, but it could possibly return an invalid Polygon if there is any + topology inconsistency between the exterior and interior rings. + You are responsible to destroy (before or after) any allocated Geometry, + this including any Geometry returned by gaiaPolygonize()\n + not reentrant and thread unsafe. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakePolygon (gaiaGeomCollPtr exterior, + gaiaGeomCollPtr interiors); + #ifdef __cplusplus } #endif diff --git a/src/spatialite/src/headers/spatialite/gg_dxf.h b/src/spatialite/src/headers/spatialite/gg_dxf.h new file mode 100644 index 0000000..e741137 --- /dev/null +++ b/src/spatialite/src/headers/spatialite/gg_dxf.h @@ -0,0 +1,992 @@ +/* + gg_dxf.h -- Gaia common support for DXF files + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + + +/** + \file gg_dxf.h + + Geometry handling functions: DXF files + */ + +#ifndef _GG_DXF_H +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#define _GG_DXF_H +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* constant values for DXF */ + +/** import distinct layers */ +#define GAIA_DXF_IMPORT_BY_LAYER 1 +/** import layers mixed altogether by type */ +#define GAIA_DXF_IMPORT_MIXED 2 +/** auto-selects 2D or 3D */ +#define GAIA_DXF_AUTO_2D_3D 3 +/** always force 2D */ +#define GAIA_DXF_FORCE_2D 4 +/** always force 3D */ +#define GAIA_DXF_FORCE_3D 5 +/** don't apply any special Ring handling */ +#define GAIA_DXF_RING_NONE 6 +/** apply special "linked rings" handling */ +#define GAIA_DXF_RING_LINKED 7 +/** apply special "unlinked rings" handling */ +#define GAIA_DXF_RING_UNLINKED 8 + + +/** DXF version [Writer] */ +#define GAIA_DXF_V12 1000 + +/* data structs */ + + +/** + wrapper for DXF Extra Attribute object + */ + typedef struct gaia_dxf_extra_attr + { +/** pointer to Extra Attribute Key value */ + char *key; +/** pointer to Extra Attribute Value string */ + char *value; +/** pointer to next item [linked list] */ + struct gaia_dxf_extra_attr *next; + } gaiaDxfExtraAttr; +/** + Typedef for DXF Extra Attribute object + + \sa gaiaDxfExtraAttr + */ + typedef gaiaDxfExtraAttr *gaiaDxfExtraAttrPtr; + +/** + wrapper for DXF Insert object + */ + typedef struct gaia_dxf_insert + { +/** pointer to Block ID string */ + char *block_id; +/** X coordinate */ + double x; +/** Y coordinate */ + double y; +/** Z coordinate */ + double z; +/** X scale factor */ + double scale_x; +/** Y scale factor */ + double scale_y; +/** Z scale factor */ + double scale_z; +/** rotation angle */ + double angle; +/** boolean flag: contains Text objects */ + int hasText; +/** boolean flag: contains Point objects */ + int hasPoint; +/** boolean flag: contains Polyline (Linestring) objects */ + int hasLine; +/** boolean flag: contains Polyline (Polygon) objects */ + int hasPolyg; +/** boolean flag: contains Hatch objects */ + int hasHatch; +/** boolean flag: contains 3d Text objects */ + int is3Dtext; +/** boolean flag: contains 3d Point objects */ + int is3Dpoint; +/** boolean flag: contains 3d Polyline (Linestring) objects */ + int is3Dline; +/** boolean flag: contains 3d Polyline (Polygon) objects */ + int is3Dpolyg; +/** pointer to first Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr first; +/** pointer to last Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr last; +/** pointer to next item [linked list] */ + struct gaia_dxf_insert *next; + } gaiaDxfInsert; +/** + Typedef for DXF Insert object + + \sa gaiaDxfText + */ + typedef gaiaDxfInsert *gaiaDxfInsertPtr; + +/** + wrapper for DXF Text object + */ + typedef struct gaia_dxf_text + { +/** pointer to Label string */ + char *label; +/** X coordinate */ + double x; +/** Y coordinate */ + double y; +/** Z coordinate */ + double z; +/** label rotation angle */ + double angle; +/** pointer to first Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr first; +/** pointer to last Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr last; +/** pointer to next item [linked list] */ + struct gaia_dxf_text *next; + } gaiaDxfText; +/** + Typedef for DXF Text object + + \sa gaiaDxfText + */ + typedef gaiaDxfText *gaiaDxfTextPtr; + +/** + wrapper for DXF Point object + */ + typedef struct gaia_dxf_point + { +/** X coordinate */ + double x; +/** Y coordinate */ + double y; +/** Z coordinate */ + double z; +/** pointer to first Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr first; +/** pointer to last Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr last; +/** pointer to next item [linked list] */ + struct gaia_dxf_point *next; + } gaiaDxfPoint; +/** + Typedef for DXF Point object + + \sa gaiaDxfPoint + */ + typedef gaiaDxfPoint *gaiaDxfPointPtr; + +/** + wrapper for DXF Circle object + */ + typedef struct gaia_dxf_circle + { +/** Center X coordinate */ + double cx; +/** Center Y coordinate */ + double cy; +/** Center Z coordinate */ + double cz; +/** radius */ + double radius; + } gaiaDxfCircle; +/** + Typedef for DXF Circle object + + \sa gaiaDxfCircle + */ + typedef gaiaDxfCircle *gaiaDxfCirclePtr; + +/** + wrapper for DXF Arc object + */ + typedef struct gaia_dxf_arc + { +/** Center X coordinate */ + double cx; +/** Center Y coordinate */ + double cy; +/** Center Z coordinate */ + double cz; +/** radius */ + double radius; +/** start angle */ + double start; +/** stop angle */ + double stop; + } gaiaDxfArc; +/** + Typedef for DXF Arc object + + \sa gaiaDxfArc + */ + typedef gaiaDxfArc *gaiaDxfArcPtr; + +/** + wrapper for DXF Polygon interior hole object + */ + typedef struct gaia_dxf_hole + { +/** total count of points */ + int points; +/** array of X coordinates */ + double *x; +/** array of Y coordinates */ + double *y; +/** array of Z coordinates */ + double *z; +/** pointer to next item [linked list] */ + struct gaia_dxf_hole *next; + } gaiaDxfHole; +/** + Typedef for DXF Point object + + \sa gaiaDxfHole + */ + typedef gaiaDxfHole *gaiaDxfHolePtr; + +/** + wrapper for DXF Polyline object + could be a Linestring or a Polygon depending on the is_closed flag + */ + typedef struct gaia_dxf_polyline + { +/** open (Linestring) or closed (Polygon exterior ring) */ + int is_closed; +/** total count of points */ + int points; +/** array of X coordinates */ + double *x; +/** array of Y coordinates */ + double *y; +/** array of Z coordinates */ + double *z; +/** pointer to first Polygon hole [linked list] */ + gaiaDxfHolePtr first_hole; +/** pointer to last Polygon hole [linked list] */ + gaiaDxfHolePtr last_hole; +/** pointer to first Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr first; +/** pointer to last Extra Attribute [linked list] */ + gaiaDxfExtraAttrPtr last; +/** pointer to next item [linked list] */ + struct gaia_dxf_polyline *next; + } gaiaDxfPolyline; +/** + Typedef for DXF Polyline object + + \sa gaiaDxfPolyline + */ + typedef gaiaDxfPolyline *gaiaDxfPolylinePtr; +/** + wrapper for DXF Pattern Segment object + */ + typedef struct gaia_dxf_hatch_segm + { +/** start X */ + double x0; +/** start Y */ + double y0; +/** end X */ + double x1; +/** end Y */ + double y1; +/** pointer to next item [linked list] */ + struct gaia_dxf_hatch_segm *next; + } gaiaDxfHatchSegm; +/** + Typedef for DXF Hatch Segment object + + \sa gaiaDxfHatch + */ + typedef gaiaDxfHatchSegm *gaiaDxfHatchSegmPtr; + +/** + wrapper for DXF Boundary Path object + */ + typedef struct gaia_dxf_boundary_path + { +/** pointer to first segment */ + gaiaDxfHatchSegmPtr first; +/** pointer to last segment */ + gaiaDxfHatchSegmPtr last; +/** pointer to next item [linked list] */ + struct gaia_dxf_boundary_path *next; + } gaiaDxfBoundaryPath; +/** + Typedef for DXF Boundary Path object + + \sa gaiaDxfBoundaryPath + */ + typedef gaiaDxfBoundaryPath *gaiaDxfBoundaryPathPtr; + +/** + wrapper for DXF Pattern Hatch object + */ + typedef struct gaia_dxf_hatch + { +/** hatch pattern spacing */ + double spacing; +/** hatch line angle */ + double angle; +/** hatch line base X */ + double base_x; +/** hatch line base Y */ + double base_y; +/** hatch line offset X */ + double offset_x; +/** hatch line offset Y */ + double offset_y; +/** pointer to first Boundary */ + gaiaDxfBoundaryPathPtr first; +/** pointer to last Boundary */ + gaiaDxfBoundaryPathPtr last; +/** pointer to Boundary geometry */ + gaiaGeomCollPtr boundary; +/** pointer to first Pattern segment */ + gaiaDxfHatchSegmPtr first_out; +/** pointer to last Pattern segment */ + gaiaDxfHatchSegmPtr last_out; +/** pointer to next item [linked list] */ + struct gaia_dxf_hatch *next; + } gaiaDxfHatch; +/** + Typedef for DXF Hatch object + + \sa gaiaDxfHatch + */ + typedef gaiaDxfHatch *gaiaDxfHatchPtr; + +/** + wrapper for DXF Block object + */ + typedef struct gaia_dxf_block + { +/** Boolean flag: this block is referenced by some Insert */ + int hasInsert; +/** pointer to Layer Name string */ + char *layer_name; +/** pointer to Block ID string */ + char *block_id; +/** pointer to first DXF Text object [linked list] */ + gaiaDxfTextPtr first_text; +/** pointer to last DXF Text object [linked list] */ + gaiaDxfTextPtr last_text; +/** pointer to first DXF Point object [linked list] */ + gaiaDxfPointPtr first_point; +/** pointer to last DXF Point object [linked list] */ + gaiaDxfPointPtr last_point; +/** pointer to first DXF Polyline (Linestring) object [linked list] */ + gaiaDxfPolylinePtr first_line; +/** pointer to last DXF Polyline (Linestring) object [linked list] */ + gaiaDxfPolylinePtr last_line; +/** pointer to first DXF Polyline (Polygon) object [linked list] */ + gaiaDxfPolylinePtr first_polyg; +/** pointer to last DXF Polyline (Polygon) object [linked list] */ + gaiaDxfPolylinePtr last_polyg; +/** pointer to first DXF Hatch object [linked list] */ + gaiaDxfHatchPtr first_hatch; +/** pointer to last DXF Hatch object [linked list] */ + gaiaDxfHatchPtr last_hatch; +/** boolean flag: contains 3d Text objects */ + int is3Dtext; +/** boolean flag: contains 3d Point objects */ + int is3Dpoint; +/** boolean flag: contains 3d Polyline (Linestring) objects */ + int is3Dline; +/** boolean flag: contains 3d Polyline (Polygon) objects */ + int is3Dpolyg; +/** pointer to next item [linked list] */ + struct gaia_dxf_block *next; + } gaiaDxfBlock; +/** + Typedef for DXF Block object + + \sa gaiaDxfBlock + */ + typedef gaiaDxfBlock *gaiaDxfBlockPtr; + +/** + wrapper for DXF Layer object + */ + typedef struct gaia_dxf_layer + { +/** pointer to Layer Name string */ + char *layer_name; +/** pointer to first DXF Text object [linked list] */ + gaiaDxfTextPtr first_text; +/** pointer to last DXF Text object [linked list] */ + gaiaDxfTextPtr last_text; +/** pointer to first DXF Point object [linked list] */ + gaiaDxfPointPtr first_point; +/** pointer to lasst DXF Point object [linked list] */ + gaiaDxfPointPtr last_point; +/** pointer to first DXF Polyline (Linestring) object [linked list] */ + gaiaDxfPolylinePtr first_line; +/** pointer to last DXF Polyline (Linestring) object [linked list] */ + gaiaDxfPolylinePtr last_line; +/** pointer to first DXF Polyline (Polygon) object [linked list] */ + gaiaDxfPolylinePtr first_polyg; +/** pointer to last DXF Polyline (Polygon) object [linked list] */ + gaiaDxfPolylinePtr last_polyg; +/** pointer to first DXF Hatch object [linked list] */ + gaiaDxfHatchPtr first_hatch; +/** pointer to last DXF Hatch object [linked list] */ + gaiaDxfHatchPtr last_hatch; +/** pointer to first DXF Insert Text object [linked list] */ + gaiaDxfInsertPtr first_ins_text; +/** pointer to last DXF Insert Text object [linked list] */ + gaiaDxfInsertPtr last_ins_text; +/** pointer to first DXF Insert Point object [linked list] */ + gaiaDxfInsertPtr first_ins_point; +/** pointer to last DXF Insert Point object [linked list] */ + gaiaDxfInsertPtr last_ins_point; +/** pointer to first DXF Insert Polyline (Linestring) object [linked list] */ + gaiaDxfInsertPtr first_ins_line; +/** pointer to last DXF Insert Polyline (Linestring) object [linked list] */ + gaiaDxfInsertPtr last_ins_line; +/** pointer to first DXF Insert Polyline (Polygon) object [linked list] */ + gaiaDxfInsertPtr first_ins_polyg; +/** pointer to last DXF Insert Polyline (Polygon) object [linked list] */ + gaiaDxfInsertPtr last_ins_polyg; +/** pointer to first DXF Insert Hatch object [linked list] */ + gaiaDxfInsertPtr first_ins_hatch; +/** pointer to last DXF Insert Hatch object [linked list] */ + gaiaDxfInsertPtr last_ins_hatch; +/** boolean flag: contains 3d Text objects */ + int is3Dtext; +/** boolean flag: contains 3d Point objects */ + int is3Dpoint; +/** boolean flag: contains 3d Polyline (Linestring) objects */ + int is3Dline; +/** boolean flag: contains 3d Polyline (Polygon) objects */ + int is3Dpolyg; +/** boolean flag: contains 3d Insert Text objects */ + int is3DinsText; +/** boolean flag: contains 3d Insert Point objects */ + int is3DinsPoint; +/** boolean flag: contains 3d Insert Polyline (Linestring) objects */ + int is3DinsLine; +/** boolean flag: contains 3d Insert Polyline (Polygon) objects */ + int is3DinsPolyg; +/** boolean flag: contains Text Extra Attributes */ + int hasExtraText; +/** boolean flag: contains Point Extra Attributes */ + int hasExtraPoint; +/** boolean flag: contains Polyline (Linestring) Extra Attributes */ + int hasExtraLine; +/** boolean flag: contains Polyline (Polygon) Extra Attributes */ + int hasExtraPolyg; +/** boolean flag: contains Insert Text Extra Attributes */ + int hasExtraInsText; +/** boolean flag: contains Insert Text Extra Attributes */ + int hasExtraInsPoint; +/** boolean flag: contains Insert Polyline (Linestring) Extra Attributes */ + int hasExtraInsLine; +/** boolean flag: contains Insert Polyline (Polygon) Extra Attributes */ + int hasExtraInsPolyg; +/** pointer to next item [linked list] */ + struct gaia_dxf_layer *next; + } gaiaDxfLayer; +/** + Typedef for DXF Layer object + + \sa gaiaDxfLayer + */ + typedef gaiaDxfLayer *gaiaDxfLayerPtr; + +/** + wrapper for DXF Parser object + */ + typedef struct gaia_dxf_parser + { +/** OUT: origin/input filename */ + char *filename; +/** OUT: pointer to first DXF Layer object [linked list] */ + gaiaDxfLayerPtr first_layer; +/** OUT: pointer to last DXF Layer object [linked list] */ + gaiaDxfLayerPtr last_layer; +/** OUT: pointer to first DXF Block object [linked list] */ + gaiaDxfBlockPtr first_block; +/** OUT: pointer to last DXF Block object [linked list] */ + gaiaDxfBlockPtr last_block; +/** IN: parser option - dimension handlig */ + int force_dims; +/** IN: parser option - the SRID */ + int srid; +/** IN: parser option - pointer the single Layer Name string */ + const char *selected_layer; +/** IN: parser option - pointer to prefix string for DB tables */ + const char *prefix; +/** IN: parser option - linked rings special handling */ + int linked_rings; +/** IN: parser option - unlinked rings special handling */ + int unlinked_rings; +/** internal parser variable */ + int line_no; +/** internal parser variable */ + int op_code_line; +/** internal parser variable */ + int op_code; +/** internal parser variable */ + int section; +/** internal parser variable */ + int tables; +/** internal parser variable */ + int blocks; +/** internal parser variable */ + int entities; +/** internal parser variable */ + int is_layer; +/** internal parser variable */ + int is_block; +/** internal parser variable */ + int is_text; +/** internal parser variable */ + int is_point; +/** internal parser variable */ + int is_polyline; +/** internal parser variable */ + int is_lwpolyline; +/** internal parser variable */ + int is_line; +/** internal parser variable */ + int is_circle; +/** internal parser variable */ + int is_arc; +/** internal parser variable */ + int is_vertex; +/** internal parser variable */ + int is_hatch; +/** internal parser variable */ + int is_hatch_boundary; +/** internal parser variable */ + int is_insert; +/** internal parser variable */ + int eof; +/** internal parser variable */ + int error; +/** internal parser variable */ + char *curr_layer_name; +/** internal parser variable */ + gaiaDxfText curr_text; +/** internal parser variable */ + gaiaDxfInsert curr_insert; +/** internal parser variable */ + gaiaDxfBlock curr_block; +/** internal parser variable */ + gaiaDxfPoint curr_point; +/** internal parser variable */ + gaiaDxfPoint curr_end_point; +/** internal parser variable */ + gaiaDxfCircle curr_circle; +/** internal parser variable */ + gaiaDxfArc curr_arc; +/** internal parser variable */ + int is_closed_polyline; +/** internal parser variable */ + gaiaDxfPointPtr first_pt; +/** internal parser variable */ + gaiaDxfPointPtr last_pt; +/** internal parser variable */ + char *extra_key; +/** internal parser variable */ + char *extra_value; +/** internal parser variable */ + gaiaDxfExtraAttrPtr first_ext; +/** internal parser variable */ + gaiaDxfExtraAttrPtr last_ext; +/** internal parser variable */ + gaiaDxfHatchPtr curr_hatch; +/** internal parser variable */ + int undeclared_layers; + } gaiaDxfParser; +/** + Typedef for DXF Layer object + + \sa gaiaDxfParser + */ + typedef gaiaDxfParser *gaiaDxfParserPtr; + +/** + wrapper for DXF Write object + */ + typedef struct gaia_dxf_write + { +/** IN: output DXF file handle */ + FILE *out; +/** IN: coord's precision (number of decimal digits) */ + int precision; +/** IN: DXF version number */ + int version; +/** OUT: count of exported geometries */ + int count; +/** OUT: error flag */ + int error; + } gaiaDxfWriter; +/** + Typedef for DXF Writer object + */ + typedef gaiaDxfWriter *gaiaDxfWriterPtr; + + +/* function prototypes */ + + +/** + Creates a DXF Parser object + + \param srid the SRID value to be used for all Geometries + \param force_dims should be one of GAIA_DXF_AUTO_2D_3D, GAIA_DXF_FORCE_2D + or GAIA_DXF_FORCE_3D + \param prefix an optional prefix to be used for DB target tables + (could be NULL) + \param selected_layers if set, only the DXF Layer of corresponding name will + be imported (could be NULL) + \param special_rings rings handling: should be one of GAIA_DXF_RING_NONE, + GAIA_DXF_RING_LINKED of GAIA_DXF_RING_UNLINKED + + \return the pointer to a DXF Parser object + + \sa gaiaDestroyDxfParser, gaiaParseDxfFile, gaiaLoadFromDxfParser + + \note the DXF Parser object corresponds to dynamically allocated memory: + so you are responsible to destroy this object before or later by invoking + gaiaDestroyDxfParser(). + */ + GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, + int force_dims, + const char *prefix, + const char + *selected_layer, + int special_rings); + +/** + Destroying a DXF Parser object + + \param parser pointer to DXF Parser object + + \sa gaiaCreateDxfParser + + \note the pointer to the DXF Parser object to be finalized is expected + to be the one returned by a previous call to gaiaCreateDxfParser. + */ + GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr parser); + +/** + Parsing a DXF file + + \param parser pointer to DXF Parser object + \param dxf_path pathname of the DXF external file to be parsed + + \return 0 on failure, any other value on success + + \sa gaiaParseDxfFile_r, + gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser + + \note the pointer to the DXF Parser object is expected to be the one + returned by a previous call to gaiaCreateDxfParser. + A DXF Parser object can be used only a single time to parse a DXF file.\n + not reentrant and thread unsafe. + */ + GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser, + const char *dxf_path); + +/** + Parsing a DXF file + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param parser pointer to DXF Parser object + \param dxf_path pathname of the DXF external file to be parsed + + \return 0 on failure, any other value on success + + \sa gaiaParseDxfFile, + gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser + + \note the pointer to the DXF Parser object is expected to be the one + returned by a previous call to gaiaCreateDxfParser. + A DXF Parser object can be used only a single time to parse a DXF file.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache, + gaiaDxfParserPtr parser, + const char *dxf_path); + +/** + Populating a DB so to permanently store all Geometries from a DXF Parser + + \param db_handle handle to a valid DB connection + \param parser pointer to DXF Parser object + \param mode should be one of GAIA_DXF_IMPORT_BY_LAYER or GAIA_DXF_IMPORT_MIXED + \param append boolean flag: if set and some required DB table already exists + will attempt to append further rows into the existing table. + otherwise an error will be returned. + + \return 0 on failure, any other value on success + + \sa gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaParseDxfFile + + \note the pointer to the DXF Parser object is expected to be the one + returned by a previous call to gaiaCreateDxfParser and previously used + for a succesfull call to gaiaParseDxfFile + */ + GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * db_handle, + gaiaDxfParserPtr parser, + int mode, int append); + +/** + Initializing a DXF Writer Object + + \param writer pointer to the gaiaDxfWriter object to be initialized + \param out file handle to DXF output file + \param precision number of decimal digits for any coordinate + \param version currently always expected to be GAIA_DXF_V12 + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteHeader, gaiaExportDxf + */ + GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, + FILE * out, int precision, + int version); + +/** + Writing the DXF Header + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param minx the minimum X coordinate contained within the DXF + \param minx the minimum Y coordinate contained within the DXF + \param minx the minimum Z coordinate contained within the DXF + \param minx the maximum X coordinate contained within the DXF + \param minx the maximum Y coordinate contained within the DXF + \param minx the maximum Z coordinate contained within the DXF + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriterInit, gaiaDxfWriteFooter, gaiaDxfWriteTables, gaiaDxfWriteEntities + */ + GAIAGEO_DECLARE int + gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, + double minz, double maxx, double maxy, double maxz); + +/** + Writing a DXF Entities Section Header + + \param dxf pointer to a properly initialized gaiaDxfWriter object + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteHeader + */ + GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf); + +/** + Writing the DXF Tables Section Header + + \param dxf pointer to a properly initialized gaiaDxfWriter object + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection + */ + GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf); + +/** + Writing a DXF Table/Layer definition + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the layer + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteTables, gaiaDxfWriteEndSection + */ + GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, + const char *layer_name); + +/** + Writing a DXF Entities Section Header + + \param dxf pointer to a properly initialized gaiaDxfWriter object + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection, gaiaDxfWritePoint, + gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry + */ + GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf); + +/** + Writing a DXF Entities Section Header + + \param dxf pointer to a properly initialized gaiaDxfWriter object + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteTables, gaiaDxfWriteEntities + */ + GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf); + +/** + Writing a DXF Point Entity + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the corresponding layer + \param x X coordinate value + \param y Y coordinate value + \param z Z coordinate value + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWriteText, + gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry + */ + GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, + const char *layer_name, double x, + double y, double z); + +/** + Writing a DXF Text Entity + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the corresponding layer + \param x X coordinate value + \param y Y coordinate value + \param z Z coordinate value + \param label text string containing the label value + \param text_height height of the text in map units + \param angle text rotation angle + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, + gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry + */ + GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, + const char *layer_name, double x, + double y, double z, const char *label, + double text_height, double angle); + +/** + Writing a DXF Polyline (opened) Entity + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the corresponding layer + \param line pointer to the internal Linestring to be exported into the DXF + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, + gaiaDxfWriteText, gaiaDxfWriteRing, gaiaDxfWriteGeometry + */ + GAIAGEO_DECLARE int + gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer_name, + gaiaLinestringPtr line); + +/** + Writing a DXF Polyline (closed) Entity + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the corresponding layer + \param line pointer to the internal Ring to be exported into the DXF + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, + gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteGeometry + */ + GAIAGEO_DECLARE int + gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer_name, + gaiaRingPtr ring); + +/** + Writing a DXF generic Entity + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param layer_name name of the corresponding layer + \param line pointer to the internal Ring to be exported into the DXF + \param label text string containing the label value (could be NULL) + \param text_height only for Text Labels: ingnored in any other case. + \param text_rotation only for Text Labels: ingnored in any other case. + + \return 0 on failure, any other value on success + + \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, + gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing + */ + GAIAGEO_DECLARE int + gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer_name, + const char *label, double text_height, + double text_rotation, gaiaGeomCollPtr geometry); + +/** + Exporting a complex DXF file + + \param dxf pointer to a properly initialized gaiaDxfWriter object + \param db_hanlde handle to the current DB connection + \param sql a text string defining the SQL query to be used for + extracting all geometries/entities to be exported into the output DXF + \param layer_col_name name of the SQL resultset column containing the Layer name + \param geom_col_name name of the SQL resultset column containing Geometries + \param label_col_name name of the SQL resultset column containing Label values + (could be NULL) + \param text_height_col_name name of the SQL resultset column containing Text Height values + (could be NULL) + \param text_rotation_col_name name of the SQL resultset column containing Text Rotation values + (could be NULL) + \param geom_filter an optional arbitrary Geometry to be used as a Spatial Filter + (could be NULL) + + \return 0 on failure; the total count of exported entities on success + + \sa gaiaDxfWriterInit + */ + GAIAGEO_DECLARE int + gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, + const char *sql, const char *layer_col_name, + const char *geom_col_name, const char *label_col_name, + const char *text_height_col_name, + const char *text_rotation_col_name, + gaiaGeomCollPtr geom_filter); + +#ifdef __cplusplus +} +#endif + +#endif /* _GG_DXF_H */ diff --git a/src/spatialite/src/headers/spatialite/gg_dynamic.h b/src/spatialite/src/headers/spatialite/gg_dynamic.h index 4a0749b..fd26455 100644 --- a/src/spatialite/src/headers/spatialite/gg_dynamic.h +++ b/src/spatialite/src/headers/spatialite/gg_dynamic.h @@ -1,7 +1,7 @@ /* gg_dynamic.h -- Gaia common support for geometries: DynamicLine functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): diff --git a/src/spatialite/src/headers/spatialite/gg_formats.h b/src/spatialite/src/headers/spatialite/gg_formats.h index 2708c5b..a3ebcda 100644 --- a/src/spatialite/src/headers/spatialite/gg_formats.h +++ b/src/spatialite/src/headers/spatialite/gg_formats.h @@ -1,7 +1,7 @@ /* gg_formats.h -- Gaia common support for geometries: formats - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -106,6 +106,25 @@ extern "C" GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch); +/** + Import an UINT-32 value in endian-aware fashion + + \param p endian-dependent representation (input buffer). + \param little_endian 0 if the input buffer is big-endian: any other value + for little-endian. + \param little_endian_arch the value returned by gaiaEndianArch() + + \return the internal UINT value + + \sa gaiaEndianArch, gaiaExportU32 + + \note you are expected to pass an input buffer corresponding to an + allocation size of (at least) 4 bytes. + */ + GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p, + int little_endian, + int little_endian_arch); + /** Import a FLOAT-32 value in endian-aware fashion @@ -199,6 +218,24 @@ extern "C" int little_endian, int little_endian_arch); +/** + Export an UINT-32 value in endian-aware fashion + + \param p endian-dependent representation (output buffer). + \param value the internal value to be exported. + \param little_endian 0 if the output buffer has to be big-endian: any other value + for little-endian. + \param little_endian_arch the value returned by gaiaEndianArch() + + \sa gaiaEndianArch, gaiaImportU32 + + \note you are expected to pass an output buffer corresponding to an + allocation size of (at least) 4 bytes. + */ + GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value, + int little_endian, + int little_endian_arch); + /** Export a FLOAT-32 value in endian-aware fashion @@ -569,7 +606,7 @@ extern "C" \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. - \param endiam_arch (boolean) states if the target CPU has a little- or big-endian architecture. + \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. @@ -592,7 +629,7 @@ extern "C" \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. - \param endiam_arch (boolean) states if the target CPU has a little- or big-endian architecture. + \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. @@ -615,7 +652,7 @@ extern "C" \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. - \param endiam_arch (boolean) states if the target CPU has a little- or big-endian architecture. + \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. @@ -636,7 +673,7 @@ extern "C" \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. - \param endiam_arch (boolean) states if the target CPU has a little- or big-endian architecture. + \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. @@ -862,17 +899,40 @@ extern "C" \return the pointer to the newly created Geometry object: NULL on failure - \sa gaiaOutGml + \sa gaiaParseGml_r, gaiaOutGml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any - contained child object. + contained child object.\n + not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char *in_buffer, sqlite3 * sqlite_handle); +/** + Creates a Geometry object from GML notation + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param in_buffer pointer to GML buffer + \param sqlite_handle handle to current DB connection + + \return the pointer to the newly created Geometry object: NULL on failure + + \sa gaiaParseGml, gaiaOutGml + + \note you are responsible to destroy (before or after) any allocated Geometry, + unless you've passed ownership of the Geometry object to some further object: + in this case destroying the higher order object will implicitly destroy any + contained child object.\n + reentrant and thread-safe. + */ + GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml_r (const void *p_cache, + const unsigned char + *in_buffer, + sqlite3 * sqlite_handle); + /** Encodes a Geometry object into GML notation diff --git a/src/spatialite/src/headers/spatialite/gg_mbr.h b/src/spatialite/src/headers/spatialite/gg_mbr.h index bd2b378..9ff25ca 100644 --- a/src/spatialite/src/headers/spatialite/gg_mbr.h +++ b/src/spatialite/src/headers/spatialite/gg_mbr.h @@ -1,7 +1,7 @@ /* gg_mbr.h -- Gaia common support for geometries: MBR functions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): diff --git a/src/spatialite/src/headers/spatialite/gg_structs.h b/src/spatialite/src/headers/spatialite/gg_structs.h index 608006c..21ab99b 100644 --- a/src/spatialite/src/headers/spatialite/gg_structs.h +++ b/src/spatialite/src/headers/spatialite/gg_structs.h @@ -1,7 +1,7 @@ /* gg_structs.h -- Gaia common support for geometries: structures - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -308,7 +308,7 @@ extern "C" typedef struct gaiaDbfFieldStruct { /* a DBF field definition - shapefile attribute */ -/** field name [max. 10 char] */ +/** field name */ char *Name; /* field name */ /** DBF data type */ unsigned char Type; /* field type */ diff --git a/src/spatialite/src/headers/spatialite/gg_wfs.h b/src/spatialite/src/headers/spatialite/gg_wfs.h new file mode 100644 index 0000000..6945c53 --- /dev/null +++ b/src/spatialite/src/headers/spatialite/gg_wfs.h @@ -0,0 +1,517 @@ +/* + gg_wfs.h -- Gaia common support for WFS + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + + +/** + \file gg_wfs.h + + WFS support + */ + +#ifndef _GG_WFS_H +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#define _GG_WFS_H +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + + typedef struct gaia_wfs_catalog gaiaWFScatalog; + typedef gaiaWFScatalog *gaiaWFScatalogPtr; + + typedef struct gaia_wfs_item gaiaWFSitem; + typedef gaiaWFSitem *gaiaWFSitemPtr; + + typedef struct gaia_wfs_schema gaiaWFSschema; + typedef gaiaWFSschema *gaiaWFSschemaPtr; + + typedef struct gaia_wfs_column gaiaWFScolumn; + typedef gaiaWFScolumn *gaiaWFScolumnPtr; + +/** + Loads data from some WFS source + + \param sqlite handle to current DB connection + \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). + \param alt_describe_uri an alternative URI for DescribeFeatureType to be used + if no one is found within the XML document returned by GetFeature. + \param layer_name the name of the WFS layer. + \param swap_axes if TRUE the X and Y axes will be swapped + \param table the name of the table to be created + \param pk_column name of the Primary Key column; if NULL or mismatching + then "PK_UID" will be assumed by default. + \param spatial_index if TRUE an R*Tree Spatial Index will be created + \param rows on completion will contain the total number of actually imported rows + \param err_msg on completion will contain an error message (if any) + \param progress_callback pointer to a callback function to be invoked immediately + after processing each WFS page (could be NULL) + \param callback_ptr an arbitrary pointer (to be passed as the second argument + by the callback function). + + \sa create_wfs_catalog, load_from_wfs_paged, reset_wfs_http_connection + + \return 0 on failure, any other value on success + + \note an eventual error message returned via err_msg requires to be deallocated + by invoking free() + \n please note: this one simply is a convenience method, and exactly corresponds + to load_from_wfs_paged() setting a negative page size. + */ + SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, + const char *path_or_url, + const char *alt_describe_uri, + const char *layer_name, int swap_axes, + const char *table, + const char *pk_column_name, + int spatial_index, int *rows, + char **err_msg, + void (*progress_callback) (int, + void *), + void *callback_ptr); + +/** + Loads data from some WFS source (using WFS paging) + + \param sqlite handle to current DB connection + \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). + \param alt_describe_uri an alternative URI for DescribeFeatureType to be used + if no one is found within the XML document returned by GetFeature. + \param layer_name the name of the WFS layer. + \param swap_axes if TRUE the X and Y axes will be swapped + \param table the name of the table to be created + \param pk_column name of the Primary Key column; if NULL or mismatching + then "PK_UID" will be assumed by default. + \param spatial_index if TRUE an R*Tree Spatial Index will be created + \param page_size max number of features for each single WFS call; if zero or + negative a single monolithic page is assumed (i.e. paging will not be applied). + \param rows on completion will contain the total number of actually imported rows + \param err_msg on completion will contain an error message (if any) + \param progress_callback pointer to a callback function to be invoked immediately + after processing each WFS page (could be NULL) + \param callback_ptr an arbitrary pointer (to be passed as the second argument + by the callback function). + + \sa create_wfs_catalog, load_from_wfs, reset_wfs_http_connection + + \return 0 on failure, any other value on success + + \note an eventual error message returned via err_msg requires to be deallocated + by invoking free() + + \note the progress_callback function must have this signature: + \b void \b myfunct(\b int \b count, \b void \b *ptr); + \n and will cyclically report how many features have been processed since the initial call start. + */ + SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, + const char *path_or_url, + const char *alt_describe_uri, + const char *layer_name, + int swap_axes, + const char *table, + const char *pk_column_name, + int spatial_index, + int page_size, int *rows, + char **err_msg, + void (*progress_callback) (int, + void + *), + void *callback_ptr); + +/** + Creates a Catalog for some WFS service + + \param path_or_url pointer to some WFS-GetCapabilities XML Document (could be a pathname or an URL). + \param err_msg on completion will contain an error message (if any) + + \return the pointer to the corresponding WFS-Catalog object: NULL on failure + + \sa destroy_wfs_catalog, get_wfs_catalog_count, get_wfs_catalog_item, load_from_wfs, + reset_wfs_http_connection + + \note an eventual error message returned via err_msg requires to be deallocated + by invoking free().\n + you are responsible to destroy (before or after) any WFS-Catalog returned by create_wfs_catalog(). + */ + SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char + *path_or_url, + char **err_msg); + +/** + Destroys a WFS-Catalog object freeing any allocated resource + + \param handle the pointer to a valid WFS-Catalog returned by a previous call + to create_wfs_catalog() + + \sa create_wfs_catalog + */ + SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle); + +/** + Return the base URL for any WFS-GetFeature call + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the base URL for any WFS-GetFeature call: NULL is undefined + + \sa create_wfs_catalog, get_wfs_base_describe_url, get_wfs_request_url + */ + SPATIALITE_DECLARE const char *get_wfs_base_request_url (gaiaWFScatalogPtr + handle); + +/** + Return the base URL for any WFS-DescribeFeatureType call + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the base URL for any WFS-DescribeFeatureType call: NULL is undefined + + \sa create_wfs_catalog, get_wfs_base_request_url, get_wfs_describe_url + */ + SPATIALITE_DECLARE const char *get_wfs_base_describe_url (gaiaWFScatalogPtr + handle); + +/** + Return a GetFeature URL (GET) + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + \param name the NAME uniquely identifying the required WFS layer. + \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" + will be assumed. + \param srid the preferred SRS to be used for WFS geometries; if negative + or mismatching will be simply ignored. + \param max_features the WFS MAXFEATURES argument; any negative or zero + value will be ignored. + + \return the GetFeature URL: NULL if any error is found. + + \sa get_wfs_base_request_url, get_wfs_describe_url + + \note you are responsible to destroy (before or after) any allocated + memory returned by get_wfs_request_url(). + */ + SPATIALITE_DECLARE char *get_wfs_request_url (gaiaWFScatalogPtr handle, + const char *name, + const char *version, + int srid, int max_features); + +/** + Return a DescribeFeatureType URL (GET) + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + \param name the NAME uniquely identifying the required WFS layer. + \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" + will be assumed. + + \return the DescribeFeatureType URL: NULL if any error is found. + + \sa get_wfs_base_describe_url, get_wfs_request_url + + \note you are responsible to destroy (before or after) any allocated + memory returned by get_wfs_describe_url(). + */ + SPATIALITE_DECLARE char *get_wfs_describe_url (gaiaWFScatalogPtr handle, + const char *name, + const char *version); + +/** + Return the total count of items (aka Layers) defined within a WFS-Catalog object + + \param handle the pointer to a valid WFS-Catalog returned by a previous call + to create_wfs_catalog() + + \return the total count of items (aka Layers) defined within a WFS-Catalog object: + a negative number if the WFS-Catalog isn't valid + + \sa create_wfs_catalog, get_wfs_catalog_item + */ + SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle); + +/** + Return the pointer to some specific Layer defined within a WFS-Catalog object + + \param handle the pointer to a valid WFS-Catalog returned by a previous call + to create_wfs_catalog() + \param index the relative index identifying the required WFS-Layer (the first + Item in the WFS-Catalaog object has index ZERO). + + \return the pointer to the required WFS-Layer object: NULL if the passed index + isn't valid + + \sa create_wfs_catalog, get_wfs_catalog_count, get_wfs_item_name, get_wfs_item_title, + get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, + get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr + handle, int index); + +/** + Return the name corresponding to some WFS-Item (aka Layer) object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the name corresponding to the WFS-Layer object + + \sa get_wfs_layer_title, get_wfs_layer_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, + get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE const char *get_wfs_item_name (gaiaWFSitemPtr handle); + +/** + Return the title corresponding to some WFS-Item (aka Layer) object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the title corresponding to the WFS-Layer object + + \sa get_wfs_item_name, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, + get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE const char *get_wfs_item_title (gaiaWFSitemPtr handle); + +/** + Return the abstract corresponding to some WFS-Item (aka Layer) object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the abstract corresponding to the WFS-Layer object + + \sa get_wfs_item_name, get_wfs_item_title, get_wfs_layer_srid_count, get_wfs_layer_srid, + get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE const char *get_wfs_item_abstract (gaiaWFSitemPtr + handle); + +/** + Return the total count of SRIDs supported by a WFS-Item object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the total count of SRIDs supported by a WFS-Item object: + a negative number if the WFS-Item isn't valid + + \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, + get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle); + +/** + Return one of the SRIDs supported by a WFS-Item object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + \param index the relative index identifying the required SRID (the first + SRID value supported by a WFS-Item object has index ZERO). + + \return the SRID-value: a negative number if the required SRID-value isn't defined. + + \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, + get_wfs_layer_srid_count, get_wfs_keyword_count, get_wfs_keyword + */ + SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, + int index); + +/** + Return the total count of Keywords associated to a WFS-Item object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + + \return the total count of Keyword associated to a WFS-Item object: + a negative number if the WFS-Item isn't valid + + \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, + get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword + */ + SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle); + +/** + Return one of the Keywords supported by a WFS-Item object + + \param handle the pointer to a valid WFS-Item returned by a previous call + to get_wfs_catalog_item(). + \param index the relative index identifying the required Keyword (the first + Keyword associated to a WFS-Item object has index ZERO). + + \return the Keyword value: NULL if the required Keyword isn't defined. + + \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, + get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword + */ + SPATIALITE_DECLARE const char *get_wfs_keyword (gaiaWFSitemPtr handle, + int index); + +/** + Creates a Schema representing some WFS Layer + + \param path_or_url pointer to some WFS-DescribeFeatureType XML Document (could be a pathname or an URL). + \param err_msg on completion will contain an error message (if any) + + \return the pointer to the corresponding WFS-Schema object: NULL on failure + + \sa destroy_wfs_schema,get_wfs_schema_column_count, get_wfs_schema_column_info, + get_wfs_schema_geometry_info + + \note an eventual error message returned via err_msg requires to be deallocated + by invoking free().\n + you are responsible to destroy (before or after) any WFS-Schema returned by create_wfs_schema(). + */ + SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char + *path_or_url, + const char + *layer_name, + char **err_msg); + +/** + Destroys a WFS-schema object freeing any allocated resource + + \param handle the pointer to a valid WFS-Catalog returned by a previous call + to create_wfs_schema() + + \sa create_wfs_schema + */ + SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle); + +/** + Return the infos describing some WFS-GeometryColumn object + + \param handle the pointer to a valid WFS-Schema returned by a previous call + to create_wfs_schema(). + \param name on completion will contain a pointer to the GeometryColumn name + \param type on completion will contain the GeometryType set for the Column; + could be one of GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, + GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON or GAIA_GEOMETRYCOLLECTION + \param srid on completion will contain the SRID-value set for the GeometryColumn + \param dims on completion will contain the dimensions (2 or 3) set + for the GeometryColumn + \param nullable on completion will contain a Boolean value; if TRUE + the Column may contain NULL-values. + + \return TRUE on success, FALSE if any error is encountered or if + the WFS-Schema hasn't any Geometry-Column defined. + + \sa create_wfs_schema, get_wfs_schema_column_count, get_wfs_schema_column, + get_wfs_schema_column_info + */ + SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr + handle, + const char **name, + int *type, int *srid, + int *dims, + int *nullable); + +/** + Return the total count of items (aka Columns) defined within a WFS-Schema object + + \param handle the pointer to a valid WFS-Schema returned by a previous call + to create_wfs_schema() + + \return the total count of items (aka Columns) defined within a WFS-Schema object: + a negative number if the WFS-Schema isn't valid + + \sa create_wfs_schema, get_wfs_schema_geometry_info, + get_wfs_schema_column, get_wfs_schema_column_info + */ + SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr + handle); + +/** + Return the pointer to some specific Column defined within a WFS-Schema object + + \param handle the pointer to a valid WFS-Schema returned by a previous call + to create_wfs_schema() + \param index the relative index identifying the required WFS-Column (the first + Item in the WFS-Schema object has index ZERO). + + \return the pointer to the required WFS-Column object: NULL if the passed index + isn't valid + + \sa create_wfs_schema, get_wfs_schema_geometry_info, + get_wfs_schema_column_count, get_wfs_schema_column_info + */ + SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr + handle, + int index); + +/** + Return the infos describing some WFS-Column object + + \param handle the pointer to a valid WFS-Column returned by a previous call + to get_wfs_schema_column(). + \param name on completion will contain a pointer to the Column name + \param type on completion will contain the datatype set for the Column; + could be one of SQLITE_TEXT, SQLITE_INTEGER or SQLITE_FLOAT + \param nullable on completion will contain a Boolean value; if TRUE + the Column may contain NULL-values. + + \return TRUE on success, FALSE if any error is encountered + + \sa get_wfs_schema_column, get_wfs_schema_geometry_info + */ + SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, + const char **name, + int *type, + int *nullable); + +/** + Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings + + \sa create_wfs_catalog, load_from_wfs, load_from_wfs_paged + */ + SPATIALITE_DECLARE void reset_wfs_http_connection (void); + +#ifdef __cplusplus +} +#endif + +#endif /* _GG_WFS_H */ diff --git a/src/spatialite/src/headers/spatialite/gg_xml.h b/src/spatialite/src/headers/spatialite/gg_xml.h new file mode 100644 index 0000000..7dd3c46 --- /dev/null +++ b/src/spatialite/src/headers/spatialite/gg_xml.h @@ -0,0 +1,760 @@ +/* + gg_xml.h -- Gaia common support for XML documents + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + + +/** + \file gg_xml.h + + Geometry handling functions: XML document + */ + +#ifndef _GG_XML_H +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#define _GG_XML_H +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* constant values for XmlBLOB */ + +/** XmlBLOB internal marker: START */ +#define GAIA_XML_START 0x00 +/** XmlBLOB internal marker: END */ +#define GAIA_XML_END 0xDD +/** XmlBLOB internal marker: HEADER */ +#define GAIA_XML_HEADER 0xAC +/** XmlBLOB internal marker: LEGACY HEADER */ +#define GAIA_XML_LEGACY_HEADER 0xAB +/** XmlBLOB internal marker: SCHEMA */ +#define GAIA_XML_SCHEMA 0xBA +/** XmlBLOB internal marker: FILEID */ +#define GAIA_XML_FILEID 0xCA +/** XmlBLOB internal marker: PARENTID */ +#define GAIA_XML_PARENTID 0xDA +/** XmlBLOB internal marker: TITLE */ +#define GAIA_XML_NAME 0xDE +/** XmlBLOB internal marker: TITLE */ +#define GAIA_XML_TITLE 0xDB +/** XmlBLOB internal marker: ABSTRACT */ +#define GAIA_XML_ABSTRACT 0xDC +/** XmlBLOB internal marker: GEOMETRY */ +#define GAIA_XML_GEOMETRY 0xDD +/** XmlBLOB internal marker: CRC32 */ +#define GAIA_XML_CRC32 0xBC +/** XmlBLOB internal marker: PAYLOAD */ +#define GAIA_XML_PAYLOAD 0xCB + +/* bitmasks for XmlBLOB-FLAG */ + +/** XmlBLOB FLAG - LITTLE_ENDIAN bitmask */ +#define GAIA_XML_LITTLE_ENDIAN 0x01 +/** XmlBLOB FLAG - COMPRESSED bitmask */ +#define GAIA_XML_COMPRESSED 0x02 +/** XmlBLOB FLAG - VALIDATED bitmask */ +#define GAIA_XML_VALIDATED 0x04 +/** XmlBLOB FLAG - ISO METADATA bitmask */ +#define GAIA_XML_ISO_METADATA 0x80 +/** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ +#define GAIA_XML_SLD_SE_RASTER_STYLE 0x10 +/** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ +#define GAIA_XML_SLD_SE_VECTOR_STYLE 0x40 +/** XmlBLOB FLAG - SLD STYLE bitmask */ +#define GAIA_XML_SLD_STYLE 0x48 +/** XmlBLOB FLAG - SVG bitmask */ +#define GAIA_XML_SVG 0x20 + + +/* function prototypes */ + +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +#ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ +#endif + +/** + return the LIBXML2 version string + + \return a text string identifying the current LIBXML2 version + + \note the version string corresponds to dynamically allocated memory: + so you are responsible to free() it [unless SQLite will take care + of memory cleanup via buffer binding]. + */ + GAIAGEO_DECLARE char *gaia_libxml2_version (void); + +/** + Creates an XmlBLOB buffer + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param xml pointer to the XML document (XmlBLOB payload). + \param xml_len lenght of the XML document (in bytes). + \param compressed if TRUE the returned XmlBLOB will be zip-compressed. + \param schemaURI if not NULL the XML document will be assumed to be valid + only if it succesfully passes a formal Schema valitadion. + \param result on completion will containt a pointer to XmlBLOB: + NULL on failure. + \param size on completion this variable will contain the XmlBLOB's size (in bytes) + \param parsing_errors on completion this variable will contain all error/warning + messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. + \param schema_validation_errors on completion this variable will contain all error/warning + messages emitted during the XML Schema Validation step. Can be set to NULL so to ignore any message. + + \sa gaiaXmlFromBlob, gaiaXmlTextFromBlob, gaiaXmlBlobGetLastParseError, + gaiaXmlBlobGetLastValidateError + + \note the XmlBLOB buffer corresponds to dynamically allocated memory: + so you are responsible to free() it [unless SQLite will take care + of memory cleanup via buffer binding]. + */ + GAIAGEO_DECLARE void gaiaXmlToBlob (const void *p_cache, + const unsigned char *xml, int xml_len, + int compressed, const char *schemaURI, + unsigned char **result, int *size, + char **parsing_errors, + char **schema_validation_errors); + +/** + Extract an XMLDocument from within an XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + \param indent if a negative value is passed the XMLDocument will + be extracted exactly as it was when loaded. Otherwise it will be + properly formatted using the required intenting (max. 8); ZERO + means that the whole XML Document will consist of a single line. + + \return the pointer to the newly created XMLDocument buffer: NULL on failure + + \sa gaiaXmlToBlob, gaiaXmlFromBlob + + \note the returned XMLDocument will always be encoded as UTF-8 (irrespectively + from the internal encoding declaration), so to allow any further processing as + SQLite TEXT. + + \note the XMLDocument buffer corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlTextFromBlob (const unsigned char *blob, + int size, int indent); + +/** + Extract an XMLDocument from within an XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + \param indent if a negative value is passed the XMLDocument will + be extracted exactly as it was when loaded. Otherwise it will be + properly formatted using the required intenting (max. 8); ZERO + means that the whole XML Document will consist of a single line. + \param result pointer to the memory buffer containing the XML Document + \param res_size dimension (in bytes) of the XML Document memory buffer + (both values will be passed back after succesful completion). + + + \sa gaiaXmlToBlob, gaiaXmlTextFromBlob + + \note the returned XMLDocument will always respect the internal encoding declaration, + and may not support any further processing as SQLite TEXT if it's not UTF-8. + + \note the XMLDocument buffer corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE void gaiaXmlFromBlob (const unsigned char *blob, + int size, int indent, + unsigned char **result, + int *res_size); + +/** + Checks if a BLOB actually is a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE + + \sa gaiaIsCompressedXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, + gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob, + int size); + +/** + Checks if a valid XmlBLOB buffer is compressed or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, + gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob, + int size); + +/** + Checks if a valid XmlBLOB buffer does contain an ISO Metadata or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, + gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, + int size); + +/** + Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the + Vector type; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsSldSeVectorStyleXmlBlob (const unsigned char + *blob, int size); + +/** + Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the + Raster type; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, + gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob, + gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char + *blob, int size); + +/** + Checks if a valid XmlBLOB buffer does contain an SLD Style or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the + SLD type; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, + gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterXmlBlob, + gaiaIsSvgXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsSldStyleXmlBlob (const unsigned char + *blob, int size); + +/** + Checks if a valid XmlBLOB buffer does contain an SVG Symbol or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, + gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int size); + +/** + Return another XmlBLOB buffer compressed / uncompressed + + \param blob pointer to the input XmlBLOB buffer. + \param in_size input XmlBLOB's size (in bytes). + \param compressed if TRUE the returned XmlBLOB will be zip-compressed. + \param result on completion will containt a pointer to the output XmlBLOB: + NULL on failure. + \param out_size on completion this variable will contain the output XmlBLOB's size (in bytes) + + \sa gaiaXmlToBlob, gaiaIsCompressedXmlBlob + + \note the XmlBLOB buffer corresponds to dynamically allocated memory: + so you are responsible to free() it [unless SQLite will take care + of memory cleanup via buffer binding]. + */ + GAIAGEO_DECLARE void gaiaXmlBlobCompression (const unsigned char *blob, + int in_size, int compressed, + unsigned char **result, + int *out_size); + +/** + Checks if a valid XmlBLOB buffer has succesfully passed a formal Schema validation or not + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB but not schema-validated; + -1 in any other case. + + \sa gaiaIsValidXmlBlob, gaiaIsSvgXmlBlob, + gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, + gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, + gaiaIsSldStyleXmlBlob + */ + GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, + int size); + +/** + Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the XMLDocument size (in bytes) for any valid XmlBLOB; + -1 if the BLOB isn't a valid XmlBLOB. + */ + GAIAGEO_DECLARE int gaiaXmlBlobGetDocumentSize (const unsigned char *blob, + int size); + +/** + Return the SchemaURI from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the SchemaURI for any valid XmlBLOB containing a SchemaURI; + NULL in any other case. + + \sa gaiaXmlGetInternalSchemaURI + + \note the returned SchemaURI corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetSchemaURI (const unsigned char + *blob, int size); + +/** + Return the Internal SchemaURI from a valid XmlDocument + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param xml pointer to the XML document + \param xml_len lenght of the XML document (in bytes). + + \return the SchemaURI eventually defined within a valid XMLDocument; + NULL if the XMLDocument is invalid, or if it doesn't contain any SchemaURI. + + \sa gaiaXmlBlobGetSchemaURI + + \note the returned SchemaURI corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlGetInternalSchemaURI (const void *p_cache, + const unsigned char *xml, + int xml_len); + +/** + Return the FileIdentifier from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the FileIdentifier for any valid XmlBLOB containing a FileIdentifier; + NULL in any other case. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetFileId, gaiaXmlBlobAddFileId + + \note the returned FileIdentifier corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetFileId (const unsigned char + *blob, int size); + +/** + Return the ParentIdentifier from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the ParentIdentifier for any valid XmlBLOB containing a ParentIdentifier; + NULL in any other case. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetParentId, gaiaXmlBlobAddParentId + + \note the returned ParentIdentifier corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetParentId (const unsigned char + *blob, int size); + +/** + Return a new XmlBLOB (ISO Metadata) by replacing the FileId value + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param blob pointer to the input XmlBLOB buffer. + \param size input XmlBLOB's size (in bytes). + \param identifier the new FileId value to be set. + \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. + \param new_size on completion will containg the output XmlBlob's size (in bytes). + + \return TRUE for success; FALSE for any failure cause. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobAddFileId + + \note the output XmlBLOB corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (const void *p_cache, + const unsigned char *blob, + int size, const char *identifier, + unsigned char **new_blob, + int *new_size); + +/** + Return a new XmlBLOB (ISO Metadata) by replacing the ParentId value + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param blob pointer to the inputXmlBLOB buffer. + \param size input XmlBLOB's size (in bytes). + \param identifier the new ParentId value to be set. + \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. + \param new_size on completion will containg the output XmlBlob's size (in bytes). + + \return TRUE for success; FALSE for any failure cause. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobAddParentId + + \note the returned XmlBLOB corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (const void *p_cache, + const unsigned char *blob, + int size, + const char *identifier, + unsigned char **new_blob, + int *new_size); + +/** + Return a new XmlBLOB (ISO Metadata) by inserting a FileId value + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param blob pointer to the input XmlBLOB buffer. + \param size input XmlBLOB's size (in bytes). + \param identifier the new FileId value to be inserted. + \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) + \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) + \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) + \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) + \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. + \param new_size on completion will containg the output XmlBlob's size (in bytes). + + \return TRUE for success; FALSE for any failure cause. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobSetFileId + + \note the output XmlBLOB corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (const void *p_cache, + const unsigned char *blob, + int size, const char *identifier, + const char *ns_id, + const char *uri_id, + const char *ns_charstr, + const char *uri_charstr, + unsigned char **new_blob, + int *new_size); + +/** + Return a new XmlBLOB (ISO Metadata) by inserting a ParentId value + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param blob pointer to the inputXmlBLOB buffer. + \param size input XmlBLOB's size (in bytes). + \param identifier the new ParentId value to be inserted. + \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) + \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) + \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) + \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) + \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. + \param new_size on completion will containg the output XmlBlob's size (in bytes). + + \return TRUE for success; FALSE for any failure cause. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobSetParentId + + \note the returned XmlBLOB corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (const void *p_cache, + const unsigned char *blob, + int size, + const char *identifier, + const char *ns_id, + const char *uri_id, + const char *ns_charstr, + const char *uri_charstr, + unsigned char **new_blob, + int *new_size); + +/** + Return the Name from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the Name for any valid XmlBLOB containing a Name; + NULL in any other case. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob + + \note the returned Name corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetName (const unsigned char + *blob, int size); + +/** + Return the Title from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the Title for any valid XmlBLOB containing a Title; + NULL in any other case. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob + + \note the returned Title corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetTitle (const unsigned char + *blob, int size); + +/** + Return the Abstract from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the Abstract for any valid XmlBLOB containing an Abstract; + NULL in any other case. + + \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, + gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob + + \note the returned Abstract corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetAbstract (const unsigned char + *blob, int size); + +/** + Return the Geometry Buffer from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + \param blob_geom on completion this variable will contain + a pointer to the returned Geometry Buffer (NULL if no Geometry + was defined within the XmlBLOB) + \param blob_size on completion this variable will contain + the size (in bytes) of the returned Geometry Buffer + + \sa gaiaIsIsoMetadataXmlBlob + + \note the returned Geometry Buffer corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE void gaiaXmlBlobGetGeometry (const unsigned char + *blob, int size, + unsigned char **blob_geom, + int *blob_size); + +/** + Return the Charset Encoding from a valid XmlBLOB buffer + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + + \return the Charset Encoding for any valid XmlBLOB explicitly defining an Encoding; + NULL in any other case. + + \note the returned Encoding corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetEncoding (const unsigned char + *blob, int size); + +/** + Return the most recent XML Parse error/warning (if any) + + \param ptr a memory pointer returned by spatialite_alloc_connection() + + \return the most recent XML Parse error/warning message (if any); + NULL in any other case. + + \sa gaiaXmlBlobGetLastValidateError, gaiaIsValidXPathExpression, + gaiaXmlBlobGetLastXPathError + + \note the returned error/warning message corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetLastParseError (const void *p_cache); + +/** + Return the most recent XML Validate error/warning (if any) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return the most recent XML Validate error/warning message (if any); + NULL in any other case. + + \sa gaiaXmlBlobGetLastParseError, gaiaIsValidXPathExpression, + gaiaXmlBlobGetLastXPathError + + \note the returned error/warning message corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetLastValidateError (const void *p_cache); + +/** + Checks if a Text string could be a valid XPathExpression + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + \param xpath_expr pointer to the XPathExpression to be checked. + + \return TRUE or FALSE if the Text string actually is a valid XPathExpression; + -1 in any other case. + + \sa gaiaXmlBlobGetLastXPathError + */ + GAIAGEO_DECLARE int gaiaIsValidXPathExpression (const void *p_cache, + const char *xpath_expr); + +/** + Return the most recent XPath error/warning (if any) + + \param p_cache a memory pointer returned by spatialite_alloc_connection() + + \return the most recent XPath error/warning message (if any); + NULL in any other case. + + \sa gaiaXmlBlobGetLastParseError, gaiaXmlBlobGetLastValidateError, + gaiaIsValidXPathExpression + + \note the returned error/warning message corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + */ + GAIAGEO_DECLARE char *gaiaXmlBlobGetLastXPathError (const void *p_cache); + +/** + Load an external XML Document + + \param path_or_url pointer to the external XML Document (could be a pathname or an URL). + \param result on completion will containt a pointer to a BLOB: + NULL on failure. + \param size on completion this variable will contain the BLOB's size (in bytes). + \param parsing_errors on completion this variable will contain all error/warning + messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. + + \sa gaiaXmlFromBlob, gaiaXmlStore + + \note the BLOB buffer corresponds to dynamically allocated memory: + so you are responsible to free() it [unless SQLite will take care + of memory cleanup via buffer binding]. + */ + GAIAGEO_DECLARE int gaiaXmlLoad (const void *p_cache, + const char *path_or_url, + unsigned char **result, int *size, + char **parsing_errors); + +/** + Stores an external XML Document + + \param blob pointer to the XmlBLOB buffer. + \param size XmlBLOB's size (in bytes). + \param path pathname of the export file + \param indent if a negative value is passed the XMLDocument will + be extracted exactly as it was when loaded. Otherwise it will be + properly formatted using the required intenting (max. 8); ZERO + means that the whole XML Document will consist of a single line. + + \sa gaiaXmlToBlob, gaiaXmlTextFromBlob + + \note the returned XMLDocument will always respect the internal encoding declaration, + and may not support any further processing as SQLite TEXT if it's not UTF-8. + + \note the XMLDocument buffer corresponds to dynamically allocated memory: + so you are responsible to free() it before or after. + + \sa gaiaXmlFromBlob, gaiaXmlLoad + + \note the BLOB buffer corresponds to dynamically allocated memory: + so you are responsible to free() it [unless SQLite will take care + of memory cleanup via buffer binding]. + */ + GAIAGEO_DECLARE int gaiaXmlStore (const unsigned char *blob, int size, + const char *path, int indent); + +#endif /* end LIBXML2: supporting XML documents */ + +#ifdef __cplusplus +} +#endif + +#endif /* _GG_XML_H */ diff --git a/src/spatialite/src/headers/spatialite/spatialite.h b/src/spatialite/src/headers/spatialite/spatialite.h index 016e90f..963319d 100644 --- a/src/spatialite/src/headers/spatialite/spatialite.h +++ b/src/spatialite/src/headers/spatialite/spatialite.h @@ -1,7 +1,7 @@ /* spatialite.h -- Gaia support for SQLite extensions - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -42,11 +42,18 @@ the terms of any one of the MPL, the GPL or the LGPL. */ -int virtualshape_extension_init (sqlite3 * db); -int virtualdbf_extension_init (sqlite3 * db); -int virtualtext_extension_init (sqlite3 * db); -int virtualXL_extension_init (sqlite3 * db); -int virtualnetwork_extension_init (sqlite3 * db); -int virtualfdo_extension_init (sqlite3 * db); -int mbrcache_extension_init (sqlite3 * db); -int virtual_spatialindex_extension_init (sqlite3 * db); +#include <spatialite_private.h> + +SPATIALITE_PRIVATE int virtualshape_extension_init (void *db); +SPATIALITE_PRIVATE int virtualdbf_extension_init (void *db); +SPATIALITE_PRIVATE int virtualtext_extension_init (void *db); +SPATIALITE_PRIVATE int virtualXL_extension_init (void *db); +SPATIALITE_PRIVATE int virtualnetwork_extension_init (void *db); +SPATIALITE_PRIVATE int virtualfdo_extension_init (void *db); +SPATIALITE_PRIVATE int virtualbbox_extension_init (void *db, + const void *p_cache); +SPATIALITE_PRIVATE int mbrcache_extension_init (void *db); +SPATIALITE_PRIVATE int virtual_spatialindex_extension_init (void *db); +SPATIALITE_PRIVATE int virtual_xpath_extension_init (void *db, + const void *p_cache); +SPATIALITE_PRIVATE int virtualgpkg_extension_init (void *db); diff --git a/src/spatialite/src/headers/spatialite/sqlite.h b/src/spatialite/src/headers/spatialite/sqlite.h index 58b084d..8301f4a 100644 --- a/src/spatialite/src/headers/spatialite/sqlite.h +++ b/src/spatialite/src/headers/spatialite/sqlite.h @@ -1,7 +1,7 @@ /* sqlite.h -- supporting SQLite headers in a flexible way - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2012 +Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -46,13 +46,20 @@ the terms of any one of the MPL, the GPL or the LGPL. #ifndef _SPATIALITE_SQLITE_H #define _SPATIALITE_SQLITE_H +#ifdef LOADABLE_EXTENSION /* loadable-extension only */ #ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ #include <spatialite/sqlite3ext.h> #else #include <sqlite3ext.h> - - /* We can't use SQLITE_EXTENSION_INIT1 as this is an intializer in recent version of sqlite */ +#endif +/* We can't use SQLITE_EXTENSION_INIT1 as this is an intializer in recent version of sqlite */ extern const sqlite3_api_routines *sqlite3_api; +#else /* ordinary lib */ +#ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ +#include <spatialite/sqlite3.h> +#else +#include <sqlite3.h> +#endif #endif #endif diff --git a/src/spatialite/src/headers/spatialite_private.h b/src/spatialite/src/headers/spatialite_private.h index 4361b60..4be4aaa 100644 --- a/src/spatialite/src/headers/spatialite_private.h +++ b/src/spatialite/src/headers/spatialite_private.h @@ -1,7 +1,7 @@ /* spatialite.h -- Gaia spatial support for SQLite - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -42,6 +42,11 @@ the terms of any one of the MPL, the GPL or the LGPL. */ +#include <time.h> +#include <stdarg.h> + +#include <zlib.h> + /** \file spatialite_private.h @@ -84,6 +89,61 @@ extern "C" #define SPATIALITE_STATISTICS_VIRTS 3 #define SPATIALITE_STATISTICS_LEGACY 4 +#define SPATIALITE_CACHE_MAGIC1 0xf8 +#define SPATIALITE_CACHE_MAGIC2 0x8f + + struct vxpath_ns + { +/* a Namespace definition */ + char *Prefix; + char *Href; + struct vxpath_ns *Next; + }; + + struct vxpath_namespaces + { +/* Namespace container */ + struct vxpath_ns *First; + struct vxpath_ns *Last; + }; + + struct splite_geos_cache_item + { + unsigned char gaiaBlob[64]; + int gaiaBlobSize; + uLong crc32; + void *geosGeom; + void *preparedGeosGeom; + }; + + struct splite_xmlSchema_cache_item + { + time_t timestamp; + char *schemaURI; + void *schemaDoc; + void *parserCtxt; + void *schema; + }; + +#define MAX_XMLSCHEMA_CACHE 16 + + struct splite_internal_cache + { + unsigned char magic1; + void *GEOS_handle; + void *PROJ_handle; + void *xmlParsingErrors; + void *xmlSchemaValidationErrors; + void *xmlXPathErrors; + struct splite_geos_cache_item cacheItem1; + struct splite_geos_cache_item cacheItem2; + struct splite_xmlSchema_cache_item xmlSchemaCache[MAX_XMLSCHEMA_CACHE]; + int pool_index; + void (*geos_warning) (const char *fmt, ...); + void (*geos_error) (const char *fmt, ...); + unsigned char magic2; + }; + struct epsg_defs { int srid; @@ -95,6 +155,9 @@ extern "C" struct epsg_defs *next; }; + SPATIALITE_PRIVATE void + free_internal_cache (struct splite_internal_cache *cache); + SPATIALITE_PRIVATE struct epsg_defs *add_epsg_def (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, @@ -114,6 +177,8 @@ extern "C" initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last); + SPATIALITE_PRIVATE void free_epsg (struct epsg_defs *first); + SPATIALITE_PRIVATE int checkSpatialMetaData (const void *sqlite); SPATIALITE_PRIVATE int delaunay_triangle_check (void *pg); @@ -121,9 +186,17 @@ extern "C" SPATIALITE_PRIVATE void *voronoj_build (int pgs, void *first, double extra_frame_size); + SPATIALITE_PRIVATE void *voronoj_build_r (const void *p_cache, int pgs, + void *first, + double extra_frame_size); + SPATIALITE_PRIVATE void *voronoj_export (void *voronoj, void *result, int only_edges); + SPATIALITE_PRIVATE void *voronoj_export_r (const void *p_cache, + void *voronoj, void *result, + int only_edges); + SPATIALITE_PRIVATE void voronoj_free (void *voronoj); SPATIALITE_PRIVATE void *concave_hull_build (void *first, @@ -131,6 +204,12 @@ extern "C" double factor, int allow_holes); + SPATIALITE_PRIVATE void *concave_hull_build_r (const void *p_cache, + void *first, + int dimension_model, + double factor, + int allow_holes); + SPATIALITE_PRIVATE int createAdvancedMetaData (void *sqlite); SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *sqlite, @@ -154,9 +233,13 @@ extern "C" getRealSQLnames (void *p_sqlite, const char *table, const char *column, char **real_table, char **real_column); - SPATIALITE_PRIVATE void - buildSpatialIndex (void *p_sqlite, const unsigned char *table, - const char *column); + SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column); /* DEPRECATED - always use buildSpatialIndexEx */ + + SPATIALITE_PRIVATE int + buildSpatialIndexEx (void *p_sqlite, const unsigned char *table, + const char *column); + + SPATIALITE_PRIVATE int validateRowid (void *p_sqlite, const char *table); SPATIALITE_PRIVATE int doComputeFieldInfos (void *p_sqlite, const char *table, @@ -169,8 +252,148 @@ extern "C" getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf); + SPATIALITE_PRIVATE void addVectorLayer (void *list, const char *layer_type, + const char *table_name, + const char *geometry_column, + int geometry_type, int srid, + int spatial_index); + + SPATIALITE_PRIVATE void addVectorLayerExtent (void *list, + const char *table_name, + const char *geometry_column, + int count, double min_x, + double min_y, double max_x, + double max_y); + + SPATIALITE_PRIVATE void addLayerAttributeField (void *list, + const char *table_name, + const char *geometry_column, + int ordinal, + const char *column_name, + int null_values, + int integer_values, + int double_values, + int text_values, + int blob_values, + int null_max_size, + int max_size, + int null_int_range, + void *integer_min, + void *integer_max, + int null_double_range, + double double_min, + double double_max); + + SPATIALITE_PRIVATE int createStylingTables (void *p_sqlite, int relaxed); + + SPATIALITE_PRIVATE int register_external_graphic (void *p_sqlite, + const char *xlink_href, + const unsigned char + *p_blob, int n_bytes, + const char *title, + const char *abstract, + const char *file_name); + + SPATIALITE_PRIVATE int register_vector_styled_layer (void *p_sqlite, + const char + *f_table_name, + const char + *f_geometry_column, + int style_id, + const unsigned char + *p_blob, int n_bytes); + + SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite, + const char + *coverage_name, + int style_id, + const unsigned char + *p_blob, int n_bytes); + + SPATIALITE_PRIVATE int register_styled_group (void *p_sqlite, + const char *group_name, + const char *f_table_name, + const char *f_geometry_column, + const char *coverage_name, + int paint_order); + + SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite, + const char *group_name, + const char *title, + const char *abstract); + + SPATIALITE_PRIVATE int register_group_style (void *p_sqlite, + const char *group_name, + int style_id, + const unsigned char + *p_blob, int n_bytes); + + SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite, + int relaxed); + + SPATIALITE_PRIVATE int get_iso_metadata_id (void *p_sqlite, + const char *fileIdentifier, + void *p_id); + + SPATIALITE_PRIVATE int register_iso_metadata (void *p_sqlite, + const char *scope, + const unsigned char *p_blob, + int n_bytes, void *p_id, + const char *fileIdentifier); + + SPATIALITE_PRIVATE int createRasterCoveragesTable (void *p_sqlite); + + SPATIALITE_PRIVATE int checkPopulatedCoverage (void *p_sqlite, + const char *coverage_name); + SPATIALITE_PRIVATE const char *splite_lwgeom_version (void); + SPATIALITE_PRIVATE void splite_lwgeom_init (void); + + SPATIALITE_PRIVATE void splite_free_geos_cache_item (struct + splite_geos_cache_item + *p); + + SPATIALITE_PRIVATE void splite_free_geos_cache_item_r (const void *p_cache, + struct + splite_geos_cache_item + *p); + + SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct + splite_xmlSchema_cache_item + *p); + + SPATIALITE_PRIVATE void + vxpath_free_namespaces (struct vxpath_namespaces *ns_list); + + SPATIALITE_PRIVATE struct vxpath_namespaces *vxpath_get_namespaces (void + *p_xml_doc); + + SPATIALITE_PRIVATE int vxpath_eval_expr (const void *p_cache, void *xml_doc, + const char *xpath_expr, + void *p_xpathCtx, + void *p_xpathObj); + + SPATIALITE_PRIVATE void *register_spatialite_sql_functions (void *db, + const void + *cache); + + SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db, + const void *p_cache); + + SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose); + + SPATIALITE_PRIVATE void geos_error (const char *fmt, ...); + + SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...); + + SPATIALITE_PRIVATE void splite_cache_semaphore_lock (void); + + SPATIALITE_PRIVATE void splite_cache_semaphore_unlock (void); + + SPATIALITE_PRIVATE void splite_lwgeom_semaphore_lock (void); + + SPATIALITE_PRIVATE void splite_lwgeom_semaphore_unlock (void); #ifdef __cplusplus } diff --git a/src/spatialite/src/md5/Makefile.am b/src/spatialite/src/md5/Makefile.am new file mode 100644 index 0000000..98e9e0f --- /dev/null +++ b/src/spatialite/src/md5/Makefile.am @@ -0,0 +1,18 @@ + +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I. + +noinst_HEADERS = md5.h +noinst_LTLIBRARIES = libmd5.la md5.la + +libmd5_la_SOURCES = md5.c gaia_md5.c + +md5_la_SOURCES = md5.c gaia_md5.c + +md5_la_CPPFLAGS = @CFLAGS@ +md5_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +md5_la_CPPFLAGS += -DLOADABLE_EXTENSION +md5_la_LDFLAGS = -module +md5_la_LIBTOOLFLAGS = --tag=disable-static + +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/md5/Makefile.in b/src/spatialite/src/md5/Makefile.in new file mode 100644 index 0000000..5155c36 --- /dev/null +++ b/src/spatialite/src/md5/Makefile.in @@ -0,0 +1,622 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/md5 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(noinst_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libmd5_la_LIBADD = +am_libmd5_la_OBJECTS = md5.lo gaia_md5.lo +libmd5_la_OBJECTS = $(am_libmd5_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +md5_la_LIBADD = +am_md5_la_OBJECTS = md5_la-md5.lo md5_la-gaia_md5.lo +md5_la_OBJECTS = $(am_md5_la_OBJECTS) +md5_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(md5_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES) +DIST_SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. +noinst_HEADERS = md5.h +noinst_LTLIBRARIES = libmd5.la md5.la +libmd5_la_SOURCES = md5.c gaia_md5.c +md5_la_SOURCES = md5.c gaia_md5.c +md5_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +md5_la_LDFLAGS = -module +md5_la_LIBTOOLFLAGS = --tag=disable-static +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/md5/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/md5/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmd5.la: $(libmd5_la_OBJECTS) $(libmd5_la_DEPENDENCIES) $(EXTRA_libmd5_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libmd5_la_OBJECTS) $(libmd5_la_LIBADD) $(LIBS) + +md5.la: $(md5_la_OBJECTS) $(md5_la_DEPENDENCIES) $(EXTRA_md5_la_DEPENDENCIES) + $(AM_V_CCLD)$(md5_la_LINK) $(md5_la_OBJECTS) $(md5_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_md5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_la-gaia_md5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_la-md5.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +md5_la-md5.lo: md5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-md5.lo -MD -MP -MF $(DEPDIR)/md5_la-md5.Tpo -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-md5.Tpo $(DEPDIR)/md5_la-md5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5.c' object='md5_la-md5.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c + +md5_la-gaia_md5.lo: gaia_md5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-gaia_md5.lo -MD -MP -MF $(DEPDIR)/md5_la-gaia_md5.Tpo -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-gaia_md5.Tpo $(DEPDIR)/md5_la-gaia_md5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_md5.c' object='md5_la-gaia_md5.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/md5/gaia_md5.c b/src/spatialite/src/md5/gaia_md5.c new file mode 100644 index 0000000..11c6f17 --- /dev/null +++ b/src/spatialite/src/md5/gaia_md5.c @@ -0,0 +1,116 @@ +/* + + gaia_md5.c -- a thin wrapper built around the original MD5 + implementation from Alexander Peslyak + (released on the Public Domain) + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include <spatialite/sqlite.h> +#include <spatialite/gaiaaux.h> + +#include "md5.h" + +GAIAAUX_DECLARE void * +gaiaCreateMD5Checksum (void) +{ +/* Creates and initializes an MD5 checksum object */ + MD5_CTX *md5 = malloc (sizeof (MD5_CTX)); + splite_MD5_Init (md5); + return md5; +} + +GAIAAUX_DECLARE void +gaiaFreeMD5Checksum (void *p_md5) +{ +/* memory cleanup - destroying an MD5 checksum object */ + unsigned char result[32]; + MD5_CTX *md5 = (MD5_CTX *) p_md5; + if (md5 == NULL) + return; + splite_MD5_Final (result, md5); + free (md5); +} + +GAIAAUX_DECLARE void +gaiaUpdateMD5Checksum (void *p_md5, const unsigned char *blob, int blob_len) +{ +/* progressively updating the MD5 checksum */ + MD5_CTX *md5 = (MD5_CTX *) p_md5; + if (md5 == NULL || blob == NULL) + return; + splite_MD5_Update (md5, (void *)blob, blob_len); +} + +GAIAAUX_DECLARE char * +gaiaFinalizeMD5Checksum (void *p_md5) +{ +/* return the current MD5 checksum and resets the MD5 object */ + int i; + char *hex; + char hex_byte[8]; + unsigned char result[32]; + MD5_CTX *md5 = (MD5_CTX *) p_md5; + if (md5 == NULL) + return NULL; + splite_MD5_Final (result, md5); + splite_MD5_Init (md5); +/* formatting the MD5 checksum as hex-text */ + hex = malloc (33); + *hex = '\0'; + for (i = 0; i < 16; i++) + { + sprintf (hex_byte, "%02x", result[i]); + strcat (hex, hex_byte); + } + return hex; +} diff --git a/src/spatialite/src/md5/md5.c b/src/spatialite/src/md5/md5.c new file mode 100644 index 0000000..656c145 --- /dev/null +++ b/src/spatialite/src/md5/md5.c @@ -0,0 +1,302 @@ +/* + * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. + * MD5 Message-Digest Algorithm (RFC 1321). + * + * Homepage: + * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 + * + * Author: + * Alexander Peslyak, better known as Solar Designer <solar at openwall.com> + * + * This software was written by Alexander Peslyak in 2001. No copyright is + * claimed, and the software is hereby placed in the public domain. + * In case this attempt to disclaim copyright and place the software in the + * public domain is deemed null and void, then the software is + * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + * general public under the following terms: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * There's ABSOLUTELY NO WARRANTY, express or implied. + * + * (This is a heavily cut-down "BSD license".) + * + * This differs from Colin Plumb's older public domain implementation in that + * no exactly 32-bit integer data type is required (any 32-bit or wider + * unsigned integer data type will do), there's no compile-time endianness + * configuration, and the function prototypes match OpenSSL's. No code from + * Colin Plumb's implementation has been reused; this comment merely compares + * the properties of the two independent implementations. + * + * The primary goals of this implementation are portability and ease of use. + * It is meant to be fast, but not as fast as possible. Some known + * optimizations are not included to reduce source code size and avoid + * compile-time configuration. + */ + +#ifndef HAVE_OPENSSL + +#include <string.h> + +#include "md5.h" + +/* + * The basic MD5 functions. + * + * F and G are optimized compared to their RFC 1321 definitions for + * architectures that lack an AND-NOT instruction, just like in Colin Plumb's + * implementation. + */ +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define I(x, y, z) ((y) ^ ((x) | ~(z))) + +/* + * The MD5 transformation for all four rounds. + */ +#define STEP(f, a, b, c, d, x, t, s) \ + (a) += f((b), (c), (d)) + (x) + (t); \ + (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ + (a) += (b); + +/* + * SET reads 4 input bytes in little-endian byte order and stores them + * in a properly aligned word in host byte order. + * + * The check for little-endian architectures that tolerate unaligned + * memory accesses is just an optimization. Nothing will break if it + * doesn't work. + */ +#if defined(__i386__) || defined(__x86_64__) || defined(__vax__) +#define SET(n) \ + (*(MD5_u32plus *)&ptr[(n) * 4]) +#define GET(n) \ + SET(n) +#else +#define SET(n) \ + (ctx->block[(n)] = \ + (MD5_u32plus)ptr[(n) * 4] | \ + ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ + ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ + ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) +#define GET(n) \ + (ctx->block[(n)]) +#endif + +/* + * This processes one or more 64-byte data blocks, but does NOT update + * the bit counters. There are no alignment requirements. + */ +static void *body(MD5_CTX *ctx, void *data, unsigned long size) +{ + unsigned char *ptr; + MD5_u32plus a, b, c, d; + MD5_u32plus saved_a, saved_b, saved_c, saved_d; + + ptr = data; + + a = ctx->a; + b = ctx->b; + c = ctx->c; + d = ctx->d; + + do { + saved_a = a; + saved_b = b; + saved_c = c; + saved_d = d; + +/* Round 1 */ + STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) + STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) + STEP(F, c, d, a, b, SET(2), 0x242070db, 17) + STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) + STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) + STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) + STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) + STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) + STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) + STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) + STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) + STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) + STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) + STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) + STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) + STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) + +/* Round 2 */ + STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) + STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) + STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) + STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) + STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) + STEP(G, d, a, b, c, GET(10), 0x02441453, 9) + STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) + STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) + STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) + STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) + STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) + STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) + STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) + STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) + STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) + STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) + +/* Round 3 */ + STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) + STEP(H, d, a, b, c, GET(8), 0x8771f681, 11) + STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) + STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23) + STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) + STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11) + STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) + STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23) + STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) + STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11) + STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) + STEP(H, b, c, d, a, GET(6), 0x04881d05, 23) + STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) + STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11) + STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) + STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23) + +/* Round 4 */ + STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) + STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) + STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) + STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) + STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) + STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) + STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) + STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) + STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) + STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) + STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) + STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) + STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) + STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) + STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) + STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) + + a += saved_a; + b += saved_b; + c += saved_c; + d += saved_d; + + ptr += 64; + } while (size -= 64); + + ctx->a = a; + ctx->b = b; + ctx->c = c; + ctx->d = d; + + return ptr; +} + +/* + Sandro Furieri - SpatiaLite - 2013-06-03 + + simply re-declaring all these functions as PRIVATE + (not externally visible outside libspatialite itself) +*/ + +MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx) +{ + ctx->a = 0x67452301; + ctx->b = 0xefcdab89; + ctx->c = 0x98badcfe; + ctx->d = 0x10325476; + + ctx->lo = 0; + ctx->hi = 0; +} + +MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size) +{ + MD5_u32plus saved_lo; + unsigned long used, free; + + saved_lo = ctx->lo; + if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) + ctx->hi++; + ctx->hi += size >> 29; + + used = saved_lo & 0x3f; + + if (used) { + free = 64 - used; + + if (size < free) { + memcpy(&ctx->buffer[used], data, size); + return; + } + + memcpy(&ctx->buffer[used], data, free); + data = (unsigned char *)data + free; + size -= free; + body(ctx, ctx->buffer, 64); + } + + if (size >= 64) { + data = body(ctx, data, size & ~(unsigned long)0x3f); + size &= 0x3f; + } + + memcpy(ctx->buffer, data, size); +} + +MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx) +{ + unsigned long used, free; + + used = ctx->lo & 0x3f; + + ctx->buffer[used++] = 0x80; + + free = 64 - used; + + if (free < 8) { + memset(&ctx->buffer[used], 0, free); + body(ctx, ctx->buffer, 64); + used = 0; + free = 64; + } + + memset(&ctx->buffer[used], 0, free - 8); + + ctx->lo <<= 3; + ctx->buffer[56] = ctx->lo; + ctx->buffer[57] = ctx->lo >> 8; + ctx->buffer[58] = ctx->lo >> 16; + ctx->buffer[59] = ctx->lo >> 24; + ctx->buffer[60] = ctx->hi; + ctx->buffer[61] = ctx->hi >> 8; + ctx->buffer[62] = ctx->hi >> 16; + ctx->buffer[63] = ctx->hi >> 24; + + body(ctx, ctx->buffer, 64); + + result[0] = ctx->a; + result[1] = ctx->a >> 8; + result[2] = ctx->a >> 16; + result[3] = ctx->a >> 24; + result[4] = ctx->b; + result[5] = ctx->b >> 8; + result[6] = ctx->b >> 16; + result[7] = ctx->b >> 24; + result[8] = ctx->c; + result[9] = ctx->c >> 8; + result[10] = ctx->c >> 16; + result[11] = ctx->c >> 24; + result[12] = ctx->d; + result[13] = ctx->d >> 8; + result[14] = ctx->d >> 16; + result[15] = ctx->d >> 24; + + memset(ctx, 0, sizeof(*ctx)); +} + +#endif diff --git a/src/spatialite/src/md5/md5.h b/src/spatialite/src/md5/md5.h new file mode 100644 index 0000000..de322a9 --- /dev/null +++ b/src/spatialite/src/md5/md5.h @@ -0,0 +1,64 @@ +/* + * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. + * MD5 Message-Digest Algorithm (RFC 1321). + * + * Homepage: + * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 + * + * Author: + * Alexander Peslyak, better known as Solar Designer <solar at openwall.com> + * + * This software was written by Alexander Peslyak in 2001. No copyright is + * claimed, and the software is hereby placed in the public domain. + * In case this attempt to disclaim copyright and place the software in the + * public domain is deemed null and void, then the software is + * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + * general public under the following terms: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * There's ABSOLUTELY NO WARRANTY, express or implied. + * + * See md5.c for more information. + */ + +#ifdef HAVE_OPENSSL +#include <openssl/md5.h> +#elif !defined(_MD5_H) +#define _MD5_H + +/* + + SpatiaLite private MD5 declarations + + Sandro Furieri - 2013-06-03 +*/ +#ifndef DOXYGEN_SHOULD_SKIP_THIS +#ifdef _WIN32 +#ifdef DLL_EXPORT +#define MD5_PRIVATE +#else +#define MD5_PRIVATE +#endif +#else +#define MD5_PRIVATE __attribute__ ((visibility("hidden"))) +#endif +#endif +/* end Sandro Furieri - SpatiaLite - 2013-06-03 */ + +/* Any 32-bit or wider unsigned integer data type will do */ +typedef unsigned int MD5_u32plus; + +typedef struct { + MD5_u32plus lo, hi; + MD5_u32plus a, b, c, d; + unsigned char buffer[64]; + MD5_u32plus block[16]; +} MD5_CTX; + +MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx); +MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); +MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx); + +#endif diff --git a/src/spatialite/src/shapefiles/Makefile.am b/src/spatialite/src/shapefiles/Makefile.am index 9b14e87..3c2f96a 100644 --- a/src/spatialite/src/shapefiles/Makefile.am +++ b/src/spatialite/src/shapefiles/Makefile.am @@ -1,9 +1,17 @@ -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libshapefiles.la +noinst_LTLIBRARIES = libshapefiles.la shapefiles.la -libshapefiles_la_SOURCES = shapefiles.c +libshapefiles_la_SOURCES = shapefiles.c validator.c + +shapefiles_la_SOURCES = shapefiles.c validator.c + +shapefiles_la_CPPFLAGS = @CFLAGS@ +shapefiles_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +shapefiles_la_CPPFLAGS += -DLOADABLE_EXTENSION +shapefiles_la_LDFLAGS = -module +shapefiles_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/shapefiles/Makefile.in b/src/spatialite/src/shapefiles/Makefile.in index f6f7b72..7e29bb1 100644 --- a/src/spatialite/src/shapefiles/Makefile.in +++ b/src/spatialite/src/shapefiles/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/shapefiles -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -66,33 +94,84 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libshapefiles_la_LIBADD = -am_libshapefiles_la_OBJECTS = shapefiles.lo +am_libshapefiles_la_OBJECTS = shapefiles.lo validator.lo libshapefiles_la_OBJECTS = $(am_libshapefiles_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +shapefiles_la_LIBADD = +am_shapefiles_la_OBJECTS = shapefiles_la-shapefiles.lo \ + shapefiles_la-validator.lo +shapefiles_la_OBJECTS = $(am_shapefiles_la_OBJECTS) +shapefiles_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(shapefiles_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libshapefiles_la_SOURCES) -DIST_SOURCES = $(libshapefiles_la_SOURCES) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES) +DIST_SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -134,6 +213,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -155,6 +236,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -214,9 +298,14 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libshapefiles.la -libshapefiles_la_SOURCES = shapefiles.c +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libshapefiles.la shapefiles.la +libshapefiles_la_SOURCES = shapefiles.c validator.c +shapefiles_la_SOURCES = shapefiles.c validator.c +shapefiles_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +shapefiles_la_LDFLAGS = -module +shapefiles_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am @@ -255,14 +344,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libshapefiles.la: $(libshapefiles_la_OBJECTS) $(libshapefiles_la_DEPENDENCIES) $(EXTRA_libshapefiles_la_DEPENDENCIES) - $(LINK) $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS) + +shapefiles.la: $(shapefiles_la_OBJECTS) $(shapefiles_la_DEPENDENCIES) $(EXTRA_shapefiles_la_DEPENDENCIES) + $(AM_V_CCLD)$(shapefiles_la_LINK) $(shapefiles_la_OBJECTS) $(shapefiles_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -271,27 +366,44 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles_la-shapefiles.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles_la-validator.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/validator.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +shapefiles_la-shapefiles.lo: shapefiles.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-shapefiles.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-shapefiles.Tpo -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-shapefiles.Tpo $(DEPDIR)/shapefiles_la-shapefiles.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shapefiles.c' object='shapefiles_la-shapefiles.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c + +shapefiles_la-validator.lo: validator.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-validator.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-validator.Tpo -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-validator.Tpo $(DEPDIR)/shapefiles_la-validator.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='validator.c' object='shapefiles_la-validator.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c mostlyclean-libtool: -rm -f *.lo @@ -299,26 +411,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -330,15 +431,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -347,6 +444,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -489,18 +601,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/shapefiles/shapefiles.c b/src/spatialite/src/shapefiles/shapefiles.c index 1e18024..ce53e4a 100644 --- a/src/spatialite/src/shapefiles/shapefiles.c +++ b/src/spatialite/src/shapefiles/shapefiles.c @@ -2,7 +2,7 @@ shapefiles.c -- implements shapefile support [import - export] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards <bradh@frogmouth.net> @@ -76,202 +76,297 @@ the terms of any one of the MPL, the GPL or the LGPL. #define strncasecmp _strnicmp #endif -struct dupl_column +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + +struct auxdbf_fld +{ +/* auxiliary DBF field struct */ + char already_used; + gaiaDbfFieldPtr dbf_field; + struct auxdbf_fld *next; +}; + +struct auxdbf_list { -/* a column value in a duplicated row */ - int pos; - char *name; +/* auxiliary DBF struct */ + struct auxdbf_fld *first; + struct auxdbf_fld *last; +}; + +struct resultset_values +{ +/* a struct wrapping values from a resultset */ int type; sqlite3_int64 int_value; double dbl_value; - const char *txt_value; - const void *blob; - int size; - int query_pos; - struct dupl_column *next; + unsigned char *txt_blob_value; + int txt_blob_size; }; -struct dupl_row +struct resultset_comparator { -/* a duplicated row with column values */ - int count; - struct dupl_column *first; - struct dupl_column *last; - const char *table; +/* object for comparing two rows of the same resultset */ + struct resultset_values *previous; + struct resultset_values *current; + int num_columns; + sqlite3_int64 previous_rowid; + sqlite3_int64 current_rowid; }; -static void -clean_dupl_row (struct dupl_row *str) +static struct resultset_comparator * +create_resultset_comparator (int columns) { -/* destroying a duplicated row struct */ - struct dupl_column *p; - struct dupl_column *pn; - p = str->first; - while (p) - { - pn = p->next; - free (p->name); - free (p); - p = pn; - } +/* creating an empty resultset comparator object */ + int i; + struct resultset_comparator *p = + malloc (sizeof (struct resultset_comparator)); + p->num_columns = columns; + p->previous_rowid = -1; + p->current_rowid = -1; + p->previous = malloc (sizeof (struct resultset_values) * columns); + p->current = malloc (sizeof (struct resultset_values) * columns); + for (i = 0; i < columns; i++) + { + struct resultset_values *value = p->previous + i; + value->type = SQLITE_NULL; + value->txt_blob_value = NULL; + value = p->current + i; + value->type = SQLITE_NULL; + value->txt_blob_value = NULL; + } + return p; } static void -add_to_dupl_row (struct dupl_row *str, const char *name) +destroy_resultset_comparator (struct resultset_comparator *ptr) { -/* adding a column to the duplicated row struct */ - int len; - struct dupl_column *p = malloc (sizeof (struct dupl_column)); - p->pos = str->count; - len = strlen (name); - p->name = malloc (len + 1); - strcpy (p->name, name); - str->count++; - p->type = SQLITE_NULL; - p->next = NULL; - if (str->first == NULL) - str->first = p; - if (str->last) - str->last->next = p; - str->last = p; +/* memory cleanup - destroying a resultset comparator object */ + int i; + if (ptr == NULL) + return; + for (i = 0; i < ptr->num_columns; i++) + { + struct resultset_values *value = ptr->previous + i; + if (value->txt_blob_value != NULL) + free (value->txt_blob_value); + value = ptr->current + i; + if (value->txt_blob_value != NULL) + free (value->txt_blob_value); + } + if (ptr->previous != NULL) + free (ptr->previous); + if (ptr->current != NULL) + free (ptr->current); + free (ptr); } static void -set_int_value (struct dupl_row *str, int pos, sqlite3_int64 value) +save_row_from_resultset (struct resultset_comparator *ptr, sqlite3_stmt * stmt) { -/* setting up an integer value */ - struct dupl_column *p = str->first; - while (p) +/* saving the current row values */ + int i; + int size; + const unsigned char *p; + if (ptr == NULL) + return; + ptr->current_rowid = sqlite3_column_int64 (stmt, 0); + for (i = 0; i < ptr->num_columns; i++) { - if (p->pos == pos) + struct resultset_values *value = ptr->current + i; + value->type = sqlite3_column_type (stmt, i + 1); + switch (value->type) { - p->type = SQLITE_INTEGER; - p->int_value = value; - return; - } - p = p->next; + case SQLITE_INTEGER: + value->int_value = sqlite3_column_int64 (stmt, i + 1); + break; + case SQLITE_FLOAT: + value->dbl_value = sqlite3_column_double (stmt, i + 1); + break; + case SQLITE_TEXT: + p = sqlite3_column_text (stmt, i + 1); + size = strlen ((const char *) p); + value->txt_blob_value = malloc (size + 1); + strcpy ((char *) (value->txt_blob_value), (const char *) p); + break; + case SQLITE_BLOB: + p = sqlite3_column_blob (stmt, i + 1); + size = sqlite3_column_bytes (stmt, i + 1); + value->txt_blob_value = malloc (size); + memcpy (value->txt_blob_value, p, size); + value->txt_blob_size = size; + break; + }; } } -static void -set_double_value (struct dupl_row *str, int pos, double value) +static int +resultset_rows_equals (struct resultset_comparator *ptr) { -/* setting up a double value */ - struct dupl_column *p = str->first; - while (p) +/* comparing the current and previous row from the resultset */ + int i; + if (ptr == NULL) + return 0; + for (i = 0; i < ptr->num_columns; i++) { - if (p->pos == pos) + struct resultset_values *val_prev = ptr->previous + i; + struct resultset_values *val_curr = ptr->current + i; + if (val_prev->type != val_curr->type) + return 0; + switch (val_prev->type) { - p->type = SQLITE_FLOAT; - p->dbl_value = value; - return; - } - p = p->next; + case SQLITE_INTEGER: + if (val_prev->int_value != val_curr->int_value) + return 0; + break; + case SQLITE_FLOAT: + if (val_prev->dbl_value != val_curr->dbl_value) + return 0; + break; + case SQLITE_TEXT: + if (strcmp + ((const char *) (val_prev->txt_blob_value), + (const char *) (val_curr->txt_blob_value)) != 0) + return 0; + break; + case SQLITE_BLOB: + if (val_prev->txt_blob_size != val_curr->txt_blob_size) + return 0; + if (memcmp + (val_prev->txt_blob_value, val_curr->txt_blob_value, + val_curr->txt_blob_size) != 0) + return 0; + break; + }; } + return 1; } -static void -set_text_value (struct dupl_row *str, int pos, const char *value) +static sqlite3_int64 +get_current_resultset_rowid (struct resultset_comparator *ptr) { -/* setting up a text value */ - struct dupl_column *p = str->first; - while (p) - { - if (p->pos == pos) - { - p->type = SQLITE_TEXT; - p->txt_value = value; - return; - } - p = p->next; - } +/* returns the current ROWID */ + if (ptr == NULL) + return -1; + return ptr->current_rowid; } static void -set_blob_value (struct dupl_row *str, int pos, const void *blob, int size) +reset_resultset_current_row (struct resultset_comparator *ptr) { -/* setting up a blob value */ - struct dupl_column *p = str->first; - while (p) +/* resetting the resultset current row values */ + int i; + if (ptr == NULL) + return; + ptr->current_rowid = -1; + for (i = 0; i < ptr->num_columns; i++) { - if (p->pos == pos) - { - p->type = SQLITE_BLOB; - p->blob = blob; - p->size = size; - return; - } - p = p->next; + struct resultset_values *value = ptr->current + i; + value->type = SQLITE_NULL; + if (value->txt_blob_value != NULL) + free (value->txt_blob_value); + value->txt_blob_value = NULL; } } static void -set_null_value (struct dupl_row *str, int pos) +swap_resultset_rows (struct resultset_comparator *ptr) { -/* setting up a NULL value */ - struct dupl_column *p = str->first; - while (p) - { - if (p->pos == pos) - { - p->type = SQLITE_NULL; - return; - } - p = p->next; +/* resetting the resultset comparator */ + int i; + if (ptr == NULL) + return; + ptr->previous_rowid = ptr->current_rowid; + ptr->current_rowid = -1; + for (i = 0; i < ptr->num_columns; i++) + { + struct resultset_values *val_prev = ptr->previous + i; + struct resultset_values *val_curr = ptr->current + i; + if (val_prev->txt_blob_value != NULL) + free (val_prev->txt_blob_value); + val_prev->type = val_curr->type; + val_prev->int_value = val_curr->int_value; + val_prev->dbl_value = val_curr->dbl_value; + val_prev->txt_blob_value = val_curr->txt_blob_value; + val_prev->txt_blob_size = val_curr->txt_blob_size; + val_curr->type = SQLITE_NULL; + val_curr->txt_blob_value = NULL; } } -static void -reset_query_pos (struct dupl_row *str) +static struct auxdbf_list * +alloc_auxdbf (gaiaDbfListPtr dbf_list) { -/* resetting QueryPos for BLOBs */ - struct dupl_column *p = str->first; - while (p) +/* allocating the auxiliary DBF struct */ + gaiaDbfFieldPtr fld; + struct auxdbf_fld *fld_ex; + struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); + auxdbf->first = NULL; + auxdbf->last = NULL; + fld = dbf_list->First; + while (fld) { - p->query_pos = -1; - p = p->next; + fld_ex = malloc (sizeof (struct auxdbf_fld)); + fld_ex->already_used = 0; + fld_ex->dbf_field = fld; + fld_ex->next = NULL; + if (auxdbf->first == NULL) + auxdbf->first = fld_ex; + if (auxdbf->last != NULL) + auxdbf->last->next = fld_ex; + auxdbf->last = fld_ex; + fld = fld->Next; } + return auxdbf; } -static int -check_dupl_blob2 (struct dupl_column *ptr, const void *blob, int size) -{ -/* checking a BLOB value */ - if (ptr->type != SQLITE_BLOB) - return 0; - if (ptr->size != size) - return 0; - if (memcmp (ptr->blob, blob, size) != 0) - return 0; - return 1; -} - -static int -check_dupl_blob (struct dupl_row *str, int pos, const void *blob, int size) +static void +free_auxdbf (struct auxdbf_list *auxdbf) { -/* checking a BLOB value */ - struct dupl_column *p = str->first; - while (p) +/* freeing an auxiliary DBF struct */ + struct auxdbf_fld *n_fld; + struct auxdbf_fld *fld = auxdbf->first; + while (fld != NULL) { - if (p->query_pos == pos) - { - return check_dupl_blob2 (p, blob, size); - } - p = p->next; + n_fld = fld->next; + free (fld); + fld = n_fld; } - return 0; + free (auxdbf); } static gaiaDbfFieldPtr -getDbfField (gaiaDbfListPtr list, char *name) +getDbfField (struct auxdbf_list *aux, char *name) { /* find a DBF attribute by name */ - gaiaDbfFieldPtr fld = list->First; + struct auxdbf_fld *fld = aux->first; while (fld) { - if (strcasecmp (fld->Name, name) == 0) - return fld; - fld = fld->Next; + if (strcasecmp (fld->dbf_field->Name, name) == 0) + { + fld->already_used = 1; + return fld->dbf_field; + } + fld = fld->next; + } + fld = aux->first; + while (fld) + { + if (fld->already_used) + { + fld = fld->next; + continue; + } + if (strncasecmp (fld->dbf_field->Name, name, 9) == 0) + { + fld->already_used = 1; + return fld->dbf_field; + } + fld = fld->next; } return NULL; } @@ -569,6 +664,10 @@ load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, if (dup) { xdummy = sqlite3_mprintf ("COL_%d", seed++); + spatialite_e + ("Warning: duplicated fieldName \"%s\" in shapefile \"%s\": " + "renaming the second occurence in table \"%s\" as \"%s\".\n", + dummy, shp_path, table, xdummy); dummy = xdummy; } len = strlen (dummy); @@ -1007,9 +1106,8 @@ load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, - strlen (dbf_field-> - Value->TxtValue), - SQLITE_STATIC); + strlen (dbf_field->Value-> + TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); @@ -1050,8 +1148,8 @@ load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, - strlen (dbf_field->Value-> - TxtValue), + strlen (dbf_field-> + Value->TxtValue), SQLITE_STATIC); break; default: @@ -1174,7 +1272,8 @@ output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column) /* step I: retrieving the SRID */ sql = sqlite3_mprintf ("SELECT srid FROM geometry_columns WHERE " - "f_table_name = %Q AND f_geometry_column = %Q", + "Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); @@ -1194,7 +1293,8 @@ output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column) /* srid still undefined, so we'll read VIEWS_GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("SELECT srid FROM views_geometry_columns " "JOIN geometry_columns USING (f_table_name, f_geometry_column) " - "WHERE view_name = %Q AND view_geometry = %Q", + "WHERE Lower(view_name) = Lower(%Q) AND " + "Lower(view_geometry) = Lower(%Q)", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, @@ -1304,6 +1404,7 @@ output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column) static int get_default_dbf_fields (sqlite3 * sqlite, const char *xtable, + const char *db_prefix, const char *table_name, gaiaDbfListPtr * dbf_export_list) { /* creating DBF field definitions for an empty DBF */ @@ -1314,7 +1415,18 @@ get_default_dbf_fields (sqlite3 * sqlite, const char *xtable, int offset = 0; gaiaDbfListPtr list = NULL; - sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); + if (db_prefix != NULL && table_name != NULL) + { + char *xprefix = gaiaDoubleQuotedSql (db_prefix); + char *xxtable = gaiaDoubleQuotedSql (table_name); + sql = + sqlite3_mprintf ("PRAGMA \"%s\".table_info(\"%s\")", xprefix, + xxtable); + free (xprefix); + free (xxtable); + } + else + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); /* / compiling SQL prepared statement */ @@ -1389,107 +1501,1091 @@ static gaiaVectorLayersListPtr recover_unregistered_geometry (sqlite3 * handle, const char *table, const char *geometry) { -/* attempting to recover an unregistered Geometry */ - int len; - int error = 0; +/* attempting to recover an unregistered Geometry */ + int len; + int error = 0; + gaiaVectorLayersListPtr list; + gaiaVectorLayerPtr lyr; + +/* allocating a VectorLayersList */ + list = malloc (sizeof (gaiaVectorLayersList)); + list->First = NULL; + list->Last = NULL; + list->Current = NULL; + + lyr = malloc (sizeof (gaiaVectorLayer)); + lyr->LayerType = GAIA_VECTOR_UNKNOWN; + len = strlen (table); + lyr->TableName = malloc (len + 1); + strcpy (lyr->TableName, table); + len = strlen (geometry); + lyr->GeometryName = malloc (len + 1); + strcpy (lyr->GeometryName, geometry); + lyr->Srid = 0; + lyr->GeometryType = GAIA_VECTOR_UNKNOWN; + lyr->Dimensions = GAIA_VECTOR_UNKNOWN; + lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; + lyr->ExtentInfos = NULL; + lyr->AuthInfos = NULL; + lyr->First = NULL; + lyr->Last = NULL; + lyr->Next = NULL; + list->Current = NULL; + if (list->First == NULL) + list->First = lyr; + if (list->Last != NULL) + list->Last->Next = lyr; + list->Last = lyr; + + if (!doComputeFieldInfos + (handle, lyr->TableName, lyr->GeometryName, + SPATIALITE_STATISTICS_LEGACY, lyr)) + error = 1; + + if (list->First == NULL || error) + { + gaiaFreeVectorLayersList (list); + return NULL; + } + return list; +} + +static int +compute_max_int_length (sqlite3_int64 min, sqlite3_int64 max) +{ +/* determining the buffer size for some INT */ + int pos_len = 0; + int neg_len = 1; + sqlite3_int64 value = max; + if (value == 0) + pos_len = 1; + else + { + while (value != 0) + { + pos_len++; + value /= 10; + } + } + if (min >= 0) + return pos_len; + value = min; + while (value != 0) + { + neg_len++; + value /= 10; + } + if (neg_len > pos_len) + return neg_len; + return pos_len; +} + +static int +compute_max_dbl_length (double min, double max) +{ +/* determining the buffer size for some DOUBLE */ + int pos_len = 0; + int neg_len = 1; + sqlite3_int64 value; + if (max >= 0.0) + value = floor (max); + else + value = ceil (max); + while (value != 0) + { + pos_len++; + value /= 10; + } + if (min >= 0.0) + return pos_len + 7; + value = ceil (min); + while (value != 0) + { + neg_len++; + value /= 10; + } + if (neg_len > pos_len) + return neg_len + 7; + return pos_len + 7; +} + +static void +shp_parse_table_name (const char *tn, char **db_prefix, char **table_name) +{ +/* attempting to extract an eventual DB prefix */ + int i; + int len = strlen (tn); + int i_dot = -1; + int l_db; + int l_tbl; + for (i = 0; i < len; i++) + { + if (tn[i] == '.') + { + i_dot = i; + break; + } + } + if (i_dot >= 1) + { + l_db = i_dot; + l_tbl = len - (i_dot + 1); + *db_prefix = malloc (l_db + 1); + memset (*db_prefix, '\0', l_db + 1); + memcpy (*db_prefix, tn, l_db); + *table_name = malloc (l_tbl + 1); + strcpy (*table_name, tn + i_dot + 1); + return; + } + *table_name = malloc (len + 1); + strcpy (*table_name, tn); +} + +static int +get_attached_layer_v4 (sqlite3 * handle, const char *db_prefix, + const char *table, const char *geometry, + gaiaVectorLayersListPtr list) +{ +/* creating a VectorLayersList object - v.4.0.0 DB layout */ + char *sql; + int ret; + sqlite3_stmt *stmt; + int error = 0; + char *xdb; + +/* querying the vector_layers view */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT layer_type, table_name, geometry_column, geometry_type, " + "srid, spatial_index_enabled FROM \"%s\".vector_layers " + "WHERE Lower(table_name) = Lower(%Q) AND " + "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + error = 1; + goto stop; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + const char *layer_type = + (const char *) sqlite3_column_text (stmt, 0); + const char *table_name = + (const char *) sqlite3_column_text (stmt, 1); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 2); + int geometry_type = sqlite3_column_int (stmt, 3); + int srid = sqlite3_column_int (stmt, 4); + int spatial_index = sqlite3_column_int (stmt, 5); + addVectorLayer (list, layer_type, table_name, geometry_column, + geometry_type, srid, spatial_index); + } + else + error = 1; + } + ret = sqlite3_finalize (stmt); + + stop: + if (error) + return 0; + +/* querying the vector_layers_statistics view */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT table_name, geometry_column, row_count, extent_min_x, " + "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".vector_layers_statistics " + "WHERE Lower(table_name) = Lower(%Q) AND " + "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + error = 1; + goto stop2; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + int is_null = 0; + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + int count; + double min_x; + double min_y; + double max_x; + double max_y; + if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) + is_null = 1; + else + count = sqlite3_column_int (stmt, 2); + if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) + is_null = 1; + else + min_x = sqlite3_column_double (stmt, 3); + if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) + is_null = 1; + else + min_y = sqlite3_column_double (stmt, 4); + if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) + is_null = 1; + else + max_x = sqlite3_column_double (stmt, 5); + if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) + is_null = 1; + else + max_y = sqlite3_column_double (stmt, 6); + if (!is_null) + addVectorLayerExtent (list, table_name, geometry_column, + count, min_x, min_y, max_x, max_y); + } + } + ret = sqlite3_finalize (stmt); + + stop2: +/* querying the vector_layers_field_infos view */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT table_name, geometry_column, ordinal, column_name, " + "null_values, integer_values, double_values, text_values, blob_values," + "max_size, integer_min, integer_max, double_min, double_max " + "FROM \"%s\".vector_layers_field_infos " + "WHERE Lower(table_name) = Lower(%Q) AND " + "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + error = 1; + goto stop4; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + int null_max_size = 0; + int null_int_range = 0; + int null_double_range = 0; + int max_size; + sqlite3_int64 integer_min; + sqlite3_int64 integer_max; + double double_min; + double double_max; + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + int ordinal = sqlite3_column_int (stmt, 2); + const char *column_name = + (const char *) sqlite3_column_text (stmt, 3); + int null_values = sqlite3_column_int (stmt, 4); + int integer_values = sqlite3_column_int (stmt, 5); + int double_values = sqlite3_column_int (stmt, 6); + int text_values = sqlite3_column_int (stmt, 7); + int blob_values = sqlite3_column_int (stmt, 8); + if (sqlite3_column_type (stmt, 9) == SQLITE_NULL) + null_max_size = 1; + else + max_size = sqlite3_column_int (stmt, 9); + if (sqlite3_column_type (stmt, 10) == SQLITE_NULL + || sqlite3_column_type (stmt, 11) == SQLITE_NULL) + null_int_range = 1; + else + { + integer_min = sqlite3_column_int64 (stmt, 10); + integer_max = sqlite3_column_int64 (stmt, 11); + } + if (sqlite3_column_type (stmt, 12) == SQLITE_NULL + || sqlite3_column_type (stmt, 13) == SQLITE_NULL) + null_double_range = 1; + else + { + double_min = sqlite3_column_double (stmt, 12); + double_max = sqlite3_column_double (stmt, 13); + } + addLayerAttributeField (list, table_name, geometry_column, + ordinal, column_name, null_values, + integer_values, double_values, + text_values, blob_values, null_max_size, + max_size, null_int_range, &integer_min, + &integer_max, null_double_range, + double_min, double_max); + } + } + ret = sqlite3_finalize (stmt); + + stop4: + if (error) + return 0; + return 1; +} + +static int +check_spatial_metadata (const void *handle, const char *db_prefix) +{ +/* internal utility function: +/ +/ 0 - if no valid SpatialMetaData where found +/ 1 - if SpatiaLite-like (legacy) SpatialMetadata where found +/ 2 - if FDO-OGR-like SpatialMetadata where found +/ 3 - if SpatiaLite-like (current) SpatialMetadata where found +/ +*/ + sqlite3 *sqlite = (sqlite3 *) handle; + int spatialite_legacy_rs = 0; + int spatialite_rs = 0; + int fdo_rs = 0; + int spatialite_legacy_gc = 0; + int spatialite_gc = 0; + int fdo_gc = 0; + int rs_srid = 0; + int auth_name = 0; + int auth_srid = 0; + int srtext = 0; + int ref_sys_name = 0; + int proj4text = 0; + int f_table_name = 0; + int f_geometry_column = 0; + int geometry_type = 0; + int coord_dimension = 0; + int gc_srid = 0; + int geometry_format = 0; + int type = 0; + int spatial_index_enabled = 0; + char *sql; + int ret; + const char *name; + int i; + char **results; + int rows; + int columns; + char *xdb; +/* checking the GEOMETRY_COLUMNS table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); + free (xdb); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto unknown; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "f_table_name") == 0) + f_table_name = 1; + if (strcasecmp (name, "f_geometry_column") == 0) + f_geometry_column = 1; + if (strcasecmp (name, "geometry_type") == 0) + geometry_type = 1; + if (strcasecmp (name, "coord_dimension") == 0) + coord_dimension = 1; + if (strcasecmp (name, "srid") == 0) + gc_srid = 1; + if (strcasecmp (name, "geometry_format") == 0) + geometry_format = 1; + if (strcasecmp (name, "type") == 0) + type = 1; + if (strcasecmp (name, "spatial_index_enabled") == 0) + spatial_index_enabled = 1; + } + } + sqlite3_free_table (results); + if (f_table_name && f_geometry_column && type && coord_dimension + && gc_srid && spatial_index_enabled) + spatialite_legacy_gc = 1; + if (f_table_name && f_geometry_column && geometry_type && coord_dimension + && gc_srid && spatial_index_enabled) + spatialite_gc = 1; + if (f_table_name && f_geometry_column && geometry_type && coord_dimension + && gc_srid && geometry_format) + fdo_gc = 1; +/* checking the SPATIAL_REF_SYS table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(spatial_ref_sys)", xdb); + free (xdb); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto unknown; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "srid") == 0) + rs_srid = 1; + if (strcasecmp (name, "auth_name") == 0) + auth_name = 1; + if (strcasecmp (name, "auth_srid") == 0) + auth_srid = 1; + if (strcasecmp (name, "srtext") == 0) + srtext = 1; + if (strcasecmp (name, "ref_sys_name") == 0) + ref_sys_name = 1; + if (strcasecmp (name, "proj4text") == 0) + proj4text = 1; + if (strcasecmp (name, "srtext") == 0) + srtext = 1; + } + } + sqlite3_free_table (results); + if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text + && srtext) + spatialite_rs = 1; + if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text) + spatialite_legacy_rs = 1; + if (rs_srid && auth_name && auth_srid && srtext) + fdo_rs = 1; +/* verifying the MetaData format */ + if (spatialite_legacy_gc && spatialite_legacy_rs) + return 1; + if (fdo_gc && fdo_rs) + return 2; + if (spatialite_gc && spatialite_rs) + return 3; + unknown: + return 0; +} + +static int +get_attached_table_layer_legacy (sqlite3 * handle, const char *db_prefix, + const char *table, const char *geometry, + gaiaVectorLayersListPtr list) +{ +/* fetching Table-based geometries */ + int ret; + char *sql; + const char *name; + int i; + char **results; + int rows; + int columns; + int f_table = 0; + int f_geometry = 0; + int type = 0; + int dims = 0; + int srid = 0; + int spatial_index = 0; + sqlite3_stmt *stmt; + int error = 0; + char *xdb; + +/* checking the GEOMETRY_COLUMN table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); + free (xdb); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "f_table_name") == 0) + f_table = 1; + if (strcasecmp (name, "f_geometry_column") == 0) + f_geometry = 1; + if (strcasecmp (name, "type") == 0) + type = 1; + if (strcasecmp (name, "coord_dimension") == 0) + dims = 1; + if (strcasecmp (name, "srid") == 0) + srid = 1; + if (strcasecmp (name, "spatial_index_enabled") == 0) + spatial_index = 1; + } + } + sqlite3_free_table (results); + if (f_table && f_geometry && type && dims && srid && spatial_index) + ; + else + return 1; + + + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " + "srid, spatial_index_enabled FROM \"%s\".geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + error = 1; + goto stop; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + const char *type = (const char *) sqlite3_column_text (stmt, 2); + const char *dims = (const char *) sqlite3_column_text (stmt, 3); + int srid = sqlite3_column_int (stmt, 4); + int spatial_index = sqlite3_column_int (stmt, 5); + int geometry_type = -1; + if (strcasecmp (type, "POINT") == 0) + geometry_type = 1; + if (strcasecmp (type, "LINESTRING") == 0) + geometry_type = 2; + if (strcasecmp (type, "POLYGON") == 0) + geometry_type = 3; + if (strcasecmp (type, "MULTIPOINT") == 0) + geometry_type = 4; + if (strcasecmp (type, "MULTILINESTRING") == 0) + geometry_type = 5; + if (strcasecmp (type, "MULTIPOLYGON") == 0) + geometry_type = 6; + if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) + geometry_type = 7; + if (strcasecmp (type, "GEOMETRY") == 0) + geometry_type = 0; + if (strcasecmp (dims, "XYZ") == 0 + || strcasecmp (dims, "3") == 0) + geometry_type += 1000; + if (strcasecmp (dims, "XYM") == 0) + geometry_type += 2000; + if (strcasecmp (dims, "XYZM") == 0 + || strcasecmp (dims, "4") == 0) + geometry_type += 3000; + addVectorLayer (list, "SpatialTable", table_name, + geometry_column, geometry_type, srid, + spatial_index); + } + else + error = 1; + } + ret = sqlite3_finalize (stmt); + + stop: + if (error) + return 0; + return 1; +} + +static int +get_attached_view_layer_legacy (sqlite3 * handle, const char *db_prefix, + const char *table, const char *geometry, + gaiaVectorLayersListPtr list) +{ +/* fetching View-based geometries */ + int ret; + char *sql; + const char *name; + int i; + char **results; + int rows; + int columns; + int f_table = 0; + int f_geometry = 0; + int type = 0; + int dims = 0; + int srid = 0; + int spatial_index = 0; + int view_name = 0; + int view_geometry = 0; + int fvw_table = 0; + int fvw_geometry = 0; + sqlite3_stmt *stmt; + int error = 0; + char *xdb; + +/* checking the GEOMETRY_COLUMN table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); + free (xdb); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "f_table_name") == 0) + f_table = 1; + if (strcasecmp (name, "f_geometry_column") == 0) + f_geometry = 1; + if (strcasecmp (name, "type") == 0) + type = 1; + if (strcasecmp (name, "coord_dimension") == 0) + dims = 1; + if (strcasecmp (name, "srid") == 0) + srid = 1; + if (strcasecmp (name, "spatial_index_enabled") == 0) + spatial_index = 1; + } + } + sqlite3_free_table (results); + if (f_table && f_geometry && type && dims && srid && spatial_index) + ; + else + return 1; + +/* checking the VIEWS_GEOMETRY_COLUMN table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_geometry_columns)", + xdb); + free (xdb); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "view_name") == 0) + view_name = 1; + if (strcasecmp (name, "view_geometry") == 0) + view_geometry = 1; + if (strcasecmp (name, "f_table_name") == 0) + fvw_table = 1; + if (strcasecmp (name, "f_geometry_column") == 0) + fvw_geometry = 1; + } + } + sqlite3_free_table (results); + if (view_name && view_geometry && fvw_table && fvw_geometry) + ; + else + return 1; + + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " + "b.srid, b.spatial_index_enabled FROM \"%s\".views_geometry_columns AS a " + "JOIN \"%s\".geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " + "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " + "WHERE Lower(a.view_name) = Lower(%Q) AND " + "Lower(a.view_geometry) = Lower(%Q)", xdb, xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + error = 1; + goto stop; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + const char *type = (const char *) sqlite3_column_text (stmt, 2); + const char *dims = (const char *) sqlite3_column_text (stmt, 3); + int srid = sqlite3_column_int (stmt, 4); + int spatial_index = sqlite3_column_int (stmt, 5); + int geometry_type = -1; + if (strcasecmp (type, "POINT") == 0) + geometry_type = 1; + if (strcasecmp (type, "LINESTRING") == 0) + geometry_type = 2; + if (strcasecmp (type, "POLYGON") == 0) + geometry_type = 3; + if (strcasecmp (type, "MULTIPOINT") == 0) + geometry_type = 4; + if (strcasecmp (type, "MULTILINESTRING") == 0) + geometry_type = 5; + if (strcasecmp (type, "MULTIPOLYGON") == 0) + geometry_type = 6; + if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) + geometry_type = 7; + if (strcasecmp (type, "GEOMETRY") == 0) + geometry_type = 0; + if (strcasecmp (dims, "XYZ") == 0 + || strcasecmp (dims, "3") == 0) + geometry_type += 1000; + if (strcasecmp (dims, "XYM") == 0) + geometry_type += 2000; + if (strcasecmp (dims, "XYZM") == 0 + || strcasecmp (dims, "4") == 0) + geometry_type += 3000; + addVectorLayer (list, "SpatialView", table_name, + geometry_column, geometry_type, srid, + spatial_index); + } + else + error = 1; + } + ret = sqlite3_finalize (stmt); + + stop: + if (error) + return 0; + return 1; +} + +static int +get_attached_table_extent_legacy (sqlite3 * handle, const char *db_prefix, + const char *table, const char *geometry, + gaiaVectorLayersListPtr list) +{ +/* fetching Table-based extents */ + int ret; + char *sql; + const char *name; + int i; + char **results; + int rows; + int columns; + int f_table = 0; + int f_geometry = 0; + int count = 0; + int minx = 0; + int miny = 0; + int maxx = 0; + int maxy = 0; + sqlite3_stmt *stmt; + char *xdb; + +/* checking the LAYER_STATISTICS table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(layer_statistics)", xdb); + free (xdb); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "table_name") == 0) + f_table = 1; + if (strcasecmp (name, "geometry_column") == 0) + f_geometry = 1; + if (strcasecmp (name, "row_count") == 0) + count = 1; + if (strcasecmp (name, "extent_min_x") == 0) + minx = 1; + if (strcasecmp (name, "extent_min_y") == 0) + miny = 1; + if (strcasecmp (name, "extent_max_x") == 0) + maxx = 1; + if (strcasecmp (name, "extent_max_y") == 0) + maxy = 1; + } + } + sqlite3_free_table (results); + if (f_table && f_geometry && count && minx && miny && maxx && maxy) + ; + else + return 1; + +/* querying the layer_statistics table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT table_name, geometry_column, row_count, extent_min_x, " + "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".layer_statistics " + "WHERE Lower(table_name) = Lower(%Q) AND " + "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + int is_null = 0; + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + int count; + double min_x; + double min_y; + double max_x; + double max_y; + if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) + is_null = 1; + else + count = sqlite3_column_int (stmt, 2); + if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) + is_null = 1; + else + min_x = sqlite3_column_double (stmt, 3); + if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) + is_null = 1; + else + min_y = sqlite3_column_double (stmt, 4); + if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) + is_null = 1; + else + max_x = sqlite3_column_double (stmt, 5); + if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) + is_null = 1; + else + max_y = sqlite3_column_double (stmt, 6); + if (!is_null) + addVectorLayerExtent (list, table_name, geometry_column, + count, min_x, min_y, max_x, max_y); + } + } + ret = sqlite3_finalize (stmt); + stop: + return 1; +} + +static int +get_attached_view_extent_legacy (sqlite3 * handle, const char *db_prefix, + const char *table, const char *geometry, + gaiaVectorLayersListPtr list) +{ +/* fetching View-based extents */ + int ret; + char *sql; + const char *name; + int i; + char **results; + int rows; + int columns; + int f_table = 0; + int f_geometry = 0; + int count = 0; + int minx = 0; + int miny = 0; + int maxx = 0; + int maxy = 0; + sqlite3_stmt *stmt; + char *xdb; + +/* checking the VIEWS_LAYER_STATISTICS table */ + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_layer_statistics)", + xdb); + free (xdb); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "view_name") == 0) + f_table = 1; + if (strcasecmp (name, "view_geometry") == 0) + f_geometry = 1; + if (strcasecmp (name, "row_count") == 0) + count = 1; + if (strcasecmp (name, "extent_min_x") == 0) + minx = 1; + if (strcasecmp (name, "extent_min_y") == 0) + miny = 1; + if (strcasecmp (name, "extent_max_x") == 0) + maxx = 1; + if (strcasecmp (name, "extent_max_y") == 0) + maxy = 1; + } + } + sqlite3_free_table (results); + if (f_table && f_geometry && count && minx && miny && maxx && maxy) + ; + else + return 1; + +/* querying the views_layer_statistics table */ + + xdb = gaiaDoubleQuotedSql (db_prefix); + sql = + sqlite3_mprintf + ("SELECT view_name, view_geometry, row_count, extent_min_x, " + "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".views_layer_statistics " + "WHERE Lower(view_name) = Lower(%Q) AND " + "Lower(view_geometry) = Lower(%Q)", xdb, table, geometry); + free (xdb); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto stop; + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing a VectorLayer row */ + int is_null = 0; + const char *table_name = + (const char *) sqlite3_column_text (stmt, 0); + const char *geometry_column = + (const char *) sqlite3_column_text (stmt, 1); + int count; + double min_x; + double min_y; + double max_x; + double max_y; + if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) + is_null = 1; + else + count = sqlite3_column_int (stmt, 2); + if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) + is_null = 1; + else + min_x = sqlite3_column_double (stmt, 3); + if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) + is_null = 1; + else + min_y = sqlite3_column_double (stmt, 4); + if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) + is_null = 1; + else + max_x = sqlite3_column_double (stmt, 5); + if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) + is_null = 1; + else + max_y = sqlite3_column_double (stmt, 6); + if (!is_null) + addVectorLayerExtent (list, table_name, geometry_column, + count, min_x, min_y, max_x, max_y); + } + } + ret = sqlite3_finalize (stmt); + stop: + return 1; +} + +static gaiaVectorLayersListPtr +attached_layer (sqlite3 * handle, const char *db_prefix, const char *table, + const char *geometry) +{ +/* attempting to support a "layer" from within an attached DB */ gaiaVectorLayersListPtr list; - gaiaVectorLayerPtr lyr; - -/* allocating a VectorLayersList */ + int metadata_version; list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; - lyr = malloc (sizeof (gaiaVectorLayer)); - lyr->LayerType = GAIA_VECTOR_UNKNOWN; - len = strlen (table); - lyr->TableName = malloc (len + 1); - strcpy (lyr->TableName, table); - len = strlen (geometry); - lyr->GeometryName = malloc (len + 1); - strcpy (lyr->GeometryName, geometry); - lyr->Srid = 0; - lyr->GeometryType = GAIA_VECTOR_UNKNOWN; - lyr->Dimensions = GAIA_VECTOR_UNKNOWN; - lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; - lyr->ExtentInfos = NULL; - lyr->AuthInfos = NULL; - lyr->First = NULL; - lyr->Last = NULL; - lyr->Next = NULL; - list->Current = NULL; - if (list->First == NULL) - list->First = lyr; - if (list->Last != NULL) - list->Last->Next = lyr; - list->Last = lyr; + metadata_version = check_spatial_metadata (handle, db_prefix); + if (metadata_version == 3) + { + /* current metadata style >= v.4.0.0 */ + if (!get_attached_layer_v4 (handle, db_prefix, table, geometry, list)) + { + gaiaFreeVectorLayersList (list); + return NULL; + } + if (list->First == NULL) + { + gaiaFreeVectorLayersList (list); + return NULL; + } + return list; + } - if (!doComputeFieldInfos - (handle, lyr->TableName, lyr->GeometryName, - SPATIALITE_STATISTICS_LEGACY, lyr)) - error = 1; +/* legacy metadata style <= v.3.x.x */ + if (!get_attached_table_layer_legacy + (handle, db_prefix, table, geometry, list)) + goto error; + if (!get_attached_view_layer_legacy + (handle, db_prefix, table, geometry, list)) + goto error; + if (!get_attached_table_extent_legacy + (handle, db_prefix, table, geometry, list)) + goto error; + if (!get_attached_view_extent_legacy + (handle, db_prefix, table, geometry, list)) + goto error; - if (list->First == NULL || error) + if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; -} - -static int -compute_max_int_length (sqlite3_int64 min, sqlite3_int64 max) -{ -/* determining the buffer size for some INT */ - int pos_len = 0; - int neg_len = 1; - sqlite3_int64 value = max; - while (value != 0) - { - pos_len++; - value /= 10; - } - if (min >= 0) - return pos_len; - value = min; - while (value != 0) - { - neg_len++; - value /= 10; - } - if (neg_len > pos_len) - return neg_len; - return pos_len; -} -static int -compute_max_dbl_length (double min, double max) -{ -/* determining the buffer size for some DOUBLE */ - int pos_len = 0; - int neg_len = 1; - sqlite3_int64 value; - if (max >= 0.0) - value = floor (max); - else - value = ceil (max); - while (value != 0) - { - pos_len++; - value /= 10; - } - if (min >= 0.0) - return pos_len + 7; - value = ceil (min); - while (value != 0) - { - neg_len++; - value /= 10; - } - if (neg_len > pos_len) - return neg_len + 7; - return pos_len + 7; + error: + gaiaFreeVectorLayersList (list); + return NULL; } SPATIALITE_DECLARE int @@ -1519,6 +2615,11 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, gaiaVectorLayerPtr lyr = NULL; gaiaLayerAttributeFieldPtr fld; gaiaVectorLayersListPtr list; + char *db_prefix = NULL; + char *table_name = NULL; + char *xprefix; + char *xxtable; + struct auxdbf_list *auxdbf = NULL; if (geom_type) { @@ -1541,6 +2642,14 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, list = recover_unregistered_geometry (sqlite, table, column); } + if (list == NULL) + { + /* attempting to enucleate an eventual DB-prefix */ + shp_parse_table_name (table, &db_prefix, &table_name); + if (db_prefix != NULL && table_name != NULL) + list = attached_layer (sqlite, db_prefix, table_name, column); + } + if (list != NULL) lyr = list->First; if (lyr == NULL) @@ -1687,38 +2796,93 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, shape == GAIA_MULTILINESTRING || shape == GAIA_MULTILINESTRINGZ || shape == GAIA_MULTILINESTRINGM || shape == GAIA_MULTILINESTRINGZM) { - sql = - sqlite3_mprintf - ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " - "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " - "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); + if (db_prefix != NULL && table_name != NULL) + { + xprefix = gaiaDoubleQuotedSql (db_prefix); + xxtable = gaiaDoubleQuotedSql (table_name); + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " + "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " + "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, + xcolumn); + free (xprefix); + free (xxtable); + } + else + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " + "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " + "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_POLYGON || shape == GAIA_POLYGONZ || shape == GAIA_POLYGONM || shape == GAIA_POLYGONZM || shape == GAIA_MULTIPOLYGON || shape == GAIA_MULTIPOLYGONZ || shape == GAIA_MULTIPOLYGONM || shape == GAIA_MULTIPOLYGONZM) { - sql = - sqlite3_mprintf - ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " - "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" - "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); + if (db_prefix != NULL && table_name != NULL) + { + xprefix = gaiaDoubleQuotedSql (db_prefix); + xxtable = gaiaDoubleQuotedSql (table_name); + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" + "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, + xcolumn); + free (xprefix); + free (xxtable); + } + else + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" + "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_MULTIPOINT || shape == GAIA_MULTIPOINTZ || shape == GAIA_MULTIPOINTM || shape == GAIA_MULTIPOINTZM) { - sql = - sqlite3_mprintf - ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " - "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" - "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); + if (db_prefix != NULL && table_name != NULL) + { + xprefix = gaiaDoubleQuotedSql (db_prefix); + xxtable = gaiaDoubleQuotedSql (table_name); + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" + "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, + xcolumn); + free (xprefix); + free (xxtable); + } + else + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" + "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else { - sql = - sqlite3_mprintf - ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " - "'POINT' OR \"%s\" IS NULL", xtable, xcolumn, xcolumn); + if (db_prefix != NULL && table_name != NULL) + { + xprefix = gaiaDoubleQuotedSql (db_prefix); + xxtable = gaiaDoubleQuotedSql (table_name); + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POINT' OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, + xcolumn); + free (xprefix); + free (xxtable); + } + else + sql = + sqlite3_mprintf + ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " + "'POINT' OR \"%s\" IS NULL", xtable, xcolumn, xcolumn); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); @@ -1729,11 +2893,11 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, if (lyr->First == NULL) { /* the datasource is probably empty - zero rows */ - if (get_default_dbf_fields (sqlite, xtable, &dbf_list)) + if (get_default_dbf_fields + (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; } - /* preparing the DBF fields list */ dbf_list = gaiaAllocDbfList (); offset = 0; @@ -1793,6 +2957,8 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, { if (max_len > 19) max_len = 19; + if (max_len < 8) + max_len = 8; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'N', offset, max_len, 6); offset += max_len; @@ -1832,6 +2998,7 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, n_cols = sqlite3_column_count (stmt); rows++; dbf_write = gaiaCloneDbfEntity (dbf_list); + auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { if (strcasecmp @@ -1854,7 +3021,7 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, } } dummy = (char *) sqlite3_column_name (stmt, i); - dbf_field = getDbfField (dbf_write, dummy); + dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL) @@ -1892,16 +3059,9 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { -#if defined(_WIN32) || defined(__MINGW32__) - /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ - sprintf (buf, "%I64d", - sqlite3_column_int64 (stmt, - i)); -#else - sprintf (buf, "%lld", + sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); -#endif gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == @@ -1919,6 +3079,8 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, }; } } + free_auxdbf (auxdbf); + auxdbf = NULL; if (!gaiaWriteShpEntity (shp, dbf_write)) spatialite_e ("shapefile write error\n"); gaiaFreeDbfList (dbf_write); @@ -1926,6 +3088,8 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, else goto sql_error; } + if (auxdbf != NULL) + free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushShpHeaders (shp); gaiaFreeShapefile (shp); @@ -1938,9 +3102,15 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, *xrows = rows; if (err_msg) sprintf (err_msg, "Exported %d rows into SHAPEFILE", rows); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 1; sql_error: /* some SQL error occurred */ + if (auxdbf != NULL) + free_auxdbf (auxdbf); sqlite3_finalize (stmt); free (xtable); free (xcolumn); @@ -1953,9 +3123,15 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, spatialite_e ("SELECT failed: %s", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "SELECT failed: %s", sqlite3_errmsg (sqlite)); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 0; no_file: /* shapefile can't be created/opened */ + if (auxdbf != NULL) + free_auxdbf (auxdbf); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); @@ -1967,6 +3143,10 @@ dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, spatialite_e ("ERROR: unable to open '%s' for writing", shp_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing", shp_path); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 0; } @@ -2379,9 +3559,8 @@ load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, - strlen (dbf_field-> - Value->TxtValue), - SQLITE_STATIC); + strlen (dbf_field->Value-> + TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); @@ -2394,7 +3573,6 @@ load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, } if (!pk_set) sqlite3_bind_int (stmt, 1, current_row); - sqlite3_bind_int (stmt, 1, current_row); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) @@ -2423,8 +3601,8 @@ load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, - strlen (dbf_field->Value-> - TxtValue), + strlen (dbf_field-> + Value->TxtValue), SQLITE_STATIC); break; default: @@ -2533,11 +3711,27 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, char buf[256]; int len; int ret; + char *db_prefix = NULL; + char *table_name = NULL; + struct auxdbf_list *auxdbf = NULL; + + shp_parse_table_name (table, &db_prefix, &table_name); /* / preparing SQL statement */ - xtable = gaiaDoubleQuotedSql (table); - sql = sqlite3_mprintf ("SELECT * FROM \"%s\"", xtable); + if (db_prefix != NULL && table_name != NULL) + { + char *xdb = gaiaDoubleQuotedSql (db_prefix); + char *xxtable = gaiaDoubleQuotedSql (table_name); + sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\"", xdb, xxtable); + free (xdb); + free (xxtable); + } + else + { + xtable = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("SELECT * FROM \"%s\"", xtable); + } /* / compiling SQL prepared statement */ @@ -2666,10 +3860,11 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, { rows++; dbf_write = gaiaCloneDbfEntity (dbf->Dbf); + auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { dummy = (char *) sqlite3_column_name (stmt, i); - dbf_field = getDbfField (dbf_write, dummy); + dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL @@ -2707,16 +3902,9 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { -#if defined(_WIN32) || defined(__MINGW32__) - /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ - sprintf (buf, "%I64d", + sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); -#else - sprintf (buf, "%lld", - sqlite3_column_int64 (stmt, - i)); -#endif gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == @@ -2734,6 +3922,8 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, }; } } + free_auxdbf (auxdbf); + auxdbf = NULL; if (!gaiaWriteDbfEntity (dbf, dbf_write)) spatialite_e ("DBF write error\n"); gaiaFreeDbfList (dbf_write); @@ -2741,6 +3931,8 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, else goto sql_error; } + if (auxdbf != NULL) + free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushDbfHeader (dbf); gaiaFreeDbf (dbf); @@ -2749,9 +3941,15 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, spatialite_e ("Exported %d rows into the DBF file\n", rows); else sprintf (err_msg, "Exported %d rows into the DBF file\n", rows); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 1; sql_error: /* some SQL error occurred */ + if (auxdbf != NULL) + free_auxdbf (auxdbf); free (xtable); sqlite3_finalize (stmt); if (dbf_export_list) @@ -2764,9 +3962,15 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, spatialite_e ("dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 0; no_file: /* DBF can't be created/opened */ + if (auxdbf != NULL) + free_auxdbf (auxdbf); free (xtable); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); @@ -2778,10 +3982,17 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, spatialite_e ("ERROR: unable to open '%s' for writing\n", dbf_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing\n", dbf_path); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 0; empty_result_set: /* the result set is empty - nothing to do */ - if (get_default_dbf_fields (sqlite, xtable, &dbf_list)) + if (auxdbf != NULL) + free_auxdbf (auxdbf); + if (get_default_dbf_fields + (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; free (xtable); sqlite3_finalize (stmt); @@ -2797,6 +4008,10 @@ dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, else sprintf (err_msg, "The SQL SELECT returned an empty result set ... there is nothing to export ...\n"); + if (db_prefix != NULL) + free (db_prefix); + if (table_name != NULL) + free (table_name); return 0; } @@ -3075,7 +4290,6 @@ check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1"); - gaiaAppendToOutBuffer (&sql_statement, "\nORDER BY \"[dupl-count]\" DESC"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = @@ -3114,213 +4328,36 @@ check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count) } static int -do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_stmt * stmt1, - struct dupl_row *value_list, int *count) +do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_int64 rowid, + sqlite3_stmt * stmt1) { /* deleting duplicate rows [actual delete] */ - int cnt = 0; - int row_no = 0; - char *sql; - char *xname; int ret; - sqlite3_stmt *stmt2 = NULL; - struct dupl_column *col; - int first = 1; - int qcnt = 0; - int param = 1; - int match; - int n_cols; - int col_no; - gaiaOutBuffer sql_statement; - gaiaOutBuffer where; - gaiaOutBuffer condition; - - *count = 0; - reset_query_pos (value_list); - gaiaOutBufferInitialize (&sql_statement); - gaiaOutBufferInitialize (&where); - gaiaOutBufferInitialize (&condition); - -/* preparing the query statement */ - gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); - gaiaAppendToOutBuffer (&where, "\nWHERE "); - col = value_list->first; - while (col) - { - if (col->type == SQLITE_BLOB) - { - xname = gaiaDoubleQuotedSql (col->name); - sql = sqlite3_mprintf (", \"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&sql_statement, sql); - sqlite3_free (sql); - col->query_pos = qcnt++; - } - else if (col->type == SQLITE_NULL) - { - xname = gaiaDoubleQuotedSql (col->name); - if (first) - { - first = 0; - sql = sqlite3_mprintf ("\"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&condition, sql); - sqlite3_free (sql); - } - else - { - sql = sqlite3_mprintf (" AND \"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&condition, sql); - sqlite3_free (sql); - } - gaiaAppendToOutBuffer (&condition, " IS NULL"); - gaiaAppendToOutBuffer (&where, condition.Buffer); - gaiaOutBufferReset (&condition); - } - else - { - xname = gaiaDoubleQuotedSql (col->name); - if (first) - { - first = 0; - sql = sqlite3_mprintf ("\"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&condition, sql); - sqlite3_free (sql); - } - else - { - sql = sqlite3_mprintf (" AND \"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&condition, sql); - sqlite3_free (sql); - } - gaiaAppendToOutBuffer (&condition, " = ?"); - gaiaAppendToOutBuffer (&where, condition.Buffer); - gaiaOutBufferReset (&condition); - col->query_pos = param++; - } - col = col->next; - } - xname = gaiaDoubleQuotedSql (value_list->table); - sql = sqlite3_mprintf ("\nFROM \"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&sql_statement, sql); - sqlite3_free (sql); - gaiaAppendToOutBuffer (&sql_statement, where.Buffer); - gaiaOutBufferReset (&where); - if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) - ret = - sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, - strlen (sql_statement.Buffer), &stmt2, NULL); + sqlite3_reset (stmt1); + sqlite3_clear_bindings (stmt1); + sqlite3_bind_int64 (stmt1, 1, rowid); + ret = sqlite3_step (stmt1); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; else - ret = SQLITE_ERROR; - gaiaOutBufferReset (&sql_statement); - if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); - goto error; - } - - sqlite3_reset (stmt2); - sqlite3_clear_bindings (stmt2); - col = value_list->first; - while (col) - { - /* binding query params */ - if (col->type == SQLITE_INTEGER) - sqlite3_bind_int64 (stmt2, col->query_pos, col->int_value); - if (col->type == SQLITE_FLOAT) - sqlite3_bind_double (stmt2, col->query_pos, col->dbl_value); - if (col->type == SQLITE_TEXT) - sqlite3_bind_text (stmt2, col->query_pos, col->txt_value, - strlen (col->txt_value), SQLITE_STATIC); - col = col->next; - } - - while (1) - { - /* fetching the result set rows */ - ret = sqlite3_step (stmt2); - if (ret == SQLITE_DONE) - break; /* end of result set */ - if (ret == SQLITE_ROW) - { - /* fetching a row */ - match = 1; - n_cols = sqlite3_column_count (stmt2); - for (col_no = 1; col_no < n_cols; col_no++) - { - /* checking blob columns */ - if (sqlite3_column_type (stmt2, col_no) == SQLITE_BLOB) - { - const void *blob = - sqlite3_column_blob (stmt2, col_no); - int blob_size = - sqlite3_column_bytes (stmt2, col_no); - if (check_dupl_blob - (value_list, col_no - 1, blob, blob_size) == 0) - match = 0; - } - else - match = 0; - if (match == 0) - break; - } - if (match == 0) - continue; - row_no++; - if (row_no > 1) - { - /* deleting any duplicated row except the first one */ - sqlite3_reset (stmt1); - sqlite3_clear_bindings (stmt1); - sqlite3_bind_int64 (stmt1, 1, - sqlite3_column_int64 (stmt2, 0)); - ret = sqlite3_step (stmt1); - if (ret == SQLITE_DONE || ret == SQLITE_ROW) - cnt++; - else - { - spatialite_e ("SQL error: %s\n", - sqlite3_errmsg (sqlite)); - goto error; - } - } - } - else - { - spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); - goto error; - } + return 0; } - if (stmt2) - sqlite3_finalize (stmt2); - *count = cnt; return 1; - - error: - if (stmt2) - sqlite3_finalize (stmt2); - *count = 0; - - return 0; } static int do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, - struct dupl_row *value_list, int *count) + int *count) { /* deleting duplicate rows */ + struct resultset_comparator *rs_obj = NULL; sqlite3_stmt *stmt1 = NULL; sqlite3_stmt *stmt2 = NULL; int ret; - int xcnt; int cnt = 0; - int n_cols; - int col_no; char *sql_err = NULL; *count = 0; @@ -3348,6 +4385,7 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, goto error; } + rs_obj = create_resultset_comparator (sqlite3_column_count (stmt1) - 1); while (1) { /* fetching the result set rows */ @@ -3357,52 +4395,31 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, if (ret == SQLITE_ROW) { /* fetching a row */ - sqlite3_reset (stmt2); - sqlite3_clear_bindings (stmt2); - n_cols = sqlite3_column_count (stmt1); - for (col_no = 1; col_no < n_cols; col_no++) + save_row_from_resultset (rs_obj, stmt1); + if (resultset_rows_equals (rs_obj)) { - /* saving column values */ - if (sqlite3_column_type (stmt1, col_no) == SQLITE_INTEGER) - set_int_value (value_list, col_no - 1, - sqlite3_column_int64 (stmt1, col_no)); - if (sqlite3_column_type (stmt1, col_no) == SQLITE_FLOAT) - set_double_value (value_list, col_no - 1, - sqlite3_column_double (stmt1, - col_no)); - if (sqlite3_column_type (stmt1, col_no) == SQLITE_TEXT) + if (do_delete_duplicates2 + (sqlite, get_current_resultset_rowid (rs_obj), stmt2)) { - const char *xtext = - (const char *) sqlite3_column_text (stmt1, - col_no); - set_text_value (value_list, col_no - 1, xtext); + cnt += 1; + reset_resultset_current_row (rs_obj); + continue; } - if (sqlite3_column_type (stmt1, col_no) == SQLITE_BLOB) - { - const void *blob = - sqlite3_column_blob (stmt1, col_no); - int blob_size = - sqlite3_column_bytes (stmt1, col_no); - set_blob_value (value_list, col_no - 1, blob, - blob_size); - } - if (sqlite3_column_type (stmt1, col_no) == SQLITE_NULL) - set_null_value (value_list, col_no - 1); + else + goto error; } - if (do_delete_duplicates2 (sqlite, stmt2, value_list, &xcnt)) - cnt += xcnt; - else - goto error; } else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } + swap_resultset_rows (rs_obj); } sqlite3_finalize (stmt1); sqlite3_finalize (stmt2); + destroy_resultset_comparator (rs_obj); /* confirm the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &sql_err); @@ -3436,10 +4453,9 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, } SPATIALITE_DECLARE void -remove_duplicated_rows (sqlite3 * sqlite, char *table) +remove_duplicated_rows_ex (sqlite3 * sqlite, char *table, int *removed) { /* attempting to delete Duplicate rows from a table */ - struct dupl_row value_list; char *sql; char *sql2; int first = 1; @@ -3455,10 +4471,8 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table) gaiaOutBuffer sql_statement; gaiaOutBuffer col_list; - value_list.count = 0; - value_list.first = NULL; - value_list.last = NULL; - value_list.table = table; + if (removed != NULL) + *removed = 0; if (is_table (sqlite, table) == 0) { @@ -3496,7 +4510,6 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table) sql = sqlite3_mprintf ("\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&col_list, sql); - add_to_dupl_row (&value_list, sql); sqlite3_free (sql); } } @@ -3504,19 +4517,18 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table) sqlite3_free_table (results); /* preparing the SQL statement (identifying duplicated rows) */ gaiaOutBufferInitialize (&sql_statement); - gaiaAppendToOutBuffer (&sql_statement, - "SELECT Count(*) AS \"[dupl-count]\", "); + gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID, "); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); xname = gaiaDoubleQuotedSql (table); - sql = sqlite3_mprintf ("\nFROM \"%s\"\nGROUP BY ", xname); + sql = sqlite3_mprintf ("\nFROM \"%s\"\nORDER BY ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); - gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1"); + gaiaAppendToOutBuffer (&sql_statement, ", ROWID"); /* preparing the SQL statement [delete] */ xname = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = ?", xname); @@ -3526,17 +4538,28 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table) sql = sql_statement.Buffer; else sql = "NULL-SELECT"; - if (do_delete_duplicates (sqlite, sql, sql2, &value_list, &count)) + if (do_delete_duplicates (sqlite, sql, sql2, &count)) { - if (!count) - spatialite_e ("No duplicated rows have been identified\n"); + if (removed == NULL) + { + if (!count) + spatialite_e ("No duplicated rows have been identified\n"); + else + spatialite_e ("%d duplicated rows deleted from: %s\n", + count, table); + } else - spatialite_e ("%d duplicated rows deleted from: %s\n", count, - table); + *removed = count; } gaiaOutBufferReset (&sql_statement); sqlite3_free (sql2); - clean_dupl_row (&value_list); +} + +SPATIALITE_DECLARE void +remove_duplicated_rows (sqlite3 * sqlite, char *table) +{ +/* attempting to delete Duplicate rows from a table */ + remove_duplicated_rows_ex (sqlite, table, NULL); } static int @@ -3563,15 +4586,16 @@ check_elementary (sqlite3 * sqlite, const char *inTable, const char *geom, { /* current metadata style >= v.4.0.0 */ sql = sqlite3_mprintf ("SELECT geometry_type, srid " - "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q)", - inTable); + "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " + "AND Lower(f_geometry_column) = Lower(%Q)", + inTable, geom); } else { /* legacy metadata style <= v.3.1.0 */ sql = sqlite3_mprintf ("SELECT type, coord_dimension, srid " - "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q)" - "') AND Lower(f_geometry_column) = Lower(%Q)", + "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " + "AND Lower(f_geometry_column) = Lower(%Q)", inTable, geom); } ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); @@ -4691,8 +5715,8 @@ load_XL (sqlite3 * sqlite, const char *path, const char *table, cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) dummy = sqlite3_mprintf ("%1.2f ", - cell. - value.double_value); + cell.value. + double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE @@ -4703,8 +5727,8 @@ load_XL (sqlite3 * sqlite, const char *path, const char *table, if (len < 256) dummy = sqlite3_mprintf ("%s", - cell. - value.text_value); + cell.value. + text_value); else dummy = sqlite3_mprintf ("col_%d", col); } diff --git a/src/spatialite/src/shapefiles/validator.c b/src/spatialite/src/shapefiles/validator.c new file mode 100644 index 0000000..1a6fad1 --- /dev/null +++ b/src/spatialite/src/shapefiles/validator.c @@ -0,0 +1,3745 @@ +/* + + validator.c -- implements geometry validation and repair + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include <sys/stat.h> +#include <sys/types.h> + +#if defined(_WIN32) +#include <direct.h> +#endif + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include <spatialite/sqlite.h> +#include <spatialite/debug.h> + +#include <spatialite/gaiaaux.h> +#include <spatialite/gaiageo.h> +#include <spatialite.h> +#include <spatialite_private.h> + +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + +#if defined(_WIN32) && !defined(__MINGW32__) +#define strcasecmp _stricmp +#endif + +struct validity_report_row +{ + sqlite3_int64 rowid; + int valid; + char *warning; + char *error; + char *extra; + struct validity_report_row *next; +}; + +struct validity_report +{ + struct validity_report_row *first; + struct validity_report_row *last; + int n_rows; + int n_nullgeoms; + int n_valids; + int n_invalids; + int n_warnings; +}; + +struct sanitize_report_row +{ + sqlite3_int64 rowid; + int repaired; + char *warning; + char *error; + char *summary; + struct sanitize_report_row *next; +}; + +struct sanitize_report +{ + struct sanitize_report_row *first; + struct sanitize_report_row *last; + int n_invalids; + int n_repaired; + int n_discarded; + int n_not_repaired; + int input_type; + int repaired_type; + int discarded_type; +}; + +static int +check_table_column (sqlite3 * sqlite, const char *table, const char *geom, + int *gtype, int *srid) +{ +/* chacks if a table-column effectively exists */ + char *sql; + const char *xsql; + int ret; + int i; + char **results; + int rows; + int columns; + int spatial_type = 0; + int ok = 0; + + *gtype = -1; + *srid = -2; +/* checking the DB layout */ + xsql = "SELECT CheckSpatialMetadata()"; + ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + spatial_type = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (spatial_type == 1 || spatial_type == 3) + ; + else + return 0; + +/* checking the table-column */ + if (spatial_type == 1) + xsql = "SELECT type, coord_dimension, srid FROM geometry_columns "; + else + xsql = "SELECT geometry_type, srid FROM geometry_columns "; + sql = sqlite3_mprintf ("%s WHERE Lower(f_table_name) = Lower(%Q) " + "AND Lower(f_geometry_column) = Lower(%Q)", xsql, + table, geom); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + ok = 1; + if (spatial_type == 1) + { + int ndims; + const char *type = results[(i * columns) + 0]; + const char *dims = results[(i * columns) + 2]; + if (strcasecmp (dims, "XYZM") == 0) + ndims = GAIA_XY_Z_M; + else if (strcasecmp (dims, "4") == 0) + ndims = GAIA_XY_Z_M; + else if (strcasecmp (dims, "XYZ") == 0) + ndims = GAIA_XY_Z; + else if (strcasecmp (dims, "3") == 0) + ndims = GAIA_XY_Z; + else if (strcasecmp (dims, "XYM") == 0) + ndims = GAIA_XY_M; + else + ndims = GAIA_XY; + if (strcasecmp (type, "POINT") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3001; + else if (ndims == GAIA_XY_Z) + *gtype = 1001; + else if (ndims == GAIA_XY_M) + *gtype = 2001; + else + *gtype = 1; + } + if (strcasecmp (type, "LINESTRING") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3002; + else if (ndims == GAIA_XY_Z) + *gtype = 1002; + else if (ndims == GAIA_XY_M) + *gtype = 2002; + else + *gtype = 2; + } + if (strcasecmp (type, "POLYGON") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3003; + else if (ndims == GAIA_XY_Z) + *gtype = 1003; + else if (ndims == GAIA_XY_M) + *gtype = 2003; + else + *gtype = 3; + } + if (strcasecmp (type, "MULTIPOINT") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3004; + else if (ndims == GAIA_XY_Z) + *gtype = 1004; + else if (ndims == GAIA_XY_M) + *gtype = 2004; + else + *gtype = 4; + } + if (strcasecmp (type, "MULTILINESTRING") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3005; + else if (ndims == GAIA_XY_Z) + *gtype = 1005; + else if (ndims == GAIA_XY_M) + *gtype = 2005; + else + *gtype = 5; + } + if (strcasecmp (type, "MULTIPOLYGON") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3006; + else if (ndims == GAIA_XY_Z) + *gtype = 1006; + else if (ndims == GAIA_XY_M) + *gtype = 2006; + else + *gtype = 6; + } + if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3007; + else if (ndims == GAIA_XY_Z) + *gtype = 1007; + else if (ndims == GAIA_XY_M) + *gtype = 2007; + else + *gtype = 7; + } + if (strcasecmp (type, "GEOMETRY") == 0) + { + if (ndims == GAIA_XY_Z_M) + *gtype = 3000; + else if (ndims == GAIA_XY_Z) + *gtype = 1000; + else if (ndims == GAIA_XY_M) + *gtype = 2000; + else + *gtype = 0; + } + *srid = atoi (results[(i * columns) + 1]); + } + else + { + *gtype = atoi (results[(i * columns) + 0]); + *srid = atoi (results[(i * columns) + 1]); + } + } + } + sqlite3_free_table (results); + return ok; +} + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ + +static struct sanitize_report * +alloc_sanitize_report (void) +{ +/* allocating the report container struct */ + struct sanitize_report *p = malloc (sizeof (struct sanitize_report)); + p->first = NULL; + p->last = NULL; + p->n_invalids = 0; + p->n_repaired = 0; + p->n_discarded = 0; + p->n_not_repaired = 0; + p->input_type = -1; + p->repaired_type = -1; + p->discarded_type = -1; + return p; +} + +static void +free_sanitize_report (struct sanitize_report *p) +{ +/* memory cleanup: freeing the report container struct */ + struct sanitize_report_row *r; + struct sanitize_report_row *rn; + r = p->first; + while (r) + { + rn = r->next; + if (r->warning != NULL) + free (r->warning); + if (r->error != NULL) + free (r->error); + if (r->summary != NULL) + free (r->summary); + free (r); + r = rn; + } + free (p); +} + +static void +addMessageToSanitizeReport (struct sanitize_report *report, sqlite3_int64 rowid, + int repaired, const char *error, + const char *warning, const char *summary) +{ +/* adding a message to the report */ + int len; + struct sanitize_report_row *r = + malloc (sizeof (struct sanitize_report_row)); + r->rowid = rowid; + r->repaired = repaired; + r->error = NULL; + r->warning = NULL; + r->summary = NULL; + r->next = NULL; + if (error) + { + len = strlen (error); + r->error = malloc (len + 1); + strcpy (r->error, error); + } + if (warning) + { + len = strlen (warning); + r->warning = malloc (len + 1); + strcpy (r->warning, warning); + } + if (summary) + { + len = strlen (summary); + r->summary = malloc (len + 1); + strcpy (r->summary, summary); + } + if (!repaired) + report->n_not_repaired += 1; + else + { + if (summary == NULL) + report->n_repaired += 1; + else + report->n_discarded += 1; + } + if (report->first == NULL) + report->first = r; + if (report->last != NULL) + report->last->next = r; + report->last = r; +} + +static int +eval_type (int old, int new) +{ +/* evaluates the max. common Geometry Type */ + int o_dims; + int n_dims; + int r_dims; + int o_type; + int n_type; + int r_type; + int ret; + if (old < 0) + { + /* first evaluation */ + return new; + } + switch (old) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + o_dims = GAIA_XY; + break; + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + o_dims = GAIA_XY_Z; + break; + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + o_dims = GAIA_XY_M; + break; + case 3000: + case 3001: + case 3002: + case 3003: + case 3004: + case 3005: + case 3006: + case 3007: + o_dims = GAIA_XY_Z_M; + break; + default: + o_dims = GAIA_XY; + break; + }; + switch (new) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + n_dims = GAIA_XY; + break; + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + n_dims = GAIA_XY_Z; + break; + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + n_dims = GAIA_XY_M; + break; + case 3000: + case 3001: + case 3002: + case 3003: + case 3004: + case 3005: + case 3006: + case 3007: + n_dims = GAIA_XY_Z_M; + break; + default: + n_dims = GAIA_XY; + break; + }; + switch (old) + { + case 0: + case 1000: + case 2000: + case 3000: + o_type = -1; + break; + case 1: + case 1001: + case 2001: + case 3001: + o_type = GAIA_POINT; + break; + case 2: + case 1002: + case 2002: + case 3002: + o_type = GAIA_LINESTRING; + break; + case 3: + case 1003: + case 2003: + case 3003: + o_type = GAIA_POLYGON; + break; + case 4: + case 1004: + case 2004: + case 3004: + o_type = GAIA_MULTIPOINT; + break; + case 5: + case 1005: + case 2005: + case 3005: + o_type = GAIA_MULTILINESTRING; + break; + case 6: + case 1006: + case 2006: + case 3006: + o_type = GAIA_MULTIPOLYGON; + break; + case 7: + case 1007: + case 2007: + case 3007: + o_type = GAIA_GEOMETRYCOLLECTION; + break; + default: + o_type = -1; + break; + }; + switch (new) + { + case 0: + case 1000: + case 2000: + case 3000: + n_type = -1; + break; + case 1: + case 1001: + case 2001: + case 3001: + n_type = GAIA_POINT; + break; + case 2: + case 1002: + case 2002: + case 3002: + n_type = GAIA_LINESTRING; + break; + case 3: + case 1003: + case 2003: + case 3003: + n_type = GAIA_POLYGON; + break; + case 4: + case 1004: + case 2004: + case 3004: + n_type = GAIA_MULTIPOINT; + break; + case 5: + case 1005: + case 2005: + case 3005: + n_type = GAIA_MULTILINESTRING; + break; + case 6: + case 1006: + case 2006: + case 3006: + n_type = GAIA_MULTIPOLYGON; + break; + case 7: + case 1007: + case 2007: + case 3007: + n_type = GAIA_GEOMETRYCOLLECTION; + break; + default: + n_type = -1; + break; + }; + if (o_type == n_type) + r_type = n_type; + else + { + if ((o_type == GAIA_POINT || n_type == GAIA_POINT) + && (o_type == GAIA_MULTIPOINT || n_type == GAIA_MULTIPOINT)) + r_type = GAIA_MULTIPOINT; + else if ((o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING) + && (o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING)) + r_type = GAIA_MULTILINESTRING; + else if ((o_type == GAIA_POLYGON || n_type == GAIA_POLYGON) + && (o_type == GAIA_MULTIPOLYGON + || n_type == GAIA_MULTIPOLYGON)) + r_type = GAIA_MULTIPOLYGON; + else + r_type = GAIA_GEOMETRYCOLLECTION; + } + if (o_dims == n_dims) + r_dims = n_dims; + else + { + if ((o_dims == GAIA_XY || n_dims == GAIA_XY) + && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) + r_dims = GAIA_XY_Z; + if ((o_dims == GAIA_XY || n_dims == GAIA_XY) + && (o_dims == GAIA_XY_M || n_dims == GAIA_XY_M)) + r_dims = GAIA_XY_M; + if ((o_dims == GAIA_XY || n_dims == GAIA_XY) + && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) + r_dims = GAIA_XY_Z_M; + if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) + && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) + r_dims = GAIA_XY_Z_M; + if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) + && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) + r_dims = GAIA_XY_Z_M; + if ((o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z) + && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) + r_dims = GAIA_XY_Z_M; + } + switch (r_type) + { + case GAIA_POINT: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3001; + break; + case GAIA_XY_Z: + ret = 1001; + break; + case GAIA_XY_M: + ret = 2001; + break; + case GAIA_XY: + ret = 1; + break; + }; + break; + case GAIA_LINESTRING: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3002; + break; + case GAIA_XY_Z: + ret = 1002; + break; + case GAIA_XY_M: + ret = 2002; + break; + case GAIA_XY: + ret = 2; + break; + }; + break; + case GAIA_POLYGON: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3003; + break; + case GAIA_XY_Z: + ret = 1003; + break; + case GAIA_XY_M: + ret = 2003; + break; + case GAIA_XY: + ret = 3; + break; + }; + break; + case GAIA_MULTIPOINT: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3004; + break; + case GAIA_XY_Z: + ret = 1004; + break; + case GAIA_XY_M: + ret = 2004; + break; + case GAIA_XY: + ret = 4; + break; + }; + break; + case GAIA_MULTILINESTRING: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3005; + break; + case GAIA_XY_Z: + ret = 1005; + break; + case GAIA_XY_M: + ret = 2005; + break; + case GAIA_XY: + ret = 5; + break; + }; + break; + case GAIA_MULTIPOLYGON: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3006; + break; + case GAIA_XY_Z: + ret = 1006; + break; + case GAIA_XY_M: + ret = 2006; + break; + case GAIA_XY: + ret = 6; + break; + }; + break; + default: + switch (r_dims) + { + case GAIA_XY_Z_M: + ret = 3007; + break; + case GAIA_XY_Z: + ret = 1007; + break; + case GAIA_XY_M: + ret = 2007; + break; + case GAIA_XY: + ret = 7; + break; + }; + break; + }; + return ret; +} + +static int +eval_cast_type (int old, int new) +{ +/* determining the appropriate Type Casting (if any) */ + int o_type; + int n_type; + switch (old) + { + case 0: + case 1000: + case 2000: + case 3000: + o_type = -1; + break; + case 1: + case 1001: + case 2001: + case 3001: + o_type = GAIA_POINT; + break; + case 2: + case 1002: + case 2002: + case 3002: + o_type = GAIA_LINESTRING; + break; + case 3: + case 1003: + case 2003: + case 3003: + o_type = GAIA_POLYGON; + break; + case 4: + case 1004: + case 2004: + case 3004: + o_type = GAIA_MULTIPOINT; + break; + case 5: + case 1005: + case 2005: + case 3005: + o_type = GAIA_MULTILINESTRING; + break; + case 6: + case 1006: + case 2006: + case 3006: + o_type = GAIA_MULTIPOLYGON; + break; + case 7: + case 1007: + case 2007: + case 3007: + o_type = GAIA_GEOMETRYCOLLECTION; + break; + default: + o_type = -1; + break; + }; + switch (new) + { + case 0: + case 1000: + case 2000: + case 3000: + n_type = -1; + break; + case 1: + case 1001: + case 2001: + case 3001: + n_type = GAIA_POINT; + break; + case 2: + case 1002: + case 2002: + case 3002: + n_type = GAIA_LINESTRING; + break; + case 3: + case 1003: + case 2003: + case 3003: + n_type = GAIA_POLYGON; + break; + case 4: + case 1004: + case 2004: + case 3004: + n_type = GAIA_MULTIPOINT; + break; + case 5: + case 1005: + case 2005: + case 3005: + n_type = GAIA_MULTILINESTRING; + break; + case 6: + case 1006: + case 2006: + case 3006: + n_type = GAIA_MULTIPOLYGON; + break; + case 7: + case 1007: + case 2007: + case 3007: + n_type = GAIA_GEOMETRYCOLLECTION; + break; + default: + n_type = -1; + break; + }; + if (o_type == n_type) + return -1; + return n_type; +} + +static int +eval_cast_dims (int old, int new) +{ +/* determining the appropriate Dimensions Casting (if any) */ + int o_dims; + int n_dims; + switch (old) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + o_dims = GAIA_XY; + break; + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + o_dims = GAIA_XY_Z; + break; + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + o_dims = GAIA_XY_M; + break; + case 3000: + case 3001: + case 3002: + case 3003: + case 3004: + case 3005: + case 3006: + case 3007: + o_dims = GAIA_XY_Z_M; + break; + default: + o_dims = GAIA_XY; + break; + }; + switch (new) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + n_dims = GAIA_XY; + break; + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + n_dims = GAIA_XY_Z; + break; + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + n_dims = GAIA_XY_M; + break; + case 3000: + case 3001: + case 3002: + case 3003: + case 3004: + case 3005: + case 3006: + case 3007: + n_dims = GAIA_XY_Z_M; + break; + default: + n_dims = GAIA_XY; + break; + }; + if (o_dims == n_dims) + return -1; + return n_dims; +} + + +static const char * +createDiscardedSummary (gaiaGeomCollPtr geom, char *summary) +{ +/* short summary for discarded fragments */ + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + int pts = 0; + int lns = 0; + int pgs = 0; + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts > 0 && lns == 0 && pgs == 0) + sprintf (summary, "%d Poin%s", pts, (pts > 1) ? "ts" : "t"); + if (pts == 0 && lns > 0 && pgs == 0) + sprintf (summary, "%d Linestrin%s", lns, (lns > 1) ? "gs" : "g"); + if (pts == 0 && lns == 0 && pgs > 0) + sprintf (summary, "%d Polygo%s", pgs, (pgs > 1) ? "ns" : "n"); + if (pts > 0 && lns > 0 && pgs == 0) + sprintf (summary, "%d Poin%s; %d Linestrin%s", pts, + (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s"); + if (pts > 0 && lns == 0 && pgs > 0) + sprintf (summary, "%d Poin%s; %d Polygo%s", pts, (pts > 1) ? "ts" : "t", + pgs, (pgs > 1) ? "ns" : "n"); + if (pts == 0 && lns > 0 && pgs > 0) + sprintf (summary, "%d Linestrin%s; %d Polygo%s", lns, + (lns > 1) ? "gs" : "g", pgs, (pgs > 1) ? "ns" : "n"); + if (pts > 0 && lns > 0 && pgs > 0) + sprintf (summary, "%d Poin%s; %d Linestrin%s; %d Polygo%s", pts, + (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s", pgs, + (pgs > 1) ? "ns" : "n"); + return summary; +} + +static int +change_geometry_type (sqlite3 * sqlite, const char *table, const char *geometry, + int cast_type, int cast_dims) +{ +/* changing the Geometry Type for the whole table/column */ + int ret; + int i; + char **results; + int rows; + int columns; + int spatial_type = 0; + const char *xsql; + char *sql; + sqlite3_stmt *stmt; + char *xtable; + char *xgeom; + const char *xtype; + const char *xdims; + +/* checking the DB layout */ + xsql = "SELECT CheckSpatialMetadata()"; + ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + spatial_type = atoi (results[(i * columns) + 0]); + } + sqlite3_free_table (results); + if (spatial_type == 1 || spatial_type == 3) + ; + else + return 0; + +/* updating the "geometry_columns" row */ + if (spatial_type == 1) + sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = ?, " + "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", table, + geometry); + else + sql = sqlite3_mprintf ("UPDATE geometry_columns SET geometry_type = ?, " + "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", table, + geometry); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + return 0; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (spatial_type == 1) + { + const char *p_type = "GEOMETRY"; + const char *p_dims = "XY"; + switch (cast_type) + { + case GAIA_POINT: + p_type = "POINT"; + break; + case GAIA_LINESTRING: + p_type = "LINESTRING"; + break; + case GAIA_POLYGON: + p_type = "POLYGON"; + break; + case GAIA_MULTIPOINT: + p_type = "MULTIPOINT"; + break; + case GAIA_MULTILINESTRING: + p_type = "MULTILINESTRING"; + break; + case GAIA_MULTIPOLYGON: + p_type = "MULTIPOLYGON"; + break; + case GAIA_GEOMETRYCOLLECTION: + p_type = "GEOMETRYCOLLECTION"; + break; + }; + switch (cast_dims) + { + case GAIA_XY_Z_M: + p_dims = "XYZM"; + break; + case GAIA_XY_Z: + p_dims = "XYZ"; + break; + case GAIA_XY_M: + p_dims = "ZYM"; + break; + }; + sqlite3_bind_text (stmt, 1, p_type, strlen (p_type), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, p_dims, strlen (p_dims), SQLITE_STATIC); + } + else + { + int gtype = 0; + int ndims = 2; + switch (cast_type) + { + case GAIA_POINT: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3001; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1001; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2001; + ndims = 3; + break; + default: + gtype = 1; + ndims = 2; + break; + }; + break; + case GAIA_LINESTRING: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3002; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1002; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2002; + ndims = 3; + break; + default: + gtype = 2; + ndims = 2; + break; + }; + break; + case GAIA_POLYGON: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3003; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1003; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2003; + ndims = 3; + break; + default: + gtype = 3; + ndims = 2; + break; + }; + break; + case GAIA_MULTIPOINT: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3004; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1004; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2004; + ndims = 3; + break; + default: + gtype = 4; + ndims = 2; + break; + }; + break; + case GAIA_MULTILINESTRING: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3005; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1005; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2005; + ndims = 3; + break; + default: + gtype = 5; + ndims = 2; + break; + }; + break; + case GAIA_MULTIPOLYGON: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3006; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1006; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2006; + ndims = 3; + break; + default: + gtype = 6; + ndims = 2; + break; + }; + break; + case GAIA_GEOMETRYCOLLECTION: + switch (cast_dims) + { + case GAIA_XY_Z_M: + gtype = 3007; + ndims = 4; + break; + case GAIA_XY_Z: + gtype = 1007; + ndims = 3; + break; + case GAIA_XY_M: + gtype = 2007; + ndims = 3; + break; + default: + gtype = 7; + ndims = 2; + break; + }; + break; + }; + sqlite3_bind_int (stmt, 1, gtype); + sqlite3_bind_int (stmt, 2, ndims); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + return 0; + } + sqlite3_finalize (stmt); + +/* applying type casting to already inserted Geometries */ + xtable = gaiaDoubleQuotedSql (table); + xgeom = gaiaDoubleQuotedSql (geometry); + xtype = "Geometry"; + xdims = "XY"; + switch (cast_type) + { + case GAIA_POINT: + xtype = "Point"; + break; + case GAIA_LINESTRING: + xtype = "Linestring"; + break; + case GAIA_POLYGON: + xtype = "Polygon"; + break; + case GAIA_MULTIPOINT: + xtype = "MultiPoint"; + break; + case GAIA_MULTILINESTRING: + xtype = "MultiLinestring"; + break; + case GAIA_MULTIPOLYGON: + xtype = "MultiPolygon"; + break; + case GAIA_GEOMETRYCOLLECTION: + xtype = "GeometryCollection"; + break; + }; + switch (cast_dims) + { + case GAIA_XY_Z_M: + xdims = "XYZM"; + break; + case GAIA_XY_Z: + xdims = "XYZ"; + break; + case GAIA_XY_M: + xdims = "XYM"; + break; + }; + sql = + sqlite3_mprintf + ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(\"%s\"))", xtable, xgeom, + xtype, xdims, xgeom); + free (xtable); + free (xgeom); + ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + return 1; +} + +static void +drop_tmp_table (sqlite3 * sqlite, const char *tmp_table) +{ +/* dropping the auxiliary temporary table */ + char *sql; + char *xtable; + int ret; + + xtable = gaiaDoubleQuotedSql (tmp_table); + sql = sqlite3_mprintf ("DROP TABLE \"%s\"", xtable); + free (xtable); + ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); +} + +static void +update_repaired (sqlite3 * sqlite, const char *table, const char *geometry, + const char *tmp_table, int old_type, int new_type) +{ +/* updating all repaired geometries */ + char *sql; + int cast_type = -1; + int cast_dims = -1; + int type; + char *xtmp_table; + char *xtable; + char *xgeom; + const char *casttype; + const char *castdims; + int ret; + int is_error = 0; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt_out; + +/* determining the final Geometry Type */ + type = eval_type (old_type, new_type); + if (type != old_type) + { + /* determining the eventual Castings to be applied */ + cast_type = eval_cast_type (old_type, new_type); + cast_dims = eval_cast_dims (old_type, new_type); + } + +/* preparing the SELECT statement */ + xtmp_table = gaiaDoubleQuotedSql (tmp_table); + sql = sqlite3_mprintf ("SELECT ref_rowid, repaired_geometry FROM \"%s\" " + "WHERE repaired_geometry IS NOT NULL", xtmp_table); + free (xtmp_table); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + +/* preparing the UPDATE statement */ + xtable = gaiaDoubleQuotedSql (table); + xgeom = gaiaDoubleQuotedSql (geometry); + switch (new_type) + { + case 1: + casttype = "Point"; + castdims = "XY"; + break; + case 1001: + casttype = "Point"; + castdims = "XYZ"; + break; + case 2001: + casttype = "Point"; + castdims = "XYM"; + break; + case 3001: + casttype = "Point"; + castdims = "XYZM"; + break; + case 2: + casttype = "Linestring"; + castdims = "XY"; + break; + case 1002: + casttype = "Linestring"; + castdims = "XYZ"; + break; + case 2002: + casttype = "Linestring"; + castdims = "XYM"; + break; + case 3002: + casttype = "Linestring"; + castdims = "XYZM"; + break; + case 3: + casttype = "Polygon"; + castdims = "XY"; + break; + case 1003: + casttype = "Polygon"; + castdims = "XYZ"; + break; + case 2003: + casttype = "Polygon"; + castdims = "XYM"; + break; + case 3003: + casttype = "Polygon"; + castdims = "XYZM"; + break; + case 4: + casttype = "MultiPoint"; + castdims = "XY"; + break; + case 1004: + casttype = "MultiPoint"; + castdims = "XYZ"; + break; + case 2004: + casttype = "MultiPoint"; + castdims = "XYM"; + break; + case 3004: + casttype = "MultiPoint"; + castdims = "XYZM"; + break; + case 5: + casttype = "MultiLinestring"; + castdims = "XY"; + break; + case 1005: + casttype = "MultiLinestring"; + castdims = "XYZ"; + break; + case 2005: + casttype = "MultiLinestring"; + castdims = "XYM"; + break; + case 3005: + casttype = "MultiLinestring"; + castdims = "XYZM"; + break; + case 6: + casttype = "MultiPolygon"; + castdims = "XY"; + break; + case 1006: + casttype = "MultiPolygon"; + castdims = "XYZ"; + break; + case 2006: + casttype = "MultiPolygon"; + castdims = "XYM"; + break; + case 3006: + casttype = "MultiPolygon"; + castdims = "XYZM"; + break; + case 7: + casttype = "GeometryCollection"; + castdims = "XY"; + break; + case 1007: + casttype = "GeometryCollection"; + castdims = "XYZ"; + break; + case 2007: + casttype = "GeometryCollection"; + castdims = "XYM"; + break; + case 3007: + casttype = "GeometryCollection"; + castdims = "XYZM"; + break; + case 0: + casttype = "Multi"; + castdims = "XY"; + break; + case 1000: + casttype = "Multi"; + castdims = "XYZ"; + break; + case 2000: + casttype = "Multi"; + castdims = "XYM"; + break; + case 3000: + casttype = "Multi"; + castdims = "XYZM"; + break; + default: + casttype = "Multi"; + castdims = "XY"; + break; + }; + sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(?)) " + "WHERE ROWID = ?", xtable, xgeom, casttype, + castdims); + free (xtable); + free (xgeom); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + +/* starting a Transaction */ + ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + + if (cast_type != -1 || cast_dims != -1) + { + /* changing the Geometry Type to the whole table/column */ + if (!change_geometry_type + (sqlite, table, geometry, cast_type, cast_dims)) + return; + } + + while (1) + { + /* scrolling the result set */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing one row from the resultset */ + sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); + if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) + { + const unsigned char *blob = sqlite3_column_blob (stmt, 1); + int n_bytes = sqlite3_column_bytes (stmt, 1); + /* updating the main table */ + sqlite3_reset (stmt_out); + sqlite3_clear_bindings (stmt_out); + sqlite3_bind_blob (stmt_out, 1, blob, n_bytes, + SQLITE_STATIC); + sqlite3_bind_int64 (stmt_out, 2, rowid); + ret = sqlite3_step (stmt_out); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + is_error = 1; + spatialite_e + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + break; + } + } + } + else + { + spatialite_e ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + break; + } + } + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_out); + + if (is_error) + { + /* Rollback */ + ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + goto stop; + } + else + { + /* dropping the auxiliary temporary table */ + drop_tmp_table (sqlite, tmp_table); + /* committing the still pending Transaction */ + ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + } + stop: + return; +} + +static int +sanitize_geometry_column_common (const void *p_cache, sqlite3 * sqlite, + const char *table, const char *geom, + const char *tmp_table, const char *report_path, + int *n_invalids, int *n_repaired, + int *n_discarded, int *n_failures, + char **err_msg) +{ +/* attempts to repair invalid Geometries from a Geometry Column */ + char *sql; + char *xtable; + char *xgeom; + char *xtmp_table; + sqlite3_stmt *stmt; + sqlite3_stmt *stmt_out; + int ret; + int gtype; + int srid; + const char *x_type; + const char *x_dims; + char num[256]; + FILE *out = NULL; + const char *p_msg; + const char *p_summary; + char summary[1024]; + int is_error = 0; + time_t v_time; + struct tm *v_tm; + const char *day; + const char *month; + int len; + struct sanitize_report_row *p_r; + struct sanitize_report *report = alloc_sanitize_report (); + + if (err_msg != NULL) + *err_msg = NULL; + + if (!check_table_column (sqlite, table, geom, >ype, &srid)) + { + spatialite_e ("sanitize_geometry_column error: <%s><%s>\n" + "Not defined in \"geometry_columns\"", table, geom); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("sanitize_geometry_column error: <%s><%s>\n" + "Not defined in \"geometry_columns\"", table, geom); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* decoding Geometry Type and Dimensions */ + switch (gtype) + { + case 0: + x_type = "GEOMETRY"; + x_dims = "XY"; + break; + case 1000: + x_type = "GEOMETRY"; + x_dims = "XYZ"; + break; + case 2000: + x_type = "GEOMETRY"; + x_dims = "XYM"; + break; + case 3000: + x_type = "GEOMETRY"; + x_dims = "XYZM"; + break; + case 1: + x_type = "POINT"; + x_dims = "XY"; + break; + case 1001: + x_type = "POINT"; + x_dims = "XYZ"; + break; + case 2001: + x_type = "POINT"; + x_dims = "XYM"; + break; + case 3001: + x_type = "POINT"; + x_dims = "XYZM"; + break; + case 2: + x_type = "LINESTRING"; + x_dims = "XY"; + break; + case 1002: + x_type = "LINESTRING"; + x_dims = "XYZ"; + break; + case 2002: + x_type = "LINESTRING"; + x_dims = "XYM"; + break; + case 3002: + x_type = "LINESTRING"; + x_dims = "XYZM"; + break; + case 3: + x_type = "POLYGON"; + x_dims = "XY"; + break; + case 1003: + x_type = "POLYGON"; + x_dims = "XYZ"; + break; + case 2003: + x_type = "POLYGON"; + x_dims = "XYM"; + break; + case 3003: + x_type = "POLYGON"; + x_dims = "XYZM"; + break; + case 4: + x_type = "MULTIPOINT"; + x_dims = "XY"; + break; + case 1004: + x_type = "MULTIPOINT"; + x_dims = "XYZ"; + break; + case 2004: + x_type = "MULTIPOINT"; + x_dims = "XYM"; + break; + case 3004: + x_type = "MULTIPOINT"; + x_dims = "XYZM"; + break; + case 5: + x_type = "MULTILINESTRING"; + x_dims = "XY"; + break; + case 1005: + x_type = "MULTILINESTRING"; + x_dims = "XYZ"; + break; + case 2005: + x_type = "MULTILINESTRING"; + x_dims = "XYM"; + break; + case 3005: + x_type = "MULTILINESTRING"; + x_dims = "XYZM"; + break; + case 6: + x_type = "MULTIPOLYGON"; + x_dims = "XY"; + break; + case 1006: + x_type = "MULTIPOLYGON"; + x_dims = "XYZ"; + break; + case 2006: + x_type = "MULTIPOLYGON"; + x_dims = "XYM"; + break; + case 3006: + x_type = "MULTIPOLYGON"; + x_dims = "XYZM"; + break; + case 7: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XY"; + break; + case 1007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYZ"; + break; + case 2007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYM"; + break; + case 3007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYZM"; + break; + default: + x_type = "UNKNOWN"; + x_dims = "UNKNOWN"; + break; + }; + + xtable = gaiaDoubleQuotedSql (table); + xgeom = gaiaDoubleQuotedSql (geom); + sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); + free (xtable); + free (xgeom); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* creating the auxiliary temporary table */ + xtmp_table = gaiaDoubleQuotedSql (tmp_table); + sql = + sqlite3_mprintf + ("CREATE TABLE \"%s\" (ref_rowid INTEGER NOT NULL PRIMARY KEY, " + "input_geometry BLOB, repaired_geometry BLOB, discarded_geometry BLOB)", + xtmp_table); + free (xtmp_table); + ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* preparing the INSERT INTO statement */ + xtmp_table = gaiaDoubleQuotedSql (tmp_table); + sql = sqlite3_mprintf ("INSERT INTO \"%s\" " + "(ref_rowid, input_geometry, repaired_geometry, discarded_geometry) " + "VALUES (?, ?, ?, ?)", xtmp_table); + free (xtmp_table); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* starting a Transaction */ + ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* opening the HTML report */ + out = fopen (report_path, "wb"); + if (out == NULL) + goto stop; + + while (1) + { + /* scrolling the result set */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing one row from the resultset */ + gaiaGeomCollPtr geom = NULL; + sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); + if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) + { + const unsigned char *blob = sqlite3_column_blob (stmt, 1); + int n_bytes = sqlite3_column_bytes (stmt, 1); + geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); + } + if (geom) + { + /* checking a geometry for validity */ + int valret; + if (p_cache != NULL) + { + gaiaResetGeosMsg_r (p_cache); + valret = gaiaIsValid_r (p_cache, geom); + } + else + { + gaiaResetGeosMsg (); + valret = gaiaIsValid (geom); + } + if (!valret) + { + unsigned char *blob_geom; + int blob_sz_geom; + unsigned char *blob_saned; + int blob_sz_saned; + unsigned char *blob_dscrd; + int blob_sz_dscrd; + const char *error; + const char *warning; + gaiaGeomCollPtr repaired; + gaiaGeomCollPtr discarded; + report->n_invalids += 1; + gaiaResetLwGeomMsg (); + repaired = gaiaMakeValid (geom); + discarded = gaiaMakeValidDiscarded (geom); + error = gaiaGetLwGeomErrorMsg (); + warning = gaiaGetLwGeomWarningMsg (); + if (discarded == NULL) + p_summary = NULL; + else + p_summary = + createDiscardedSummary (discarded, summary); + addMessageToSanitizeReport (report, rowid, + (repaired == + NULL) ? 0 : 1, error, + warning, p_summary); + /* inserting into the auxiliary temporary table */ + sqlite3_reset (stmt_out); + sqlite3_clear_bindings (stmt_out); + sqlite3_bind_int64 (stmt_out, 1, rowid); + if (!repaired) + { + report->input_type = + eval_type (report->input_type, + gaiaGeometryType (geom)); + gaiaToSpatiaLiteBlobWkb (geom, &blob_geom, + &blob_sz_geom); + sqlite3_bind_blob (stmt_out, 2, blob_geom, + blob_sz_geom, free); + sqlite3_bind_null (stmt_out, 3); + } + else + { + report->repaired_type = + eval_type (report->repaired_type, + gaiaGeometryType (repaired)); + sqlite3_bind_null (stmt_out, 2); + gaiaToSpatiaLiteBlobWkb (repaired, + &blob_saned, + &blob_sz_saned); + sqlite3_bind_blob (stmt_out, 3, blob_saned, + blob_sz_saned, free); + } + if (discarded) + { + report->discarded_type = + eval_type (report->discarded_type, + gaiaGeometryType (discarded)); + gaiaToSpatiaLiteBlobWkb (discarded, + &blob_dscrd, + &blob_sz_dscrd); + sqlite3_bind_blob (stmt_out, 4, blob_dscrd, + blob_sz_dscrd, free); + } + else + sqlite3_bind_null (stmt_out, 4); + /* inserting into the auxiliary temporary table */ + ret = sqlite3_step (stmt_out); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + is_error = 1; + spatialite_e + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + break; + } + if (repaired) + gaiaFreeGeomColl (repaired); + if (discarded) + gaiaFreeGeomColl (discarded); + } + gaiaFreeGeomColl (geom); + } + } + else + { + spatialite_e ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + break; + } + } + sqlite3_finalize (stmt); + sqlite3_finalize (stmt_out); + + if (is_error) + { + /* Rollback */ + ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + goto stop; + } + else + { + /* committing the still pending Transaction */ + ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("sanitize_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + } + +/* generating the HTML header */ + fprintf (out, + "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"); + fprintf (out, "<html>\n\t<head>\n"); + fprintf (out, + "\t\t<meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\">\n"); + fprintf (out, + "\t\t<title>SpatiaLite Repair Geometries - Table: %s\n", + table); + fprintf (out, "\t\t\n"); + fprintf (out, "\t\n\t\n"); + time (&v_time); + v_tm = localtime (&v_time); + switch (v_tm->tm_wday) + { + case 0: + day = "Sun"; + break; + case 1: + day = "Mon"; + break; + case 2: + day = "Tue"; + break; + case 3: + day = "Wed"; + break; + case 4: + day = "Thu"; + break; + case 5: + day = "Fri"; + break; + case 6: + day = "Sat"; + break; + }; + switch (v_tm->tm_mon) + { + case 0: + month = "Jan"; + break; + case 1: + month = "Feb"; + break; + case 2: + month = "Mar"; + break; + case 3: + month = "Apr"; + break; + case 4: + month = "May"; + break; + case 5: + month = "Jun"; + break; + case 6: + month = "Jul"; + break; + case 7: + month = "Aug"; + break; + case 8: + month = "Sep"; + break; + case 9: + month = "Oct"; + break; + case 10: + month = "Nov"; + break; + case 11: + month = "Dec"; + break; + }; + fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
    \n", + v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, + v_tm->tm_min, v_tm->tm_sec); + fprintf (out, "\t\t

    SpatiaLite Repair Geometries

    \n"); + +/* generating the summary sub-report */ + fprintf (out, "\t\t

    Summary

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t\n"); + fprintf (out, "\t\t\t\n", table); + fprintf (out, "\t\t\t\n", geom); + fprintf (out, "\t\t\t\n", x_type); + fprintf (out, "\t\t\t\n", x_dims); + fprintf (out, "\t\t\t\n", + srid); + fprintf (out, + "\t\t\t\n"); + fprintf (out, + "\t\t\t\n", + report->n_invalids); + if (report->n_repaired > 0) + fprintf (out, + "\t\t\t\n", + report->n_repaired); + else + fprintf (out, + "\t\t\t\n"); + if (report->n_discarded > 0) + fprintf (out, + "\t\t\t\n", + report->n_discarded); + else + fprintf (out, + "\t\t\t\n"); + if (report->n_not_repaired > 0) + fprintf (out, + "\t\t\t\n", + report->n_not_repaired); + else + fprintf (out, + "\t\t\t\n"); + fprintf (out, + "\t\t\t\n"); + if (report->n_not_repaired > 0) + { + fprintf (out, + "\t\t\t\n", + tmp_table); + } + else if (report->n_discarded > 0) + { + fprintf (out, + "\t\t\t\n"); + } + else if (report->n_repaired > 0) + { + fprintf (out, + "\t\t\t\n"); + } + else + { + fprintf (out, + "\t\t\t\n"); + } + fprintf (out, "\t\t
    Table / Layer
    Table%s
    Geometry Column%s
    Geometry Type%s
    Dimensions%s
    SRID%d
    Statistics
    Invalid Geometries%d
    Repaired Geometries (fully recovered)%d
    Repaired Geometries (fully recovered)NONE
    Repaired Geometries (by discarding fragments)%d
    Repaired Geometries (by discarding fragments)NONE
    Failures (Not Repaired Geometries)%d
    Failures (Not Repaired Geometries)NONE
    Suggested Action
    This layer contains severly damaged Geometries (beyond any possible repair);
    "); + fprintf (out, + "please manually check the %s table.
    This layer contains valid but dubious Geometries;
    "); + fprintf (out, "a repair action is suggested.
    This layer has been succesfully repaired and is now completely valid;
    "); + fprintf (out, + "doesn't require any further corrective action.
    This layer already was completely valid;
    "); + fprintf (out, "no corrective action was applied.
    \n"); + + if (report->n_not_repaired != 0) + { + /* generating the NotRepaired sub-report */ + fprintf (out, "\t\t\t
    \n\t\t

    Not Repaired Geometries

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, ""); + fprintf (out, + "\n"); + p_r = report->first; + while (p_r) + { + if (p_r->repaired != 0) + { + p_r = p_r->next; + continue; + } + sprintf (num, FRMT64, p_r->rowid); + p_msg = "Unknown cause"; + if (p_r->error) + p_msg = p_r->error; + else if (p_r->warning) + p_msg = p_r->warning; + fprintf (out, + "\t\t\t\n", + num, p_msg); + p_r = p_r->next; + } + fprintf (out, "\t\t
    ROWIDStatusError Message
    %sNot Repaired (beyond possible repair)%s
    \n"); + } + + if (report->n_discarded != 0) + { + /* generating the DiscardedFragments sub-report */ + fprintf (out, + "\t\t\t
    \n\t\t

    Repaired Geometries (by discarding fragments)

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, ""); + fprintf (out, + "\n"); + p_r = report->first; + while (p_r) + { + if (p_r->summary == NULL) + { + p_r = p_r->next; + continue; + } + sprintf (num, FRMT64, p_r->rowid); + fprintf (out, + "\t\t\t\n", + num, p_r->summary); + p_r = p_r->next; + } + fprintf (out, "\t\t
    ROWIDStatusDiscarded fragments summary
    %sRepaired by discarding fragments%s
    \n"); + } + +/* generating the HTML footer */ + fprintf (out, "\t\n\n"); + + fclose (out); + +/* post-processing actions */ + if (report->n_invalids == 0) + { + /* we can immediately drop the tmp-table for sure */ + drop_tmp_table (sqlite, tmp_table); + } + if (report->n_repaired > 0 && report->n_discarded == 0 + && report->n_not_repaired == 0) + { + /* we can safely update all repaired geometries, then dropping the tmp_table */ + update_repaired (sqlite, table, geom, tmp_table, gtype, + report->repaired_type); + } + + if (n_invalids != NULL) + *n_invalids = report->n_invalids; + if (n_repaired != NULL) + *n_repaired = report->n_repaired; + if (n_discarded != NULL) + *n_discarded = report->n_discarded; + if (n_failures != NULL) + *n_failures = report->n_not_repaired; + free_sanitize_report (report); + return 1; + stop: + free_sanitize_report (report); + if (out) + fclose (out); + return 0; +} + +SPATIALITE_DECLARE int +sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, + const char *tmp_table, const char *report_path, + int *n_invalids, int *n_repaired, int *n_discarded, + int *n_failures, char **err_msg) +{ + return sanitize_geometry_column_common (NULL, sqlite, table, geom, + tmp_table, report_path, n_invalids, + n_repaired, n_discarded, n_failures, + err_msg); +} + +SPATIALITE_DECLARE int +sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite, + const char *table, const char *geom, + const char *tmp_table, const char *report_path, + int *n_invalids, int *n_repaired, int *n_discarded, + int *n_failures, char **err_msg) +{ + return sanitize_geometry_column_common (p_cache, sqlite, table, geom, + tmp_table, report_path, n_invalids, + n_repaired, n_discarded, n_failures, + err_msg); +} + +static int +sanitize_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite, + const char *tmp_prefix, + const char *output_dir, + int *x_not_repaired, char **err_msg) +{ +/* attempts to repair invalid Geometries from all Geometry Columns */ + const char *sql; + int ret; + int i; + char **results; + int rows; + int columns; + int n_invalids; + int n_repaired; + int n_discarded; + int n_failures; + char *report; + char *tmp_table; + FILE *out = NULL; + time_t v_time; + struct tm *v_tm; + const char *day; + const char *month; + int sum_not_repaired = 0; + + if (err_msg != NULL) + *err_msg = NULL; + +/* attempting to create the output directory */ +#if defined(_WIN32) + _mkdir (output_dir); +#else + mkdir (output_dir, 0777); +#endif + +/* opening the HTML report */ + report = sqlite3_mprintf ("%s/index.html", output_dir); + out = fopen (report, "wb"); + sqlite3_free (report); + if (out == NULL) + goto stop; + +/* generating the HTML header */ + fprintf (out, + "\n"); + fprintf (out, "\n\t\n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\tSpatiaLite Repair Geometries - All Tables\n"); + fprintf (out, "\t\t\n"); + fprintf (out, "\t\n\t\n"); + + time (&v_time); + v_tm = localtime (&v_time); + switch (v_tm->tm_wday) + { + case 0: + day = "Sun"; + break; + case 1: + day = "Mon"; + break; + case 2: + day = "Tue"; + break; + case 3: + day = "Wed"; + break; + case 4: + day = "Thu"; + break; + case 5: + day = "Fri"; + break; + case 6: + day = "Sat"; + break; + }; + switch (v_tm->tm_mon) + { + case 0: + month = "Jan"; + break; + case 1: + month = "Feb"; + break; + case 2: + month = "Mar"; + break; + case 3: + month = "Apr"; + break; + case 4: + month = "May"; + break; + case 5: + month = "Jun"; + break; + case 6: + month = "Jul"; + break; + case 7: + month = "Aug"; + break; + case 8: + month = "Sep"; + break; + case 9: + month = "Oct"; + break; + case 10: + month = "Nov"; + break; + case 11: + month = "Dec"; + break; + }; + fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
    \n", + v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, + v_tm->tm_min, v_tm->tm_sec); + fprintf (out, "\t\t

    SpatiaLite Repair Geometries

    \n"); + +/* table header */ + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, ""); + fprintf (out, ""); + fprintf (out, + ""); + fprintf (out, + ""); + fprintf (out, + ""); + fprintf (out, + ""); + fprintf (out, + "\n"); + + sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + goto stop; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *cls_1; + const char *cls_2; + const char *cls_msg; + const char *p_msg; + const char *table = results[(i * columns) + 0]; + const char *geom = results[(i * columns) + 1]; + report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); + tmp_table = + sqlite3_mprintf ("%s%s_%s", tmp_prefix, table, geom); + if (p_cache != NULL) + ret = + sanitize_geometry_column_r (p_cache, sqlite, table, + geom, tmp_table, report, + &n_invalids, &n_repaired, + &n_discarded, &n_failures, + err_msg); + else + ret = + sanitize_geometry_column (sqlite, table, geom, + tmp_table, report, + &n_invalids, &n_repaired, + &n_discarded, &n_failures, + err_msg); + sqlite3_free (report); + sqlite3_free (tmp_table); + fprintf (out, + "\t\t\t", + i); + fprintf (out, "", table, geom); + sum_not_repaired += n_failures; + if (n_invalids == 0) + { + p_msg = "NONE: this layer was already fully valid"; + cls_msg = "nil"; + } + else if (n_discarded == 0 && n_failures == 0) + { + p_msg = + "NONE: this layer has been succesfully sanitized and is now fully valid"; + cls_msg = "ok"; + } + else if (n_discarded == 0 && n_failures > 0) + { + p_msg = "Please check all discarded fragments"; + cls_msg = "wng"; + } + else + { + p_msg = + "Manually adjust all Geometries beyond possible repair, then retry"; + cls_msg = "err"; + } + if (n_repaired == 0) + cls_1 = "nil"; + else + cls_1 = "ok"; + fprintf (out, + "", + n_invalids, cls_1, n_repaired); + if (n_discarded == 0) + cls_1 = "nil"; + else + cls_1 = "wng"; + if (n_failures == 0) + cls_2 = "nil"; + else + cls_2 = "err"; + fprintf (out, + "", + cls_1, n_discarded, cls_2, n_failures); + fprintf (out, "\n", cls_msg, + p_msg); + } + } + sqlite3_free_table (results); + +/* generating the HTML footer */ + fprintf (out, "\t\t
    Show DetailsTableGeometryInvalid GeometriesRepaired GeometriesRepaired Geometries
    (by Discarding Fragments)
    Repair Failures
    (beyond possible repair)
    Suggested Action
    show%s%s%d%d%d%d%s
    \n\t\n\n"); + + fclose (out); + if (x_not_repaired != NULL) + *x_not_repaired = sum_not_repaired; + return 1; + stop: + return 0; +} + +SPATIALITE_DECLARE int +sanitize_all_geometry_columns (sqlite3 * sqlite, + const char *tmp_prefix, + const char *output_dir, int *x_not_repaired, + char **err_msg) +{ + return sanitize_all_geometry_columns_common (NULL, sqlite, tmp_prefix, + output_dir, x_not_repaired, + err_msg); +} + +SPATIALITE_DECLARE int +sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, + const char *tmp_prefix, + const char *output_dir, int *x_not_repaired, + char **err_msg) +{ + return sanitize_all_geometry_columns_common (p_cache, sqlite, tmp_prefix, + output_dir, x_not_repaired, + err_msg); +} + +#else /* LIBXML2 isn't enabled */ + +SPATIALITE_DECLARE int +sanitize_all_geometry_columns (sqlite3 * sqlite, + const char *tmp_prefix, + const char *output_dir, int *x_not_repaired, + char **err_msg) +{ +/* LWGEOM isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support MakeValid"; + +/* silencing stupid compiler warnings */ + if (sqlite == NULL || tmp_prefix == NULL || output_dir == NULL + || x_not_repaired == NULL) + tmp_prefix = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, + const char *tmp_prefix, + const char *output_dir, int *x_not_repaired, + char **err_msg) +{ +/* LWGEOM isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support MakeValid"; + +/* silencing stupid compiler warnings */ + if (p_cache == NULL || sqlite == NULL || tmp_prefix == NULL + || output_dir == NULL || x_not_repaired == NULL) + tmp_prefix = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, + const char *tmp_table, const char *report_path, + int *n_invalids, int *n_repaired, int *n_discarded, + int *n_failures, char **err_msg) +{ +/* LWGEOM isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support MakeValid"; + +/* silencing stupid compiler warnings */ + if (sqlite == NULL || table == NULL || geom == NULL || tmp_table == NULL + || report_path == NULL || n_invalids == NULL || n_repaired == NULL + || n_discarded == NULL || n_failures == NULL) + table = NULL; + + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite, + const char *table, const char *geom, + const char *tmp_table, const char *report_path, + int *n_invalids, int *n_repaired, int *n_discarded, + int *n_failures, char **err_msg) +{ +/* LWGEOM isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support MakeValid"; + +/* silencing stupid compiler warnings */ + if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL + || tmp_table == NULL || report_path == NULL || n_invalids == NULL + || n_repaired == NULL || n_discarded == NULL || n_failures == NULL) + table = NULL; + + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +#endif /* end LWGEOM conditionals */ + + +#ifndef OMIT_GEOS /* only if GEOS is supported */ + +static struct validity_report * +alloc_validity_report (void) +{ +/* allocating the report container struct */ + struct validity_report *p = malloc (sizeof (struct validity_report)); + p->first = NULL; + p->last = NULL; + p->n_rows = 0; + p->n_nullgeoms = 0; + p->n_valids = 0; + p->n_invalids = 0; + p->n_warnings = 0; + return p; +} + +static void +free_validity_report (struct validity_report *p) +{ +/* memory cleanup: freeing the report container struct */ + struct validity_report_row *r; + struct validity_report_row *rn; + r = p->first; + while (r) + { + rn = r->next; + if (r->warning != NULL) + free (r->warning); + if (r->error != NULL) + free (r->error); + if (r->extra != NULL) + free (r->extra); + free (r); + r = rn; + } + free (p); +} + +static void +addMessageToValidityReport (struct validity_report *report, sqlite3_int64 rowid, + int valid, const char *error, const char *warning, + const char *extra) +{ +/* adding a message to the report */ + int len; + struct validity_report_row *r = + malloc (sizeof (struct validity_report_row)); + r->rowid = rowid; + r->valid = valid; + r->error = NULL; + r->warning = NULL; + r->extra = NULL; + r->next = NULL; + if (error) + { + len = strlen (error); + r->error = malloc (len + 1); + strcpy (r->error, error); + } + if (warning) + { + len = strlen (warning); + r->warning = malloc (len + 1); + strcpy (r->warning, warning); + } + if (extra) + { + len = strlen (extra); + r->extra = malloc (len + 1); + strcpy (r->extra, extra); + } + if (!valid) + report->n_invalids += 1; + else + report->n_warnings += 1; + if (report->first == NULL) + report->first = r; + if (report->last != NULL) + report->last->next = r; + report->last = r; +} + +static int +check_geometry_column_common (const void *p_cache, sqlite3 * sqlite, + const char *table, const char *geom, + const char *report_path, int *n_rows, + int *n_invalids, char **err_msg) +{ +/* checks a Geometry Column for validity */ + char *sql; + char *xtable; + char *xgeom; + sqlite3_stmt *stmt; + int ret; + int gtype; + int srid; + const char *x_type; + const char *x_dims; + char num[256]; + time_t v_time; + struct tm *v_tm; + const char *day; + const char *month; + FILE *out = NULL; + const char *p_msg; + int len; + struct validity_report_row *p_r; + struct validity_report *report = alloc_validity_report (); + + if (err_msg != NULL) + *err_msg = NULL; + + if (!check_table_column (sqlite, table, geom, >ype, &srid)) + { + spatialite_e ("check_geometry_column error: <%s>\n" + "Not defined in \"geometry_columns\"", table); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("check_geometry_column error: <%s><%s>\n" + "Not defined in \"geometry_columns\"", + table, geom); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* decoding Geometry Type and Dimensions */ + switch (gtype) + { + case 0: + x_type = "GEOMETRY"; + x_dims = "XY"; + break; + case 1000: + x_type = "GEOMETRY"; + x_dims = "XYZ"; + break; + case 2000: + x_type = "GEOMETRY"; + x_dims = "XYM"; + break; + case 3000: + x_type = "GEOMETRY"; + x_dims = "XYZM"; + break; + case 1: + x_type = "POINT"; + x_dims = "XY"; + break; + case 1001: + x_type = "POINT"; + x_dims = "XYZ"; + break; + case 2001: + x_type = "POINT"; + x_dims = "XYM"; + break; + case 3001: + x_type = "POINT"; + x_dims = "XYZM"; + break; + case 2: + x_type = "LINESTRING"; + x_dims = "XY"; + break; + case 1002: + x_type = "LINESTRING"; + x_dims = "XYZ"; + break; + case 2002: + x_type = "LINESTRING"; + x_dims = "XYM"; + break; + case 3002: + x_type = "LINESTRING"; + x_dims = "XYZM"; + break; + case 3: + x_type = "POLYGON"; + x_dims = "XY"; + break; + case 1003: + x_type = "POLYGON"; + x_dims = "XYZ"; + break; + case 2003: + x_type = "POLYGON"; + x_dims = "XYM"; + break; + case 3003: + x_type = "POLYGON"; + x_dims = "XYZM"; + break; + case 4: + x_type = "MULTIPOINT"; + x_dims = "XY"; + break; + case 1004: + x_type = "MULTIPOINT"; + x_dims = "XYZ"; + break; + case 2004: + x_type = "MULTIPOINT"; + x_dims = "XYM"; + break; + case 3004: + x_type = "MULTIPOINT"; + x_dims = "XYZM"; + break; + case 5: + x_type = "MULTILINESTRING"; + x_dims = "XY"; + break; + case 1005: + x_type = "MULTILINESTRING"; + x_dims = "XYZ"; + break; + case 2005: + x_type = "MULTILINESTRING"; + x_dims = "XYM"; + break; + case 3005: + x_type = "MULTILINESTRING"; + x_dims = "XYZM"; + break; + case 6: + x_type = "MULTIPOLYGON"; + x_dims = "XY"; + break; + case 1006: + x_type = "MULTIPOLYGON"; + x_dims = "XYZ"; + break; + case 2006: + x_type = "MULTIPOLYGON"; + x_dims = "XYM"; + break; + case 3006: + x_type = "MULTIPOLYGON"; + x_dims = "XYZM"; + break; + case 7: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XY"; + break; + case 1007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYZ"; + break; + case 2007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYM"; + break; + case 3007: + x_type = "GEOMETRYCOLLECTION"; + x_dims = "XYZM"; + break; + default: + x_type = "UNKNOWN"; + x_dims = "UNKNOWN"; + break; + }; + + xtable = gaiaDoubleQuotedSql (table); + xgeom = gaiaDoubleQuotedSql (geom); + sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); + free (xtable); + free (xgeom); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + goto stop; + } + +/* opening the HTML report */ + out = fopen (report_path, "wb"); + if (out == NULL) + goto stop; + + while (1) + { + /* scrolling the result set */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* processing one row from the resultset */ + gaiaGeomCollPtr geom = NULL; + sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); + report->n_rows += 1; + if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) + { + const unsigned char *blob = sqlite3_column_blob (stmt, 1); + int n_bytes = sqlite3_column_bytes (stmt, 1); + geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); + } + if (geom) + { + /* checking a geometry for validity */ + int valid; + const char *error; + const char *warning; + const char *extra; + if (p_cache != NULL) + { + gaiaResetGeosMsg_r (p_cache); + valid = gaiaIsValid_r (p_cache, geom); + error = gaiaGetGeosErrorMsg_r (p_cache); + warning = gaiaGetGeosWarningMsg_r (p_cache); + extra = gaiaGetGeosAuxErrorMsg_r (p_cache); + } + else + { + gaiaResetGeosMsg (); + valid = gaiaIsValid (geom); + error = gaiaGetGeosErrorMsg (); + warning = gaiaGetGeosWarningMsg (); + extra = gaiaGetGeosAuxErrorMsg (); + } + if (!valid || error || warning) + addMessageToValidityReport (report, rowid, valid, + error, warning, extra); + else + report->n_valids += 1; + gaiaFreeGeomColl (geom); + } + else + report->n_nullgeoms += 1; + } + else + { + spatialite_e ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + if (err_msg != NULL) + { + char *msg = + sqlite3_mprintf + ("check_geometry_column error: <%s>\n", + sqlite3_errmsg (sqlite)); + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + sqlite3_free (msg); + } + break; + } + } + sqlite3_finalize (stmt); + +/* generating the HTML header */ + fprintf (out, + "\n"); + fprintf (out, "\n\t\n"); + fprintf (out, + "\t\t\n"); + fprintf (out, "\t\tSpatiaLite Validity Check - Table: %s\n", + table); + fprintf (out, "\t\t\n"); + fprintf (out, "\t\n\t\n"); + + time (&v_time); + v_tm = localtime (&v_time); + switch (v_tm->tm_wday) + { + case 0: + day = "Sun"; + break; + case 1: + day = "Mon"; + break; + case 2: + day = "Tue"; + break; + case 3: + day = "Wed"; + break; + case 4: + day = "Thu"; + break; + case 5: + day = "Fri"; + break; + case 6: + day = "Sat"; + break; + }; + switch (v_tm->tm_mon) + { + case 0: + month = "Jan"; + break; + case 1: + month = "Feb"; + break; + case 2: + month = "Mar"; + break; + case 3: + month = "Apr"; + break; + case 4: + month = "May"; + break; + case 5: + month = "Jun"; + break; + case 6: + month = "Jul"; + break; + case 7: + month = "Aug"; + break; + case 8: + month = "Sep"; + break; + case 9: + month = "Oct"; + break; + case 10: + month = "Nov"; + break; + case 11: + month = "Dec"; + break; + }; + fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
    \n", + v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, + v_tm->tm_min, v_tm->tm_sec); + fprintf (out, "\t\t

    SpatiaLite Validity Check

    \n"); + +/* generating the summary sub-report */ + fprintf (out, "\t\t

    Summary

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t\n"); + fprintf (out, "\t\t\t\n", table); + fprintf (out, "\t\t\t\n", geom); + fprintf (out, "\t\t\t\n", x_type); + fprintf (out, "\t\t\t\n", x_dims); + fprintf (out, "\t\t\t\n", + srid); + fprintf (out, + "\t\t\t\n"); + fprintf (out, + "\t\t\t\n", + report->n_rows); + if (report->n_nullgeoms > 0) + fprintf (out, + "\t\t\t\n", + report->n_nullgeoms); + else + fprintf (out, + "\t\t\t\n"); + fprintf (out, + "\t\t\t\n", + report->n_valids); + if (report->n_warnings > 0) + fprintf (out, + "\t\t\t\n", + report->n_warnings); + else + fprintf (out, + "\t\t\t\n"); + if (report->n_invalids > 0) + fprintf (out, + "\t\t\t\n", + report->n_invalids); + else + fprintf (out, + "\t\t\t\n"); + fprintf (out, + "\t\t\t\n"); + if (report->n_invalids > 0) + { + fprintf (out, + "\t\t\t\n"); + } + else if (report->n_warnings > 0) + { + fprintf (out, + "\t\t\t\n"); + } + else + { + fprintf (out, + "\t\t\t\n"); + } + fprintf (out, "\t\t
    Table / Layer
    Table%s
    Geometry Column%s
    Geometry Type%s
    Dimensions%s
    SRID%d
    Statistics
    Total Rows%d
    NULL Geometries%d
    NULL GeometriesNONE
    Valid Geometries (full valid)%d
    Valid Geometries (minor issues)%d
    Valid Geometries (minor issues)NONE
    Invalid Geometries%d
    Invalid GeometriesNONE
    Suggested Action
    This layer contains invalid Geometries;
    "); + fprintf (out, "a repair action is urgently required.
    This layer contains valid but dubious Geometries;
    "); + fprintf (out, "a repair action is suggested.
    This layer is perfectly valid;
    "); + fprintf (out, "doesn't require any corrective action.
    \n"); + + if (report->n_invalids > 0) + { + /* generating the errors sub-report */ + fprintf (out, "\t\t\t
    \n\t\t

    Invalid Geometries List

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, + "\n"); + p_r = report->first; + while (p_r) + { + if (p_r->valid != 0) + { + p_r = p_r->next; + continue; + } + sprintf (num, FRMT64, p_r->rowid); + p_msg = "Unknown cause"; + if (p_r->error) + p_msg = p_r->error; + else if (p_r->warning) + p_msg = p_r->warning; + else if (p_r->extra) + p_msg = p_r->extra; + fprintf (out, + "\t\t\t\n", + num, p_msg); + p_r = p_r->next; + } + fprintf (out, "\t\t
    ROWIDError Cause
    %s%s
    \n"); + } + + if (report->n_warnings > 0) + { + /* generating the warnings sub-report */ + fprintf (out, + "\t\t\t
    \n\t\t

    Valid Geometries List (anyway presenting some minor issue)

    \n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, + "\n"); + p_r = report->first; + while (p_r) + { + if (p_r->valid != 1) + { + p_r = p_r->next; + continue; + } + sprintf (num, FRMT64, p_r->rowid); + p_msg = "Unknown cause"; + if (p_r->error) + p_msg = p_r->error; + else if (p_r->warning) + p_msg = p_r->warning; + fprintf (out, + "\t\t\t\n", + num, p_msg); + p_r = p_r->next; + } + fprintf (out, "\t\t
    ROWIDWarning Cause
    %s%s
    \n"); + } + +/* generating the HTML footer */ + fprintf (out, "\t\n\n"); + + fclose (out); + if (n_rows != NULL) + *n_rows = report->n_rows; + if (n_invalids != NULL) + *n_invalids = report->n_invalids; + free_validity_report (report); + return 1; + stop: + free_validity_report (report); + if (out) + fclose (out); + return 0; +} + +SPATIALITE_DECLARE int +check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, + const char *report_path, int *n_rows, int *n_invalids, + char **err_msg) +{ + return check_geometry_column_common (NULL, sqlite, table, geom, report_path, + n_rows, n_invalids, err_msg); +} + +SPATIALITE_DECLARE int +check_geometry_column_r (const void *p_cache, sqlite3 * sqlite, + const char *table, const char *geom, + const char *report_path, int *n_rows, int *n_invalids, + char **err_msg) +{ + return check_geometry_column_common (p_cache, sqlite, table, geom, + report_path, n_rows, n_invalids, + err_msg); +} + +static int +check_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite, + const char *output_dir, int *x_invalids, + char **err_msg) +{ +/* checks all Geometry Columns for validity */ + const char *sql; + int ret; + int i; + char **results; + int rows; + int columns; + int n_rows; + int n_invalids; + char *report; + FILE *out = NULL; + time_t v_time; + struct tm *v_tm; + const char *day; + const char *month; + int sum_invalids = 0; + +/* attempting to create the output directory */ +#if defined(_WIN32) + _mkdir (output_dir); +#else + mkdir (output_dir, 0777); +#endif + + if (err_msg != NULL) + *err_msg = NULL; + +/* opening the HTML report */ + report = sqlite3_mprintf ("%s/index.html", output_dir); + out = fopen (report, "wb"); + sqlite3_free (report); + if (out == NULL) + goto stop; + +/* generating the HTML header */ + fprintf (out, + "\n"); + fprintf (out, "\n\t\n"); + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\tSpatiaLite Validity Check - All Tables\n"); + fprintf (out, "\t\t\n"); + fprintf (out, "\t\n\t\n"); + + time (&v_time); + v_tm = localtime (&v_time); + switch (v_tm->tm_wday) + { + case 0: + day = "Sun"; + break; + case 1: + day = "Mon"; + break; + case 2: + day = "Tue"; + break; + case 3: + day = "Wed"; + break; + case 4: + day = "Thu"; + break; + case 5: + day = "Fri"; + break; + case 6: + day = "Sat"; + break; + }; + switch (v_tm->tm_mon) + { + case 0: + month = "Jan"; + break; + case 1: + month = "Feb"; + break; + case 2: + month = "Mar"; + break; + case 3: + month = "Apr"; + break; + case 4: + month = "May"; + break; + case 5: + month = "Jun"; + break; + case 6: + month = "Jul"; + break; + case 7: + month = "Aug"; + break; + case 8: + month = "Sep"; + break; + case 9: + month = "Oct"; + break; + case 10: + month = "Nov"; + break; + case 11: + month = "Dec"; + break; + }; + fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
    \n", + v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, + v_tm->tm_min, v_tm->tm_sec); + fprintf (out, "\t\t

    SpatiaLite Validity Check

    \n"); + +/* table header */ + fprintf (out, + "\t\t\n"); + fprintf (out, + "\t\t\t"); + fprintf (out, ""); + fprintf (out, ""); + fprintf (out, ""); + fprintf (out, + ""); + fprintf (out, + "\n"); + + sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + goto stop; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + const char *table = results[(i * columns) + 0]; + const char *geom = results[(i * columns) + 1]; + report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); + if (p_cache != NULL) + ret = + check_geometry_column_r (p_cache, sqlite, table, geom, + report, &n_rows, &n_invalids, + err_msg); + else + ret = + check_geometry_column (sqlite, table, geom, report, + &n_rows, &n_invalids, err_msg); + sqlite3_free (report); + fprintf (out, + "\t\t\t", + i); + fprintf (out, "", table, geom); + sum_invalids += n_invalids; + if (n_invalids == 0) + { + fprintf (out, + "", + n_rows, n_invalids); + fprintf (out, + "\n"); + } + else + { + fprintf (out, + "", + n_rows, n_invalids); + fprintf (out, + "\n"); + } + } + } + sqlite3_free_table (results); + +/* generating the HTML footer */ + fprintf (out, "\t\t
    Show DetailsTableGeometryTotal RowsInvalid GeometriesSuggested Action
    show%s%s%d%dNONE: this layer is fully valid
    %d%dRepairing this layer is urgently required
    \n\t\n\n"); + + fclose (out); + if (x_invalids != NULL) + *x_invalids = sum_invalids; + return 1; + stop: + return 0; +} + +SPATIALITE_DECLARE int +check_all_geometry_columns (sqlite3 * sqlite, + const char *output_dir, int *x_invalids, + char **err_msg) +{ + return check_all_geometry_columns_common (NULL, sqlite, output_dir, + x_invalids, err_msg); +} + +SPATIALITE_DECLARE int +check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, + const char *output_dir, int *x_invalids, + char **err_msg) +{ + return check_all_geometry_columns_common (p_cache, sqlite, output_dir, + x_invalids, err_msg); +} + +#else + +SPATIALITE_DECLARE int +check_all_geometry_columns (sqlite3 * sqlite, + const char *output_dir, int *x_invalids, + char **err_msg) +{ +/* GEOS isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support IsValid"; +/* silencing stupid compiler warnings */ + if (sqlite == NULL || output_dir == NULL || x_invalids == NULL) + output_dir = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, + const char *output_dir, int *x_invalids, + char **err_msg) +{ +/* GEOS isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" + "and is thus unable to support IsValid"; +/* silencing stupid compiler warnings */ + if (p_cache == NULL || sqlite == NULL || output_dir == NULL + || x_invalids == NULL) + output_dir = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +check_geometry_column (sqlite3 * sqlite, + const char *table, + const char *geom, + const char *report_path, + int *n_rows, int *n_invalids, char **err_msg) +{ +/* GEOS isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling GEOS\n" + "and is thus unable to support IsValid"; + +/* silencing stupid compiler warnings */ + if (sqlite == NULL || table == NULL || geom == NULL || + report_path == NULL || n_rows == NULL || n_invalids == NULL) + table = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE int +check_geometry_column_r (const void *p_cache, sqlite3 * sqlite, + const char *table, + const char *geom, + const char *report_path, + int *n_rows, int *n_invalids, char **err_msg) +{ +/* GEOS isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling GEOS\n" + "and is thus unable to support IsValid"; + +/* silencing stupid compiler warnings */ + if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL || + report_path == NULL || n_rows == NULL || n_invalids == NULL) + table = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +#endif /* end GEOS conditionals */ diff --git a/src/spatialite/src/spatialite/Makefile.am b/src/spatialite/src/spatialite/Makefile.am index 48c80d7..a87ad04 100644 --- a/src/spatialite/src/spatialite/Makefile.am +++ b/src/spatialite/src/spatialite/Makefile.am @@ -1,20 +1,36 @@ -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libsplite.la +noinst_LTLIBRARIES = libsplite.la splite.la -libsplite_la_SOURCES = mbrcache.c \ +SPATIALITE_COMMON_SOURCES = mbrcache.c \ spatialite.c \ + spatialite_init.c \ metatables.c \ statistics.c \ + extra_tables.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ + virtualgpkg.c \ + virtualbbox.c \ virtualspatialindex.c \ virtualnetwork.c \ - virtualshape.c + virtualshape.c \ + virtualxpath.c + +libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) libsplite_la_CFLAGS = -fvisibility=hidden +splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) + +splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ +splite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +splite_la_CPPFLAGS += -DLOADABLE_EXTENSION +splite_la_CPPFLAGS += -fvisibility=hidden +splite_la_LDFLAGS = -module +splite_la_LIBTOOLFLAGS = --tag=disable-static + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/spatialite/Makefile.in b/src/spatialite/src/spatialite/Makefile.in index 694bb06..7db32bd 100644 --- a/src/spatialite/src/spatialite/Makefile.in +++ b/src/spatialite/src/spatialite/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/spatialite -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -66,41 +94,102 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsplite_la_LIBADD = -am_libsplite_la_OBJECTS = libsplite_la-mbrcache.lo \ - libsplite_la-spatialite.lo libsplite_la-metatables.lo \ - libsplite_la-statistics.lo libsplite_la-virtualdbf.lo \ - libsplite_la-virtualXL.lo libsplite_la-virtualfdo.lo \ +am__objects_1 = libsplite_la-mbrcache.lo libsplite_la-spatialite.lo \ + libsplite_la-spatialite_init.lo libsplite_la-metatables.lo \ + libsplite_la-statistics.lo libsplite_la-extra_tables.lo \ + libsplite_la-virtualdbf.lo libsplite_la-virtualXL.lo \ + libsplite_la-virtualfdo.lo libsplite_la-virtualgpkg.lo \ + libsplite_la-virtualbbox.lo \ libsplite_la-virtualspatialindex.lo \ - libsplite_la-virtualnetwork.lo libsplite_la-virtualshape.lo + libsplite_la-virtualnetwork.lo libsplite_la-virtualshape.lo \ + libsplite_la-virtualxpath.lo +am_libsplite_la_OBJECTS = $(am__objects_1) libsplite_la_OBJECTS = $(am_libsplite_la_OBJECTS) -libsplite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libsplite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsplite_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +splite_la_LIBADD = +am__objects_2 = splite_la-mbrcache.lo splite_la-spatialite.lo \ + splite_la-spatialite_init.lo splite_la-metatables.lo \ + splite_la-statistics.lo splite_la-extra_tables.lo \ + splite_la-virtualdbf.lo splite_la-virtualXL.lo \ + splite_la-virtualfdo.lo splite_la-virtualgpkg.lo \ + splite_la-virtualbbox.lo splite_la-virtualspatialindex.lo \ + splite_la-virtualnetwork.lo splite_la-virtualshape.lo \ + splite_la-virtualxpath.lo +am_splite_la_OBJECTS = $(am__objects_2) +splite_la_OBJECTS = $(am_splite_la_OBJECTS) +splite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(splite_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libsplite_la_SOURCES) -DIST_SOURCES = $(libsplite_la_SOURCES) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES) +DIST_SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -142,6 +231,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -163,6 +254,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -222,20 +316,33 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libsplite.la -libsplite_la_SOURCES = mbrcache.c \ +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libsplite.la splite.la +SPATIALITE_COMMON_SOURCES = mbrcache.c \ spatialite.c \ + spatialite_init.c \ metatables.c \ statistics.c \ + extra_tables.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ + virtualgpkg.c \ + virtualbbox.c \ virtualspatialindex.c \ virtualnetwork.c \ - virtualshape.c + virtualshape.c \ + virtualxpath.c +libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) libsplite_la_CFLAGS = -fvisibility=hidden +splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) +splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION \ + -fvisibility=hidden +splite_la_LDFLAGS = -module +splite_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am @@ -274,14 +381,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libsplite.la: $(libsplite_la_OBJECTS) $(libsplite_la_DEPENDENCIES) $(EXTRA_libsplite_la_DEPENDENCIES) - $(libsplite_la_LINK) $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libsplite_la_LINK) $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS) + +splite.la: $(splite_la_OBJECTS) $(splite_la_DEPENDENCIES) $(EXTRA_splite_la_DEPENDENCIES) + $(AM_V_CCLD)$(splite_la_LINK) $(splite_la_OBJECTS) $(splite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -289,107 +402,267 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-extra_tables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-mbrcache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-metatables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite_init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-statistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualXL.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualbbox.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualdbf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualfdo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualgpkg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualnetwork.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualshape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualspatialindex.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualxpath.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-extra_tables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-mbrcache.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-metatables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-spatialite.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-spatialite_init.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-statistics.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualXL.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualbbox.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualdbf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualfdo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualgpkg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualnetwork.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualshape.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualspatialindex.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualxpath.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libsplite_la-mbrcache.lo: mbrcache.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c libsplite_la-spatialite.lo: spatialite.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c + +libsplite_la-spatialite_init.lo: spatialite_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite_init.Tpo -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite_init.Tpo $(DEPDIR)/libsplite_la-spatialite_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite_init.c' object='libsplite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c libsplite_la-metatables.lo: metatables.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c libsplite_la-statistics.lo: statistics.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c + +libsplite_la-extra_tables.lo: extra_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-extra_tables.Tpo -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-extra_tables.Tpo $(DEPDIR)/libsplite_la-extra_tables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extra_tables.c' object='libsplite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c libsplite_la-virtualdbf.lo: virtualdbf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c libsplite_la-virtualXL.lo: virtualXL.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c libsplite_la-virtualfdo.lo: virtualfdo.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c + +libsplite_la-virtualgpkg.lo: virtualgpkg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualgpkg.Tpo -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualgpkg.Tpo $(DEPDIR)/libsplite_la-virtualgpkg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualgpkg.c' object='libsplite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c + +libsplite_la-virtualbbox.lo: virtualbbox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualbbox.Tpo -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualbbox.Tpo $(DEPDIR)/libsplite_la-virtualbbox.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualbbox.c' object='libsplite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c libsplite_la-virtualspatialindex.lo: virtualspatialindex.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c libsplite_la-virtualnetwork.lo: virtualnetwork.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c libsplite_la-virtualshape.lo: virtualshape.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c + +libsplite_la-virtualxpath.lo: virtualxpath.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualxpath.Tpo -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualxpath.Tpo $(DEPDIR)/libsplite_la-virtualxpath.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualxpath.c' object='libsplite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c + +splite_la-mbrcache.lo: mbrcache.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/splite_la-mbrcache.Tpo -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-mbrcache.Tpo $(DEPDIR)/splite_la-mbrcache.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrcache.c' object='splite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c + +splite_la-spatialite.lo: spatialite.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite.Tpo -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite.Tpo $(DEPDIR)/splite_la-spatialite.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite.c' object='splite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c + +splite_la-spatialite_init.lo: spatialite_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite_init.Tpo -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite_init.Tpo $(DEPDIR)/splite_la-spatialite_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite_init.c' object='splite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c + +splite_la-metatables.lo: metatables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-metatables.lo -MD -MP -MF $(DEPDIR)/splite_la-metatables.Tpo -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-metatables.Tpo $(DEPDIR)/splite_la-metatables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='metatables.c' object='splite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c + +splite_la-statistics.lo: statistics.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-statistics.lo -MD -MP -MF $(DEPDIR)/splite_la-statistics.Tpo -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-statistics.Tpo $(DEPDIR)/splite_la-statistics.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statistics.c' object='splite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c + +splite_la-extra_tables.lo: extra_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/splite_la-extra_tables.Tpo -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-extra_tables.Tpo $(DEPDIR)/splite_la-extra_tables.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extra_tables.c' object='splite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c + +splite_la-virtualdbf.lo: virtualdbf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualdbf.Tpo -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualdbf.Tpo $(DEPDIR)/splite_la-virtualdbf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualdbf.c' object='splite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c + +splite_la-virtualXL.lo: virtualXL.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualXL.Tpo -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualXL.Tpo $(DEPDIR)/splite_la-virtualXL.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualXL.c' object='splite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c + +splite_la-virtualfdo.lo: virtualfdo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualfdo.Tpo -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualfdo.Tpo $(DEPDIR)/splite_la-virtualfdo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualfdo.c' object='splite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c + +splite_la-virtualgpkg.lo: virtualgpkg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualgpkg.Tpo -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualgpkg.Tpo $(DEPDIR)/splite_la-virtualgpkg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualgpkg.c' object='splite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c + +splite_la-virtualbbox.lo: virtualbbox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualbbox.Tpo -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualbbox.Tpo $(DEPDIR)/splite_la-virtualbbox.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualbbox.c' object='splite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c + +splite_la-virtualspatialindex.lo: virtualspatialindex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualspatialindex.Tpo -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualspatialindex.Tpo $(DEPDIR)/splite_la-virtualspatialindex.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualspatialindex.c' object='splite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c + +splite_la-virtualnetwork.lo: virtualnetwork.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualnetwork.Tpo -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualnetwork.Tpo $(DEPDIR)/splite_la-virtualnetwork.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualnetwork.c' object='splite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c + +splite_la-virtualshape.lo: virtualshape.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualshape.Tpo -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualshape.Tpo $(DEPDIR)/splite_la-virtualshape.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualshape.c' object='splite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c + +splite_la-virtualxpath.lo: virtualxpath.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualxpath.Tpo -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualxpath.Tpo $(DEPDIR)/splite_la-virtualxpath.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualxpath.c' object='splite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c mostlyclean-libtool: -rm -f *.lo @@ -397,26 +670,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -428,15 +690,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -445,6 +703,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -587,18 +860,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/spatialite/extra_tables.c b/src/spatialite/src/spatialite/extra_tables.c new file mode 100644 index 0000000..f2e1dad --- /dev/null +++ b/src/spatialite/src/spatialite/extra_tables.c @@ -0,0 +1,4428 @@ +/* + + extra_tables.c -- Creating all SLD/SE and ISO Metadata extra tables + + version 4.0, 2013 February 16 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +/* + +CREDITS: + +this module has been partly funded by: +Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale +(implementing XML support - ISO Metadata and SLD/SE Styles) + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include + +#ifdef _WIN32 +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +static int +check_splite_metacatalog (sqlite3 * sqlite) +{ +/* checks if "splite_metacatalog" really exists */ + int table_name = 0; + int column_name = 0; + int table_name2 = 0; + int column_name2 = 0; + int value = 0; + int count = 0; + char sql[1024]; + int ret; + const char *name; + int i; + char **results; + int rows; + int columns; +/* checking the "splite_metacatalog" table */ + strcpy (sql, "PRAGMA table_info(splite_metacatalog)"); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "table_name") == 0) + table_name = 1; + if (strcasecmp (name, "column_name") == 0) + column_name = 1; + } + } + sqlite3_free_table (results); +/* checking the "splite_metacatalog_statistics" table */ + strcpy (sql, "PRAGMA table_info(splite_metacatalog_statistics)"); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "table_name") == 0) + table_name2 = 1; + if (strcasecmp (name, "column_name") == 0) + column_name2 = 1; + if (strcasecmp (name, "value") == 0) + value = 1; + if (strcasecmp (name, "count") == 0) + count = 1; + } + } + sqlite3_free_table (results); + if (table_name && column_name && table_name2 && column_name2 && value + && count) + return 1; + return 0; +} + +static int +metacatalog_statistics (sqlite3 * sqlite, sqlite3_stmt * stmt_out, + sqlite3_stmt * stmt_del, const char *table, + const char *column) +{ +/* auxiliary - updating "splite_metacatalog_statistics" */ + char *xtable; + char *xcolumn; + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + + xtable = gaiaDoubleQuotedSql (table); + xcolumn = gaiaDoubleQuotedSql (column); + sql_statement = sqlite3_mprintf ("SELECT \"%s\", Count(*) FROM \"%s\" " + "GROUP BY \"%s\"", xcolumn, xtable, + xcolumn); + free (xcolumn); + free (xtable); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("Update MetaCatalog Statistics(4) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + +/* deleting all existing rows */ + sqlite3_reset (stmt_del); + sqlite3_clear_bindings (stmt_del); + sqlite3_bind_text (stmt_del, 1, table, strlen (table), SQLITE_STATIC); + sqlite3_bind_text (stmt_del, 2, column, strlen (column), SQLITE_STATIC); + ret = sqlite3_step (stmt_del); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("populate MetaCatalog Statistics(5) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt_in); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + sqlite3_reset (stmt_out); + sqlite3_clear_bindings (stmt_out); + sqlite3_bind_text (stmt_out, 1, table, strlen (table), + SQLITE_STATIC); + sqlite3_bind_text (stmt_out, 2, column, strlen (column), + SQLITE_STATIC); + switch (sqlite3_column_type (stmt_in, 0)) + { + case SQLITE_INTEGER: + sqlite3_bind_int64 (stmt_out, 3, + sqlite3_column_int (stmt_in, 0)); + break; + case SQLITE_FLOAT: + sqlite3_bind_double (stmt_out, 3, + sqlite3_column_double (stmt_in, 0)); + break; + case SQLITE_TEXT: + sqlite3_bind_text (stmt_out, 3, + (const char *) + sqlite3_column_text (stmt_in, 0), + sqlite3_column_bytes (stmt_in, 0), + SQLITE_STATIC); + break; + case SQLITE_BLOB: + sqlite3_bind_blob (stmt_out, 3, + sqlite3_column_blob (stmt_in, 0), + sqlite3_column_bytes (stmt_in, 0), + SQLITE_STATIC); + break; + default: + sqlite3_bind_null (stmt_out, 3); + break; + }; + sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 1)); + ret = sqlite3_step (stmt_out); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e + ("populate MetaCatalog Statistics(6) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt_in); + return 0; + } + } + } + sqlite3_finalize (stmt_in); + + return 1; +} + +SPATIALITE_DECLARE int +gaiaUpdateMetaCatalogStatistics (sqlite3 * sqlite, const char *table, + const char *column) +{ +/* Updates the "splite_metacalog_statistics" table */ + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + sqlite3_stmt *stmt_out; + sqlite3_stmt *stmt_del; + + if (!check_splite_metacatalog (sqlite)) + { + spatialite_e + ("invalid or not existing \"splite_metacatalog_statistics\" table\n"); + return 0; + } + +/* updating the MetaCatalog statistics */ + sql_statement = sqlite3_mprintf ("SELECT table_name, column_name " + "FROM splite_metacatalog WHERE " + "Lower(table_name) = Lower(%Q) " + "AND Lower(column_name) = Lower(%Q)", + table, column); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("Update MetaCatalog Statistics(1) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + sql_statement = "INSERT INTO splite_metacatalog_statistics " + "(table_name, column_name, value, count) " "VALUES (?, ?, ?, ?)"; + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_out, NULL); + if (ret != SQLITE_OK) + { + sqlite3_finalize (stmt_in); + spatialite_e ("Update MetaCatalog Statistics(2) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + sql_statement = "DELETE FROM splite_metacatalog_statistics " + "WHERE Lower(table_name) = Lower(?) AND Lower(column_name) = Lower(?)"; + ret = + sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_del, NULL); + if (ret != SQLITE_OK) + { + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + spatialite_e ("Update MetaCatalog Statistics(3) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *table = + (const char *) sqlite3_column_text (stmt_in, 0); + const char *column = + (const char *) sqlite3_column_text (stmt_in, 1); + if (!metacatalog_statistics + (sqlite, stmt_out, stmt_del, table, column)) + { + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + sqlite3_finalize (stmt_del); + return 0; + } + } + } + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + sqlite3_finalize (stmt_del); + return 1; +} + +static int +check_master_table (sqlite3 * sqlite, const char *master_table, + const char *table, const char *column) +{ +/* checks if the Master Table could be accessed */ + int table_name = 0; + int column_name = 0; + char *sql; + int ret; + char *xmaster; + const char *name; + int i; + char **results; + int rows; + int columns; +/* checking the Master table */ + xmaster = gaiaDoubleQuotedSql (master_table); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xmaster); + free (xmaster); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, table) == 0) + table_name = 1; + if (strcasecmp (name, column) == 0) + column_name = 1; + } + } + sqlite3_free_table (results); + if (table_name && column_name) + return 1; + return 0; +} + +SPATIALITE_DECLARE int +gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 * sqlite, + const char *master_table, + const char *table_name, + const char *column_name) +{ +/* Updates the "splite_metacalog_statistics" table (using a Master Table) */ + int ret; + char *sql_statement; + sqlite3_stmt *stmt; + char *xmaster; + char *xtable; + char *xcolumn; + if (!check_master_table (sqlite, master_table, table_name, column_name)) + { + spatialite_e + ("UpdateMetaCatalogStatisticsFromMaster: mismatching or not existing Master Table\n"); + return 0; + } + +/* scanning the Master Table */ + xmaster = gaiaDoubleQuotedSql (master_table); + xtable = gaiaDoubleQuotedSql (table_name); + xcolumn = gaiaDoubleQuotedSql (column_name); + sql_statement = + sqlite3_mprintf ("SELECT \"%s\", \"%s\" FROM \"%s\"", xtable, xcolumn, + xmaster); + free (xmaster); + free (xtable); + free (xcolumn); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e + ("UpdateMetaCatalogStatisticsFromMaster(1) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *table = + (const char *) sqlite3_column_text (stmt, 0); + const char *column = + (const char *) sqlite3_column_text (stmt, 1); + if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column)) + { + sqlite3_finalize (stmt); + return 0; + } + } + } + sqlite3_finalize (stmt); + return 1; +} + +static int +check_unique_index (sqlite3 * sqlite, const char *index, const char *column) +{ +/* checks if a column has any Unique constraint - pass two */ + char *xindex; + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + int is_unique = 0; + int index_parts = 0; + + xindex = gaiaDoubleQuotedSql (index); + sql_statement = sqlite3_mprintf ("PRAGMA index_info(\"%s\")", xindex); + free (xindex); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("populate MetaCatalog(8) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *colname = + (const char *) sqlite3_column_text (stmt_in, 2); + if (strcasecmp (colname, column) == 0) + is_unique = 1; + index_parts++; + } + } + sqlite3_finalize (stmt_in); + + if (index_parts > 1) + { + /* ignoring any multi-column index */ + is_unique = 0; + } + return is_unique; +} + +static int +check_unique (sqlite3 * sqlite, const char *table, const char *column) +{ +/* checks if a column has any Unique constraint */ + char *xtable; + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + int is_unique = 0; + + xtable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable); + free (xtable); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("populate MetaCatalog(7) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *idxname = + (const char *) sqlite3_column_text (stmt_in, 1); + if (sqlite3_column_int (stmt_in, 2) == 1) + { + /* Unique Index */ + if (check_unique_index (sqlite, idxname, column)) + is_unique = 1; + } + } + } + sqlite3_finalize (stmt_in); + + return is_unique; +} + +static int +check_foreign_key (sqlite3 * sqlite, const char *table, const char *column) +{ +/* checks if a column is part of any Foreign Key */ + char *xtable; + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + int is_foreign_key = 0; + + xtable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("PRAGMA foreign_key_list(\"%s\")", xtable); + free (xtable); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("populate MetaCatalog(6) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *colname = + (const char *) sqlite3_column_text (stmt_in, 3); + if (strcasecmp (colname, column) == 0) + is_foreign_key = 1; + } + } + sqlite3_finalize (stmt_in); + + return is_foreign_key; +} + +static int +table_info (sqlite3 * sqlite, sqlite3_stmt * stmt_out, const char *table) +{ +/* auxiliary - populating "splite_metacatalog" */ + char *xtable; + char *sql_statement; + int ret; + sqlite3_stmt *stmt_in; + + xtable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); + free (xtable); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("populate MetaCatalog(3) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + int is_foreign_key; + int is_unique; + sqlite3_reset (stmt_out); + sqlite3_clear_bindings (stmt_out); + sqlite3_bind_text (stmt_out, 1, table, strlen (table), + SQLITE_STATIC); + sqlite3_bind_text (stmt_out, 2, + (const char *) sqlite3_column_text (stmt_in, + 1), + sqlite3_column_bytes (stmt_in, 1), + SQLITE_STATIC); + sqlite3_bind_text (stmt_out, 3, + (const char *) sqlite3_column_text (stmt_in, + 2), + sqlite3_column_bytes (stmt_in, 2), + SQLITE_STATIC); + sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 3)); + sqlite3_bind_int (stmt_out, 5, sqlite3_column_int (stmt_in, 5)); + is_foreign_key = + check_foreign_key (sqlite, table, + (const char *) + sqlite3_column_text (stmt_in, 1)); + sqlite3_bind_int (stmt_out, 6, is_foreign_key); + is_unique = + check_unique (sqlite, table, + (const char *) sqlite3_column_text (stmt_in, + 1)); + sqlite3_bind_int (stmt_out, 7, is_unique); + ret = sqlite3_step (stmt_out); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + spatialite_e ("populate MetaCatalog(4) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt_in); + return 0; + } + } + } + sqlite3_finalize (stmt_in); + + return 1; +} + +SPATIALITE_DECLARE int +gaiaCreateMetaCatalogTables (sqlite3 * sqlite) +{ +/* Creates both "splite_metacatalog" and "splite_metacalog_statistics" tables */ + char *sql_statement; + char *err_msg = NULL; + int ret; + sqlite3_stmt *stmt_in; + sqlite3_stmt *stmt_out; + +/* creating "splite_metacatalog" */ + sql_statement = "CREATE TABLE splite_metacatalog (\n" + "table_name TEXT NOT NULL,\n" + "column_name TEXT NOT NULL,\n" + "type TEXT NOT NULL,\n" + "not_null INTEGER NOT NULL,\n" + "primary_key INTEGER NOT NULL,\n" + "foreign_key INTEGER NOT NULL,\n" + "unique_value INTEGER NOT NULL,\n" + "CONSTRAINT pk_splite_metacatalog PRIMARY KEY (table_name, column_name))"; + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE TABLE splite_metacatalog - error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + +/* creating "splite_metacatalog_statistics" */ + sql_statement = "CREATE TABLE splite_metacatalog_statistics (\n" + "table_name TEXT NOT NULL,\n" + "column_name TEXT NOT NULL,\n" + "value TEXT,\n" + "count INTEGER NOT NULL,\n" + "CONSTRAINT pk_splite_metacatalog_statistics PRIMARY KEY (table_name, column_name, value),\n" + "CONSTRAINT fk_splite_metacatalog_statistics FOREIGN KEY (table_name, column_name) " + "REFERENCES splite_metacatalog (table_name, column_name))"; + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE TABLE splite_metacatalog_statistics - error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + +/* populating the MetaCatalog table */ + sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " + "AND sql NOT LIKE 'CREATE VIRTUAL TABLE%'"; + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_in, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("populate MetaCatalog(1) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + sql_statement = "INSERT INTO splite_metacatalog " + "(table_name, column_name, type, not_null, primary_key, foreign_key, unique_value) " + "VALUES (?, ?, ?, ?, ?, ?, ?)"; + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt_out, NULL); + if (ret != SQLITE_OK) + { + sqlite3_finalize (stmt_in); + spatialite_e ("populate MetaCatalog(2) error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + return 0; + } + + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt_in); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + const char *table = + (const char *) sqlite3_column_text (stmt_in, 0); + if (!table_info (sqlite, stmt_out, table)) + { + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + return 0; + } + } + } + sqlite3_finalize (stmt_in); + sqlite3_finalize (stmt_out); + return 1; +} + +static int +check_raster_coverages (sqlite3 * sqlite) +{ +/* checking if the "raster_coverages" table already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " + "AND Upper(name) = Upper('raster_coverages')"; + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +static int +check_raster_coverages_ref_sys (sqlite3 * sqlite) +{ +/* checking if the "raster_coverages_ref_sys" view already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sql_statement = "SELECT name FROM sqlite_master WHERE type = 'view' " + "AND Upper(name) = Upper('raster_coverages_ref_sys')"; + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +static int +create_raster_coverages (sqlite3 * sqlite) +{ +/* creating the "raster_coverages" table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE raster_coverages (\n" + "coverage_name TEXT NOT NULL PRIMARY KEY,\n" + "title TEXT NOT NULL DEFAULT '*** missing Title ***',\n" + "abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n" + "sample_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" + "pixel_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" + "num_bands INTEGER NOT NULL DEFAULT 1,\n" + "compression TEXT NOT NULL DEFAULT 'NONE',\n" + "quality INTEGER NOT NULL DEFAULT 100,\n" + "tile_width INTEGER NOT NULL DEFAULT 512,\n" + "tile_height INTEGER NOT NULL DEFAULT 512,\n" + "horz_resolution DOUBLE NOT NULL,\n" + "vert_resolution DOUBLE NOT NULL,\n" + "srid INTEGER NOT NULL,\n" + "nodata_pixel BLOB NOT NULL,\n" + "palette BLOB,\n" + "statistics BLOB,\n" + "extent_minx DOUBLE,\n" + "extent_miny DOUBLE,\n" + "extent_maxx DOUBLE,\n" + "extent_maxy DOUBLE,\n" + "CONSTRAINT fk_rc_srs FOREIGN KEY (srid) " + "REFERENCES spatial_ref_sys (srid))"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'raster_coverages' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the raster_coverages triggers */ + sql = "CREATE TRIGGER raster_coverages_name_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on raster_coverages_layers violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_name_update\n" + "BEFORE UPDATE OF 'coverage_name' ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_sample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " + "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " + "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" + "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " + "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " + "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_sample_update\n" + "BEFORE UPDATE OF 'sample_type' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " + "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " + "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" + "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " + "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " + "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pixel_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " + "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" + "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " + "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pixel_update\n" + "BEFORE UPDATE OF 'pixel_type' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " + "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" + "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " + "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_bands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_bands_update\n" + "BEFORE UPDATE OF 'num_bands' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_compression_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | " + "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | " + "''CCITTFAX4''')\n" + "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', " + "'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_compression_update\n" + "BEFORE UPDATE OF 'compression' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | " + "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | " + "''CCITTFAX4''')\n" + "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', " + "'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_quality_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "quality must be between 0 and 100')\n" + "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_quality_update\n" + "BEFORE UPDATE OF 'quality' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "quality must be between 0 and 100')\n" + "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_tilew_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "tile_width must be an exact multiple of 8 between 256 and 1024')\n" + "WHERE CastToInteger(NEW.tile_width) IS NULL OR " + "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_tilew_update\n" + "BEFORE UPDATE OF 'tile_width' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "tile_width must be an exact multiple of 8 between 256 and 1024')\n" + "WHERE CastToInteger(NEW.tile_width) IS NULL OR " + "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_tileh_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "tile_height must be an exact multiple of 8 between 256 and 1024')\n" + "WHERE CastToInteger(NEW.tile_height) IS NULL OR " + "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_tileh_update\n" + "BEFORE UPDATE OF 'tile_height' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "tile_height must be an exact multiple of 8 between 256 and 1024')\n" + "WHERE CastToInteger(NEW.tile_height) IS NULL OR " + "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_horzres_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "horz_resolution must be positive')\n" + "WHERE NEW.horz_resolution IS NOT NULL AND " + "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_horzres_update\n" + "BEFORE UPDATE OF 'horz_resolution' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "horz_resolution must be positive')\n" + "WHERE NEW.horz_resolution IS NOT NULL AND " + "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_vertres_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "vert_resolution must be positive')\n" + "WHERE NEW.vert_resolution IS NOT NULL AND " + "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_vertres_update\n" + "BEFORE UPDATE OF 'vert_resolution' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "vert_resolution must be positive')\n" + "WHERE NEW.vert_resolution IS NOT NULL AND " + "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_nodata_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " + "IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_nodata_update\n" + "BEFORE UPDATE OF 'nodata_pixel' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " + "IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_palette_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "invalid palette')\nWHERE NEW.palette IS NOT NULL AND " + "(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR " + "IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_palette_update\n" + "BEFORE UPDATE OF 'palette' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "invalid palette')\nWHERE NEW.palette IS NOT NULL AND " + "(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR " + "IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_statistics_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND " + "IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_statistics_update\n" + "BEFORE UPDATE OF 'statistics' ON 'raster_coverages'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND " + "IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monosample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.sample_type <> '1-BIT';\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monosample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.sample_type <>'1-BIT';\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monocompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.compression NOT IN ('NONE', 'PNG', 'CCITTFAX4');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monocompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.compression NOT IN ('NONE', 'PNG', 'CCITTFAX4');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monobands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_monobands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltsample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltsample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltcompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.compression NOT IN ('NONE', 'PNG');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltcompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.compression NOT IN ('NONE', 'PNG');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltbands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_pltbands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graysample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graysample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graybands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graybands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graycompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.compression NOT IN ('NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', " + "'LOSSLESS_WEBP');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_graycompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = 'GRAYSCALE' " + "AND NEW.compression NOT IN ('NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', " + "'LOSSLESS_WEBP');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbsample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " + "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbsample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " + "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbcompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " + "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN (" + "'NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP') OR " + "(NEW.sample_type = 'UINT16' AND NEW.compression NOT IN (" + "'NONE', 'DEFLATE', 'LZMA'))));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbcompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " + "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN (" + "'NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP') OR " + "(NEW.sample_type = 'UINT16' AND NEW.compression NOT IN (" + "'NONE', 'DEFLATE', 'LZMA'))));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbbands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " + "AND NEW.num_bands <> 3;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_rgbbands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " + "AND NEW.num_bands <> 3;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multisample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multisample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multicompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multibands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.num_bands < 2;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multibands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.num_bands < 2;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_multicompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = 'MULTIBAND' " + "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridsample_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " + "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridsample_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " + "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridcompr_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridcompr_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridbands_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_gridbands_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " + "AND NEW.num_bands <> 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_georef_insert\n" + "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " + "inconsistent georeferencing infos')\n" + "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " + "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " + "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_georef_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " + "inconsistent georeferencing infos')\n" + "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " + "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " + "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_update\n" + "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " + "attempting to change the definition of an already populated Coverage')\n" + "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1 AND " + "((OLD.sample_type <> NEW.sample_type) AND (OLD.pixel_type <> NEW.sample_type) " + "OR (OLD.num_bands <> NEW.num_bands) OR (OLD.compression <> NEW.compression) " + "OR (OLD.quality <> NEW.quality) OR (OLD.tile_width <> NEW.tile_width) " + "OR (OLD.tile_height <> NEW.tile_height) OR (OLD.horz_resolution <> NEW.horz_resolution) " + "OR (OLD.vert_resolution <> NEW.vert_resolution) OR " + "(OLD.srid <> NEW.srid) OR (OLD.nodata_pixel <> NEW.nodata_pixel));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER raster_coverages_delete\n" + "BEFORE DELETE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'delete on raster_coverages violates constraint: " + "attempting to delete the definition of an already populated Coverage')\n" + "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the raster_coverages_ref_sys view */ + sql = "CREATE VIEW raster_coverages_ref_sys AS\n" + "SELECT c.coverage_name AS coverage_name, c.title AS title, " + "c.abstract AS abstract, c.sample_type AS sample_type, " + "c.pixel_type AS pixel_type, c.num_bands AS num_bands, " + "c.compression AS compression, c.quality AS quality, " + "c.tile_width AS tile_width, c.tile_height AS tile_height, " + "c.horz_resolution AS horz_resolution, c.vert_resolution AS vert_resolution, " + "c.nodata_pixel AS nodata_pixel, c.palette AS palette, " + "c.statistics AS statistics, c.extent_minx AS extent_minx, " + "c.extent_miny AS extent_miny, c.extent_maxx AS extent_maxx, " + "c.extent_maxy AS extent_maxy, c.srid AS srid, " + "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " + "s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n" + "FROM raster_coverages AS c\n" + "LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW 'raster_coverages_ref_sys' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +SPATIALITE_PRIVATE int +createRasterCoveragesTable (void *p_sqlite) +{ +/* Creating the main RasterCoverages table */ + int ok_table; + sqlite3 *sqlite = p_sqlite; + +/* checking if already defined */ + ok_table = check_raster_coverages (sqlite); + if (ok_table) + { + spatialite_e + ("CreateRasterCoveragesTable() error: table 'raster_coverages' already exists\n"); + goto error; + } + ok_table = check_raster_coverages_ref_sys (sqlite); + if (ok_table) + { + spatialite_e + ("CreateRasterCoveragesTable() error: view 'raster_coverages_ref_sys' already exists\n"); + goto error; + } + +/* creating the main RasterCoverages table */ + if (!create_raster_coverages (sqlite)) + goto error; + return 1; + + error: + return 0; +} + +static int +check_if_coverage_exists (sqlite3 * sqlite, const char *coverage) +{ +/* checking if a Coverage table already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sql_statement = + sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " + "AND Upper(name) = Upper(%Q)", coverage); + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +SPATIALITE_PRIVATE int +checkPopulatedCoverage (void *p_sqlite, const char *coverage_name) +{ +/* checking if a Coverage table is already populated */ + int is_populated = 0; + char *xname; + char *xxname; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sqlite3 *sqlite = p_sqlite; + xname = sqlite3_mprintf ("%s_tile_data", coverage_name); + if (!check_if_coverage_exists (sqlite, xname)) + { + sqlite3_free (xname); + return 0; + } + xxname = gaiaDoubleQuotedSql (xname); + sqlite3_free (xname); + sql_statement = + sqlite3_mprintf ("SELECT ROWID FROM \"%s\" LIMIT 10", xxname); + free (xxname); + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + is_populated = 1; + sqlite3_free_table (results); + return is_populated; +} + +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ + +static int +check_styling_table (sqlite3 * sqlite, const char *table, int is_view) +{ +/* checking if some SLD/SE Styling-related table/view already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sql_statement = + sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" + "AND Upper(name) = Upper(%Q)", + (!is_view) ? "table" : "view", table); + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +static int +create_external_graphics (sqlite3 * sqlite) +{ +/* creating the SE_external_graphics table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_external_graphics (\n" + "xlink_href TEXT NOT NULL PRIMARY KEY,\n" + "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" + "abstract TEXT NOT NULL DEFAULT '*** undefined ***',\n" + "resource BLOB NOT NULL,\n" + "file_name TEXT NOT NULL DEFAULT '*** undefined ***')"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'SE_external_graphics' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_external_graphics triggers */ + sql = "CREATE TRIGGER sextgr_mime_type_insert\n" + "BEFORE INSERT ON 'SE_external_graphics'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_external_graphics violates constraint: " + "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " + "''image/jpeg'' | ''image/svg+xml''')\n" + "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " + "'image/jpeg', 'image/svg+xml');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER sextgr_mime_type_update\n" + "BEFORE UPDATE OF 'mime_type' ON 'SE_external_graphics'" + "\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT, 'update on SE_external_graphics violates constraint: " + "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " + "''image/jpeg'' | ''image/svg+xml''')\n" + "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " + "'image/jpeg', 'image/svg+xml');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_vector_styled_layers (sqlite3 * sqlite, int relaxed) +{ +/* creating the SE_vector_styled_layers table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_vector_styled_layers (\n" + "f_table_name TEXT NOT NULL,\n" + "f_geometry_column TEXT NOT NULL,\n" + "style_id INTEGER NOT NULL,\n" + "style_name TEXT NOT NULL DEFAULT 'missing_name',\n" + "style BLOB NOT NULL,\n" + "CONSTRAINT pk_sevstl PRIMARY KEY " + "(f_table_name, f_geometry_column, style_id),\n" + "CONSTRAINT fk_sevstl FOREIGN KEY (f_table_name, f_geometry_column) " + "REFERENCES geometry_columns (f_table_name, f_geometry_column) " + "ON DELETE CASCADE)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'SE_vector_styled_layers' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the layer-style UNIQUE index */ + sql = "CREATE UNIQUE INDEX idx_vector_style ON SE_vector_styled_layers " + "(f_table_name, f_geometry_column, style_name)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX 'idx_vector_style' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_vector_styled_layers triggers */ + sql = "CREATE TRIGGER sevstl_f_table_name_insert\n" + "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_table_name value must not contain a single quote')\n" + "WHERE NEW.f_table_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_table_name value must not contain a double quote')\n" + "WHERE NEW.f_table_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_table_name value must be lower case')\n" + "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER sevstl_f_table_name_update\n" + "BEFORE UPDATE OF 'f_table_name' ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_table_name value must not contain a single quote')\n" + "WHERE NEW.f_table_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_table_name value must not contain a double quote')\n" + "WHERE NEW.f_table_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_table_name value must be lower case')\n" + "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER sevstl_f_geometry_column_insert\n" + "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must not contain a single quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must not contain a double quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must be lower case')\n" + "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER sevstl_f_geometry_column_update\n" + "BEFORE UPDATE OF 'f_geometry_column' ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must not contain a single quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must not contain a double quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "f_geometry_column value must be lower case')\n" + "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER sevstl_style_insert\n" + "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "not a valid SLD/SE Vector Style')\n" + "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "not an XML Schema Validated SLD/SE Vector Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER sevstl_style_insert\n" + "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " + "not a valid SLD/SE Vector Style')\n" + "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER sevstl_style_update\n" + "BEFORE UPDATE ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "not a valid SLD/SE Vector Style')\n" + "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "not an XML Schema Validated SLD/SE Vector Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER sevstl_style_update\n" + "BEFORE UPDATE ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " + "not a valid SLD/SE Vector Style')\n" + "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after inserting */ + sql = "CREATE TRIGGER sevstl_style_name_ins\n" + "AFTER INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_vector_styled_layers " + "SET style_name = XB_GetName(NEW.style) " + "WHERE f_table_name = NEW.f_table_name " + "AND f_geometry_column = NEW.f_geometry_column " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after updating */ + sql = "CREATE TRIGGER sevstl_style_name_upd\n" + "AFTER UPDATE OF style ON " + "'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_vector_styled_layers " + "SET style_name = XB_GetName(NEW.style) " + "WHERE f_table_name = NEW.f_table_name " + "AND f_geometry_column = NEW.f_geometry_column " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_raster_styled_layers (sqlite3 * sqlite, int relaxed) +{ +/* creating the SE_raster_styled_layers table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_raster_styled_layers (\n" + "coverage_name TEXT NOT NULL,\n" + "style_id INTEGER NOT NULL,\n" + "style_name TEXT NOT NULL DEFAULT 'missing_name',\n" + "style BLOB NOT NULL,\n" + "CONSTRAINT pk_serstl PRIMARY KEY " "(coverage_name, style_id),\n" + "CONSTRAINT fk_serstl FOREIGN KEY (coverage_name) " + "REFERENCES raster_coverages (coverage_name) " "ON DELETE CASCADE)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'SE_raster_styled_layers' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the layer-style UNIQUE index */ + sql = "CREATE UNIQUE INDEX idx_raster_style ON SE_raster_styled_layers " + "(coverage_name, style_name)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX 'idx_raster_style' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_raster_styled_layers triggers */ + sql = "CREATE TRIGGER serstl_coverage_name_insert\n" + "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER serstl_coverage_name_update\n" + "BEFORE UPDATE OF 'coverage_name' ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER serstl_style_insert\n" + "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "not a valid SLD/SE Raster Style')\n" + "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "not an XML Schema Validated SLD/SE Raster Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER serstl_style_insert\n" + "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " + "not a valid SLD/SE Raster Style')\n" + "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER serstl_style_update\n" + "BEFORE UPDATE ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "not a valid SLD/SE Raster Style')\n" + "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "not an XML Schema Validated SLD/SE Raster Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER serstl_style_update\n" + "BEFORE UPDATE ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " + "not a valid SLD/SE Raster Style')\n" + "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after inserting */ + sql = "CREATE TRIGGER serstl_style_name_ins\n" + "AFTER INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_raster_styled_layers " + "SET style_name = XB_GetName(NEW.style) " + "WHERE coverage_name = NEW.coverage_name " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after updating */ + sql = "CREATE TRIGGER serstl_style_name_upd\n" + "AFTER UPDATE OF style ON " + "'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_raster_styled_layers " + "SET style_name = XB_GetName(NEW.style) " + "WHERE coverage_name = NEW.coverage_name " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_styled_groups (sqlite3 * sqlite) +{ +/* creating the SE_styled_groups table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_styled_groups (\n" + "group_name TEXT NOT NULL PRIMARY KEY,\n" + "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" + "abstract TEXT NOT NULL DEFAULT '*** undefined ***')"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'SE_styled_groups' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_styled_groups triggers */ + sql = "CREATE TRIGGER segrp_group_name_insert\n" + "BEFORE INSERT ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrp_group_name_update\n" + "BEFORE UPDATE OF 'group_name' ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_styled_group_refs (sqlite3 * sqlite) +{ +/* creating the SE_styled_group_refs table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_styled_group_refs (\n" + "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "group_name TEXT NOT NULL,\n" + "paint_order INTEGER NOT NULL,\n" + "f_table_name TEXT,\n" + "f_geometry_column TEXT,\n" + "coverage_name TEXT,\n" + "CONSTRAINT fk_se_refs FOREIGN KEY (group_name) " + "REFERENCES SE_styled_groups (group_name) " + "ON DELETE CASCADE,\n" + "CONSTRAINT fk_se_group_vector FOREIGN KEY " + "(f_table_name, f_geometry_column) " + "REFERENCES geometry_columns " + "(f_table_name, f_geometry_column) " + "ON DELETE CASCADE,\n" + "CONSTRAINT fk_se_group_raster " + "FOREIGN KEY (coverage_name) " + "REFERENCES raster_coverages (coverage_name) " "ON DELETE CASCADE)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE TABLE 'SE_styled_group_refs' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_styled_group_refs triggers */ + sql = "CREATE TRIGGER segrrefs_group_name_insert\n" + "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_group_name_update\n" + "BEFORE UPDATE OF 'group_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_f_table_name_insert\n" + "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_table_name value must not contain a single quote')\n" + "WHERE NEW.f_table_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_table_name value must not contain a double quote')\n" + "WHERE NEW.f_table_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_table_name value must be lower case')\n" + "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_f_table_name_update\n" + "BEFORE UPDATE OF 'f_table_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_table_name value must not contain a single quote')\n" + "WHERE NEW.f_table_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_table_name value must not contain a double quote')\n" + "WHERE NEW.f_table_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_table_name value must be lower case')\n" + "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_f_geometry_column_insert\n" + "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_geometry_column value must not contain a single quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_geometry_column value must not contain a double quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "f_geometry_column value must be lower case')\n" + "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_f_geometry_column_update\n" + "BEFORE UPDATE OF 'f_geometry_column' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_geometry_column value must not contain a single quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_geometry_column value must not contain a double quote')\n" + "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "f_geometry_column value must be lower case')\n" + "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_coverage_name_insert\n" + "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_coverage_name_update\n" + "BEFORE UPDATE OF 'coverage_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "coverage_name value must not contain a single quote')\n" + "WHERE NEW.coverage_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "coverage_name value must not contain a double quote')\n" + "WHERE NEW.coverage_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "coverage_name value must be lower case')\n" + "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_insert\n" + "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " + "cannot reference both Vector and Raster at the same time')\n" + "WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL) " + "AND NEW.coverage_name IS NOT NULL;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrrefs_update\n" + "BEFORE UPDATE ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " + "cannot reference both Vector and Raster at the same time')\n" + "WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL) " + "AND NEW.coverage_name IS NOT NULL;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating any Index on SE_styled_group_refs */ + sql = "CREATE INDEX idx_SE_styled_vgroups ON " + "SE_styled_group_refs " "(f_table_name, f_geometry_column)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index 'idx_SE_styled_vgroups' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE INDEX idx_SE_styled_rgroups ON " + "SE_styled_group_refs " "(coverage_name)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index 'idx_SE_styled_rgroups' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE INDEX idx_SE_styled_groups_paint ON " + "SE_styled_group_refs " "(group_name, paint_order)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("Create Index 'idx_SE_styled_groups_paint' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_group_styles (sqlite3 * sqlite, int relaxed) +{ +/* creating the SE_group_styles table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE SE_group_styles (\n" + "group_name TEXT NOT NULL,\n" + "style_id INTEGER NOT NULL,\n" + "style_name TEXT NOT NULL DEFAULT 'missing_name',\n" + "style BLOB NOT NULL,\n" + "CONSTRAINT pk_segrpstl PRIMARY KEY " "(group_name, style_id),\n" + "CONSTRAINT fk_segrpstl FOREIGN KEY (group_name) " + "REFERENCES SE_styled_groups (group_name) " "ON DELETE CASCADE)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'SE_group_styles' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the layer-style UNIQUE index */ + sql = "CREATE UNIQUE INDEX idx_group_style ON SE_group_styles " + "(group_name, style_name)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE INDEX 'idx_group_style' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the SE_group_styles triggers */ + sql = "CREATE TRIGGER segrpstl_group_name_insert\n" + "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER segrpstl_group_name_update\n" + "BEFORE UPDATE OF 'group_name' ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "group_name value must not contain a single quote')\n" + "WHERE NEW.group_name LIKE ('%''%');\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "group_name value must not contain a double quote')\n" + "WHERE NEW.group_name LIKE ('%\"%');\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "group_name value must be lower case')\n" + "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER segrpstl_style_insert\n" + "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "not a valid SLD Style')\n" + "WHERE XB_IsSldStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "not an XML Schema Validated SLD Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER segrpstl_style_insert\n" + "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " + "not a valid SLD Style')\n" + "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER segrpstl_style_update\n" + "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "not a valid SLD Style')\n" + "WHERE XB_IsSldStyle(NEW.style) <> 1;\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "not an XML Schema Validated SLD Style')\n" + "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER segrpstl_style_update\n" + "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " + "not a valid SLD Raster Style')\n" + "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after inserting */ + sql = "CREATE TRIGGER segrpstl_style_name_ins\n" + "AFTER INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_group_styles " + "SET style_name = XB_GetName(NEW.style) " + "WHERE group_name = NEW.group_name " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* automatically setting the style_name after updating */ + sql = "CREATE TRIGGER segrpstl_style_name_upd\n" + "AFTER UPDATE OF style ON " + "'SE_group_styles'\nFOR EACH ROW BEGIN\n" + "UPDATE SE_group_styles " + "SET style_name = XB_GetName(NEW.style) " + "WHERE group_name = NEW.group_name " + "AND style_id = NEW.style_id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_external_graphics_view (sqlite3 * sqlite) +{ +/* creating the SE_external_graphics_view view */ + char *sql_statement; + int ret; + char *err_msg = NULL; + sql_statement = + sqlite3_mprintf + ("CREATE VIEW SE_external_graphics_view AS\n" + "SELECT xlink_href AS xlink_href, title AS title, " + "abstract AS abstract, resource AS resource, " + "file_name AS file_name, GetMimeType(resource) AS mime_type\n" + "FROM SE_external_graphics"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE VIEW 'SE_external_graphics_view' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_vector_styled_layers_view (sqlite3 * sqlite) +{ +/* creating the SE_vector_styled_layers_view view */ + char *sql_statement; + int ret; + char *err_msg = NULL; + sql_statement = + sqlite3_mprintf ("CREATE VIEW SE_vector_styled_layers_view AS \n" + "SELECT f_table_name AS f_table_name, f_geometry_column AS f_geometry_column, " + "style_id AS style_id, style_name AS name, XB_GetTitle(style) AS title, " + "XB_GetAbstract(style) AS abstract, style AS style, " + "XB_IsSchemaValidated(style) AS schema_validated, " + "XB_GetSchemaURI(style) AS schema_uri\n" + "FROM SE_vector_styled_layers"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e + ("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; + char *err_msg = NULL; + sql_statement = + sqlite3_mprintf ("CREATE VIEW SE_raster_styled_layers_view AS \n" + "SELECT coverage_name AS coverage_name, style_id AS style_id, " + "style_name AS name, XB_GetTitle(style) AS title, " + "XB_GetAbstract(style) AS abstract, style AS style, " + "XB_IsSchemaValidated(style) AS schema_validated, " + "XB_GetSchemaURI(style) AS schema_uri\n" + "FROM SE_raster_styled_layers"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE VIEW 'SE_raster_styled_layers_view' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_styled_groups_view (sqlite3 * sqlite) +{ +/* creating the SE_styled_groups_view view */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE VIEW SE_styled_groups_view AS " + "SELECT g.group_name AS group_name, g.title AS group_title, " + "g.abstract AS group_abstract, gr.paint_order AS paint_order, " + "'vector' AS type, v.f_table_name AS layer_name, " + "v.f_geometry_column AS geometry_column, " + "v.geometry_type AS geometry_type, v.coord_dimension AS coord_dimension, " + "v.srid AS srid FROM SE_styled_groups AS g " + "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " + "JOIN geometry_columns AS v ON (gr.f_table_name = v.f_table_name " + "AND gr.f_geometry_column = v.f_geometry_column) UNION " + "SELECT g.group_name AS group_name, g.title AS group_title, " + "g.abstract AS group_abstract, gr.paint_order AS paint_order, " + "'raster' AS type, r.coverage_name AS layer_name, NULL AS geometry_column, " + "NULL AS geometry_type, NULL AS coord_dimension, r.srid AS srid " + "FROM SE_styled_groups AS g " + "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " + "JOIN raster_coverages AS r ON (gr.coverage_name = r.coverage_name)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE VIEW 'SE_styled_groups_view' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_group_styles_view (sqlite3 * sqlite) +{ +/* creating the SE_group_styles_view view */ + char *sql_statement; + int ret; + char *err_msg = NULL; + sql_statement = + sqlite3_mprintf ("CREATE VIEW SE_group_styles_view AS \n" + "SELECT group_name AS group_name, style_id AS style_id, " + "style_name AS name, XB_GetTitle(style) AS title, " + "XB_GetAbstract(style) AS abstract, style AS style, " + "XB_IsSchemaValidated(style) AS schema_validated, " + "XB_GetSchemaURI(style) AS schema_uri\n" + "FROM SE_group_styles"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e + ("CREATE VIEW 'SE_group_styles_view' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +SPATIALITE_PRIVATE int +createStylingTables (void *p_sqlite, int relaxed) +{ +/* Creating the SE Styling tables */ + const char *tables[12]; + int views[11]; + const char **p_tbl; + int *p_view; + int ok_table; + sqlite3 *sqlite = p_sqlite; + +/* checking SLD/SE Styling tables */ + tables[0] = "SE_external_graphics"; + tables[1] = "SE_vector_styled_layers"; + tables[2] = "SE_raster_styled_layers"; + tables[3] = "SE_styled_groups"; + tables[4] = "SE_styled_group_refs"; + tables[5] = "SE_group_styles"; + tables[6] = "SE_external_graphics_view"; + tables[7] = "SE_vector_styled_layers_view"; + tables[8] = "SE_raster_styled_layers_view"; + tables[9] = "SE_styled_groups_view"; + tables[10] = "SE_group_styles_view"; + tables[11] = NULL; + views[0] = 0; + views[1] = 0; + views[2] = 0; + views[3] = 0; + views[4] = 0; + views[5] = 0; + views[6] = 1; + views[7] = 1; + views[8] = 1; + views[9] = 1; + views[10] = 1; + p_tbl = tables; + p_view = views; + while (*p_tbl != NULL) + { + ok_table = check_styling_table (sqlite, *p_tbl, *p_view); + if (ok_table) + { + spatialite_e + ("CreateStylingTables() error: table '%s' already exists\n", + *p_tbl); + goto error; + } + p_tbl++; + p_view++; + } + +/* creating the SLD/SE Styling tables */ + if (!check_raster_coverages (sqlite)) + { + /* creating the main RasterCoverages table as well */ + if (!create_raster_coverages (sqlite)) + goto error; + } + if (!create_external_graphics (sqlite)) + goto error; + if (!create_vector_styled_layers (sqlite, relaxed)) + goto error; + if (!create_raster_styled_layers (sqlite, relaxed)) + goto error; + if (!create_styled_groups (sqlite)) + goto error; + if (!create_styled_group_refs (sqlite)) + goto error; + if (!create_group_styles (sqlite, relaxed)) + goto error; + if (!create_external_graphics_view (sqlite)) + goto error; + if (!create_vector_styled_layers_view (sqlite)) + goto error; + if (!create_raster_styled_layers_view (sqlite)) + goto error; + if (!create_styled_groups_view (sqlite)) + goto error; + if (!create_group_styles_view (sqlite)) + goto error; + return 1; + + error: + return 0; +} + +static int +check_iso_metadata_table (sqlite3 * sqlite, const char *table, int is_view) +{ +/* checking if some ISO Metadata-related table/view already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; + int ret; + char **results; + int rows; + int columns; + int i; + sql_statement = + sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" + "AND Upper(name) = Upper(%Q)", + (!is_view) ? "table" : "view", table); + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +static int +create_iso_metadata (sqlite3 * sqlite, int relaxed) +{ +/* creating the ISO_metadata table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE ISO_metadata (\n" + "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" + "metadata BLOB NOT NULL DEFAULT (zeroblob(4)),\n" + "fileId TEXT,\nparentId TEXT)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'ISO_metadata' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* adding the Geometry column */ + sql = + "SELECT AddGeometryColumn('ISO_metadata', 'geometry', 4326, 'MULTIPOLYGON', 'XY')"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + (" AddGeometryColumn 'ISO_metadata'.'geometry' error:%s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* adding a Spatial Index */ + sql = "SELECT CreateSpatialIndex ('ISO_metadata', 'geometry')"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("CreateSpatialIndex 'ISO_metadata'.'geometry' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the ISO_metadata triggers */ + sql = "CREATE TRIGGER 'ISO_metadata_md_scope_insert'\n" + "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata violates constraint: " + "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " + "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' " + "| ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " + "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " + "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" + "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," + "'series','dataset','featureType','feature','attributeType','attribute'," + "'tile','model','catalogue','schema','taxonomy','software','service'," + "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_md_scope_update'\n" + "BEFORE UPDATE OF 'md_scope' ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata violates constraint: " + "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " + "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' |" + " ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " + "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " + "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" + "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," + "'series','dataset','featureType','feature','attributeType','attribute'," + "'tile','model','catalogue','schema','taxonomy','software','service'," + "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_insert'\n" + "AFTER INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " + "parentId = XB_GetParentId(NEW.metadata), " + "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" + "UPDATE ISO_metadata_reference " + "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " + "WHERE md_file_id = NEW.id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_update'\n" + "AFTER UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " + "parentId = XB_GetParentId(NEW.metadata), " + "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" + "UPDATE ISO_metadata_reference " + "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " + "WHERE md_file_id = NEW.id;\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER ISO_metadata_insert\n" + "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " + "not a valid ISO Metadata XML')\n" + "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" + "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " + "not an XML Schema Validated ISO Metadata')\n" + "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER ISO_metadata_insert\n" + "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " + "not a valid ISO Metadata XML')\n" + "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + if (relaxed == 0) + { + /* strong trigger - imposing XML schema validation */ + sql = "CREATE TRIGGER ISO_metadata_update\n" + "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " + "not a valid ISO Metadata XML')\n" + "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" + "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " + "not an XML Schema Validated ISO Metadata')\n" + "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; + } + else + { + /* relaxed trigger - not imposing XML schema validation */ + sql = "CREATE TRIGGER ISO_metadata_update\n" + "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " + "not a valid ISO Metadata XML')\n" + "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating any Index on ISO_metadata */ + sql = "CREATE UNIQUE INDEX idx_ISO_metadata_ids ON " + "ISO_metadata (fileId)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index 'idx_ISO_metadata_ids' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE INDEX idx_ISO_metadata_parents ON " "ISO_metadata (parentId)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index 'idx_ISO_metadata_parents' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_iso_metadata_reference (sqlite3 * sqlite) +{ +/* creating the ISO_metadata_reference table */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE TABLE ISO_metadata_reference (\n" + "reference_scope TEXT NOT NULL DEFAULT 'table',\n" + "table_name TEXT NOT NULL DEFAULT 'undefined',\n" + "column_name TEXT NOT NULL DEFAULT 'undefined',\n" + "row_id_value INTEGER NOT NULL DEFAULT 0,\n" + "timestamp TEXT NOT NULL DEFAULT (" + "strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" + "md_file_id INTEGER NOT NULL DEFAULT 0,\n" + "md_parent_id INTEGER NOT NULL DEFAULT 0,\n" + "CONSTRAINT fk_isometa_mfi FOREIGN KEY (md_file_id) " + "REFERENCES ISO_metadata(id),\n" + "CONSTRAINT fk_isometa_mpi FOREIGN KEY (md_parent_id) " + "REFERENCES ISO_metadata(id))"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE 'ISO_metadata_reference' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating the ISO_metadata_reference triggers */ + sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_insert'\n" + "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " + "reference_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" + "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_update'\n" + "BEFORE UPDATE OF 'reference_scope' ON 'ISO_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " + "referrence_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" + "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_insert'\n" + "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " + "table_name must be the name of a table in geometry_columns')\n" + "WHERE NOT NEW.table_name IN (\n" + "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_update'\n" + "BEFORE UPDATE OF 'table_name' ON 'ISO_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " + "table_name must be the name of a table in geometry_columns')\n" + "WHERE NOT NEW.table_name IN (\n" + "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_insert'\n" + "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'insert on ISO_table ISO_metadata_reference violates constraint: " + "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" + "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" + "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " + "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" + "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" + "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " + "WHERE rowid = NEW.row_id_value);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_update'\n" + "BEFORE UPDATE OF 'row_id_value' ON 'ISO_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " + "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" + "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" + "SELECT RAISE(ROLLBACK, 'update on ISO_table metadata_reference violates constraint: " + "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" + "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" + "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " + "WHERE rowid = NEW.row_id_value);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_insert'\n" + "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " + "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" + "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" + "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," + "NEW.timestamp) NOT NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_update'\n" + "BEFORE UPDATE OF 'timestamp' ON 'ISO_metadata_reference'\n" + "FOR EACH ROW BEGIN\n" + "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " + "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" + "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" + "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," + "NEW.timestamp) NOT NULL);\nEND"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } +/* creating any Index on ISO_metadata_reference */ + sql = "CREATE INDEX idx_ISO_metadata_reference_ids ON " + "ISO_metadata_reference (md_file_id)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("Create Index 'idx_ISO_metadata_reference_ids' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + sql = "CREATE INDEX idx_ISO_metadata_reference_parents ON " + "ISO_metadata_reference (md_parent_id)"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("Create Index 'idx_ISO_metadata_reference_parents' error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +static int +create_iso_metadata_view (sqlite3 * sqlite) +{ +/* creating the ISO_metadata_view view */ + char *sql; + int ret; + char *err_msg = NULL; + sql = "CREATE VIEW ISO_metadata_view AS\n" + "SELECT id AS id, md_scope AS md_scope, XB_GetTitle(metadata) AS title, " + "XB_GetAbstract(metadata) AS abstract, geometry AS geometry, " + "fileId AS fileIdentifier, parentId AS parentIdentifier, metadata AS metadata, " + "XB_IsSchemaValidated(metadata) AS schema_validated, " + "XB_GetSchemaURI(metadata) AS metadata_schema_URI\n" + "FROM ISO_metadata"; + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW 'ISO_metadata_view' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +SPATIALITE_PRIVATE int +createIsoMetadataTables (void *p_sqlite, int relaxed) +{ +/* Creating the ISO Metadata tables */ + const char *tables[4]; + int views[3]; + const char **p_tbl; + int *p_view; + int ok_table; + int ret; + char *err_msg = NULL; + sqlite3 *sqlite = p_sqlite; + +/* checking ISO Metadata tables */ + tables[0] = "ISO_metadata"; + tables[1] = "ISO_metadata_reference"; + tables[2] = "ISO_metadata_view"; + tables[3] = NULL; + views[0] = 0; + views[1] = 0; + views[2] = 1; + p_tbl = tables; + p_view = views; + while (*p_tbl != NULL) + { + ok_table = check_iso_metadata_table (sqlite, *p_tbl, *p_view); + if (ok_table) + { + spatialite_e + ("CreateIsoMetadataTables() error: table '%s' already exists\n", + *p_tbl); + goto error; + } + p_tbl++; + p_view++; + } + +/* creating the ISO Metadata tables */ + if (!create_iso_metadata (sqlite, relaxed)) + goto error; + if (!create_iso_metadata_reference (sqlite)) + goto error; + if (!create_iso_metadata_view (sqlite)) + goto error; +/* inserting the default "undef" row into ISO_metadata */ + ret = + sqlite3_exec (sqlite, + "INSERT INTO ISO_metadata (id, md_scope) VALUES (0, 'undefined')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + spatialite_e + ("Insert default 'undefined' ISO_metadata row - error: %s\n", + err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; + + error: + return 0; +} + +SPATIALITE_PRIVATE int +register_external_graphic (void *p_sqlite, const char *xlink_href, + const unsigned char *p_blob, int n_bytes, + const char *title, const char *abstract, + const char *file_name) +{ +/* auxiliary function: inserts or updates an ExternalGraphic Resource */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int extras = 0; + int retval = 0; + +/* checking if already exists */ + sql = "SELECT xlink_href FROM SE_external_graphics WHERE xlink_href = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerExternalGraphic: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + + if (title != NULL && abstract != NULL && file_name != NULL) + extras = 1; + if (exists) + { + /* update */ + if (extras) + { + /* full infos */ + sql = "UPDATE SE_external_graphics " + "SET resource = ?, title = ?, abstract = ?, file_name = ? " + "WHERE xlink_href = ?"; + } + else + { + /* limited basic infos */ + sql = "UPDATE SE_external_graphics " + "SET resource = ? WHERE xlink_href = ?"; + } + } + else + { + /* insert */ + if (extras) + { + /* full infos */ + sql = "INSERT INTO SE_external_graphics " + "(xlink_href, resource, title, abstract, file_name) " + "VALUES (?, ?, ?, ?, ?)"; + } + else + { + /* limited basic infos */ + sql = "INSERT INTO SE_external_graphics " + "(xlink_href, resource) VALUES (?, ?)"; + } + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerExternalGraphic: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + if (extras) + { + /* full infos */ + sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, title, strlen (title), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 4, file_name, strlen (file_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 5, xlink_href, strlen (xlink_href), + SQLITE_STATIC); + } + else + { + /* limited basic infos */ + sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, xlink_href, strlen (xlink_href), + SQLITE_STATIC); + } + } + else + { + /* insert */ + if (extras) + { + /* full infos */ + sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), + SQLITE_STATIC); + sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, title, strlen (title), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 4, abstract, strlen (abstract), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 5, file_name, strlen (file_name), + SQLITE_STATIC); + } + else + { + /* limited basic infos */ + sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), + SQLITE_STATIC); + sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); + } + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerExternalGraphic() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +register_vector_styled_layer (void *p_sqlite, const char *f_table_name, + const char *f_geometry_column, int style_id, + const unsigned char *p_blob, int n_bytes) +{ +/* auxiliary function: inserts or updates a Vector Styled Layer */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int retval = 0; + + if (style_id >= 0) + { + /* checking if already exists */ + sql = "SELECT style_id FROM SE_vector_styled_layers " + "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) " + "AND style_id = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerVectorStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, f_geometry_column, + strlen (f_geometry_column), SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, style_id); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + } + else + { + /* assigning the next style_id value */ + style_id = 0; + sql = "SELECT Max(style_id) FROM SE_vector_styled_layers " + "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) "; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerVectorStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, f_geometry_column, + strlen (f_geometry_column), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) + style_id = sqlite3_column_int (stmt, 0) + 1; + } + } + sqlite3_finalize (stmt); + } + + if (exists) + { + /* update */ + sql = "UPDATE SE_vector_styled_layers SET style = ? " + "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) " + "AND style_id = ?"; + } + else + { + /* insert */ + sql = "INSERT INTO SE_vector_styled_layers " + "(f_table_name, f_geometry_column, style_id, style) VALUES " + "(?, ?, ?, ?)"; + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerVectorStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, f_table_name, strlen (f_table_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, f_geometry_column, + strlen (f_geometry_column), SQLITE_STATIC); + sqlite3_bind_int (stmt, 4, style_id); + } + else + { + /* insert */ + sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, f_geometry_column, + strlen (f_geometry_column), SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, style_id); + sqlite3_bind_blob (stmt, 4, p_blob, n_bytes, SQLITE_STATIC); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerVectorStyledLayer() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +register_raster_styled_layer (void *p_sqlite, const char *coverage_name, + int style_id, const unsigned char *p_blob, + int n_bytes) +{ +/* auxiliary function: inserts or updates a Raster Styled Layer */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int retval = 0; + + if (style_id >= 0) + { + /* checking if already exists */ + sql = "SELECT style_id FROM SE_raster_styled_layers " + "WHERE coverage_name = Lower(?) AND style_id = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerRasterStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 2, style_id); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + } + else + { + /* assigning the next style_id value */ + style_id = 0; + sql = "SELECT Max(style_id) FROM SE_raster_styled_layers " + "WHERE coverage_name = Lower(?) "; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerVectorStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), + SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) + style_id = sqlite3_column_int (stmt, 0) + 1; + } + } + sqlite3_finalize (stmt); + } + + if (exists) + { + /* update */ + sql = "UPDATE SE_raster_styled_layers SET style = ? " + "WHERE coverage_name = Lower(?) AND style_id = ?"; + } + else + { + /* insert */ + sql = "INSERT INTO SE_raster_styled_layers " + "(coverage_name, style_id, style) VALUES (?, ?, ?)"; + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerRasterStyledLayer: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, coverage_name, strlen (coverage_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, style_id); + } + else + { + /* insert */ + sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 2, style_id); + sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerRasterStyledLayer() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +register_styled_group (void *p_sqlite, const char *group_name, + const char *f_table_name, + const char *f_geometry_column, + const char *coverage_name, int paint_order) +{ +/* auxiliary function: inserts or updates a Styled Group Item */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists_group = 0; + int exists = 0; + int retval = 0; + sqlite3_int64 id; + + /* checking if the Group already exists */ + sql = "SELECT group_name FROM SE_styled_groups " + "WHERE group_name = Lower(?)"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists_group = 1; + } + sqlite3_finalize (stmt); + + if (!exists_group) + { + /* insert group */ + sql = "INSERT INTO SE_styled_groups (group_name) VALUES (?)"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerStyledGroupsRefs() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + if (retval == 0) + goto stop; + retval = 0; + } + + if (paint_order >= 0) + { + /* checking if the group-item already exists */ + sql = "SELECT id FROM SE_styled_group_refs " + "WHERE group_name = Lower(?) AND paint_order = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 2, paint_order); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + id = sqlite3_column_int64 (stmt, 0); + exists++; + } + } + sqlite3_finalize (stmt); + if (exists != 1) + goto stop; + } + + if (paint_order < 0) + { + /* assigning the next paint_order value */ + paint_order = 0; + sql = "SELECT Max(paint_order) FROM SE_styled_group_refs " + "WHERE group_name = Lower(?) "; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) + paint_order = sqlite3_column_int (stmt, 0) + 1; + } + } + sqlite3_finalize (stmt); + } + + if (exists) + { + /* update */ + sql = "UPDATE SE_styled_group_refs SET paint_order = ? " + "WHERE id = ?"; + } + else + { + /* insert */ + if (coverage_name == NULL) + { + /* vector styled layer */ + sql = "INSERT INTO SE_styled_group_refs " + "(id, group_name, f_table_name, f_geometry_column, paint_order) " + "VALUES (NULL, ?, ?, ?, ?)"; + } + else + { + /* raster styled layer */ + sql = "INSERT INTO SE_styled_group_refs " + "(id, group_name, coverage_name, paint_order) " + "VALUES (NULL, ?, ?, ?)"; + } + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + sqlite3_bind_int (stmt, 1, paint_order); + sqlite3_bind_int64 (stmt, 2, id); + } + else + { + /* insert */ + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + if (coverage_name == NULL) + { + /* vector styled layer */ + sqlite3_bind_text (stmt, 2, f_table_name, + strlen (f_table_name), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, f_geometry_column, + strlen (f_geometry_column), SQLITE_STATIC); + sqlite3_bind_int (stmt, 4, paint_order); + } + else + { + /* raster styled layer */ + sqlite3_bind_text (stmt, 2, coverage_name, + strlen (coverage_name), SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, paint_order); + } + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerStyledGroupsRefs() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +styled_group_set_infos (void *p_sqlite, const char *group_name, + const char *title, const char *abstract) +{ +/* auxiliary function: inserts or updates the Styled Group descriptive infos */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int retval = 0; + + /* checking if the Group already exists */ + sql = "SELECT group_name FROM SE_styled_groups " + "WHERE group_name = Lower(?)"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("styledGroupSetInfos: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + + if (!exists) + { + /* insert group */ + sql = + "INSERT INTO SE_styled_groups (group_name, title, abstract) VALUES (?, ?, ?)"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("styledGroupSetInfos: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, title, strlen (title), SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), + SQLITE_STATIC); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("styledGroupSetInfos() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + } + else + { + /* update group */ + sql = + "UPDATE SE_styled_groups SET title = ?, abstract = ? WHERE group_name = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("styledGroupSetInfos: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, title, strlen (title), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, abstract, strlen (abstract), + SQLITE_STATIC); + sqlite3_bind_text (stmt, 3, group_name, strlen (group_name), + SQLITE_STATIC); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("styledGroupSetInfos() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + } + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +register_group_style (void *p_sqlite, const char *group_name, int style_id, + const unsigned char *p_blob, int n_bytes) +{ +/* auxiliary function: inserts or updates a Group Style */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int retval = 0; + + if (style_id >= 0) + { + /* checking if already exists */ + sql = "SELECT style_id FROM SE_group_styles " + "WHERE group_name = Lower(?) AND style_id = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerGroupStyle: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 2, style_id); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + } + else + { + /* assigning the next style_id value */ + style_id = 0; + sql = "SELECT Max(style_id) FROM SE_group_styles " + "WHERE group_name = Lower(?) "; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerGroupStyle: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) + style_id = sqlite3_column_int (stmt, 0) + 1; + } + } + sqlite3_finalize (stmt); + } + + if (exists) + { + /* update */ + sql = "UPDATE SE_group_styles SET style = ? " + "WHERE group_name = Lower(?) AND style_id = ?"; + } + else + { + /* insert */ + sql = "INSERT INTO SE_group_styles " + "(group_name, style_id, style) VALUES (?, ?, ?)"; + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerGroupStyle: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, group_name, strlen (group_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, style_id); + } + else + { + /* insert */ + sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), + SQLITE_STATIC); + sqlite3_bind_int (stmt, 2, style_id); + sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerGroupStyled() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +SPATIALITE_PRIVATE int +get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id) +{ +/* auxiliary function: return the ID of the row corresponding to "fileIdentifier" */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; + sqlite3_int64 id; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int ok = 0; + + sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("getIsoMetadataId: \"%s\"\n", sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), + SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + ok++; + id = sqlite3_column_int64 (stmt, 0); + } + } + sqlite3_finalize (stmt); + + if (ok == 1) + { + *p64 = id; + return 1; + } + stop: + return 0; +} + +SPATIALITE_PRIVATE int +register_iso_metadata (void *p_sqlite, const char *scope, + const unsigned char *p_blob, int n_bytes, void *p_id, + const char *fileIdentifier) +{ +/* auxiliary function: inserts or updates an ISO Metadata */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; + sqlite3_int64 id = *p64; + int ret; + const char *sql; + sqlite3_stmt *stmt; + int exists = 0; + int retval = 0; + + if (id >= 0) + { + /* checking if already exists - by ID */ + sql = "SELECT id FROM ISO_metadata WHERE id = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerIsoMetadata: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_int64 (stmt, 1, id); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + } + if (fileIdentifier != NULL) + { + /* checking if already exists - by fileIdentifier */ + sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerIsoMetadata: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), + SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + exists = 1; + id = sqlite3_column_int64 (stmt, 0); + } + } + sqlite3_finalize (stmt); + } + + if (exists) + { + /* update */ + sql = "UPDATE ISO_metadata SET md_scope = ?, metadata = ? " + "WHERE id = ?"; + } + else + { + /* insert */ + sql = "INSERT INTO ISO_metadata " + "(id, md_scope, metadata) VALUES (?, ?, ?)"; + } + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("registerIsoMetadata: \"%s\"\n", + sqlite3_errmsg (sqlite)); + goto stop; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + if (exists) + { + /* update */ + sqlite3_bind_text (stmt, 1, scope, strlen (scope), SQLITE_STATIC); + sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); + sqlite3_bind_int (stmt, 3, id); + } + else + { + /* insert */ + if (id < 0) + sqlite3_bind_null (stmt, 1); + else + sqlite3_bind_int64 (stmt, 1, id); + sqlite3_bind_text (stmt, 2, scope, strlen (scope), SQLITE_STATIC); + sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + retval = 1; + else + spatialite_e ("registerIsoMetadata() error: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_finalize (stmt); + return retval; + stop: + return 0; +} + +#endif /* end including LIBXML2 */ diff --git a/src/spatialite/src/spatialite/mbrcache.c b/src/spatialite/src/spatialite/mbrcache.c index 2b77d64..5534127 100644 --- a/src/spatialite/src/spatialite/mbrcache.c +++ b/src/spatialite/src/spatialite/mbrcache.c @@ -2,7 +2,7 @@ mbrcache.c -- SQLite3 extension [MBR CACHE VIRTUAL TABLE] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1525,7 +1525,8 @@ sqlite3MbrCacheInit (sqlite3 * db) } int -mbrcache_extension_init (sqlite3 * db) +mbrcache_extension_init (void *xdb) { + sqlite3 *db = (sqlite3 *) xdb; return sqlite3MbrCacheInit (db); } diff --git a/src/spatialite/src/spatialite/metatables.c b/src/spatialite/src/spatialite/metatables.c index 7f89994..1908b0f 100644 --- a/src/spatialite/src/spatialite/metatables.c +++ b/src/spatialite/src/spatialite/metatables.c @@ -2,7 +2,7 @@ metatables.c -- creating the metadata tables and related triggers - version 4.0, 2012 September 2 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -49,6 +49,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include #include +#include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" @@ -3703,6 +3704,7 @@ updateGeometryTriggers (void *p_sqlite, const char *table, const char *column) if (curr_idx->ValidRtree) { /* building RTree SpatialIndex */ + int status; raw = sqlite3_mprintf ("idx_%s_%s", curr_idx->TableName, curr_idx->ColumnName); quoted_rtree = gaiaDoubleQuotedSql (raw); @@ -3715,9 +3717,24 @@ updateGeometryTriggers (void *p_sqlite, const char *table, const char *column) sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; - buildSpatialIndex (sqlite, - (unsigned char *) (curr_idx->TableName), - curr_idx->ColumnName); + status = buildSpatialIndexEx (sqlite, + (unsigned char + *) (curr_idx->TableName), + curr_idx->ColumnName); + if (status == 0) + ; + else + { + if (status == -2) + errMsg = + sqlite3_mprintf + ("SpatialIndex error: a physical column named ROWID shadows the real ROWID"); + else + errMsg = + sqlite3_mprintf + ("SpatialIndex error: unable to rebuild the T*Tree"); + goto error; + } } if (curr_idx->ValidCache) { @@ -3768,6 +3785,51 @@ SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column) { +/* DEPRECATED - always use buildSpatialIndexEx as a safer replacement */ + buildSpatialIndexEx (p_sqlite, table, column); +} + +SPATIALITE_PRIVATE int +validateRowid (void *p_sqlite, const char *table) +{ +/* check for tables containing a physical column named ROWID */ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + int rowid = 0; + char *sql; + int ret; + const char *name; + int i; + char **results; + int rows; + int columns; + char *quoted_table = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted_table); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); + free (quoted_table); + if (ret != SQLITE_OK) + return 0; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 1]; + if (strcasecmp (name, "rowid") == 0) + rowid = 1; + } + } + sqlite3_free_table (results); + if (rowid == 0) + return 1; + return 0; +} + +SPATIALITE_PRIVATE int +buildSpatialIndexEx (void *p_sqlite, const unsigned char *table, + const char *column) +{ /* loading a SpatialIndex [RTree] */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *raw; @@ -3778,6 +3840,14 @@ buildSpatialIndex (void *p_sqlite, const unsigned char *table, char *errMsg = NULL; int ret; + if (!validateRowid (sqlite, (const char *) table)) + { + /* a physical column named "rowid" shadows the real ROWID */ + spatialite_e + ("buildSpatialIndex error: a physical column named ROWID shadows the real ROWID\n"); + return -2; + } + raw = sqlite3_mprintf ("idx_%s_%s", table, column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); @@ -3799,7 +3869,9 @@ buildSpatialIndex (void *p_sqlite, const unsigned char *table, { spatialite_e ("buildSpatialIndex error: \"%s\"\n", errMsg); sqlite3_free (errMsg); + return -1; } + return 0; } SPATIALITE_PRIVATE int @@ -3902,17 +3974,20 @@ getRealSQLnames (void *p_sqlite, const char *table, const char *column, return 1; } -static void -addLayerAttributeField (gaiaVectorLayersListPtr list, const char *table_name, +SPATIALITE_PRIVATE void +addLayerAttributeField (void *x_list, const char *table_name, const char *geometry_column, int ordinal, const char *column_name, int null_values, int integer_values, int double_values, int text_values, int blob_values, int null_max_size, int max_size, - int null_int_range, sqlite3_int64 integer_min, - sqlite3_int64 integer_max, int null_double_range, + int null_int_range, void *x_integer_min, + void *x_integer_max, int null_double_range, double double_min, double double_max) { /* adding some AttributeFiled to a VectorLayer */ + gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; + sqlite3_int64 integer_min = *((sqlite3_int64 *) x_integer_min); + sqlite3_int64 integer_max = *((sqlite3_int64 *) x_integer_max); gaiaLayerAttributeFieldPtr fld; int len; gaiaVectorLayerPtr lyr = list->Current; @@ -3976,12 +4051,13 @@ addLayerAttributeField (gaiaVectorLayersListPtr list, const char *table_name, lyr->Last = fld; } -static void -addVectorLayer (gaiaVectorLayersListPtr list, const char *layer_type, +SPATIALITE_PRIVATE void +addVectorLayer (void *x_list, const char *layer_type, const char *table_name, const char *geometry_column, int geometry_type, int srid, int spatial_index) { /* adding a Layer to a VectorLayersList */ + gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; int len; gaiaVectorLayerPtr lyr = malloc (sizeof (gaiaVectorLayer)); lyr->LayerType = GAIA_VECTOR_UNKNOWN; @@ -4161,12 +4237,13 @@ addVectorLayer (gaiaVectorLayersListPtr list, const char *layer_type, list->Last = lyr; } -static void -addVectorLayerExtent (gaiaVectorLayersListPtr list, const char *table_name, +SPATIALITE_PRIVATE void +addVectorLayerExtent (void *x_list, const char *table_name, const char *geometry_column, int count, double min_x, double min_y, double max_x, double max_y) { /* appending a LayerExtent object to the corresponding VectorLayer */ + gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; gaiaVectorLayerPtr lyr = list->First; while (lyr) { @@ -4562,8 +4639,8 @@ gaiaGetVectorLayersList_v4 (sqlite3 * handle, const char *table, ordinal, column_name, null_values, integer_values, double_values, text_values, blob_values, null_max_size, - max_size, null_int_range, integer_min, - integer_max, null_double_range, + max_size, null_int_range, &integer_min, + &integer_max, null_double_range, double_min, double_max); } } @@ -5920,3 +5997,109 @@ gaiaGetVectorLayersList (sqlite3 * handle, const char *table, gaiaFreeVectorLayersList (list); return NULL; } + +SPATIALITE_DECLARE gaiaGeomCollPtr +gaiaGetLayerExtent (sqlite3 * handle, const char *table, + const char *geometry, int mode) +{ +/* attempting to get a Layer Full Extent (Envelope) */ + gaiaVectorLayersListPtr list; + gaiaVectorLayerPtr lyr; + double minx = -DBL_MAX; + double miny = -DBL_MAX; + double maxx = DBL_MAX; + double maxy = DBL_MAX; + int srid; + gaiaGeomCollPtr bbox; + gaiaPolygonPtr polyg; + gaiaRingPtr rect; + int md = GAIA_VECTORS_LIST_OPTIMISTIC; + + if (table == NULL) + return NULL; + if (mode) + md = GAIA_VECTORS_LIST_PESSIMISTIC; + + list = gaiaGetVectorLayersList (handle, table, geometry, md); + if (list == NULL) + return NULL; + lyr = list->First; + if (lyr == list->Last && lyr != NULL) + { + srid = lyr->Srid; + if (lyr->ExtentInfos) + { + minx = lyr->ExtentInfos->MinX; + miny = lyr->ExtentInfos->MinY; + maxx = lyr->ExtentInfos->MaxX; + maxy = lyr->ExtentInfos->MaxY; + } + } + gaiaFreeVectorLayersList (list); + + if (minx == -DBL_MIN || miny == -DBL_MAX || maxx == DBL_MAX + || maxy == DBL_MAX) + return NULL; + +/* building the Envelope */ + bbox = gaiaAllocGeomColl (); + bbox->Srid = srid; + polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); + rect = polyg->Exterior; + gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ + gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ + gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ + gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ + gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ + return bbox; +} + +SPATIALITE_DECLARE int +gaiaStatisticsInvalidate (sqlite3 * sqlite, const char *table, + const char *geometry) +{ +/* attempting to immediately and unconditionally invalidate Statistics */ + int metadata_version = checkSpatialMetaData (sqlite); + + if (metadata_version == 3) + { + /* current metadata style >= v.4.0.0 */ + int ret; + char *errMsg = NULL; + char *sql_statement; + if (table != NULL && geometry != NULL) + sql_statement = + sqlite3_mprintf ("UPDATE geometry_columns_time SET " + "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') " + "WHERE Lower(f_table_name) = Lower(%Q) AND " + "Lower(f_geometry_column) = Lower(%Q)", + table, geometry); + else if (table != NULL) + sql_statement = + sqlite3_mprintf ("UPDATE geometry_columns_time SET " + "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') " + "WHERE Lower(f_table_name) = Lower(%Q)", + table); + else + sql_statement = + sqlite3_mprintf ("UPDATE geometry_columns_time SET " + "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " + "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("SQL error: %s: %s\n", sql_statement, errMsg); + sqlite3_free (errMsg); + return 0; + } + return 1; + } + else + return 0; +} diff --git a/src/spatialite/src/spatialite/spatialite.c b/src/spatialite/src/spatialite/spatialite.c index cc8c3f8..ec88f3c 100644 --- a/src/spatialite/src/spatialite/spatialite.c +++ b/src/spatialite/src/spatialite/spatialite.c @@ -1,16 +1,8 @@ -int sqlite3_auto_extension(void (*xEntryPoint)(void)) -{ -} - -void sqlite3_reset_auto_extension(void) -{ -} - /* spatialite.c -- SQLite3 spatial extension - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -32,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -72,7 +64,6 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale #include #if defined(_WIN32) && !defined(__MINGW32__) -/* #define OMIT_GEOCALLBACKS 1 */ #include "config-msvc.h" #else #include "config.h" @@ -85,13 +76,17 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale #include #endif + #include #include #include #include #include +#include #include +#include +#include #include #include @@ -107,6 +102,15 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale #define strcasecmp _stricmp #endif /* not WIN32 */ +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#define FRMT64_WO_PCT "I64d" +#else +#define FRMT64 "%lld" +#define FRMT64_WO_PCT "lld" +#endif + #define GAIA_UNUSED() if (argc || argv) argc = argc; struct gaia_geom_chain_item @@ -135,7 +139,7 @@ struct gaia_rtree_mbr }; #endif /* end RTree geometry callbacks */ -SQLITE_EXTENSION_INIT1 struct stddev_str +struct stddev_str { /* a struct to implement StandardVariation and Variance aggregate functions */ int cleaned; @@ -151,6 +155,13 @@ struct fdo_table struct fdo_table *next; }; +struct gpkg_table +{ +/* a struct to implement a linked-list for OGC GeoPackage table names */ + char *table; + struct gpkg_table *next; +}; + static void fnct_spatialite_version (sqlite3_context * context, int argc, sqlite3_value ** argv) @@ -167,6 +178,22 @@ fnct_spatialite_version (sqlite3_context * context, int argc, sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); } +static void +fnct_spatialite_target_cpu (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ spatialite_target_cpu() +/ +/ return a text string representing the current SpatiaLite Target CPU +*/ + int len; + const char *p_result = spatialite_target_cpu (); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + len = strlen (p_result); + sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); +} + static void fnct_geos_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { @@ -291,6 +318,30 @@ fnct_lwgeom_version (sqlite3_context * context, int argc, sqlite3_value ** argv) len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + sqlite3_result_null (context); +#endif +} + +static void +fnct_libxml2_version (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ libxml2_version() +/ +/ return a text string representing the current LIBXML2 version +/ or NULL if LIBXML2 is currently unsupported +*/ + +#ifdef ENABLE_LIBXML2 /* LIBXML2 version */ + int len; + const char *p_result = gaia_libxml2_version (); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + len = strlen (p_result); + sqlite3_result_text (context, p_result, len, free); +#else + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); #endif } @@ -392,6 +443,38 @@ fnct_has_epsg (sqlite3_context * context, int argc, sqlite3_value ** argv) #endif } +static void +fnct_has_libxml2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ HasLibXML2() +/ +/ return 1 if built including LIBXML2; otherwise 0 +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ +#ifdef ENABLE_LIBXML2 /* LIBXML2 is supported */ + sqlite3_result_int (context, 1); +#else + sqlite3_result_int (context, 0); +#endif +} + +static void +fnct_has_geopackage (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ HasGeoPackage() +/ +/ return 1 if built including GeoPackage support (GPKG); otherwise 0 +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE is supported */ + sqlite3_result_int (context, 1); +#else + sqlite3_result_int (context, 0); +#endif +} + static void fnct_GeometryConstraints (sqlite3_context * context, int argc, sqlite3_value ** argv) @@ -883,17 +966,12 @@ fnct_RTreeAlign (sqlite3_context * context, int argc, sqlite3_value ** argv) } else table_name = gaiaDoubleQuotedSql (rtree_table); -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ - sprintf (pkv, "%I64d", pkid); -#else - sprintf (pkv, "%lld", pkid); -#endif + sprintf (pkv, FRMT64, pkid); sql_statement = sqlite3_mprintf ("INSERT INTO \"%s\" (pkid, xmin, ymin, xmax, ymax) " - "VALUES (%s, %1.12f, %1.12f, %1.12f, %1.12f)", table_name, pkv, - geom->MinX, geom->MinY, geom->MaxX, geom->MaxY); + "VALUES (%s, %1.12f, %1.12f, %1.12f, %1.12f)", table_name, + pkv, geom->MinX, geom->MinY, geom->MaxX, geom->MaxY); gaiaFreeGeomColl (geom); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); @@ -905,6 +983,230 @@ fnct_RTreeAlign (sqlite3_context * context, int argc, sqlite3_value ** argv) } } +static void +fnct_IsValidNoDataPixel (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidNoDataPixel(BLOBencoded pixel, text sample_type, int num_bands) +/ +/ basic version intended to be overloaded by RasterLite-2 +/ always return 0 (FALSE) +/ or -1 (INVALID ARGS) +/ +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + sqlite3_result_int (context, 0); +} + +static void +fnct_IsValidRasterPalette (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidRasterPalette(BLOBencoded palette, text sample_type) +/ +/ basic version intended to be overloaded by RasterLite-2 +/ always return 0 (FALSE) +/ or -1 (INVALID ARGS) +/ +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + sqlite3_result_int (context, 0); +} + +static void +fnct_IsValidRasterStatistics (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidRasterStatistics(text coverage, BLOBencoded statistics) +/ or +/ IsValidRasterStatistics(BLOBencoded statistics, text sample_type, int num_bands) +/ +/ basic version intended to be overloaded by RasterLite-2 +/ always return 0 (FALSE) +/ or -1 (INVALID ARGS) +/ +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (argc == 2) + { + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + } + else + { + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + } + sqlite3_result_int (context, 0); +} + +static void +fnct_IsValidRasterTile (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidRasterTile(text coverage, integer level, BLOBencoded tile_odd, +/ BLOBencoded tile_even) +/ +/ basic version intended to be overloaded by RasterLite-2 +/ always return 0 (FALSE) +/ or -1 (INVALID ARGS) +/ +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[3]) != SQLITE_BLOB + && sqlite3_value_type (argv[3]) != SQLITE_NULL) + { + sqlite3_result_int (context, -1); + return; + } + sqlite3_result_int (context, 0); +} + +static void +fnct_IsPopulatedCoverage (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ IsPopulatedCoverage(text coverage) +/ +/ check if a RasterCoverage is already populated +/ returns 1 if TRUE, 0 if FALSE +/ -1 on invalid arguments +*/ + const char *coverage; + int ret; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + coverage = (const char *) sqlite3_value_text (argv[0]); + ret = checkPopulatedCoverage (sqlite, coverage); + sqlite3_result_int (context, ret); + return; +} + +static int +is_without_rowid_table (sqlite3 * sqlite, const char *table) +{ +/* internal utility functions; checks for WITHOUT ROWID tables */ + char *sql; + char *xtable; + int ret; + int i; + char **results; + int rows; + int columns; + int j; + char **results2; + int rows2; + int columns2; + char *errMsg = NULL; + int without_rowid = 0; + + xtable = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable); + free (xtable); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 1; + } + for (i = 1; i <= rows; i++) + { + const char *index = results[(i * columns) + 1]; + sql = sqlite3_mprintf ("SELECT count(*) FROM sqlite_master WHERE " + "type = 'index' AND Lower(tbl_name) = Lower(%Q) " + "AND Lower(name) = Lower(%Q)", table, index); + ret = + sqlite3_get_table (sqlite, sql, &results2, &rows2, &columns2, + &errMsg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 1; + } + for (j = 1; j <= rows2; j++) + { + if (atoi (results2[(j * columns2) + 0]) == 0) + without_rowid = 1; + } + sqlite3_free_table (results2); + } + sqlite3_free_table (results); + return without_rowid; +} + SPATIALITE_PRIVATE int checkSpatialMetaData (const void *handle) { @@ -978,8 +1280,8 @@ checkSpatialMetaData (const void *handle) } } sqlite3_free_table (results); - if (f_table_name && f_geometry_column && type && coord_dimension && gc_srid - && spatial_index_enabled) + if (f_table_name && f_geometry_column && type && coord_dimension + && gc_srid && spatial_index_enabled) spatialite_legacy_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && spatial_index_enabled) @@ -1100,9 +1402,8 @@ fnct_AutoFDOStart (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* ok, creating VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, - &columns, NULL); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, + &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) @@ -1190,11 +1491,10 @@ fnct_AutoFDOStop (sqlite3_context * context, int argc, sqlite3_value ** argv) GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkSpatialMetaData (sqlite) == 2) { - /* ok, creating VirtualFDO tables */ + /* ok, removing VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, - &columns, NULL); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, + &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) @@ -1273,7 +1573,13 @@ fnct_InitSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ InitSpatialMetaData([text mode]) +/ InitSpatialMetaData() +/ or +/ InitSpatialMetaData(text mode) +/ or +/ InitSpatialMetaData(integer transaction) +/ or +/ InitSpatialMetaData(integer transaction, text mode) / / creates the SPATIAL_REF_SYS and GEOMETRY_COLUMNS tables / returns 1 on success @@ -1282,27 +1588,67 @@ fnct_InitSpatialMetaData (sqlite3_context * context, int argc, char sql[8192]; char *errMsg = NULL; int ret; + int transaction = 0; const char *xmode; int mode = GAIA_EPSG_ANY; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + { + xmode = (const char *) sqlite3_value_text (argv[0]); + if (strcasecmp (xmode, "NONE") == 0 + || strcasecmp (xmode, "EMPTY") == 0) + mode = GAIA_EPSG_NONE; + if (strcasecmp (xmode, "WGS84") == 0 + || strcasecmp (xmode, "WGS84_ONLY") == 0) + mode = GAIA_EPSG_WGS84_ONLY; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + transaction = sqlite3_value_int (argv[0]); + else { spatialite_e - ("InitSpatialMetaData() error: argument 1 [mode] is not of the String type\n"); + ("InitSpatialMetaData() error: argument 1 is not of the String or Integer type\n"); sqlite3_result_int (context, 0); return; } - xmode = (const char *) sqlite3_value_text (argv[0]); - if (strcasecmp (xmode, "NONE") == 0 - || strcasecmp (xmode, "EMPTY") == 0) - mode = GAIA_EPSG_NONE; - if (strcasecmp (xmode, "WGS84") == 0 - || strcasecmp (xmode, "WGS84_ONLY") == 0) - mode = GAIA_EPSG_WGS84_ONLY; } + if (argc == 2) + { + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + spatialite_e + ("InitSpatialMetaData() error: argument 1 is not of the Integer type\n"); + sqlite3_result_int (context, 0); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + spatialite_e + ("InitSpatialMetaData() error: argument 2 is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + transaction = sqlite3_value_int (argv[0]); + xmode = (const char *) sqlite3_value_text (argv[1]); + if (strcasecmp (xmode, "NONE") == 0 + || strcasecmp (xmode, "EMPTY") == 0) + mode = GAIA_EPSG_NONE; + if (strcasecmp (xmode, "WGS84") == 0 + || strcasecmp (xmode, "WGS84_ONLY") == 0) + mode = GAIA_EPSG_WGS84_ONLY; + } + + if (transaction) + { + /* starting a Transaction */ + ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + /* creating the SPATIAL_REF_SYS table */ strcpy (sql, "CREATE TABLE spatial_ref_sys (\n"); strcat (sql, "srid INTEGER NOT NULL PRIMARY KEY,\n"); @@ -1355,276 +1701,599 @@ fnct_InitSpatialMetaData (sqlite3_context * context, int argc, updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully populated"); } + + if (transaction) + { + /* confirming the still pending Transaction */ + ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + sqlite3_result_int (context, 1); return; error: spatialite_e (" InitSpatiaMetaData() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); - sqlite3_result_int (context, 0); - return; -} - -static void -fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ InsertEpsgSrid(int srid) -/ -/ returns 1 on success: 0 on failure -*/ - int srid; - int ret; - sqlite3 *sqlite = sqlite3_context_db_handle (context); - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - srid = sqlite3_value_int (argv[0]); - else + if (transaction) { - sqlite3_result_int (context, 0); - return; + /* performing a Rollback */ + ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + { + spatialite_e (" InitSpatiaMetaData() error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } } - ret = insert_epsg_srid (sqlite, srid); - if (!ret) - sqlite3_result_int (context, 0); - else - sqlite3_result_int (context, 1); + sqlite3_result_int (context, 0); + return; } static int -recoverGeomColumn (sqlite3 * sqlite, const char *table, - const char *column, int xtype, int dims, int srid) +checkGeoPackage (sqlite3 * handle) { -/* checks if TABLE.COLUMN exists and has the required features */ - int ok = 1; - int type; - sqlite3_stmt *stmt; - gaiaGeomCollPtr geom; - const void *blob_value; - int len; +/* testing for GeoPackage meta-tables */ + sqlite3 *sqlite = (sqlite3 *) handle; + char sql[1024]; int ret; - int i_col; - int is_nullable = 1; - char *p_table; - char *p_column; - char *sql_statement; - -/* testing if NOT NULL */ - p_table = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table); - free (p_table); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); - sqlite3_free (sql_statement); + const char *name; + int table_name = 0; + int column_name = 0; + int geometry_type_name = 0; + int srs_id_gc = 0; + int has_z = 0; + int has_m = 0; + int gpkg_gc = 0; + int srs_id_srs = 0; + int srs_name = 0; + int gpkg_srs = 0; + int i; + char **results; + int rows; + int columns; +/* checking the GPKG_GEOMETRY_COLUMNS table */ + strcpy (sql, "PRAGMA table_info(gpkg_geometry_columns)"); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) + goto unknown; + if (rows < 1) + ; + else { - spatialite_e ("recoverGeomColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); - return 0; - } - while (1) - { - /* scrolling the result set rows */ - ret = sqlite3_step (stmt); - if (ret == SQLITE_DONE) - break; /* end of result set */ - if (ret == SQLITE_ROW) + for (i = 1; i <= rows; i++) { - if (strcasecmp - (column, (const char *) sqlite3_column_text (stmt, 1)) == 0) - { - if (sqlite3_column_int (stmt, 2) != 0) - is_nullable = 0; - } + name = results[(i * columns) + 1]; + if (strcasecmp (name, "table_name") == 0) + table_name = 1; + if (strcasecmp (name, "column_name") == 0) + column_name = 1; + if (strcasecmp (name, "geometry_type_name") == 0) + geometry_type_name = 1; + if (strcasecmp (name, "srs_id") == 0) + srs_id_gc = 1; + if (strcasecmp (name, "z") == 0) + has_z = 1; + if (strcasecmp (name, "m") == 0) + has_m = 1; } } - sqlite3_finalize (stmt); - - p_table = gaiaDoubleQuotedSql (table); - p_column = gaiaDoubleQuotedSql (column); - sql_statement = - sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", p_column, p_table); - free (p_table); - free (p_column); -/* compiling SQL prepared statement */ - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); - sqlite3_free (sql_statement); + sqlite3_free_table (results); + if (table_name && column_name && geometry_type_name && srs_id_gc && has_z + && has_m) + gpkg_gc = 1; +/* checking the GPKG_SPATIAL_REF_SYS table */ + strcpy (sql, "PRAGMA table_info(gpkg_spatial_ref_sys)"); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) + goto unknown; + if (rows < 1) + ; + else { - spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", - sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); - return 0; - } - sqlite3_reset (stmt); - sqlite3_clear_bindings (stmt); - sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); - sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); - while (1) - { - /* scrolling the result set rows */ - ret = sqlite3_step (stmt); - if (ret == SQLITE_DONE) - break; /* end of result set */ - if (ret == SQLITE_ROW) + for (i = 1; i <= rows; i++) { - /* checking Geometry features */ - geom = NULL; - for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) - { - if (sqlite3_column_type (stmt, i_col) == SQLITE_NULL) - { - /* found a NULL geometry */ - if (!is_nullable) - ok = 0; - } - else if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) - ok = 0; - else - { - blob_value = sqlite3_column_blob (stmt, i_col); - len = sqlite3_column_bytes (stmt, i_col); - geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); - if (!geom) - ok = 0; - else - { - if (geom->DimensionModel != dims) - ok = 0; - if (geom->Srid != srid) - ok = 0; - type = gaiaGeometryType (geom); - if (xtype == -1) - ; /* GEOMETRY */ - else - { - if (xtype == type) - ; - else - ok = 0; - } - gaiaFreeGeomColl (geom); - } - } - } + name = results[(i * columns) + 1]; + if (strcasecmp (name, "srs_id") == 0) + srs_id_srs = 1; + if (strcasecmp (name, "srs_name") == 0) + srs_name = 1; } - if (!ok) - break; } - ret = sqlite3_finalize (stmt); - if (ret != SQLITE_OK) + sqlite3_free_table (results); + if (srs_id_srs && srs_name) + gpkg_srs = 1; + if (gpkg_gc && gpkg_srs) + return 1; + unknown: + return 0; +} + +static void +fnct_CheckGeoPackageMetaData (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CheckGeoPackageMetaData(void) +/ +/ for OGC GeoPackage interoperability: +/ tests if GeoPackage metadata tables are found +/ +*/ + sqlite3 *sqlite; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + sqlite = sqlite3_context_db_handle (context); + ret = checkGeoPackage (sqlite); + sqlite3_result_int (context, ret); + return; +} + +#ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ + +static void +add_gpkg_table (struct gpkg_table **first, struct gpkg_table **last, + const char *table, int len) +{ +/* adds a GPKG Geometry Table to corresponding linked list */ + struct gpkg_table *p = malloc (sizeof (struct gpkg_table)); + p->table = malloc (len + 1); + strcpy (p->table, table); + p->next = NULL; + if (!(*first)) + (*first) = p; + if ((*last)) + (*last)->next = p; + (*last) = p; +} + +static void +free_gpkg_tables (struct gpkg_table *first) +{ +/* memory cleanup; destroying the GPKG tables linked list */ + struct gpkg_table *p; + struct gpkg_table *pn; + p = first; + while (p) { - spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", - sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); - return 0; + pn = p->next; + if (p->table) + free (p->table); + free (p); + p = pn; } - return ok; } static void -fnct_AddGeometryColumn (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_AutoGPKGStart (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ AddGeometryColumn(table, column, srid, type [ , dimension [ , not-null ] ] ) +/ AutoGPKGStart(void) +/ +/ for OCG GeoPackage interoperability: +/ tests the DB layout, then automatically +/ creating a VirtualGPKS table for each GPKG main table +/ declared within gpkg_geometry_colums / -/ creates a new COLUMN of given TYPE into TABLE -/ returns 1 on success -/ 0 on failure */ - const char *table; - const char *column; - const unsigned char *type; - const unsigned char *txt_dims; - int xtype; - int srid = -1; - int dimension = 2; - int dims = -1; - int auto_dims = -1; - char sql[1024]; int ret; - int notNull = 0; - int metadata_version; - sqlite3_stmt *stmt; - char *p_table = NULL; const char *name; - int len; - char *quoted_table; - char *quoted_column; - const char *p_type; - const char *p_dims; - int n_type; - int n_dims; + int i; + char **results; + int rows; + int columns; char *sql_statement; + int count = 0; + struct gpkg_table *first = NULL; + struct gpkg_table *last = NULL; + struct gpkg_table *p; + int len; + char *xname; + char *xxname; + char *xtable; sqlite3 *sqlite = sqlite3_context_db_handle (context); - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (checkGeoPackage (sqlite)) { - spatialite_e - ("AddGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); - sqlite3_result_int (context, 0); + /* ok, creating VirtualGPKG tables */ + sql_statement = + "SELECT DISTINCT table_name FROM gpkg_geometry_columns"; + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, + &columns, NULL); + if (ret != SQLITE_OK) + goto error; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 0]; + if (name) + { + len = strlen (name); + add_gpkg_table (&first, &last, name, len); + } + } + } + sqlite3_free_table (results); + p = first; + while (p) + { + /* destroying the VirtualGPKG table [if existing] */ + xxname = sqlite3_mprintf ("vgpkg_%s", p->table); + xname = gaiaDoubleQuotedSql (xxname); + sqlite3_free (xxname); + sql_statement = + sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); + free (xname); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + goto error; + /* creating the VirtualGPKG table */ + xxname = sqlite3_mprintf ("vgpkg_%s", p->table); + xname = gaiaDoubleQuotedSql (xxname); + sqlite3_free (xxname); + xtable = gaiaDoubleQuotedSql (p->table); + sql_statement = + sqlite3_mprintf + ("CREATE VIRTUAL TABLE \"%s\" USING VirtualGPKG(\"%s\")", + xname, xtable); + free (xname); + free (xtable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + goto error; + count++; + p = p->next; + } + error: + free_gpkg_tables (first); + sqlite3_result_int (context, count); return; } - table = (const char *) sqlite3_value_text (argv[0]); - if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + sqlite3_result_int (context, 0); + return; +} + +static void +fnct_AutoGPKGStop (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ AutoGPKGStop(void) +/ +/ for OGC GeoPackage interoperability: +/ tests the DB layout, then automatically removes any VirtualGPKG table +/ +*/ + int ret; + const char *name; + int i; + char **results; + int rows; + int columns; + char *sql_statement; + int count = 0; + struct gpkg_table *first = NULL; + struct gpkg_table *last = NULL; + struct gpkg_table *p; + int len; + char *xname; + char *xxname; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (checkGeoPackage (sqlite)) { - spatialite_e - ("AddGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); - sqlite3_result_int (context, 0); + /* ok, removing VirtualGPKG tables */ + sql_statement = + "SELECT DISTINCT table_name FROM gpkg_geometry_columns"; + ret = + sqlite3_get_table (sqlite, sql_statement, &results, &rows, + &columns, NULL); + if (ret != SQLITE_OK) + goto error; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 0]; + if (name) + { + len = strlen (name); + add_gpkg_table (&first, &last, name, len); + } + } + } + sqlite3_free_table (results); + p = first; + while (p) + { + /* destroying the VirtualGPKG table [if existing] */ + xxname = sqlite3_mprintf ("vgpkg_%s", p->table); + xname = gaiaDoubleQuotedSql (xxname); + sqlite3_free (xxname); + sql_statement = + sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); + free (xname); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + goto error; + count++; + p = p->next; + } + error: + free_gpkg_tables (first); + sqlite3_result_int (context, count); return; } - column = (const char *) sqlite3_value_text (argv[1]); - if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + sqlite3_result_int (context, 0); + return; +} + +#endif /* end enabling GeoPackage extensions */ + +static void +fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ InsertEpsgSrid(int srid) +/ +/ returns 1 on success: 0 on failure +*/ + int srid; + int ret; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[0]); + else { - spatialite_e - ("AddGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } - srid = sqlite3_value_int (argv[2]); - if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) + ret = insert_epsg_srid (sqlite, srid); + if (!ret) + sqlite3_result_int (context, 0); + else + sqlite3_result_int (context, 1); +} + +static int +recoverGeomColumn (sqlite3 * sqlite, const char *table, + const char *column, int xtype, int dims, int srid) +{ +/* checks if TABLE.COLUMN exists and has the required features */ + int ok = 1; + int type; + sqlite3_stmt *stmt; + gaiaGeomCollPtr geom; + const void *blob_value; + int len; + int ret; + int i_col; + int is_nullable = 1; + char *p_table; + char *p_column; + char *sql_statement; + +/* testing if NOT NULL */ + p_table = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table); + free (p_table); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - spatialite_e - ("AddGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); - sqlite3_result_int (context, 0); - return; + spatialite_e ("recoverGeomColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); + return 0; } - type = sqlite3_value_text (argv[3]); - if (argc > 4) + while (1) { - if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) - { - dimension = sqlite3_value_int (argv[4]); - if (dimension == 2) - dims = GAIA_XY; - if (dimension == 3) - dims = GAIA_XY_Z; - if (dimension == 4) - dims = GAIA_XY_Z_M; - } - else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) - { - txt_dims = sqlite3_value_text (argv[4]); - if (strcasecmp ((char *) txt_dims, "XY") == 0) - dims = GAIA_XY; - if (strcasecmp ((char *) txt_dims, "XYZ") == 0) - dims = GAIA_XY_Z; - if (strcasecmp ((char *) txt_dims, "XYM") == 0) - dims = GAIA_XY_M; - if (strcasecmp ((char *) txt_dims, "XYZM") == 0) - dims = GAIA_XY_Z_M; - } - else + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) { - spatialite_e - ("AddGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); - sqlite3_result_int (context, 0); - return; + if (strcasecmp + (column, (const char *) sqlite3_column_text (stmt, 1)) == 0) + { + if (sqlite3_column_int (stmt, 2) != 0) + is_nullable = 0; + } } } - if (argc == 6) + sqlite3_finalize (stmt); + + p_table = gaiaDoubleQuotedSql (table); + p_column = gaiaDoubleQuotedSql (column); + sql_statement = + sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", p_column, p_table); + free (p_table); + free (p_column); +/* compiling SQL prepared statement */ + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - /* optional NOT NULL arg */ - if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) + spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", + sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); + return 0; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); + sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + /* checking Geometry features */ + geom = NULL; + for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) + { + if (sqlite3_column_type (stmt, i_col) == SQLITE_NULL) + { + /* found a NULL geometry */ + if (!is_nullable) + ok = 0; + } + else if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) + ok = 0; + else + { + blob_value = sqlite3_column_blob (stmt, i_col); + len = sqlite3_column_bytes (stmt, i_col); + geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); + if (!geom) + ok = 0; + else + { + if (geom->DimensionModel != dims) + ok = 0; + if (geom->Srid != srid) + ok = 0; + type = gaiaGeometryType (geom); + if (xtype == -1) + ; /* GEOMETRY */ + else + { + if (xtype == type) + ; + else + ok = 0; + } + gaiaFreeGeomColl (geom); + } + } + } + } + if (!ok) + break; + } + ret = sqlite3_finalize (stmt); + if (ret != SQLITE_OK) + { + spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", + sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); + return 0; + } + return ok; +} + +static void +fnct_AddGeometryColumn (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ AddGeometryColumn(table, column, srid, type [ , dimension [ , not-null ] ] ) +/ +/ creates a new COLUMN of given TYPE into TABLE +/ returns 1 on success +/ 0 on failure +*/ + const char *table; + const char *column; + const unsigned char *type; + const unsigned char *txt_dims; + int xtype; + int srid = -1; + int dimension = 2; + int dims = -1; + int auto_dims = -1; + char sql[1024]; + int ret; + int notNull = 0; + int metadata_version; + sqlite3_stmt *stmt; + char *p_table = NULL; + char *quoted_table; + char *quoted_column; + const char *p_type; + const char *p_dims; + int n_type; + int n_dims; + char *sql_statement; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + spatialite_e + ("AddGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + table = (const char *) sqlite3_value_text (argv[0]); + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + spatialite_e + ("AddGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + column = (const char *) sqlite3_value_text (argv[1]); + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + spatialite_e + ("AddGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); + sqlite3_result_int (context, 0); + return; + } + srid = sqlite3_value_int (argv[2]); + if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) + { + spatialite_e + ("AddGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + type = sqlite3_value_text (argv[3]); + if (argc > 4) + { + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + dimension = sqlite3_value_int (argv[4]); + if (dimension == 2) + dims = GAIA_XY; + if (dimension == 3) + dims = GAIA_XY_Z; + if (dimension == 4) + dims = GAIA_XY_Z_M; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) + { + txt_dims = sqlite3_value_text (argv[4]); + if (strcasecmp ((char *) txt_dims, "XY") == 0) + dims = GAIA_XY; + if (strcasecmp ((char *) txt_dims, "XYZ") == 0) + dims = GAIA_XY_Z; + if (strcasecmp ((char *) txt_dims, "XYM") == 0) + dims = GAIA_XY_M; + if (strcasecmp ((char *) txt_dims, "XYZM") == 0) + dims = GAIA_XY_Z_M; + } + else + { + spatialite_e + ("AddGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); + sqlite3_result_int (context, 0); + return; + } + } + if (argc == 6) + { + /* optional NOT NULL arg */ + if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { spatialite_e ("AddGeometryColumn() error: argument 6 [not null] is not of the Integer type\n"); @@ -1841,12 +2510,12 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, break; /* end of result set */ if (ret == SQLITE_ROW) { - name = (const char *) sqlite3_column_text (stmt, 0); - len = sqlite3_column_bytes (stmt, 0); - if (p_table) - free (p_table); - p_table = malloc (len + 1); - strcpy (p_table, name); + if (p_table != NULL) + sqlite3_free (p_table); + p_table = + sqlite3_mprintf ("%s", + (const char *) sqlite3_column_text (stmt, + 0)); } } sqlite3_finalize (stmt); @@ -1857,6 +2526,15 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, sqlite3_result_int (context, 0); return; } +/* checking for WITHOUT ROWID */ + if (is_without_rowid_table (sqlite, table)) + { + spatialite_e + ("AddGeometryColumn() error: table '%s' is WITHOUT ROWID\n", + table); + sqlite3_result_int (context, 0); + return; + } metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 1 || metadata_version == 3) ; @@ -1917,7 +2595,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } /*ok, inserting into geometry_columns [Spatial Metadata] */ @@ -2075,15 +2753,14 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } sqlite3_reset (stmt); @@ -2119,7 +2796,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } sqlite3_reset (stmt); @@ -2147,7 +2824,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } sqlite3_reset (stmt); @@ -2175,7 +2852,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } sqlite3_reset (stmt); @@ -2243,11 +2920,11 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc, p_type, p_dims, (srid <= 0) ? -1 : srid); updateSpatiaLiteHistory (sqlite, table, column, sql_statement); sqlite3_free (sql_statement); - free (p_table); + sqlite3_free (p_table); return; error: sqlite3_result_int (context, 0); - free (p_table); + sqlite3_free (p_table); return; } @@ -2581,6 +3258,14 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, sqlite3_result_int (context, 0); return; } + if (is_without_rowid_table (sqlite, table)) + { + spatialite_e + ("RecoverGeometryColumn() error: table '%s' is WITHOUT ROWID\n", + table); + sqlite3_result_int (context, 0); + return; + } /* adjusting the actual GeometryType */ xxtype = xtype; xtype = GAIA_UNKNOWN; @@ -2722,9 +3407,8 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) AND " "Lower(f_geometry_column) = Lower(?)"); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -2816,10 +3500,17 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, p_dims = "XYZM"; break; }; +/* Sandro 2013-01-07 +/ fixing an issue reported by Peter Aronson [ESRI] sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (Lower(?), Lower(?), %Q, %Q, ?, 0)", p_type, p_dims); +*/ + sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " + "(f_table_name, f_geometry_column, type, coord_dimension, srid, " + "spatial_index_enabled) VALUES (?, ?, %Q, %Q, ?, 0)", + p_type, p_dims); } else { @@ -2860,7 +3551,7 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, break; case GAIA_POLYGON: n_type = 3; - n_dims = 3; + n_dims = 2; break; case GAIA_POLYGONZ: n_type = 1003; @@ -2965,9 +3656,8 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -3200,9 +3890,8 @@ fnct_DiscardGeometryColumn (sqlite3_context * context, int argc, sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -3418,9 +4107,9 @@ registerVirtual (sqlite3 * sqlite, const char *table) char *sql_statement; /* testing the layout of virts_geometry_columns table */ - ret = - sqlite3_get_table (sqlite, "PRAGMA table_info(virts_geometry_columns)", - &results, &rows, &columns, &errMsg); + ret = sqlite3_get_table (sqlite, + "PRAGMA table_info(virts_geometry_columns)", + &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); @@ -3459,9 +4148,8 @@ registerVirtual (sqlite3 * sqlite, const char *table) "ST_GeometryType(Geometry), ST_Srid(Geometry) FROM \"%s\"", quoted); free (quoted); - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, - &errMsg); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -3571,10 +4259,11 @@ registerVirtual (sqlite3 * sqlite, const char *table) { /* has the "geometry_type" column */ sql_statement = - sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " - "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " - "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", - table, xtype, xdims, srid); + sqlite3_mprintf + ("INSERT OR REPLACE INTO virts_geometry_columns " + "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " + "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", table, xtype, + xdims, srid); } else { @@ -3620,10 +4309,10 @@ registerVirtual (sqlite3 * sqlite, const char *table) break; }; sql_statement = - sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " - "(virt_name, virt_geometry, type, srid) " - "VALUES (Lower(%Q), 'geometry', %Q, %d)", table, - xgtype, srid); + sqlite3_mprintf + ("INSERT OR REPLACE INTO virts_geometry_columns " + "(virt_name, virt_geometry, type, srid) " + "VALUES (Lower(%Q), 'geometry', %Q, %d)", table, xgtype, srid); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); @@ -3824,9 +4513,8 @@ recoverFDOGeomColumn (sqlite3 * sqlite, const unsigned char *table, free (xcolumn); free (xtable); /* compiling SQL prepared statement */ - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4057,9 +4745,8 @@ fnct_AddFDOGeometryColumn (sqlite3_context * context, int argc, table); free (xtable); free (xcolumn); - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, - &errMsg); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4231,9 +4918,8 @@ fnct_RecoverFDOGeometryColumn (sqlite3_context * context, int argc, sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master " "WHERE type = 'table' AND Upper(name) = Upper(%Q)", table); - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, - &errMsg); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4341,7 +5027,9 @@ eval_rtree_entry (int ok_geom, double geom_value, int ok_rtree, { float g = (float) geom_value; float r = (float) rtree_value; - if (g != r) + double tic = fabs (geom_value - r) * 2.0; + float diff = g - r; + if (diff > tic) return 0; return 1; } @@ -4364,6 +5052,7 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, sqlite3_stmt *stmt; sqlite3_int64 count_geom; sqlite3_int64 count_rtree; + sqlite3_int64 count_rev = 0; double g_xmin; double g_ymin; double g_xmax; @@ -4380,15 +5069,24 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, int ok_i_ymin; int ok_i_xmax; int ok_i_ymax; + int rowid_column = 0; + int without_rowid = 0; + + if (is_without_rowid_table (sqlite, (char *) table)) + { + spatialite_e ("check_spatial_index: table \"%s\" is WITHOUT ROWID\n", + table); + without_rowid = 1; + goto err_label; + } /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4405,7 +5103,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, is_defined = sqlite3_column_int (stmt, 0); else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } @@ -4420,13 +5119,19 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); + if (!validateRowid (sqlite, (const char *) table)) + { + /* a physical column named "rowid" shadows the real ROWID */ + rowid_column = 1; + goto err_label; + } + /* counting how many Geometries are set into the main-table */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\" " "WHERE ST_GeometryType(\"%s\") IS NOT NULL", xtable, xgeom); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4443,7 +5148,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, count_geom = sqlite3_column_int (stmt, 0); else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } @@ -4452,9 +5158,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, /* counting how many R*Tree entries are defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\"", xidx_name); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4471,7 +5176,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, count_rtree = sqlite3_column_int (stmt, 0); else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } @@ -4483,15 +5189,14 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, goto mismatching_zero; } -/* checking the geometry-table against the corresponding R*Tree */ +/* now we'll check the R*Tree against the corresponding geometry-table */ sql_statement = sqlite3_mprintf ("SELECT MbrMinX(g.\"%s\"), MbrMinY(g.\"%s\"), " "MbrMaxX(g.\"%s\"), MbrMaxY(g.\"%s\"), i.xmin, i.ymin, i.xmax, i.ymax\n" - "FROM \"%s\" AS g\nLEFT JOIN \"%s\" AS i ON (g.ROWID = i.pkid)", - xgeom, xgeom, xgeom, xgeom, xtable, xidx_name); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + "FROM \"%s\" AS i\nLEFT JOIN \"%s\" AS g ON (g.ROWID = i.pkid)", + xgeom, xgeom, xgeom, xgeom, xidx_name, xtable); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4507,6 +5212,7 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, if (ret == SQLITE_ROW) { /* checking a row */ + count_rev++; ok_g_xmin = 1; ok_g_ymin = 1; ok_g_xmax = 1; @@ -4547,156 +5253,75 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table, ok_i_ymax = 0; else i_ymax = sqlite3_column_double (stmt, 7); - if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) == - 0) + if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) + == 0) goto mismatching; - if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) == - 0) + if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) + == 0) goto mismatching; - if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) == - 0) + if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) + == 0) goto mismatching; - if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) == - 0) + if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) + == 0) goto mismatching; } else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } -/* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); + if (count_geom != count_rev) + goto mismatching; + strcpy (sql, "Check SpatialIndex: is valid"); + updateSpatiaLiteHistory (sqlite, (const char *) table, + (const char *) geom, sql); + free (xgeom); + free (xtable); + free (xidx_name); + return 1; + mismatching: + sqlite3_finalize (stmt); + strcpy (sql, "Check SpatialIndex: INCONSISTENCIES detected"); + updateSpatiaLiteHistory (sqlite, (const char *) table, + (const char *) geom, sql); + mismatching_zero: + if (xgeom) + free (xgeom); + if (xtable) + free (xtable); + if (xidx_name) + free (xidx_name); + return 0; + err_label: + if (xgeom) + free (xgeom); + if (xtable) + free (xtable); + if (xidx_name) + free (xidx_name); + if (rowid_column) + return -2; + if (without_rowid) + return -3; + return -1; +} - -/* now we'll check the R*Tree against the corresponding geometry-table */ - sql_statement = - sqlite3_mprintf ("SELECT MbrMinX(g.\"%s\"), MbrMinY(g.\"%s\"), " - "MbrMaxX(g.\"%s\"), MbrMaxY(g.\"%s\"), i.xmin, i.ymin, i.xmax, i.ymax\n" - "FROM \"%s\" AS i\nLEFT JOIN \"%s\" AS g ON (g.ROWID = i.pkid)", - xgeom, xgeom, xgeom, xgeom, xidx_name, xtable); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("CheckSpatialIndex SQL error: %s\n", - sqlite3_errmsg (sqlite)); - goto err_label; - } - while (1) - { - ret = sqlite3_step (stmt); - if (ret == SQLITE_DONE) - break; - if (ret == SQLITE_ROW) - { - /* checking a row */ - ok_g_xmin = 1; - ok_g_ymin = 1; - ok_g_xmax = 1; - ok_g_ymax = 1; - ok_i_xmin = 1; - ok_i_ymin = 1; - ok_i_xmax = 1; - ok_i_ymax = 1; - if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) - ok_g_xmin = 0; - else - g_xmin = sqlite3_column_double (stmt, 0); - if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) - ok_g_ymin = 0; - else - g_ymin = sqlite3_column_double (stmt, 1); - if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) - ok_g_xmax = 0; - else - g_xmax = sqlite3_column_double (stmt, 2); - if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) - ok_g_ymax = 0; - else - g_ymax = sqlite3_column_double (stmt, 3); - if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) - ok_i_xmin = 0; - else - i_xmin = sqlite3_column_double (stmt, 4); - if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) - ok_i_ymin = 0; - else - i_ymin = sqlite3_column_double (stmt, 5); - if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) - ok_i_xmax = 0; - else - i_xmax = sqlite3_column_double (stmt, 6); - if (sqlite3_column_type (stmt, 7) == SQLITE_NULL) - ok_i_ymax = 0; - else - i_ymax = sqlite3_column_double (stmt, 7); - if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) == - 0) - goto mismatching; - if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) == - 0) - goto mismatching; - if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) == - 0) - goto mismatching; - if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) == - 0) - goto mismatching; - } - else - { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); - sqlite3_finalize (stmt); - goto err_label; - } - } - sqlite3_finalize (stmt); - strcpy (sql, "Check SpatialIndex: is valid"); - updateSpatiaLiteHistory (sqlite, (const char *) table, - (const char *) geom, sql); - free (xgeom); - free (xtable); - free (xidx_name); - return 1; - mismatching: - sqlite3_finalize (stmt); - strcpy (sql, "Check SpatialIndex: INCONSISTENCIES detected"); - updateSpatiaLiteHistory (sqlite, (const char *) table, - (const char *) geom, sql); - mismatching_zero: - if (xgeom) - free (xgeom); - if (xtable) - free (xtable); - if (xidx_name) - free (xidx_name); - return 0; - err_label: - if (xgeom) - free (xgeom); - if (xtable) - free (xtable); - if (xidx_name) - free (xidx_name); - return -1; -} - -static int -check_any_spatial_index (sqlite3 * sqlite) -{ -/* attempting to check any defined R*Tree for consistency */ - const unsigned char *table; - const unsigned char *column; - int status; - char sql[1024]; - int ret; - int invalid_rtree = 0; - sqlite3_stmt *stmt; +static int +check_any_spatial_index (sqlite3 * sqlite) +{ +/* attempting to check any defined R*Tree for consistency */ + const unsigned char *table; + const unsigned char *column; + int status; + char sql[1024]; + int ret; + int invalid_rtree = 0; + sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ strcpy (sql, @@ -4723,14 +5348,15 @@ check_any_spatial_index (sqlite3 * sqlite) if (status < 0) { sqlite3_finalize (stmt); - return -1; + return status; } if (status == 0) invalid_rtree = 1; } else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } @@ -4752,6 +5378,7 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc, / checks a SpatialIndex for consistency, returning: / 1 - the R*Tree is fully consistent / 0 - the R*Tree is inconsistent +/ -1 if any physical "ROWID" column exist shadowing the real ROWID / NULL on failure */ const unsigned char *table; @@ -4764,7 +5391,12 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc, /* no arguments: we must check any defined R*Tree */ status = check_any_spatial_index (sqlite); if (status < 0) - sqlite3_result_null (context); + { + if (status == -2) + sqlite3_result_int (context, -1); + else + sqlite3_result_null (context); + } else if (status > 0) sqlite3_result_int (context, 1); else @@ -4789,7 +5421,11 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc, } column = sqlite3_value_text (argv[1]); status = check_spatial_index (sqlite, table, column); - if (status < 0) + if (status == -2) + sqlite3_result_int (context, -1); + else if (status == -3) + sqlite3_result_int (context, -1); + else if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); @@ -4810,15 +5446,15 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table, char sql[1024]; int is_defined = 0; sqlite3_stmt *stmt; + int status; /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); - ret = - sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), - &stmt, NULL); + ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), + &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { @@ -4835,7 +5471,8 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table, is_defined = sqlite3_column_int (stmt, 0); else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } @@ -4855,7 +5492,26 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table, if (ret != SQLITE_OK) goto error; /* populating the R*Tree table from scratch */ - buildSpatialIndex (sqlite, table, (const char *) geom); + status = buildSpatialIndexEx (sqlite, table, (const char *) geom); + if (status == 0) + ; + else + { + if (status == -2) + { + strcpy (sql, + "SpatialIndex: a physical column named ROWID shadows the real ROWID"); + updateSpatiaLiteHistory (sqlite, (const char *) table, + (const char *) geom, sql); + } + else + { + strcpy (sql, "SpatialIndex: unable to rebuild the R*Tree"); + updateSpatiaLiteHistory (sqlite, (const char *) table, + (const char *) geom, sql); + } + return status; + } strcpy (sql, "SpatialIndex: successfully recovered"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); @@ -4876,6 +5532,8 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check) char sql[1024]; int ret; int to_be_fixed; + int rowid_column = 0; + int without_rowid = 0; sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ @@ -4906,6 +5564,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check) if (status < 0) { /* some unexpected error occurred */ + if (status == -2) + rowid_column = 1; + if (status == -3) + without_rowid = 1; goto fatal_error; } else if (status > 0) @@ -4921,6 +5583,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check) if (status < 0) { /* some unexpected error occurred */ + if (status == -2) + rowid_column = 1; + if (status == -3) + without_rowid = 1; goto fatal_error; } else if (status == 0) @@ -4929,7 +5595,8 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check) } else { - printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); + spatialite_e ("sqlite3_step() error: %s\n", + sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } @@ -4941,6 +5608,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check) return 0; fatal_error: sqlite3_finalize (stmt); + if (rowid_column) + return -2; + if (without_rowid) + return -3; return -1; } @@ -4957,6 +5628,8 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, / attempts to rebuild a SpatialIndex, returning: / 1 - on success / 0 - on failure +/ -1 if any physical "ROWID" column exist shadowing the real ROWID +/ or if the table was created WITHOUT ROWID / NULL if any syntax error is detected */ const unsigned char *table; @@ -4982,7 +5655,14 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, } status = recover_any_spatial_index (sqlite, no_check); if (status < 0) - sqlite3_result_null (context); + { + if (status == -2) + sqlite3_result_int (context, -1); + else if (status == -3) + sqlite3_result_int (context, -1); + else + sqlite3_result_null (context); + } else if (status > 0) sqlite3_result_int (context, 1); else @@ -5025,7 +5705,10 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, if (status < 0) { /* some unexpected error occurred */ - sqlite3_result_null (context); + if (status == -2 || status == -3) + sqlite3_result_int (context, -1); + else + sqlite3_result_null (context); return; } else if (status > 0) @@ -5037,7 +5720,9 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, } /* rebuilding the Spatial Index */ status = recover_spatial_index (sqlite, table, column); - if (status < 0) + if (status == -2) + sqlite3_result_int (context, -1); + else if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); @@ -5045,6 +5730,135 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, sqlite3_result_int (context, 0); } +static void +fnct_CheckShadowedRowid (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CheckShadowedRowid(table) +/ +/ checks if some table has a "rowid" physical column shadowing the real ROWID +/ 1 - yes, the ROWID is shadowed +/ 0 - no, the ROWID isn't shadowed +/ NULL on failure (e.g. not existing table) +*/ + const unsigned char *table; + int ret; + char sql[128]; + sqlite3_stmt *stmt; + int exists = 0; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + spatialite_e + ("CheckShadowedRowid() error: argument 1 [table_name] is not of the String type\n"); + sqlite3_result_null (context); + return; + } + table = sqlite3_value_text (argv[0]); + +/* checking if the table exists */ + strcpy (sql, + "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("CheckShadowedRowid: \"%s\"\n", + sqlite3_errmsg (sqlite)); + sqlite3_result_null (context); + return; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, (const char *) table, + strlen ((const char *) table), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + if (!exists) + sqlite3_result_null (context); + else + { + if (!validateRowid (sqlite, (const char *) table)) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } +} + +static void +fnct_CheckWithoutRowid (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CheckWithoutRowid(table) +/ +/ checks if some table has been created WITHOUT ROWID +/ 1 - yes, the table is WITHOUT ROWID +/ 0 - no, the ROWID should be supported +/ NULL on failure (e.g. not existing table) +*/ + const unsigned char *table; + int ret; + char sql[128]; + sqlite3_stmt *stmt; + int exists = 0; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + spatialite_e + ("CheckWithoutRowid() error: argument 1 [table_name] is not of the String type\n"); + sqlite3_result_null (context); + return; + } + table = sqlite3_value_text (argv[0]); + +/* checking if the table exists */ + strcpy (sql, + "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); + ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); + if (ret != SQLITE_OK) + { + spatialite_e ("CheckWithoutRowid: \"%s\"\n", sqlite3_errmsg (sqlite)); + sqlite3_result_null (context); + return; + } + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_text (stmt, 1, (const char *) table, + strlen ((const char *) table), SQLITE_STATIC); + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + exists = 1; + } + sqlite3_finalize (stmt); + if (!exists) + sqlite3_result_null (context); + else + { + if (is_without_rowid_table (sqlite, (const char *) table)) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } +} + static void fnct_CreateSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) @@ -5080,6 +5894,21 @@ fnct_CreateSpatialIndex (sqlite3_context * context, int argc, return; } column = (const char *) sqlite3_value_text (argv[1]); + if (is_without_rowid_table (sqlite, table)) + { + spatialite_e + ("CreateSpatialIndex() error: table '%s' is WITHOUT ROWID\n", + table); + sqlite3_result_int (context, -1); + return; + } + if (!validateRowid (sqlite, table)) + { + spatialite_e + ("CreateSpatialIndex() error: a physical column named ROWID shadows the real ROWID\n"); + sqlite3_result_int (context, -1); + return; + } sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 1 " @@ -5281,9 +6110,8 @@ fnct_RebuildGeometryTriggers (sqlite3_context * context, int argc, sqlite3_mprintf ("SELECT f_table_name FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND Upper(f_geometry_column) = Upper (%Q)", table, column); - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, - NULL); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; @@ -5362,7 +6190,338 @@ fnct_UpdateLayerStatistics (sqlite3_context * context, int argc, return; } -static gaiaPointPtr +static void +fnct_GetLayerExtent (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GetLayerExtent(table) +/ GetLayerExtent(table, column ) +/ GetLayerExtent(table, column, pessimistic ) +/ +/ Return a Geometry (Envelope) corresponding to the full layer +/ extent [eventually updating the supporting statistics +/ NULL on failure +*/ + const char *table = NULL; + const char *column = NULL; + int pessimistic = 0; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geom; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (argc >= 1) + { + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + spatialite_e + ("GetLayerExtent() error: argument 1 [table_name] is not of the String type\n"); + sqlite3_result_null (context); + return; + } + table = (const char *) sqlite3_value_text (argv[0]); + } + if (argc >= 2) + { + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + spatialite_e + ("GetLayerExtent() error: argument 2 [column_name] is not of the String type\n"); + sqlite3_result_null (context); + return; + } + column = (const char *) sqlite3_value_text (argv[1]); + } + if (argc >= 3) + { + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + spatialite_e + ("GetLayerExtent() error: argument 3 [OPTIMISTIC/PESSIMISTIC] is not of the Integer type\n"); + sqlite3_result_null (context); + return; + } + pessimistic = sqlite3_value_int (argv[2]); + } + geom = gaiaGetLayerExtent (sqlite, table, column, pessimistic); + if (!geom) + goto error; +/* builds the BLOB geometry to be returned */ + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geom); + return; + error: + sqlite3_result_null (context); + return; +} + +static void +fnct_InvalidateLayerStatistics (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ InvalidateLayerStatistics(void) +/ InvalidateLayerStatistics(table) +/ InvalidateLayerStatistics(table, column ) +/ +/ Immediately and unconditionally invalidates Layer Statistics +/ returns 1 on success +/ 0 on failure +*/ + const char *sql; + const char *table = NULL; + const char *column = NULL; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (argc >= 1) + { + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + spatialite_e + ("InvalidateLayerStatistics() error: argument 1 [table_name] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + table = (const char *) sqlite3_value_text (argv[0]); + } + if (argc >= 2) + { + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + spatialite_e + ("InvalidateLayerStatistics() error: argument 2 [column_name] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; + } + column = (const char *) sqlite3_value_text (argv[1]); + } + if (!gaiaStatisticsInvalidate (sqlite, table, column)) + goto error; + sqlite3_result_int (context, 1); + sql = "InvalidateLayerStatistics"; + if (table == NULL) + table = "ALL-TABLES"; + if (column == NULL) + column = "ALL-GEOMETRY-COLUMNS"; + updateSpatiaLiteHistory (sqlite, (const char *) table, + (const char *) column, sql); + return; + error: + sqlite3_result_int (context, 0); + return; +} + +static void +fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CreateRasterCoveragesTable() +/ +/ creates the main RasterCoverages table +/ returns 1 on success +/ 0 on failure +*/ + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (!createRasterCoveragesTable (sqlite)) + goto error; + updateSpatiaLiteHistory (sqlite, "*** Raster Coverages ***", NULL, + "Main table successfully created"); + sqlite3_result_int (context, 1); + return; + + error: + sqlite3_result_int (context, 0); + return; +} + +static void +fnct_CreateMetaCatalogTables (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CreateMetaCatalogTables(transaction TRUE|FALSE) +/ +/ creates (or re-creates) both "splite_metacatalog" +/ and "splite_metacatalog_statistics" tables +/ returns 1 on success +/ 0 on failure +*/ + char *errMsg = NULL; + int ret; + int transaction = 0; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + spatialite_e + ("CreateMetaCatalogTables() error: argument 1 [TRANSACTION] is not of the Integer type\n"); + sqlite3_result_null (context); + return; + } + transaction = sqlite3_value_int (argv[0]); + if (transaction) + { + /* starting a Transaction */ + ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + if (!gaiaCreateMetaCatalogTables (sqlite)) + goto error; + if (transaction) + { + /* committing the still pending Transaction */ + ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL, + "Tables successfully created and initialized"); + sqlite3_result_int (context, 1); + return; + + error: + if (transaction) + { + /* performing a Rollback */ + ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + sqlite3_free (errMsg); + } + sqlite3_result_int (context, 0); + return; +} + +static void +fnct_UpdateMetaCatalogStatistics (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ UpdateMetaCatalogStatistics(transaction TRUE|FALSE, table, column) +/ UpdateMetaCatalogStatistics(transaction TRUE|FALSE, master_table, table_name, column_name) +/ +/ updates the MetaCatalog statistics +/ returns 1 on success +/ 0 on failure +*/ + char *errMsg = NULL; + int ret; + int transaction = 0; + const char *master_table = NULL; + const char *table = NULL; + const char *column = NULL; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 1 [TRANSACTION] is not of the Integer type\n"); + sqlite3_result_null (context); + return; + } + transaction = sqlite3_value_int (argv[0]); + if (argc == 3) + { + /* table & column mode */ + if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) + table = (const char *) sqlite3_value_text (argv[1]); + else + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 2 [TABLE_NAME] is not of the Text type\n"); + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + column = (const char *) sqlite3_value_text (argv[2]); + else + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 2 [COLUMN_NAME] is not of the Text type\n"); + sqlite3_result_null (context); + return; + } + } + else + { + /* master-table & table_name & column_name mode */ + if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) + master_table = (const char *) sqlite3_value_text (argv[1]); + else + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 2 [MASTER_TABLE] is not of the Text type\n"); + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + table = (const char *) sqlite3_value_text (argv[2]); + else + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 3 [TABLE_NAME] is not of the Text type\n"); + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) + column = (const char *) sqlite3_value_text (argv[3]); + else + { + spatialite_e + ("UpdateMetaCatalogStatistics() error: argument 3 [COLUMN_NAME] is not of the Text type\n"); + sqlite3_result_null (context); + return; + } + } + if (transaction) + { + /* starting a Transaction */ + ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + if (master_table != NULL) + { + if (!gaiaUpdateMetaCatalogStatisticsFromMaster + (sqlite, master_table, table, column)) + goto error; + } + else + { + if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column)) + goto error; + } + if (transaction) + { + /* committing the still pending Transaction */ + ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + goto error; + } + updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL, + "Statistics successfully updated"); + sqlite3_result_int (context, 1); + return; + + error: + if (transaction) + { + /* performing a Rollback */ + ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); + if (ret != SQLITE_OK) + sqlite3_free (errMsg); + } + sqlite3_result_int (context, 0); + return; +} + +static gaiaPointPtr simplePoint (gaiaGeomCollPtr geo) { /* helper function @@ -5655,8 +6814,7 @@ getProjParams (void *p_sqlite, int srid, char **proj_params) const char *proj4text; char *errMsg = NULL; *proj_params = NULL; - sql = - sqlite3_mprintf + sql = sqlite3_mprintf ("SELECT proj4text FROM spatial_ref_sys WHERE srid = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); @@ -5700,6 +6858,7 @@ fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv) char *proj_from; char *proj_to; int precision = 15; + void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) @@ -5747,7 +6906,10 @@ fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); goto stop; } - geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); + if (data != NULL) + geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to); + else + geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) @@ -5801,6 +6963,7 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) char *proj_from; char *proj_to; int precision = 15; + void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ switch (sqlite3_value_type (argv[0])) @@ -5814,12 +6977,7 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[0]); -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", int_value); -#else - sprintf (dummy, "%lld", int_value); -#endif + sprintf (dummy, FRMT64, int_value); len = strlen (dummy); name_malloc = malloc (len + 1); strcpy (name_malloc, dummy); @@ -5852,12 +7010,7 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[1]); -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", int_value); -#else - sprintf (dummy, "%lld", int_value); -#endif + sprintf (dummy, FRMT64, int_value); len = strlen (dummy); desc_malloc = malloc (len + 1); strcpy (desc_malloc, dummy); @@ -5924,7 +7077,10 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); goto stop; } - geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); + if (data != NULL) + geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to); + else + geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) @@ -6273,6 +7429,8 @@ fnct_MakePoint1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePoint(double X, double Y) +/ alias +/ ST_Point(double X, double Y) / / builds a POINT / or NULL if any error is encountered @@ -7025,19 +8183,131 @@ fnct_MakeLine_final (sqlite3_context * context) } static void -fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) +buildLineFromMultiPoint (sqlite3_context * context, gaiaGeomCollPtr geom, + int direction) { -/* SQL function: -/ MakeLine(point-geometry geom1, point-geometry geom2) -/ -/ builds a SEGMENT joining two POINTs -/ or NULL if any error is encountered -*/ - int len; - unsigned char *p_blob; - int n_bytes; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo1 = NULL; +/* internal: building a Linestring from a MultiPolygon */ + gaiaGeomCollPtr result; + gaiaDynamicLinePtr dyn; + int n_pts = 0; + int n_lns = 0; + int n_pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + if (geom) + { + pt = geom->FirstPoint; + while (pt) + { + n_pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + n_lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + n_pgs++; + pg = pg->Next; + } + } + /* checking if really is a MultiPoint */ + if (n_pts >= 2 && n_lns == 0 && n_pgs == 0) + ; + else + { + sqlite3_result_null (context); + goto end; + } + dyn = gaiaAllocDynamicLine (); + dyn->Srid = geom->Srid; + pt = geom->FirstPoint; + while (pt) + { + /* inserting all Points accordingly to required direction */ + if (direction) + { + /* conformant direction */ + switch (pt->DimensionModel) + { + case GAIA_XY_Z_M: + gaiaAppendPointZMToDynamicLine (dyn, pt->X, pt->Y, + pt->Z, pt->M); + break; + case GAIA_XY_Z: + gaiaAppendPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); + break; + case GAIA_XY_M: + gaiaAppendPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); + break; + default: + gaiaAppendPointToDynamicLine (dyn, pt->X, pt->Y); + break; + } + } + else + { + /* reverse direction */ + switch (pt->DimensionModel) + { + case GAIA_XY_Z_M: + gaiaPrependPointZMToDynamicLine (dyn, pt->X, pt->Y, + pt->Z, pt->M); + break; + case GAIA_XY_Z: + gaiaPrependPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); + break; + case GAIA_XY_M: + gaiaPrependPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); + break; + default: + gaiaPrependPointToDynamicLine (dyn, pt->X, pt->Y); + break; + } + } + pt = pt->Next; + } + result = geomFromDynamicLine (dyn); + gaiaFreeDynamicLine (dyn); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + end: + gaiaFreeGeomColl (geom); +} + +static void +fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ MakeLine(point-geometry geom1, point-geometry geom2) +/ or +/ MakeLine(multipoint geom, boolean direction) +/ +/ - builds a SEGMENT joining two POINTs +/ - the MultiPoint version works exactely as the corresponding aggregate +/ function, but not requiring aggregation; direction=TRUE direct order, +/ direction=FALSE reverse order +/ - or NULL if any error is encountered +*/ + int len; + unsigned char *p_blob; + int n_bytes; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) @@ -7053,6 +8323,13 @@ fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); goto stop; } + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + /* expecting a single MultiPoint input */ + int direction = sqlite3_value_int (argv[1]); + buildLineFromMultiPoint (context, geo1, direction); + return; + } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); @@ -7079,867 +8356,1018 @@ fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) } static void -fnct_Collect_step (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MakeCircle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Collect(BLOBencoded geom) -/ -/ aggregate function - STEP +/ MakeCircle(double cx, double cy, double radius) +/ or +/ MakeCircle(double cx, double cy, double radius, int srid) +/ or +/ MakeCircle(double cx, double cy, double radius, int srid, double step) / +/ - builds a Linestring approximating a Circle +/ - step is the angular distance (in degrees) between points on +/ the circurmference (by default: every 10 degs) +/ - or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom; - gaiaGeomCollPtr result; - gaiaGeomCollPtr *p; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geom = NULL; + int ival; + double cx; + double cy; + double r; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[0]); + cx = ival; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geom) - return; - p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); - if (!(*p)) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - /* this is the first row */ - *p = geom; + ival = sqlite3_value_int (argv[1]); + cy = ival; } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); else - { - /* subsequent rows */ - result = gaiaMergeGeometries (*p, geom); - gaiaFreeGeomColl (*p); - *p = result; - gaiaFreeGeomColl (geom); - } -} - -static void -fnct_Collect_final (sqlite3_context * context) -{ -/* SQL function: -/ Collect(BLOBencoded geom) -/ -/ aggregate function - FINAL -/ -*/ - gaiaGeomCollPtr result; - gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); - if (!p) { sqlite3_result_null (context); return; } - result = *p; - if (!result) - sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); + ival = sqlite3_value_int (argv[2]); + r = ival; } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + r = sqlite3_value_double (argv[2]); else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } -} - -static void -fnct_Collect (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ Collect(geometry geom1, geometry geom2) -/ -/ merges two generic GEOMETRIES into a single one -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (argc >= 4) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[3]); + else + { + sqlite3_result_null (context); + return; + } } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else + if (argc == 5) { - result = gaiaMergeGeometries (geo1, geo2); - if (!result) - sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); + ival = sqlite3_value_int (argv[4]); + step = ival; } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[4]); else { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + sqlite3_result_null (context); + return; } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + + geom = gaiaMakeCircle (cx, cy, r, step); + if (!geom) + sqlite3_result_null (context); + else + { + if (srid != 0) + geom->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom) + gaiaFreeGeomColl (geom); } static void -geom_from_text1 (sqlite3_context * context, int argc, sqlite3_value ** argv, - short type) +fnct_MakeArc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeomFromText(WKT encoded geometry) -/ -/ returns the current geometry by parsing WKT encoded string -/ or NULL if any error is encountered +/ MakeArc(double cx, double cy, double radius, double start, double stop) +/ or +/ MakeArc(double cx, double cy, double radius, double start, double stop, +/ int srid) +/ or +/ MakeArc(double cx, double cy, double radius, double start, double stop, +/ int srid, double step) / -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid +/ - builds a Linestring approximating a Circular Arc +/ - start and stop are the initial and final angles (in degrees) +/ - step is the angular distance (in degrees) between points on +/ the circurmference (by default: every 10 degs) +/ - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom = NULL; + int ival; + double cx; + double cy; + double r; + double start; + double stop; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[0]); + cx = ival; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, type); - if (geo == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[1]); + cy = ival; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { sqlite3_result_null (context); return; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -static void -geom_from_text2 (sqlite3_context * context, int argc, sqlite3_value ** argv, - short type) -{ -/* SQL function: -/ GeomFromText(WKT encoded geometry, SRID) -/ -/ returns the current geometry by parsing WKT encoded string -/ or NULL if any error is encountered -/ -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid -*/ - int len; - unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + r = ival; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + r = sqlite3_value_double (argv[2]); + else { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + start = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + start = sqlite3_value_double (argv[3]); + else { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, type); - if (geo == NULL) + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[4]); + stop = ival; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + stop = sqlite3_value_double (argv[4]); + else { sqlite3_result_null (context); return; } - geo->Srid = sqlite3_value_int (argv[1]); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} + if (argc >= 6) + { + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 7) + { + if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[6]); + step = ival; + } + else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[6]); + else + { + sqlite3_result_null (context); + return; + } + } -static int -check_wkb (const unsigned char *wkb, int size, short type) -{ -/* checking type coherency for WKB encoded GEOMETRY */ - int little_endian; - int wkb_type; - int endian_arch = gaiaEndianArch (); - if (size < 5) - return 0; /* too short to be a WKB */ - if (*(wkb + 0) == 0x01) - little_endian = GAIA_LITTLE_ENDIAN; - else if (*(wkb + 0) == 0x00) - little_endian = GAIA_BIG_ENDIAN; - else - return 0; /* illegal byte ordering; neither BIG-ENDIAN nor LITTLE-ENDIAN */ - wkb_type = gaiaImport32 (wkb + 1, little_endian, endian_arch); - if (wkb_type == GAIA_POINT || wkb_type == GAIA_LINESTRING - || wkb_type == GAIA_POLYGON || wkb_type == GAIA_MULTIPOINT - || wkb_type == GAIA_MULTILINESTRING || wkb_type == GAIA_MULTIPOLYGON - || wkb_type == GAIA_GEOMETRYCOLLECTION || wkb_type == GAIA_POINTZ - || wkb_type == GAIA_LINESTRINGZ || wkb_type == GAIA_POLYGONZ - || wkb_type == GAIA_MULTIPOINTZ || wkb_type == GAIA_MULTILINESTRINGZ - || wkb_type == GAIA_MULTIPOLYGONZ - || wkb_type == GAIA_GEOMETRYCOLLECTIONZ || wkb_type == GAIA_POINTM - || wkb_type == GAIA_LINESTRINGM || wkb_type == GAIA_POLYGONM - || wkb_type == GAIA_MULTIPOINTM || wkb_type == GAIA_MULTILINESTRINGM - || wkb_type == GAIA_MULTIPOLYGONM - || wkb_type == GAIA_GEOMETRYCOLLECTIONM || wkb_type == GAIA_POINTZM - || wkb_type == GAIA_LINESTRINGZM || wkb_type == GAIA_POLYGONZM - || wkb_type == GAIA_MULTIPOINTZM || wkb_type == GAIA_MULTILINESTRINGZM - || wkb_type == GAIA_MULTIPOLYGONZM - || wkb_type == GAIA_GEOMETRYCOLLECTIONZM) - ; - else - return 0; /* illegal GEOMETRY CLASS */ - if (type < 0) - ; /* no restrinction about GEOMETRY CLASS TYPE */ + geom = gaiaMakeArc (cx, cy, r, start, stop, step); + if (!geom) + sqlite3_result_null (context); else { - if (wkb_type != type) - return 0; /* invalid CLASS TYPE for request */ + if (srid != 0) + geom->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); } - return 1; + if (geom) + gaiaFreeGeomColl (geom); } static void -geom_from_wkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv, - short type) +fnct_MakeEllipse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeomFromWKB(WKB encoded geometry) -/ -/ returns the current geometry by parsing a WKB encoded blob -/ or NULL if any error is encountered +/ MakeEllipse(double cx, double cy, double x_axis, double y_axis) +/ or +/ MakeEllipse(double cx, double cy, double x_axis, double y_axis, +/ int srid) +/ or +/ MakeEllipse(double cx, double cy, double x_axis, double y_axis, +/ int srid, double step) / -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid +/ - builds a Linestring approximating an Ellipse +/ - step is the angular distance (in degrees) between points on +/ the ellipse (by default: every 10 degs) +/ - or NULL if any error is encountered */ int len; - int n_bytes; unsigned char *p_result = NULL; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom = NULL; + int ival; + double cx; + double cy; + double x_axis; + double y_axis; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + ival = sqlite3_value_int (argv[0]); + cx = ival; } - wkb = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, type)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -static void -geom_from_wkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv, - short type) -{ -/* SQL function: -/ GeomFromWKB(WKB encoded geometry, SRID) -/ -/ returns the current geometry by parsing a WKB encoded blob -/ or NULL if any error is encountered -/ -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid -*/ - int len; - int n_bytes; - unsigned char *p_result = NULL; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + ival = sqlite3_value_int (argv[1]); + cy = ival; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { sqlite3_result_null (context); return; } - wkb = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, type)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + ival = sqlite3_value_int (argv[2]); + x_axis = ival; } - geo->Srid = sqlite3_value_int (argv[1]); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -static void -fnct_GeometryFromFGF1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ GeomFromFGF(FGF encoded geometry) -/ -/ returns the current geometry by parsing an FGF encoded blob -/ or NULL if any error is encountered -/ -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid -*/ - int len; - int n_bytes; - unsigned char *p_result = NULL; - const unsigned char *fgf; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x_axis = sqlite3_value_double (argv[2]); + else { sqlite3_result_null (context); return; } - fgf = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromFgf (fgf, n_bytes); - if (geo == NULL) + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + y_axis = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y_axis = sqlite3_value_double (argv[3]); + else { sqlite3_result_null (context); return; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); + if (argc >= 5) + { + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[4]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 6) + { + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[5]); + step = ival; + } + else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + } + geom = gaiaMakeEllipse (cx, cy, x_axis, y_axis, step); + if (!geom) + sqlite3_result_null (context); + else + { + if (srid != 0) + geom->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom) + gaiaFreeGeomColl (geom); } static void -fnct_GeometryFromFGF2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_MakeEllipticArc (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ GeomFromFGF(FGF encoded geometry, SRID) -/ -/ returns the current geometry by parsing an FGF encoded string -/ or NULL if any error is encountered +/ MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop) +/ or +/ MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop, int srid) +/ or +/ MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop, int srid, double step) / -/ if *type* is a negative value can accept any GEOMETRY CLASS -/ otherwise only requests conforming with required CLASS are valid +/ - builds a Linestring approximating an Elliptic Arc +/ - start and stop are the initial and final angles (in degrees) +/ - step is the angular distance (in degrees) between points on +/ the ellipse (by default: every 10 degs) +/ - or NULL if any error is encountered */ int len; - int n_bytes; unsigned char *p_result = NULL; - const unsigned char *fgf; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom = NULL; + int ival; + double cx; + double cy; + double x_axis; + double y_axis; + double start; + double stop; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + ival = sqlite3_value_int (argv[0]); + cx = ival; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - fgf = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromFgf (fgf, n_bytes); - if (geo == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[1]); + cy = ival; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { sqlite3_result_null (context); return; } - geo->Srid = sqlite3_value_int (argv[1]); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -/* -/ the following functions simply readdress the request to geom_from_text?() -/ setting the appropriate GEOMETRY CLASS TYPE -*/ - -static void -fnct_GeomFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) -1); -} - -static void -fnct_GeomFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) -1); -} - -static void -fnct_GeomCollFromText1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); -} - -static void -fnct_GeomCollFromText2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); -} - -static void -fnct_LineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_LINESTRING); -} - -static void -fnct_LineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_LINESTRING); -} - -static void -fnct_PointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_POINT); -} - -static void -fnct_PointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_POINT); -} - -static void -fnct_PolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_POLYGON); -} - -static void -fnct_PolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_POLYGON); -} - -static void -fnct_MLineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_MULTILINESTRING); -} - -static void -fnct_MLineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_MULTILINESTRING); -} - -static void -fnct_MPointFromText1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOINT); -} - -static void -fnct_MPointFromText2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOINT); -} - -static void -fnct_MPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); -} + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + x_axis = ival; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x_axis = sqlite3_value_double (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + y_axis = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y_axis = sqlite3_value_double (argv[3]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[4]); + start = ival; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + start = sqlite3_value_double (argv[4]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[5]); + stop = ival; + } + else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + stop = sqlite3_value_double (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + if (argc >= 7) + { + if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[6]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 8) + { + if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[7]); + step = ival; + } + else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[7]); + else + { + sqlite3_result_null (context); + return; + } + } -static void -fnct_MPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); + geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); + if (!geom) + sqlite3_result_null (context); + else + { + if (srid != 0) + geom->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom) + gaiaFreeGeomColl (geom); } static void -fnct_WktToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MakeCircularSector (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_WKTToSQL(WKT encoded geometry) -/ -/ returns the current geometry by parsing WKT encoded string -/ or NULL if any error is encountered +/ MakeCircularSector(double cx, double cy, double radius, double start, double stop) +/ or +/ MakeCircularSector(double cx, double cy, double radius, double start, double stop, +/ int srid) +/ or +/ MakeCircularSector(double cx, double cy, double radius, double start, double stop, +/ int srid, double step) / -/ the SRID is always 0 [SQL/MM function] +/ - builds a Polygon approximating a Circular Sector +/ - start and stop are the initial and final angles (in degrees) +/ - step is the angular distance (in degrees) between points on +/ the circurmference (by default: every 10 degs) +/ - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom = NULL; + gaiaGeomCollPtr sector = NULL; + int ival; + double cx; + double cy; + double r; + double start; + double stop; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[0]); + cx = ival; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, -1); - if (geo == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[1]); + cy = ival; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { sqlite3_result_null (context); return; } - geo->Srid = 0; - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -/* -/ the following functions simply readdress the request to geom_from_wkb?() -/ setting the appropriate GEOMETRY CLASS TYPE -*/ + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + r = ival; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + r = sqlite3_value_double (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + start = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + start = sqlite3_value_double (argv[3]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[4]); + stop = ival; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + stop = sqlite3_value_double (argv[4]); + else + { + sqlite3_result_null (context); + return; + } + if (argc >= 6) + { + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 7) + { + if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[6]); + step = ival; + } + else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[6]); + else + { + sqlite3_result_null (context); + return; + } + } -static void -fnct_GeomFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) -1); + geom = gaiaMakeArc (cx, cy, r, start, stop, step); + if (!geom) + sqlite3_result_null (context); + else + { + int ii; + int io = 0; + double x; + double y; + gaiaLinestringPtr in = geom->FirstLinestring; + gaiaPolygonPtr pg; + gaiaRingPtr out; + sector = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); + out = pg->Exterior; + /* inserting the Centre - first point */ + gaiaSetPoint (out->Coords, io, cx, cy); + io++; + for (ii = 0; ii < in->Points; ii++) + { + /* copying the Arc's points */ + gaiaGetPoint (in->Coords, ii, &x, &y); + gaiaSetPoint (out->Coords, io, x, y); + io++; + } + /* inserting the Centre - last point */ + gaiaSetPoint (out->Coords, io, cx, cy); + if (srid != 0) + sector->Srid = srid; + gaiaToSpatiaLiteBlobWkb (sector, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom) + gaiaFreeGeomColl (geom); + if (sector) + gaiaFreeGeomColl (sector); } static void -fnct_GeomFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) -1); -} - -static void -fnct_GeomCollFromWkb1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); -} - -static void -fnct_GeomCollFromWkb2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); -} - -static void -fnct_LineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_LINESTRING); -} - -static void -fnct_LineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_LINESTRING); -} - -static void -fnct_PointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_POINT); -} - -static void -fnct_PointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_POINT); -} - -static void -fnct_PolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_POLYGON); -} - -static void -fnct_PolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_POLYGON); -} - -static void -fnct_MLineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTILINESTRING); -} - -static void -fnct_MLineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTILINESTRING); -} - -static void -fnct_MPointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOINT); -} - -static void -fnct_MPointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOINT); -} - -static void -fnct_MPolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); -} - -static void -fnct_MPolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); -} - -static void -fnct_WkbToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MakeCircularStripe (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_WKBToSQL(WKB encoded geometry) -/ -/ returns the current geometry by parsing a WKB encoded blob -/ or NULL if any error is encountered +/ MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, +/ double start, double stop) +/ or +/ MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, +/ double start, double stop, int srid) +/ or +/ MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, +/ double start, double stop, int srid, double step) / -/ the SRID is always 0 [SQL/MM function] +/ - builds a Polygon approximating a Circular Stripe delimited by two +/ arcs sharing the same Centre-Point but having different radii +/ - start and stop are the initial and final angles (in degrees) +/ - step is the angular distance (in degrees) between points on +/ the circurmference (by default: every 10 degs) +/ - or NULL if any error is encountered */ int len; - int n_bytes; unsigned char *p_result = NULL; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr arc1 = NULL; + gaiaGeomCollPtr arc2 = NULL; + gaiaGeomCollPtr stripe = NULL; + int ival; + double cx; + double cy; + double r1; + double r2; + double start; + double stop; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[0]); + cx = ival; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - wkb = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, -1)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[1]); + cy = ival; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { sqlite3_result_null (context); return; } - geo->Srid = 0; - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -static void -fnct_CompressGeometry (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ CompressGeometry(BLOB encoded geometry) -/ -/ returns a COMPRESSED geometry [if a valid Geometry was supplied] -/ or NULL in any other case -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + r1 = ival; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + r1 = sqlite3_value_double (argv[2]); + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + r2 = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + r2 = sqlite3_value_double (argv[3]); else { - gaiaToCompressedBlobWkb (geo, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); -} - -static void -fnct_UncompressGeometry (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ UncompressGeometry(BLOB encoded geometry) -/ -/ returns an UNCOMPRESSED geometry [if a valid Geometry was supplied] -/ or NULL in any other case -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[4]); + start = ival; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + start = sqlite3_value_double (argv[4]); + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[5]); + stop = ival; + } + else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + stop = sqlite3_value_double (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + if (argc >= 7) + { + if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[6]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 8) + { + if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[7]); + step = ival; + } + else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[7]); + else + { + sqlite3_result_null (context); + return; + } + } + + arc1 = gaiaMakeArc (cx, cy, r1, start, stop, step); + arc2 = gaiaMakeArc (cx, cy, r2, start, stop, step); + if (arc1 == NULL || arc2 == NULL) sqlite3_result_null (context); else { - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + int ii; + int io = 0; + double x; + double y; + gaiaLinestringPtr in1 = arc1->FirstLinestring; + gaiaLinestringPtr in2 = arc2->FirstLinestring; + gaiaPolygonPtr pg; + gaiaRingPtr out; + stripe = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (stripe, + in1->Points + in2->Points + 1, 0); + out = pg->Exterior; + for (ii = 0; ii < in1->Points; ii++) + { + /* copying the first Arc's points - direct order */ + gaiaGetPoint (in1->Coords, ii, &x, &y); + gaiaSetPoint (out->Coords, io, x, y); + io++; + } + for (ii = in2->Points - 1; ii >= 0; ii--) + { + /* copying the second Arc's points - reverse order */ + gaiaGetPoint (in2->Coords, ii, &x, &y); + gaiaSetPoint (out->Coords, io, x, y); + io++; + } + /* closing the Polygon Ring */ + gaiaGetPoint (out->Coords, 0, &x, &y); + gaiaSetPoint (out->Coords, io, x, y); + if (srid != 0) + stripe->Srid = srid; + gaiaToSpatiaLiteBlobWkb (stripe, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } - gaiaFreeGeomColl (geo); + if (arc1) + gaiaFreeGeomColl (arc1); + if (arc2) + gaiaFreeGeomColl (arc2); + if (stripe) + gaiaFreeGeomColl (stripe); } static void -fnct_SanitizeGeometry (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_MakeEllipticSector (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ SanitizeGeometry(BLOB encoded geometry) -/ -/ returns a SANITIZED geometry [if a valid Geometry was supplied] -/ or NULL in any other case -/ -/ Sanitizing includes: -/ - repeated vertices suppression -/ - enforcing ring closure +/ MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop) +/ or +/ MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop, int srid) +/ or +/ MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, +/ double start, double stop, int srid, double step) / +/ - builds a Polygon approximating an Elliptic Sector +/ - start and stop are the initial and final angles (in degrees) +/ - step is the angular distance (in degrees) between points on +/ the ellipse (by default: every 10 degs) +/ - or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; int len; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr sanitized = NULL; + gaiaGeomCollPtr geom = NULL; + gaiaGeomCollPtr sector = NULL; + int ival; + double cx; + double cy; + double x_axis; + double y_axis; + double start; + double stop; + int srid = 0; + double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[0]); + cx = ival; + } + else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + cx = sqlite3_value_double (argv[0]); + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sanitized = gaiaSanitize (geo); - gaiaToSpatiaLiteBlobWkb (sanitized, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); + ival = sqlite3_value_int (argv[1]); + cy = ival; } - gaiaFreeGeomColl (geo); - gaiaFreeGeomColl (sanitized); -} - -static void -cast_count (gaiaGeomCollPtr geom, int *pts, int *lns, int *pgs) -{ -/* counting elementary geometries */ - int n_pts = 0; - int n_lns = 0; - int n_pgs = 0; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - if (geom) + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + cy = sqlite3_value_double (argv[1]); + else { - pt = geom->FirstPoint; - while (pt) + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + x_axis = ival; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x_axis = sqlite3_value_double (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[3]); + y_axis = ival; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y_axis = sqlite3_value_double (argv[3]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[4]); + start = ival; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + start = sqlite3_value_double (argv[4]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[5]); + stop = ival; + } + else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + stop = sqlite3_value_double (argv[5]); + else + { + sqlite3_result_null (context); + return; + } + if (argc >= 7) + { + if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[6]); + else { - n_pts++; - pt = pt->Next; + sqlite3_result_null (context); + return; } - ln = geom->FirstLinestring; - while (ln) + } + if (argc == 8) + { + if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { - n_lns++; - ln = ln->Next; + ival = sqlite3_value_int (argv[7]); + step = ival; } - pg = geom->FirstPolygon; - while (pg) + else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) + step = sqlite3_value_double (argv[7]); + else { - n_pgs++; - pg = pg->Next; + sqlite3_result_null (context); + return; } } - *pts = n_pts; - *lns = n_lns; - *pgs = n_pgs; + + geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); + if (!geom) + sqlite3_result_null (context); + else + { + int ii; + int io = 0; + double x; + double y; + gaiaLinestringPtr in = geom->FirstLinestring; + gaiaPolygonPtr pg; + gaiaRingPtr out; + sector = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); + out = pg->Exterior; + /* inserting the Centre - first point */ + gaiaSetPoint (out->Coords, io, cx, cy); + io++; + for (ii = 0; ii < in->Points; ii++) + { + /* copying the Arc's points */ + gaiaGetPoint (in->Coords, ii, &x, &y); + gaiaSetPoint (out->Coords, io, x, y); + io++; + } + /* inserting the Centre - last point */ + gaiaSetPoint (out->Coords, io, cx, cy); + if (srid != 0) + sector->Srid = srid; + gaiaToSpatiaLiteBlobWkb (sector, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom) + gaiaFreeGeomColl (geom); + if (sector) + gaiaFreeGeomColl (sector); } static void -fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Collect_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ CastToPoint(BLOB encoded geometry) +/ Collect(BLOBencoded geom) +/ +/ aggregate function - STEP / -/ returns a POINT-type geometry [if conversion is possible] -/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr result; + gaiaGeomCollPtr *p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -7948,562 +9376,698 @@ fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geom) + return; + p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); + if (!(*p)) + { + /* this is the first row */ + *p = geom; + } else { - cast_count (geo, &pts, &lns, &pgs); - if (pts == 1 && lns == 0 && pgs == 0) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_POINT; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } + /* subsequent rows */ + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaMergeGeometries_r (data, *p, geom); else - sqlite3_result_null (context); + result = gaiaMergeGeometries (*p, geom); + gaiaFreeGeomColl (*p); + *p = result; + gaiaFreeGeomColl (geom); } - gaiaFreeGeomColl (geo); } static void -fnct_CastToLinestring (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_Collect_final (sqlite3_context * context) { /* SQL function: -/ CastToLinestring(BLOB encoded geometry) +/ Collect(BLOBencoded geom) +/ +/ aggregate function - FINAL / -/ returns a LINESTRING-type geometry [if conversion is possible] -/ or NULL in any other case */ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + gaiaGeomCollPtr result; + gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); + if (!p) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) + result = *p; + if (!result) sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } else { - cast_count (geo, &pts, &lns, &pgs); - if (pts == 0 && lns == 1 && pgs == 0) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_LINESTRING; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); } - gaiaFreeGeomColl (geo); } static void -fnct_CastToPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Collect (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ CastToPolygon(BLOB encoded geometry) +/ Collect(geometry geom1, geometry geom2) / -/ returns a POLYGON-type geometry [if conversion is possible] -/ or NULL in any other case +/ merges two generic GEOMETRIES into a single one +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) sqlite3_result_null (context); else { - cast_count (geo, &pts, &lns, &pgs); - if (pts == 0 && lns == 0 && pgs == 1) + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaMergeGeometries_r (data, geo1, geo2); + else + result = gaiaMergeGeometries (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_POLYGON; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + sqlite3_result_null (context); } else - sqlite3_result_null (context); + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - gaiaFreeGeomColl (geo); + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); } static void -fnct_CastToMultiPoint (sqlite3_context * context, int argc, - sqlite3_value ** argv) +geom_from_text1 (sqlite3_context * context, int argc, sqlite3_value ** argv, + short type) { /* SQL function: -/ CastToMultiPoint(BLOB encoded geometry) +/ GeomFromText(WKT encoded geometry) / -/ returns a MULTIPOINT-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing WKT encoded string +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, type); + if (geo == NULL) { - cast_count (geo, &pts, &lns, &pgs); - if (pts >= 1 && lns == 0 && pgs == 0) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTIPOINT; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_CastToMultiLinestring (sqlite3_context * context, int argc, - sqlite3_value ** argv) +geom_from_text2 (sqlite3_context * context, int argc, sqlite3_value ** argv, + short type) { /* SQL function: -/ CastToMultiLinestring(BLOB encoded geometry) +/ GeomFromText(WKT encoded geometry, SRID) / -/ returns a MULTILINESTRING-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing WKT encoded string +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - cast_count (geo, &pts, &lns, &pgs); - if (pts == 0 && lns >= 1 && pgs == 0) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTILINESTRING; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, type); + if (geo == NULL) + { + sqlite3_result_null (context); + return; } + geo->Srid = sqlite3_value_int (argv[1]); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static int +check_wkb (const unsigned char *wkb, int size, short type) +{ +/* checking type coherency for WKB encoded GEOMETRY */ + int little_endian; + int wkb_type; + int endian_arch = gaiaEndianArch (); + if (size < 5) + return 0; /* too short to be a WKB */ + if (*(wkb + 0) == 0x01) + little_endian = GAIA_LITTLE_ENDIAN; + else if (*(wkb + 0) == 0x00) + little_endian = GAIA_BIG_ENDIAN; + else + return 0; /* illegal byte ordering; neither BIG-ENDIAN nor LITTLE-ENDIAN */ + wkb_type = gaiaImport32 (wkb + 1, little_endian, endian_arch); + if (wkb_type == GAIA_POINT || wkb_type == GAIA_LINESTRING + || wkb_type == GAIA_POLYGON || wkb_type == GAIA_MULTIPOINT + || wkb_type == GAIA_MULTILINESTRING || wkb_type == GAIA_MULTIPOLYGON + || wkb_type == GAIA_GEOMETRYCOLLECTION || wkb_type == GAIA_POINTZ + || wkb_type == GAIA_LINESTRINGZ || wkb_type == GAIA_POLYGONZ + || wkb_type == GAIA_MULTIPOINTZ || wkb_type == GAIA_MULTILINESTRINGZ + || wkb_type == GAIA_MULTIPOLYGONZ + || wkb_type == GAIA_GEOMETRYCOLLECTIONZ || wkb_type == GAIA_POINTM + || wkb_type == GAIA_LINESTRINGM || wkb_type == GAIA_POLYGONM + || wkb_type == GAIA_MULTIPOINTM || wkb_type == GAIA_MULTILINESTRINGM + || wkb_type == GAIA_MULTIPOLYGONM + || wkb_type == GAIA_GEOMETRYCOLLECTIONM || wkb_type == GAIA_POINTZM + || wkb_type == GAIA_LINESTRINGZM || wkb_type == GAIA_POLYGONZM + || wkb_type == GAIA_MULTIPOINTZM || wkb_type == GAIA_MULTILINESTRINGZM + || wkb_type == GAIA_MULTIPOLYGONZM + || wkb_type == GAIA_GEOMETRYCOLLECTIONZM) + ; + else + return 0; /* illegal GEOMETRY CLASS */ + if (type < 0) + ; /* no restrinction about GEOMETRY CLASS TYPE */ + else + { + if (wkb_type != type) + return 0; /* invalid CLASS TYPE for request */ + } + return 1; } static void -fnct_CastToMultiPolygon (sqlite3_context * context, int argc, - sqlite3_value ** argv) +geom_from_wkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv, + short type) { /* SQL function: -/ CastToMultiPolygon(BLOB encoded geometry) +/ GeomFromWKB(WKB encoded geometry) / -/ returns a MULTIPOLYGON-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing a WKB encoded blob +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; + int n_bytes; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (!check_wkb (wkb, n_bytes, type)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - cast_count (geo, &pts, &lns, &pgs); - if (pts == 0 && lns == 0 && pgs >= 1) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTIPOLYGON; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_CastToGeometryCollection (sqlite3_context * context, int argc, - sqlite3_value ** argv) +geom_from_wkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv, + short type) { /* SQL function: -/ CastToGeometryCollection(BLOB encoded geometry) +/ GeomFromWKB(WKB encoded geometry, SRID) / -/ returns a GEOMETRYCOLLECTION-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing a WKB encoded blob +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; + int n_bytes; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (!check_wkb (wkb, n_bytes, type)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - cast_count (geo, &pts, &lns, &pgs); - if (pts >= 1 || lns >= 1 || pgs >= 1) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + geo->Srid = sqlite3_value_int (argv[1]); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_CastToMulti (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeometryFromFGF1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ CastToMulti(BLOB encoded geometry) +/ GeomFromFGF(FGF encoded geometry) / -/ returns a MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or -/ GEOMETRYCOLLECTION-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing an FGF encoded blob +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; + int n_bytes; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; + const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + geo = gaiaFromFgf (fgf, n_bytes); + if (geo == NULL) { - cast_count (geo, &pts, &lns, &pgs); - if (pts >= 1 || lns >= 1 || pgs >= 1) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - if (pts >= 1 && lns == 0 && pgs == 0) - geom2->DeclaredType = GAIA_MULTIPOINT; - else if (pts == 0 && lns >= 1 && pgs == 0) - geom2->DeclaredType = GAIA_MULTILINESTRING; - else if (pts == 0 && lns == 0 && pgs >= 1) - geom2->DeclaredType = GAIA_MULTIPOLYGON; - else - geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_CastToSingle (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeometryFromFGF2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ CastToSingle(BLOB encoded geometry) +/ GeomFromFGF(FGF encoded geometry, SRID) / -/ returns a POINT, LINESTRING or POLYGON-type geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing an FGF encoded string +/ or NULL if any error is encountered +/ +/ if *type* is a negative value can accept any GEOMETRY CLASS +/ otherwise only requests conforming with required CLASS are valid */ - unsigned char *p_blob; - int n_bytes; int len; + int n_bytes; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; - int ok; + const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - cast_count (geo, &pts, &lns, &pgs); - ok = 0; - if (pts == 1 && lns == 0 && pgs == 0) - ok = 1; - if (pts == 0 && lns == 1 && pgs == 0) - ok = 1; - if (pts == 0 && lns == 0 && pgs == 1) - ok = 1; - if (ok) - { - geom2 = gaiaCloneGeomColl (geo); - geom2->Srid = geo->Srid; - if (pts == 1) - geom2->DeclaredType = GAIA_POINT; - else if (lns == 1) - geom2->DeclaredType = GAIA_LINESTRING; - else - geom2->DeclaredType = GAIA_POLYGON; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); - } - gaiaFreeGeomColl (geo); -} - -static void -fnct_CastToXY (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ CastToXY(BLOB encoded geometry) -/ -/ returns an XY-dimension Geometry [if conversion is possible] -/ or NULL in any other case -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + geo = gaiaFromFgf (fgf, n_bytes); + if (geo == NULL) { - geom2 = gaiaCastGeomCollToXY (geo); - if (geom2) - { - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + geo->Srid = sqlite3_value_int (argv[1]); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } +/* +/ the following functions simply readdress the request to geom_from_text?() +/ setting the appropriate GEOMETRY CLASS TYPE +*/ + static void -fnct_CastToXYZ (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeomFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) -1); +} + +static void +fnct_GeomFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) -1); +} + +static void +fnct_GeomCollFromText1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); +} + +static void +fnct_GeomCollFromText2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); +} + +static void +fnct_LineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_LINESTRING); +} + +static void +fnct_LineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_LINESTRING); +} + +static void +fnct_PointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_POINT); +} + +static void +fnct_PointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_POINT); +} + +static void +fnct_PolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_POLYGON); +} + +static void +fnct_PolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_POLYGON); +} + +static void +fnct_MLineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_MULTILINESTRING); +} + +static void +fnct_MLineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_MULTILINESTRING); +} + +static void +fnct_MPointFromText1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOINT); +} + +static void +fnct_MPointFromText2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOINT); +} + +static void +fnct_MPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); +} + +static void +fnct_MPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); +} + +static void +fnct_WktToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ CastToXY(BLOB encoded geometry) +/ ST_WKTToSQL(WKT encoded geometry) / -/ returns an XY-dimension Geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing WKT encoded string +/ or NULL if any error is encountered +/ +/ the SRID is always 0 [SQL/MM function] */ - unsigned char *p_blob; - int n_bytes; int len; unsigned char *p_result = NULL; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, -1); + if (geo == NULL) { - geom2 = gaiaCastGeomCollToXYZ (geo); - if (geom2) - { - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + geo->Srid = 0; + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } +/* +/ the following functions simply readdress the request to geom_from_wkb?() +/ setting the appropriate GEOMETRY CLASS TYPE +*/ + static void -fnct_CastToXYM (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeomFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ CastToXY(BLOB encoded geometry) + geom_from_wkb1 (context, argc, argv, (short) -1); +} + +static void +fnct_GeomFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) -1); +} + +static void +fnct_GeomCollFromWkb1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); +} + +static void +fnct_GeomCollFromWkb2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); +} + +static void +fnct_LineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_LINESTRING); +} + +static void +fnct_LineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_LINESTRING); +} + +static void +fnct_PointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_POINT); +} + +static void +fnct_PointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_POINT); +} + +static void +fnct_PolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_POLYGON); +} + +static void +fnct_PolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_POLYGON); +} + +static void +fnct_MLineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTILINESTRING); +} + +static void +fnct_MLineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTILINESTRING); +} + +static void +fnct_MPointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOINT); +} + +static void +fnct_MPointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOINT); +} + +static void +fnct_MPolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); +} + +static void +fnct_MPolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); +} + +static void +fnct_WkbToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ST_WKBToSQL(WKB encoded geometry) / -/ returns an XYM-dimension Geometry [if conversion is possible] -/ or NULL in any other case +/ returns the current geometry by parsing a WKB encoded blob +/ or NULL if any error is encountered +/ +/ the SRID is always 0 [SQL/MM function] */ - unsigned char *p_blob; - int n_bytes; int len; + int n_bytes; unsigned char *p_result = NULL; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (!check_wkb (wkb, n_bytes, -1)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - geom2 = gaiaCastGeomCollToXYM (geo); - if (geom2) - { - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + sqlite3_result_null (context); + return; } + geo->Srid = 0; + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CompressGeometry (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ CastToXY(BLOB encoded geometry) +/ CompressGeometry(BLOB encoded geometry) / -/ returns an XYZM-dimension Geometry [if conversion is possible] +/ returns a COMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; @@ -8511,7 +10075,6 @@ fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8525,39 +10088,27 @@ fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - geom2 = gaiaCastGeomCollToXYZM (geo); - if (geom2) - { - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + gaiaToCompressedBlobWkb (geo, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void -fnct_ExtractMultiPoint (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_UncompressGeometry (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ExtractMultiPoint(BLOB encoded geometry) +/ UncompressGeometry(BLOB encoded geometry) / -/ returns a MULTIPOINT-type geometry [if conversion is possible] +/ returns an UNCOMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8571,41 +10122,33 @@ fnct_ExtractMultiPoint (sqlite3_context * context, int argc, sqlite3_result_null (context); else { - cast_count (geo, &pts, &lns, &pgs); - if (pts >= 1) - { - geom2 = gaiaCloneGeomCollPoints (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTIPOINT; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void -fnct_ExtractMultiLinestring (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_SanitizeGeometry (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ExtractMultiLinestring(BLOB encoded geometry) +/ SanitizeGeometry(BLOB encoded geometry) / -/ returns a MULTILINESTRING-type geometry [if conversion is possible] +/ returns a SANITIZED geometry [if a valid Geometry was supplied] / or NULL in any other case +/ +/ Sanitizing includes: +/ - repeated vertices suppression +/ - enforcing ring closure +/ */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; - int pts; - int lns; - int pgs; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr geom2 = NULL; + gaiaGeomCollPtr sanitized = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8619,31 +10162,111 @@ fnct_ExtractMultiLinestring (sqlite3_context * context, int argc, sqlite3_result_null (context); else { - cast_count (geo, &pts, &lns, &pgs); - if (lns >= 1) + sanitized = gaiaSanitize (geo); + gaiaToSpatiaLiteBlobWkb (sanitized, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); + gaiaFreeGeomColl (sanitized); +} + +static void +cast_count (gaiaGeomCollPtr geom, int *pts, int *lns, int *pgs) +{ +/* counting elementary geometries */ + int n_pts = 0; + int n_lns = 0; + int n_pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + if (geom) + { + pt = geom->FirstPoint; + while (pt) { - geom2 = gaiaCloneGeomCollLinestrings (geo); - geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTILINESTRING; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); + n_pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + n_lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + n_pgs++; + pg = pg->Next; } - else - sqlite3_result_null (context); } - gaiaFreeGeomColl (geo); + *pts = n_pts; + *lns = n_lns; + *pgs = n_pgs; } static void -fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_CastAutomagic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ExtractMultiPolygon(BLOB encoded geometry) +/ CastAutomagic(BLOB encoded geometry) / -/ returns a MULTIPOLYGON-type geometry [if conversion is possible] -/ or NULL in any other case +/ accepts on input both a valid SpatiaLite BLOB geometry +/ or a valid GPKG BLOB geometry, thus returning a SpatiaLite +/ BLOB geometry +/ will return NULL in any other case +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + geo = gaiaFromGeoPackageGeometryBlob (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); + } + return; + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); + } + else + { + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); + } +} + +static void +fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ CastToPoint(BLOB encoded geometry) +/ +/ returns a POINT-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; @@ -8668,11 +10291,11 @@ fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, else { cast_count (geo, &pts, &lns, &pgs); - if (pgs >= 1) + if (pts == 1 && lns == 0 && pgs == 0) { - geom2 = gaiaCloneGeomCollPolygons (geo); + geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; - geom2->DeclaredType = GAIA_MULTIPOLYGON; + geom2->DeclaredType = GAIA_POINT; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); @@ -8684,18 +10307,22 @@ fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, } static void -fnct_Reverse (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToLinestring (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_Reverse(BLOB encoded geometry) +/ CastToLinestring(BLOB encoded geometry) / -/ returns a new Geometry: any Linestring or Ring will be in reverse order +/ returns a LINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ @@ -8711,29 +10338,38 @@ fnct_Reverse (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_REVERSE_ORDER); - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (geo); + cast_count (geo, &pts, &lns, &pgs); + if (pts == 0 && lns == 1 && pgs == 0) + { + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_LINESTRING; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); } + gaiaFreeGeomColl (geo); } static void -fnct_ForceLHR (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_ForceLHR(BLOB encoded geometry) +/ CastToPolygon(BLOB encoded geometry) / -/ returns a new Geometry: any Exterior Ring will be in clockwise orientation -/ and any Interior Ring will be in counter-clockwise orientation +/ returns a POLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ @@ -8749,32 +10385,41 @@ fnct_ForceLHR (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_LHR_ORDER); - geom2->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); - gaiaFreeGeomColl (geom2); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (geo); + cast_count (geo, &pts, &lns, &pgs); + if (pts == 0 && lns == 0 && pgs == 1) + { + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_POLYGON; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); } + gaiaFreeGeomColl (geo); } static void -fnct_Dimension (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToMultiPoint (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Dimension(BLOB encoded geometry) +/ CastToMultiPoint(BLOB encoded geometry) / -/ returns: -/ 0 if geometry is a POINT or MULTIPOINT -/ 1 if geometry is a LINESTRING or MULTILINESTRING -/ 2 if geometry is a POLYGON or MULTIPOLYGON -/ 0, 1, 2, for GEOMETRYCOLLECTIONS according to geometries contained inside -/ or NULL if any error is encountered +/ returns a MULTIPOINT-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - int dim; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8788,28 +10433,41 @@ fnct_Dimension (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - dim = gaiaDimension (geo); - sqlite3_result_int (context, dim); + cast_count (geo, &pts, &lns, &pgs); + if (pts >= 1 && lns == 0 && pgs == 0) + { + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTIPOINT; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_CoordDimension (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToMultiLinestring (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ CoordDimension(BLOB encoded geometry) +/ CastToMultiLinestring(BLOB encoded geometry) / -/ returns: -/ 'XY', 'XYM', 'XYZ', 'XYZM' -/ or NULL if any error is encountered +/ returns a MULTILINESTRING-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; - char *p_dim = NULL; - char *p_result = NULL; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8823,45 +10481,41 @@ fnct_CoordDimension (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY) - p_dim = "XY"; - else if (geo->DimensionModel == GAIA_XY_Z) - p_dim = "XYZ"; - else if (geo->DimensionModel == GAIA_XY_M) - p_dim = "XYM"; - else if (geo->DimensionModel == GAIA_XY_Z_M) - p_dim = "XYZM"; - if (p_dim) + cast_count (geo, &pts, &lns, &pgs); + if (pts == 0 && lns >= 1 && pgs == 0) { - len = strlen (p_dim); - p_result = malloc (len + 1); - strcpy (p_result, p_dim); + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTILINESTRING; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } - if (!p_result) - sqlite3_result_null (context); else - { - len = strlen (p_result); - sqlite3_result_text (context, p_result, len, free); - } + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_NDims (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToMultiPolygon (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_NDims(BLOB encoded geometry) +/ CastToMultiPolygon(BLOB encoded geometry) / -/ returns: -/ 2, 3 or 4 -/ or NULL if any error is encountered +/ returns a MULTIPOLYGON-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - int result = 0; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8875,39 +10529,41 @@ fnct_NDims (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY) - result = 2; - else if (geo->DimensionModel == GAIA_XY_Z) - result = 3; - else if (geo->DimensionModel == GAIA_XY_M) - result = 3; - else if (geo->DimensionModel == GAIA_XY_Z_M) - result = 4; - sqlite3_result_int (context, result); + cast_count (geo, &pts, &lns, &pgs); + if (pts == 0 && lns == 0 && pgs >= 1) + { + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTIPOLYGON; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToGeometryCollection (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ GeometryType(BLOB encoded geometry) +/ CastToGeometryCollection(BLOB encoded geometry) / -/ returns the class for current geometry: -/ 'POINT' or 'MULTIPOINT' [Z, M, ZM] -/ 'LINESTRING' or 'MULTILINESTRING' [Z, M, ZM] -/ 'POLYGON' or 'MULTIPOLYGON' [Z, M, ZM] -/ 'GEOMETRYCOLLECTION' [Z, M, ZM] -/ or NULL if any error is encountered +/ returns a GEOMETRYCOLLECTION-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; - int type; - char *p_type = NULL; - char *p_result = NULL; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -8921,143 +10577,41 @@ fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - type = gaiaGeometryType (geo); - switch (type) + cast_count (geo, &pts, &lns, &pgs); + if (pts >= 1 || lns >= 1 || pgs >= 1) { - case GAIA_POINT: - p_type = "POINT"; - break; - case GAIA_POINTZ: - p_type = "POINT Z"; - break; - case GAIA_POINTM: - p_type = "POINT M"; - break; - case GAIA_POINTZM: - p_type = "POINT ZM"; - break; - case GAIA_MULTIPOINT: - p_type = "MULTIPOINT"; - break; - case GAIA_MULTIPOINTZ: - p_type = "MULTIPOINT Z"; - break; - case GAIA_MULTIPOINTM: - p_type = "MULTIPOINT M"; - break; - case GAIA_MULTIPOINTZM: - p_type = "MULTIPOINT ZM"; - break; - case GAIA_LINESTRING: - case GAIA_COMPRESSED_LINESTRING: - p_type = "LINESTRING"; - break; - case GAIA_LINESTRINGZ: - case GAIA_COMPRESSED_LINESTRINGZ: - p_type = "LINESTRING Z"; - break; - case GAIA_LINESTRINGM: - case GAIA_COMPRESSED_LINESTRINGM: - p_type = "LINESTRING M"; - break; - case GAIA_LINESTRINGZM: - case GAIA_COMPRESSED_LINESTRINGZM: - p_type = "LINESTRING ZM"; - break; - case GAIA_MULTILINESTRING: - p_type = "MULTILINESTRING"; - break; - case GAIA_MULTILINESTRINGZ: - p_type = "MULTILINESTRING Z"; - break; - case GAIA_MULTILINESTRINGM: - p_type = "MULTILINESTRING M"; - break; - case GAIA_MULTILINESTRINGZM: - p_type = "MULTILINESTRING ZM"; - break; - case GAIA_POLYGON: - case GAIA_COMPRESSED_POLYGON: - p_type = "POLYGON"; - break; - case GAIA_POLYGONZ: - case GAIA_COMPRESSED_POLYGONZ: - p_type = "POLYGON Z"; - break; - case GAIA_POLYGONM: - case GAIA_COMPRESSED_POLYGONM: - p_type = "POLYGON M"; - break; - case GAIA_POLYGONZM: - case GAIA_COMPRESSED_POLYGONZM: - p_type = "POLYGON ZM"; - break; - case GAIA_MULTIPOLYGON: - p_type = "MULTIPOLYGON"; - break; - case GAIA_MULTIPOLYGONZ: - p_type = "MULTIPOLYGON Z"; - break; - case GAIA_MULTIPOLYGONM: - p_type = "MULTIPOLYGON M"; - break; - case GAIA_MULTIPOLYGONZM: - p_type = "MULTIPOLYGON ZM"; - break; - case GAIA_GEOMETRYCOLLECTION: - p_type = "GEOMETRYCOLLECTION"; - break; - case GAIA_GEOMETRYCOLLECTIONZ: - p_type = "GEOMETRYCOLLECTION Z"; - break; - case GAIA_GEOMETRYCOLLECTIONM: - p_type = "GEOMETRYCOLLECTION M"; - break; - case GAIA_GEOMETRYCOLLECTIONZM: - p_type = "GEOMETRYCOLLECTION ZM"; - break; - }; - if (p_type) - { - len = strlen (p_type); - p_result = malloc (len + 1); - strcpy (p_result, p_type); + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } - if (!p_result) - sqlite3_result_null (context); else - { - len = strlen (p_result); - sqlite3_result_text (context, p_result, len, free); - } + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_GeometryAliasType (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_CastToMulti (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeometryAliasType(BLOB encoded geometry) +/ CastToMulti(BLOB encoded geometry) / -/ returns the alias-class for current geometry: -/ 'POINT' -/ 'LINESTRING' -/ 'POLYGON' -/ 'MULTIPOINT' -/ 'MULTILINESTRING' -/ 'MULTIPOLYGON' -/ 'GEOMETRYCOLLECTION' -/ or NULL if any error is encountered +/ returns a MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or +/ GEOMETRYCOLLECTION-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; - int type; - char *p_type = NULL; - char *p_result = NULL; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9071,114 +10625,48 @@ fnct_GeometryAliasType (sqlite3_context * context, int argc, sqlite3_result_null (context); else { - type = gaiaGeometryAliasType (geo); - switch (type) - { - case GAIA_POINT: - p_type = "POINT"; - break; - case GAIA_MULTIPOINT: - p_type = "MULTIPOINT"; - break; - case GAIA_LINESTRING: - p_type = "LINESTRING"; - break; - case GAIA_MULTILINESTRING: - p_type = "MULTILINESTRING"; - break; - case GAIA_POLYGON: - p_type = "POLYGON"; - break; - case GAIA_MULTIPOLYGON: - p_type = "MULTIPOLYGON"; - break; - case GAIA_GEOMETRYCOLLECTION: - p_type = "GEOMETRYCOLLECTION"; - break; - }; - if (p_type) + cast_count (geo, &pts, &lns, &pgs); + if (pts >= 1 || lns >= 1 || pgs >= 1) { - len = strlen (p_type); - p_result = malloc (len + 1); - strcpy (p_result, p_type); + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + if (pts >= 1 && lns == 0 && pgs == 0) + geom2->DeclaredType = GAIA_MULTIPOINT; + else if (pts == 0 && lns >= 1 && pgs == 0) + geom2->DeclaredType = GAIA_MULTILINESTRING; + else if (pts == 0 && lns == 0 && pgs >= 1) + geom2->DeclaredType = GAIA_MULTIPOLYGON; + else + geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } - if (!p_result) - sqlite3_result_null (context); else - { - len = strlen (p_result); - sqlite3_result_text (context, p_result, len, free); - } + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_SridFromAuthCRS (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ SridFromAuthCRS(auth_name, auth_srid) -/ -/ returns the SRID -/ or NULL if any error is encountered -*/ - const unsigned char *auth_name; - int auth_srid; - int srid = -1; - char *sql; - char **results; - int n_rows; - int n_columns; - char *err_msg = NULL; - int ret; - int i; - sqlite3 *sqlite = sqlite3_context_db_handle (context); - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - auth_name = sqlite3_value_text (argv[0]); - auth_srid = sqlite3_value_int (argv[1]); - - sql = sqlite3_mprintf ("SELECT srid FROM spatial_ref_sys " - "WHERE Upper(auth_name) = Upper(%Q) AND auth_srid = %d", - auth_name, auth_srid); - ret = - sqlite3_get_table (sqlite, sql, &results, &n_rows, &n_columns, - &err_msg); - sqlite3_free (sql); - if (ret != SQLITE_OK) - goto done; - if (n_rows >= 1) - { - for (i = 1; i <= n_rows; i++) - srid = atoi (results[(i * n_columns) + 0]); - } - sqlite3_free_table (results); - done: - sqlite3_result_int (context, srid); -} - -static void -fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToSingle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Srid(BLOB encoded geometry) +/ CastToSingle(BLOB encoded geometry) / -/ returns the SRID -/ or NULL if any error is encountered +/ returns a POINT, LINESTRING or POLYGON-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; + int ok; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9191,37 +10679,56 @@ fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv) if (!geo) sqlite3_result_null (context); else - sqlite3_result_int (context, geo->Srid); - gaiaFreeGeomColl (geo); -} - -static void -fnct_SetSRID (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ SetSrid(BLOBencoded geometry, srid) -/ -/ returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] -/ or NULL if any error is encountered + { + cast_count (geo, &pts, &lns, &pgs); + ok = 0; + if (pts == 1 && lns == 0 && pgs == 0) + ok = 1; + if (pts == 0 && lns == 1 && pgs == 0) + ok = 1; + if (pts == 0 && lns == 0 && pgs == 1) + ok = 1; + if (ok) + { + geom2 = gaiaCloneGeomColl (geo); + geom2->Srid = geo->Srid; + if (pts == 1) + geom2->DeclaredType = GAIA_POINT; + else if (lns == 1) + geom2->DeclaredType = GAIA_LINESTRING; + else + geom2->DeclaredType = GAIA_POLYGON; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_CastToXY (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ CastToXY(BLOB encoded geometry) +/ +/ returns an XY-dimension Geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo = NULL; - int srid; + int len; unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - srid = sqlite3_value_int (argv[1]); - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); @@ -9229,129 +10736,165 @@ fnct_SetSRID (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - geo->Srid = srid; - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &n_bytes); - sqlite3_result_blob (context, p_result, n_bytes, free); + geom2 = gaiaCastGeomCollToXY (geo); + if (geom2) + { + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_IsEmpty (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToXYZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ IsEmpty(BLOB encoded geometry) +/ CastToXY(BLOB encoded geometry) / -/ returns: -/ 1 if this geometry contains no elementary geometries -/ 0 otherwise -/ or -1 if any error is encountered +/ returns an XY-dimension Geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) - sqlite3_result_int (context, -1); + sqlite3_result_null (context); else - sqlite3_result_int (context, gaiaIsEmpty (geo)); + { + geom2 = gaiaCastGeomCollToXYZ (geo); + if (geom2) + { + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); + } gaiaFreeGeomColl (geo); } static void -fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToXYM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Is3D(BLOB encoded geometry) +/ CastToXY(BLOB encoded geometry) / -/ returns: -/ 1 if this geometry has Z coords -/ 0 otherwise -/ or -1 if any error is encountered +/ returns an XYM-dimension Geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) - sqlite3_result_int (context, -1); + sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_Z - || geo->DimensionModel == GAIA_XY_Z_M) - sqlite3_result_int (context, 1); + geom2 = gaiaCastGeomCollToXYM (geo); + if (geom2) + { + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } else - sqlite3_result_int (context, 0); + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_IsMeasured (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ IsMeasured(BLOB encoded geometry) +/ CastToXY(BLOB encoded geometry) / -/ returns: -/ 1 if this geometry has M coords -/ 0 otherwise -/ or -1 if any error is encountered +/ returns an XYZM-dimension Geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) - sqlite3_result_int (context, -1); + sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_M - || geo->DimensionModel == GAIA_XY_Z_M) - sqlite3_result_int (context, 1); + geom2 = gaiaCastGeomCollToXYZM (geo); + if (geom2) + { + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); + } else - sqlite3_result_int (context, 0); + sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void -fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ExtractMultiPoint (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_MinZ(BLOB encoded GEMETRY) +/ ExtractMultiPoint(BLOB encoded geometry) / -/ returns the MinZ coordinate for current geometry -/ or NULL if any error is encountered +/ returns a MULTIPOINT-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - double min; - double max; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9365,32 +10908,41 @@ fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_Z - || geo->DimensionModel == GAIA_XY_Z_M) + cast_count (geo, &pts, &lns, &pgs); + if (pts >= 1) { - gaiaZRangeGeometry (geo, &min, &max); - sqlite3_result_double (context, min); + geom2 = gaiaCloneGeomCollPoints (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTIPOINT; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); - gaiaFreeGeomColl (geo); } + gaiaFreeGeomColl (geo); } static void -fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ExtractMultiLinestring (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_MaxZ(BLOB encoded GEMETRY) +/ ExtractMultiLinestring(BLOB encoded geometry) / -/ returns the MaxZ coordinate for current geometry -/ or NULL if any error is encountered +/ returns a MULTILINESTRING-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - double min; - double max; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9404,32 +10956,41 @@ fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_Z - || geo->DimensionModel == GAIA_XY_Z_M) + cast_count (geo, &pts, &lns, &pgs); + if (lns >= 1) { - gaiaZRangeGeometry (geo, &min, &max); - sqlite3_result_double (context, max); + geom2 = gaiaCloneGeomCollLinestrings (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTILINESTRING; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); - gaiaFreeGeomColl (geo); } + gaiaFreeGeomColl (geo); } static void -fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_MinM(BLOB encoded GEMETRY) +/ ExtractMultiPolygon(BLOB encoded geometry) / -/ returns the MinM coordinate for current geometry -/ or NULL if any error is encountered +/ returns a MULTIPOLYGON-type geometry [if conversion is possible] +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - double min; - double max; + int len; + unsigned char *p_result = NULL; + int pts; + int lns; + int pgs; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9443,32 +11004,37 @@ fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_M - || geo->DimensionModel == GAIA_XY_Z_M) + cast_count (geo, &pts, &lns, &pgs); + if (pgs >= 1) { - gaiaMRangeGeometry (geo, &min, &max); - sqlite3_result_double (context, min); + geom2 = gaiaCloneGeomCollPolygons (geo); + geom2->Srid = geo->Srid; + geom2->DeclaredType = GAIA_MULTIPOLYGON; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); - gaiaFreeGeomColl (geo); } + gaiaFreeGeomColl (geo); } static void -fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Reverse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_MaxM(BLOB encoded GEMETRY) +/ ST_Reverse(BLOB encoded geometry) / -/ returns the MaxM coordinate for current geometry -/ or NULL if any error is encountered +/ returns a new Geometry: any Linestring or Ring will be in reverse order +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; - double min; - double max; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9482,35 +11048,31 @@ fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - if (geo->DimensionModel == GAIA_XY_M - || geo->DimensionModel == GAIA_XY_Z_M) - { - gaiaMRangeGeometry (geo, &min, &max); - sqlite3_result_double (context, max); - } - else - sqlite3_result_null (context); + geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_REVERSE_ORDER); + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); + sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geo); } } static void -fnct_Envelope (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ForceLHR (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Envelope(BLOB encoded geometry) +/ ST_ForceLHR(BLOB encoded geometry) / -/ returns the MBR for current geometry -/ or NULL if any error is encountered +/ returns a new Geometry: any Exterior Ring will be in clockwise orientation +/ and any Interior Ring will be in counter-clockwise orientation +/ or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr bbox; - gaiaPolygonPtr polyg; - gaiaRingPtr rect; + gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -9524,60 +11086,38 @@ fnct_Envelope (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - gaiaMbrGeometry (geo); - bbox = gaiaAllocGeomColl (); - bbox->Srid = geo->Srid; - polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); - rect = polyg->Exterior; - gaiaSetPoint (rect->Coords, 0, geo->MinX, geo->MinY); /* vertex # 1 */ - gaiaSetPoint (rect->Coords, 1, geo->MaxX, geo->MinY); /* vertex # 2 */ - gaiaSetPoint (rect->Coords, 2, geo->MaxX, geo->MaxY); /* vertex # 3 */ - gaiaSetPoint (rect->Coords, 3, geo->MinX, geo->MaxY); /* vertex # 4 */ - gaiaSetPoint (rect->Coords, 4, geo->MinX, geo->MinY); /* vertex # 5 [same as vertex # 1 to close the polygon] */ - gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); - gaiaFreeGeomColl (bbox); + geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_LHR_ORDER); + geom2->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); + gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geo); } - gaiaFreeGeomColl (geo); } static void -fnct_Expand (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Dimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_Expand(BLOB encoded geometry, double amount) +/ Dimension(BLOB encoded geometry) / -/ returns the MBR for current geometry expanded by "amount" in each direction +/ returns: +/ 0 if geometry is a POINT or MULTIPOINT +/ 1 if geometry is a LINESTRING or MULTILINESTRING +/ 2 if geometry is a POLYGON or MULTIPOLYGON +/ 0, 1, 2, for GEOMETRYCOLLECTIONS according to geometries contained inside / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; + int dim; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr bbox; - gaiaPolygonPtr polyg; - gaiaRingPtr rect; - double tic; - int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - tic = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - tic = int_value; - } - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); @@ -9585,425 +11125,413 @@ fnct_Expand (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - gaiaMbrGeometry (geo); - bbox = gaiaAllocGeomColl (); - bbox->Srid = geo->Srid; - polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); - rect = polyg->Exterior; - gaiaSetPoint (rect->Coords, 0, geo->MinX - tic, geo->MinY - tic); /* vertex # 1 */ - gaiaSetPoint (rect->Coords, 1, geo->MaxX + tic, geo->MinY - tic); /* vertex # 2 */ - gaiaSetPoint (rect->Coords, 2, geo->MaxX + tic, geo->MaxY + tic); /* vertex # 3 */ - gaiaSetPoint (rect->Coords, 3, geo->MinX - tic, geo->MaxY + tic); /* vertex # 4 */ - gaiaSetPoint (rect->Coords, 4, geo->MinX - tic, geo->MinY - tic); /* vertex # 5 [same as vertex # 1 to close the polygon] */ - gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); - gaiaFreeGeomColl (bbox); - sqlite3_result_blob (context, p_result, len, free); + dim = gaiaDimension (geo); + sqlite3_result_int (context, dim); } gaiaFreeGeomColl (geo); } static void -build_filter_mbr (sqlite3_context * context, int argc, - sqlite3_value ** argv, int mode) +fnct_CoordDimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL functions: -/ BuildMbrFilter(double X1, double Y1, double X2, double Y2) -/ FilterMBRWithin(double X1, double Y1, double X2, double Y2) -/ FilterMBRContain(double X1, double Y1, double X2, double Y2) -/ FilterMBRIntersects(double X1, double Y1, double X2, double Y2) +/* SQL function: +/ CoordDimension(BLOB encoded geometry) / -/ builds a generic filter for MBR from two points (identifying a rectangle's diagonal) +/ returns: +/ 'XY', 'XYM', 'XYZ', 'XYZM' / or NULL if any error is encountered */ + unsigned char *p_blob; + int n_bytes; int len; - unsigned char *p_result = NULL; - double x1; - double y1; - double x2; - double y2; - int int_value; + char *p_dim = NULL; + char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x1 = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y1 = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - y1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - x2 = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - x2 = int_value; - } - else + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - y2 = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - y2 = int_value; - } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); else { - sqlite3_result_null (context); - return; + if (geo->DimensionModel == GAIA_XY) + p_dim = "XY"; + else if (geo->DimensionModel == GAIA_XY_Z) + p_dim = "XYZ"; + else if (geo->DimensionModel == GAIA_XY_M) + p_dim = "XYM"; + else if (geo->DimensionModel == GAIA_XY_Z_M) + p_dim = "XYZM"; + if (p_dim) + { + len = strlen (p_dim); + p_result = malloc (len + 1); + strcpy (p_result, p_dim); + } + if (!p_result) + sqlite3_result_null (context); + else + { + len = strlen (p_result); + sqlite3_result_text (context, p_result, len, free); + } } - gaiaBuildFilterMbr (x1, y1, x2, y2, mode, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); -} - -/* -/ the following functions simply readdress the request to build_filter_mbr() -/ setting the appropriate MODe -*/ - -static void -fnct_BuildMbrFilter (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_DECLARE); -} - -static void -fnct_FilterMbrWithin (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_WITHIN); -} - -static void -fnct_FilterMbrContains (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_CONTAINS); -} - -static void -fnct_FilterMbrIntersects (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ - build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_INTERSECTS); + gaiaFreeGeomColl (geo); } static void -fnct_BuildMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_NDims (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BuildMBR(double X1, double Y1, double X2, double Y2) +/ ST_NDims(BLOB encoded geometry) / -/ builds an MBR from two points (identifying a rectangle's diagonal) +/ returns: +/ 2, 3 or 4 / or NULL if any error is encountered */ - int len; - unsigned char *p_result = NULL; - double x1; - double y1; - double x2; - double y2; - int int_value; + unsigned char *p_blob; + int n_bytes; + int result = 0; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x1 = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x1 = int_value; - } - else + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y1 = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - y1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - x2 = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - x2 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - y2 = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - y2 = int_value; - } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); else { - sqlite3_result_null (context); - return; + if (geo->DimensionModel == GAIA_XY) + result = 2; + else if (geo->DimensionModel == GAIA_XY_Z) + result = 3; + else if (geo->DimensionModel == GAIA_XY_M) + result = 3; + else if (geo->DimensionModel == GAIA_XY_Z_M) + result = 4; + sqlite3_result_int (context, result); } - gaiaBuildMbr (x1, y1, x2, y2, -1, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geo); } static void -fnct_BuildMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BuildMBR(double X1, double Y1, double X2, double Y2, int SRID) +/ GeometryType(BLOB encoded geometry) / -/ builds an MBR from two points (identifying a rectangle's diagonal) +/ returns the class for current geometry: +/ 'POINT' or 'MULTIPOINT' [Z, M, ZM] +/ 'LINESTRING' or 'MULTILINESTRING' [Z, M, ZM] +/ 'POLYGON' or 'MULTIPOLYGON' [Z, M, ZM] +/ 'GEOMETRYCOLLECTION' [Z, M, ZM] / or NULL if any error is encountered */ + unsigned char *p_blob; + int n_bytes; int len; - unsigned char *p_result = NULL; - double x1; - double y1; - double x2; - double y2; - int int_value; - int srid; + int type; + char *p_type = NULL; + char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x1 = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y1 = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - y1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - x2 = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - x2 = int_value; - } - else + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - y2 = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - y2 = int_value; - } - else + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) { - sqlite3_result_null (context); - return; +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + char *gpb_type = gaiaGetGeometryTypeFromGPB (p_blob, n_bytes); + if (gpb_type == NULL) + sqlite3_result_null (context); + else + { + len = strlen (gpb_type); + sqlite3_result_text (context, gpb_type, len, free); + } + return; + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); } - if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) - srid = sqlite3_value_int (argv[4]); else { - sqlite3_result_null (context); - return; + type = gaiaGeometryType (geo); + switch (type) + { + case GAIA_POINT: + p_type = "POINT"; + break; + case GAIA_POINTZ: + p_type = "POINT Z"; + break; + case GAIA_POINTM: + p_type = "POINT M"; + break; + case GAIA_POINTZM: + p_type = "POINT ZM"; + break; + case GAIA_MULTIPOINT: + p_type = "MULTIPOINT"; + break; + case GAIA_MULTIPOINTZ: + p_type = "MULTIPOINT Z"; + break; + case GAIA_MULTIPOINTM: + p_type = "MULTIPOINT M"; + break; + case GAIA_MULTIPOINTZM: + p_type = "MULTIPOINT ZM"; + break; + case GAIA_LINESTRING: + case GAIA_COMPRESSED_LINESTRING: + p_type = "LINESTRING"; + break; + case GAIA_LINESTRINGZ: + case GAIA_COMPRESSED_LINESTRINGZ: + p_type = "LINESTRING Z"; + break; + case GAIA_LINESTRINGM: + case GAIA_COMPRESSED_LINESTRINGM: + p_type = "LINESTRING M"; + break; + case GAIA_LINESTRINGZM: + case GAIA_COMPRESSED_LINESTRINGZM: + p_type = "LINESTRING ZM"; + break; + case GAIA_MULTILINESTRING: + p_type = "MULTILINESTRING"; + break; + case GAIA_MULTILINESTRINGZ: + p_type = "MULTILINESTRING Z"; + break; + case GAIA_MULTILINESTRINGM: + p_type = "MULTILINESTRING M"; + break; + case GAIA_MULTILINESTRINGZM: + p_type = "MULTILINESTRING ZM"; + break; + case GAIA_POLYGON: + case GAIA_COMPRESSED_POLYGON: + p_type = "POLYGON"; + break; + case GAIA_POLYGONZ: + case GAIA_COMPRESSED_POLYGONZ: + p_type = "POLYGON Z"; + break; + case GAIA_POLYGONM: + case GAIA_COMPRESSED_POLYGONM: + p_type = "POLYGON M"; + break; + case GAIA_POLYGONZM: + case GAIA_COMPRESSED_POLYGONZM: + p_type = "POLYGON ZM"; + break; + case GAIA_MULTIPOLYGON: + p_type = "MULTIPOLYGON"; + break; + case GAIA_MULTIPOLYGONZ: + p_type = "MULTIPOLYGON Z"; + break; + case GAIA_MULTIPOLYGONM: + p_type = "MULTIPOLYGON M"; + break; + case GAIA_MULTIPOLYGONZM: + p_type = "MULTIPOLYGON ZM"; + break; + case GAIA_GEOMETRYCOLLECTION: + p_type = "GEOMETRYCOLLECTION"; + break; + case GAIA_GEOMETRYCOLLECTIONZ: + p_type = "GEOMETRYCOLLECTION Z"; + break; + case GAIA_GEOMETRYCOLLECTIONM: + p_type = "GEOMETRYCOLLECTION M"; + break; + case GAIA_GEOMETRYCOLLECTIONZM: + p_type = "GEOMETRYCOLLECTION ZM"; + break; + }; + if (p_type) + { + len = strlen (p_type); + p_result = malloc (len + 1); + strcpy (p_result, p_type); + } + if (!p_result) + sqlite3_result_null (context); + else + { + len = strlen (p_result); + sqlite3_result_text (context, p_result, len, free); + } } - gaiaBuildMbr (x1, y1, x2, y2, srid, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geo); } static void -fnct_BuildCircleMbr1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_GeometryAliasType (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ BuildCircleMBR(double X, double Y, double radius) +/ GeometryAliasType(BLOB encoded geometry) / -/ builds an MBR from two points (identifying a rectangle's diagonal) -/ or NULL if any error is encountered -*/ - int len; - unsigned char *p_result = NULL; - double x; - double y; - double radius; - int int_value; +/ returns the alias-class for current geometry: +/ 'POINT' +/ 'LINESTRING' +/ 'POLYGON' +/ 'MULTIPOINT' +/ 'MULTILINESTRING' +/ 'MULTIPOLYGON' +/ 'GEOMETRYCOLLECTION' +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + int type; + char *p_type = NULL; + char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - y = int_value; - } - else + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - radius = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - radius = int_value; - } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); else { - sqlite3_result_null (context); - return; + type = gaiaGeometryAliasType (geo); + switch (type) + { + case GAIA_POINT: + p_type = "POINT"; + break; + case GAIA_MULTIPOINT: + p_type = "MULTIPOINT"; + break; + case GAIA_LINESTRING: + p_type = "LINESTRING"; + break; + case GAIA_MULTILINESTRING: + p_type = "MULTILINESTRING"; + break; + case GAIA_POLYGON: + p_type = "POLYGON"; + break; + case GAIA_MULTIPOLYGON: + p_type = "MULTIPOLYGON"; + break; + case GAIA_GEOMETRYCOLLECTION: + p_type = "GEOMETRYCOLLECTION"; + break; + }; + if (p_type) + { + len = strlen (p_type); + p_result = malloc (len + 1); + strcpy (p_result, p_type); + } + if (!p_result) + sqlite3_result_null (context); + else + { + len = strlen (p_result); + sqlite3_result_text (context, p_result, len, free); + } } - gaiaBuildCircleMbr (x, y, radius, -1, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geo); } static void -fnct_BuildCircleMbr2 (sqlite3_context * context, int argc, +fnct_SridFromAuthCRS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BuildCircleMBR(double X, double Y, double radius, int SRID) +/ SridFromAuthCRS(auth_name, auth_srid) / -/ builds an MBR from two points (identifying a rectangle's diagonal) +/ returns the SRID / or NULL if any error is encountered */ - int len; - unsigned char *p_result = NULL; - double x; - double y; - double radius; - int int_value; - int srid; + const unsigned char *auth_name; + int auth_srid; + int srid = -1; + char *sql; + char **results; + int n_rows; + int n_columns; + char *err_msg = NULL; + int ret; + int i; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - y = int_value; - } - else + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - radius = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - radius = int_value; - } - else + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - srid = sqlite3_value_int (argv[3]); - else + auth_name = sqlite3_value_text (argv[0]); + auth_srid = sqlite3_value_int (argv[1]); + + sql = sqlite3_mprintf ("SELECT srid FROM spatial_ref_sys " + "WHERE Upper(auth_name) = Upper(%Q) AND auth_srid = %d", + auth_name, auth_srid); + ret = sqlite3_get_table (sqlite, sql, &results, &n_rows, &n_columns, + &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto done; + if (n_rows >= 1) { - sqlite3_result_null (context); - return; + for (i = 1; i <= n_rows; i++) + srid = atoi (results[(i * n_columns) + 0]); } - gaiaBuildCircleMbr (x, y, radius, srid, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + sqlite3_free_table (results); + done: + sqlite3_result_int (context, srid); } static void -fnct_Extent_step (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Extent(BLOBencoded geom) -/ -/ aggregate function - STEP +/ Srid(BLOB encoded geometry) / +/ returns the SRID +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geom; - double **p; - double *max_min; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10012,182 +11540,241 @@ fnct_Extent_step (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geom) - return; - gaiaMbrGeometry (geom); - p = sqlite3_aggregate_context (context, sizeof (double **)); - if (!(*p)) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) { - /* this is the first row */ - max_min = malloc (sizeof (double) * 4); - *(max_min + 0) = geom->MinX; - *(max_min + 1) = geom->MinY; - *(max_min + 2) = geom->MaxX; - *(max_min + 3) = geom->MaxY; - *p = max_min; +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + int srid = gaiaGetSridFromGPB (p_blob, n_bytes); + sqlite3_result_int (context, srid); + } + else + sqlite3_result_null (context); + return; +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); } else - { - /* subsequent rows */ - max_min = *p; - if (geom->MinX < *(max_min + 0)) - *(max_min + 0) = geom->MinX; - if (geom->MinY < *(max_min + 1)) - *(max_min + 1) = geom->MinY; - if (geom->MaxX > *(max_min + 2)) - *(max_min + 2) = geom->MaxX; - if (geom->MaxY > *(max_min + 3)) - *(max_min + 3) = geom->MaxY; - } - gaiaFreeGeomColl (geom); + sqlite3_result_int (context, geo->Srid); + gaiaFreeGeomColl (geo); } static void -fnct_Extent_final (sqlite3_context * context) +fnct_SetSRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Extent(BLOBencoded geom) -/ -/ aggregate function - FINAL +/ SetSrid(BLOBencoded geometry, srid) / +/ returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] +/ or NULL if any error is encountered */ - gaiaGeomCollPtr result; - gaiaPolygonPtr polyg; - gaiaRingPtr rect; - double *max_min; - double minx; - double miny; - double maxx; - double maxy; - double **p = sqlite3_aggregate_context (context, 0); - if (!p) + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + int srid; + unsigned char *p_result = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - max_min = *p; - if (!max_min) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[1]); + else { sqlite3_result_null (context); return; } - result = gaiaAllocGeomColl (); - if (!result) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) sqlite3_result_null (context); else { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - polyg = gaiaAddPolygonToGeomColl (result, 5, 0); - rect = polyg->Exterior; - minx = *(max_min + 0); - miny = *(max_min + 1); - maxx = *(max_min + 2); - maxy = *(max_min + 3); - gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ - gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ - gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ - gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ - gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + geo->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &n_bytes); + sqlite3_result_blob (context, p_result, n_bytes, free); } - free (max_min); + gaiaFreeGeomColl (geo); } static void -fnct_MbrMinX (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_IsEmpty (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ MbrMinX(BLOB encoded GEMETRY) +/ IsEmpty(BLOB encoded geometry) / -/ returns the MinX coordinate for current geometry's MBR -/ or NULL if any error is encountered +/ returns: +/ 1 if this geometry contains no elementary geometries +/ 0 otherwise +/ or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; - double coord; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!gaiaGetMbrMinX (p_blob, n_bytes, &coord)) - sqlite3_result_null (context); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + int is_empty = gaiaIsEmptyGPB (p_blob, n_bytes); + sqlite3_result_int (context, is_empty); + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_int (context, -1); + } else - sqlite3_result_double (context, coord); + sqlite3_result_int (context, gaiaIsEmpty (geo)); + gaiaFreeGeomColl (geo); } static void -fnct_MbrMaxX (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ MbrMaxX(BLOB encoded GEMETRY) +/ Is3D(BLOB encoded geometry) / -/ returns the MaxX coordinate for current geometry's MBR -/ or NULL if any error is encountered +/ returns: +/ 1 if this geometry has Z coords +/ 0 otherwise +/ or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; - double coord; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!gaiaGetMbrMaxX (p_blob, n_bytes, &coord)) - sqlite3_result_null (context); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_int (context, has_z); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_int (context, -1); + } else - sqlite3_result_double (context, coord); + { + if (geo->DimensionModel == GAIA_XY_Z + || geo->DimensionModel == GAIA_XY_Z_M) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } + gaiaFreeGeomColl (geo); } static void -fnct_MbrMinY (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_IsMeasured (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ MbrMinY(BLOB encoded GEMETRY) +/ IsMeasured(BLOB encoded geometry) / -/ returns the MinY coordinate for current geometry's MBR -/ or NULL if any error is encountered +/ returns: +/ 1 if this geometry has M coords +/ 0 otherwise +/ or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; - double coord; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!gaiaGetMbrMinY (p_blob, n_bytes, &coord)) - sqlite3_result_null (context); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_int (context, has_m); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_int (context, -1); + } else - sqlite3_result_double (context, coord); + { + if (geo->DimensionModel == GAIA_XY_M + || geo->DimensionModel == GAIA_XY_Z_M) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } + gaiaFreeGeomColl (geo); } static void -fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ MbrMaxY(BLOB encoded GEMETRY) +/ ST_MinZ(BLOB encoded GEMETRY) / -/ returns the MaxY coordinate for current geometry's MBR +/ returns the MinZ coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - double coord; + double min; + double max; + gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10196,174 +11783,130 @@ fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!gaiaGetMbrMaxY (p_blob, n_bytes, &coord)) - sqlite3_result_null (context); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + if (has_z) + sqlite3_result_double (context, min_z); + else + sqlite3_result_null (context); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); + } else - sqlite3_result_double (context, coord); + { + if (geo->DimensionModel == GAIA_XY_Z + || geo->DimensionModel == GAIA_XY_Z_M) + { + gaiaZRangeGeometry (geo, &min, &max); + sqlite3_result_double (context, min); + } + else + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); + } } -#ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ static void -gaia_mbr_del (void *p) -{ -/* freeing data used by R*Tree Geometry Callback */ - sqlite3_free (p); -} - -static int -fnct_RTreeIntersects (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, - int *pRes) +fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* R*Tree Geometry callback function: -/ ... MATCH RTreeIntersects(double x1, double y1, double x2, double y2) +/* SQL function: +/ ST_MaxZ(BLOB encoded GEMETRY) +/ +/ returns the MaxZ coordinate for current geometry +/ or NULL if any error is encountered */ - struct gaia_rtree_mbr *mbr; - double xmin; - double xmax; - double ymin; - double ymax; - float fminx; - float fminy; - float fmaxx; - float fmaxy; - double tic; - double tic2; - - if (p->pUser == 0) + unsigned char *p_blob; + int n_bytes; + double min; + double max; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - /* first call: we must check args and then initialize the MBR struct */ - if (nCoord != 4) - return SQLITE_ERROR; - if (p->nParam != 4) - return SQLITE_ERROR; - mbr = (struct gaia_rtree_mbr *) (p->pUser = - sqlite3_malloc (sizeof - (struct - gaia_rtree_mbr))); - if (!mbr) - return SQLITE_NOMEM; - p->xDelUser = gaia_mbr_del; - xmin = p->aParam[0]; - ymin = p->aParam[1]; - xmax = p->aParam[2]; - ymax = p->aParam[3]; - if (xmin > xmax) - { - xmin = p->aParam[2]; - xmax = p->aParam[0]; + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + if (has_z) + sqlite3_result_double (context, max_z); + else + sqlite3_result_null (context); + } } - if (ymin > ymax) + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); + } + else + { + if (geo->DimensionModel == GAIA_XY_Z + || geo->DimensionModel == GAIA_XY_Z_M) { - ymin = p->aParam[3]; - ymax = p->aParam[1]; + gaiaZRangeGeometry (geo, &min, &max); + sqlite3_result_double (context, max); } - - /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ - fminx = (float) xmin; - fminy = (float) ymin; - fmaxx = (float) xmax; - fmaxy = (float) ymax; - tic = fabs (xmin - fminx); - tic2 = fabs (ymin - fminy); - if (tic2 > tic) - tic = tic2; - tic2 = fabs (xmax - fmaxx); - if (tic2 > tic) - tic = tic2; - tic2 = fabs (ymax - fmaxy); - if (tic2 > tic) - tic = tic2; - tic *= 2.0; - - mbr->minx = xmin - tic; - mbr->miny = ymin - tic; - mbr->maxx = xmax + tic; - mbr->maxy = ymax + tic; - } - - mbr = (struct gaia_rtree_mbr *) (p->pUser); - xmin = aCoord[0]; - xmax = aCoord[1]; - ymin = aCoord[2]; - ymax = aCoord[3]; - *pRes = 1; -/* evaluating Intersects relationship */ - if (xmin > mbr->maxx) - *pRes = 0; - if (xmax < mbr->minx) - *pRes = 0; - if (ymin > mbr->maxy) - *pRes = 0; - if (ymax < mbr->miny) - *pRes = 0; - return SQLITE_OK; -} - -static int -fnct_RTreeDistWithin (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, - int *pRes) -{ -/* R*Tree Geometry callback function: -/ ... MATCH RTreeDistWithin(double x, double y, double radius) -*/ - struct gaia_rtree_mbr *mbr; - double xmin; - double xmax; - double ymin; - double ymax; - - if (p->pUser == 0) - { - /* first call: we must check args and then initialize the MBR struct */ - if (nCoord != 4) - return SQLITE_ERROR; - if (p->nParam != 3) - return SQLITE_ERROR; - mbr = (struct gaia_rtree_mbr *) (p->pUser = - sqlite3_malloc (sizeof - (struct - gaia_rtree_mbr))); - if (!mbr) - return SQLITE_NOMEM; - p->xDelUser = gaia_mbr_del; - mbr->minx = p->aParam[0] - p->aParam[2]; - mbr->miny = p->aParam[1] - p->aParam[2]; - mbr->maxx = p->aParam[0] + p->aParam[2]; - mbr->maxy = p->aParam[1] + p->aParam[2]; - } - - mbr = (struct gaia_rtree_mbr *) (p->pUser); - xmin = aCoord[0]; - xmax = aCoord[1]; - ymin = aCoord[2]; - ymax = aCoord[3]; - *pRes = 1; -/* evaluating Intersects relationship */ - if (xmin > mbr->maxx) - *pRes = 0; - if (xmax < mbr->minx) - *pRes = 0; - if (ymin > mbr->maxy) - *pRes = 0; - if (ymax < mbr->miny) - *pRes = 0; - return SQLITE_OK; -} -#endif /* end RTree geometry callbacks */ + else + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); + } +} static void -fnct_X (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ X(BLOB encoded POINT) +/ ST_MinM(BLOB encoded GEMETRY) / -/ returns the X coordinate for current POINT geometry +/ returns the MinM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + double min; + double max; gaiaGeomCollPtr geo = NULL; - gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10374,31 +11917,62 @@ fnct_X (sqlite3_context * context, int argc, sqlite3_value ** argv) n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) - sqlite3_result_null (context); - else { - point = simplePoint (geo); - if (!point) +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + if (has_m) + sqlite3_result_double (context, min_m); + else + sqlite3_result_null (context); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); + } + else + { + if (geo->DimensionModel == GAIA_XY_M + || geo->DimensionModel == GAIA_XY_Z_M) + { + gaiaMRangeGeometry (geo, &min, &max); + sqlite3_result_double (context, min); + } else - sqlite3_result_double (context, point->X); + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); } - gaiaFreeGeomColl (geo); } static void -fnct_Y (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Y(BLOB encoded POINT) +/ ST_MaxM(BLOB encoded GEMETRY) / -/ returns the Y coordinate for current POINT geometry +/ returns the MaxM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + double min; + double max; gaiaGeomCollPtr geo = NULL; - gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10409,31 +11983,65 @@ fnct_Y (sqlite3_context * context, int argc, sqlite3_value ** argv) n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) - sqlite3_result_null (context); - else { - point = simplePoint (geo); - if (!point) +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + if (has_m) + sqlite3_result_double (context, max_m); + else + sqlite3_result_null (context); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); + } + else + { + if (geo->DimensionModel == GAIA_XY_M + || geo->DimensionModel == GAIA_XY_Z_M) + { + gaiaMRangeGeometry (geo, &min, &max); + sqlite3_result_double (context, max); + } else - sqlite3_result_double (context, point->Y); + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); } - gaiaFreeGeomColl (geo); } static void -fnct_Z (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Envelope (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Z(BLOB encoded POINT) +/ Envelope(BLOB encoded geometry) / -/ returns the Z coordinate for current POINT geometry +/ returns the MBR for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - gaiaPointPtr point; + gaiaGeomCollPtr bbox; + gaiaPolygonPtr polyg; + gaiaRingPtr rect; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10447,77 +12055,56 @@ fnct_Z (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - point = simplePoint (geo); - if (!point) - sqlite3_result_null (context); - else - { - if (point->DimensionModel == GAIA_XY_Z - || point->DimensionModel == GAIA_XY_Z_M) - sqlite3_result_double (context, point->Z); - else - sqlite3_result_null (context); - } + gaiaMbrGeometry (geo); + bbox = gaiaAllocGeomColl (); + bbox->Srid = geo->Srid; + polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); + rect = polyg->Exterior; + gaiaSetPoint (rect->Coords, 0, geo->MinX, geo->MinY); /* vertex # 1 */ + gaiaSetPoint (rect->Coords, 1, geo->MaxX, geo->MinY); /* vertex # 2 */ + gaiaSetPoint (rect->Coords, 2, geo->MaxX, geo->MaxY); /* vertex # 3 */ + gaiaSetPoint (rect->Coords, 3, geo->MinX, geo->MaxY); /* vertex # 4 */ + gaiaSetPoint (rect->Coords, 4, geo->MinX, geo->MinY); /* vertex # 5 [same as vertex # 1 to close the polygon] */ + gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); + gaiaFreeGeomColl (bbox); + sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void -fnct_M (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Expand (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ M(BLOB encoded POINT) +/ ST_Expand(BLOB encoded geometry, double amount) / -/ returns the M coordinate for current POINT geometry +/ returns the MBR for current geometry expanded by "amount" in each direction / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + int len; + unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - gaiaPointPtr point; + gaiaGeomCollPtr bbox; + gaiaPolygonPtr polyg; + gaiaRingPtr rect; + double tic; + int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + tic = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - point = simplePoint (geo); - if (!point) - sqlite3_result_null (context); - else - { - if (point->DimensionModel == GAIA_XY_M - || point->DimensionModel == GAIA_XY_Z_M) - sqlite3_result_double (context, point->M); - else - sqlite3_result_null (context); - } + int_value = sqlite3_value_int (argv[1]); + tic = int_value; } - gaiaFreeGeomColl (geo); -} - -static void -fnct_NumPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ NumPoints(BLOB encoded LINESTRING) -/ -/ returns the number of vertices for current LINESTRING geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaLinestringPtr line; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + else { sqlite3_result_null (context); return; @@ -10529,436 +12116,426 @@ fnct_NumPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - line = simpleLinestring (geo); - if (!line) - sqlite3_result_null (context); - else - sqlite3_result_int (context, line->Points); + gaiaMbrGeometry (geo); + bbox = gaiaAllocGeomColl (); + bbox->Srid = geo->Srid; + polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); + rect = polyg->Exterior; + gaiaSetPoint (rect->Coords, 0, geo->MinX - tic, geo->MinY - tic); /* vertex # 1 */ + gaiaSetPoint (rect->Coords, 1, geo->MaxX + tic, geo->MinY - tic); /* vertex # 2 */ + gaiaSetPoint (rect->Coords, 2, geo->MaxX + tic, geo->MaxY + tic); /* vertex # 3 */ + gaiaSetPoint (rect->Coords, 3, geo->MinX - tic, geo->MaxY + tic); /* vertex # 4 */ + gaiaSetPoint (rect->Coords, 4, geo->MinX - tic, geo->MinY - tic); /* vertex # 5 [same as vertex # 1 to close the polygon] */ + gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); + gaiaFreeGeomColl (bbox); + sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void -point_n (sqlite3_context * context, int argc, sqlite3_value ** argv, - int request) +build_filter_mbr (sqlite3_context * context, int argc, + sqlite3_value ** argv, int mode) { /* SQL functions: -/ StartPoint(BLOB encoded LINESTRING geometry) -/ EndPoint(BLOB encoded LINESTRING geometry) -/ PointN(BLOB encoded LINESTRING geometry, integer point_no) +/ BuildMbrFilter(double X1, double Y1, double X2, double Y2) +/ FilterMBRWithin(double X1, double Y1, double X2, double Y2) +/ FilterMBRContain(double X1, double Y1, double X2, double Y2) +/ FilterMBRIntersects(double X1, double Y1, double X2, double Y2) / -/ returns the Nth POINT for current LINESTRING geometry +/ builds a generic filter for MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - int vertex; int len; - double x; - double y; - double z; - double m; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - gaiaLinestringPtr line; + double x1; + double y1; + double x2; + double y2; + int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x1 = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x1 = int_value; + } + else { sqlite3_result_null (context); return; } - if (request == GAIA_POINTN) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y1 = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - /* PointN() requires point index to be defined as an SQL function argument */ - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - vertex = sqlite3_value_int (argv[1]); + int_value = sqlite3_value_int (argv[1]); + y1 = int_value; } - else if (request == GAIA_END_POINT) - vertex = -1; /* EndPoint() specifies a negative point index */ else - vertex = 1; /* StartPoint() */ - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x2 = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + x2 = int_value; + } else { - line = simpleLinestring (geo); - if (!line) - sqlite3_result_null (context); - else - { - if (vertex < 0) - vertex = line->Points - 1; - else - vertex -= 1; /* decreasing the point index by 1, because PointN counts starting at index 1 */ - if (vertex >= 0 && vertex < line->Points) - { - if (line->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (line->Coords, vertex, &x, &y, &z); - result = gaiaAllocGeomCollXYZ (); - result->Srid = geo->Srid; - gaiaAddPointToGeomCollXYZ (result, x, y, z); - } - else if (line->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (line->Coords, vertex, &x, &y, &m); - result = gaiaAllocGeomCollXYM (); - result->Srid = geo->Srid; - gaiaAddPointToGeomCollXYM (result, x, y, m); - } - else if (line->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (line->Coords, vertex, &x, &y, &z, - &m); - result = gaiaAllocGeomCollXYZM (); - result->Srid = geo->Srid; - gaiaAddPointToGeomCollXYZM (result, x, y, z, m); - } - else - { - gaiaGetPoint (line->Coords, vertex, &x, &y); - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - gaiaAddPointToGeomColl (result, x, y); - } - } - else - result = NULL; - if (!result) - sqlite3_result_null (context); - else - { - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); - } - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y2 = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + y2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + gaiaBuildFilterMbr (x1, y1, x2, y2, mode, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); } /* -/ the following functions simply readdress the request to point_n() -/ setting the appropriate request mode +/ the following functions simply readdress the request to build_filter_mbr() +/ setting the appropriate MODe */ static void -fnct_StartPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BuildMbrFilter (sqlite3_context * context, int argc, sqlite3_value ** argv) { - point_n (context, argc, argv, GAIA_START_POINT); + build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_DECLARE); } static void -fnct_EndPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_FilterMbrWithin (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - point_n (context, argc, argv, GAIA_END_POINT); + build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_WITHIN); } static void -fnct_PointN (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_FilterMbrContains (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - point_n (context, argc, argv, GAIA_POINTN); + build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_CONTAINS); } static void -fnct_ExteriorRing (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_FilterMbrIntersects (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* SQL functions: -/ ExteriorRing(BLOB encoded POLYGON geometry) + build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_INTERSECTS); +} + +static void +fnct_BuildMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ BuildMBR(double X1, double Y1, double X2, double Y2) / -/ returns the EXTERIOR RING for current POLYGON geometry +/ builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - int iv; - double x; - double y; - double z; - double m; int len; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - gaiaPolygonPtr polyg; - gaiaRingPtr ring; - gaiaLinestringPtr line; + double x1; + double y1; + double x2; + double y2; + int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x1 = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x1 = int_value; + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y1 = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y1 = int_value; + } else { - polyg = simplePolygon (geo); - if (!polyg) - sqlite3_result_null (context); - else - { - ring = polyg->Exterior; - if (ring->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (ring->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (ring->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); - else - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - line = gaiaAddLinestringToGeomColl (result, ring->Points); - for (iv = 0; iv < line->Points; iv++) - { - if (ring->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); - gaiaSetPointXYZ (line->Coords, iv, x, y, z); - } - else if (ring->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); - gaiaSetPointXYM (line->Coords, iv, x, y, m); - } - else if (ring->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); - gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); - } - else - { - gaiaGetPoint (ring->Coords, iv, &x, &y); - gaiaSetPoint (line->Coords, iv, x, y); - } - } - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); -} + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x2 = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + x2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y2 = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + y2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + gaiaBuildMbr (x1, y1, x2, y2, -1, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); +} static void -fnct_NumInteriorRings (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_BuildMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ NumInteriorRings(BLOB encoded POLYGON) +/ BuildMBR(double X1, double Y1, double X2, double Y2, int SRID) / -/ returns the number of INTERIOR RINGS for current POLYGON geometry +/ builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaPolygonPtr polyg; + int len; + unsigned char *p_result = NULL; + double x1; + double y1; + double x2; + double y2; + int int_value; + int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x1 = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x1 = int_value; + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y1 = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y1 = int_value; + } else { - polyg = simplePolygon (geo); - if (!polyg) - sqlite3_result_null (context); - else - sqlite3_result_int (context, polyg->NumInteriors); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + x2 = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + x2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + y2 = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + y2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[4]); + else + { + sqlite3_result_null (context); + return; + } + gaiaBuildMbr (x1, y1, x2, y2, srid, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_InteriorRingN (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BuildCircleMbr1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* SQL functions: -/ InteriorRingN(BLOB encoded POLYGON geometry) +/* SQL function: +/ BuildCircleMBR(double X, double Y, double radius) / -/ returns the Nth INTERIOR RING for current POLYGON geometry +/ builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - int border; - int iv; - double x; - double y; - double z; - double m; int len; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - gaiaPolygonPtr polyg; - gaiaRingPtr ring; - gaiaLinestringPtr line; + double x; + double y; + double radius; + int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - border = sqlite3_value_int (argv[1]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + radius = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + radius = int_value; + } else { - polyg = simplePolygon (geo); - if (!polyg) - sqlite3_result_null (context); - else - { - if (border >= 1 && border <= polyg->NumInteriors) - { - ring = polyg->Interiors + (border - 1); - if (ring->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (ring->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (ring->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); - else - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - line = gaiaAddLinestringToGeomColl (result, ring->Points); - for (iv = 0; iv < line->Points; iv++) - { - if (ring->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ring->Coords, iv, &x, &y, - &z); - gaiaSetPointXYZ (line->Coords, iv, x, y, z); - } - else if (ring->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ring->Coords, iv, &x, &y, - &m); - gaiaSetPointXYM (line->Coords, iv, x, y, m); - } - else if (ring->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ring->Coords, iv, &x, &y, - &z, &m); - gaiaSetPointXYZM (line->Coords, iv, x, y, z, - m); - } - else - { - gaiaGetPoint (ring->Coords, iv, &x, &y); - gaiaSetPoint (line->Coords, iv, x, y); - } - } - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); - } - else - sqlite3_result_null (context); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + gaiaBuildCircleMbr (x, y, radius, -1, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_NumGeometries (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BuildCircleMbr2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ NumGeometries(BLOB encoded GEOMETRYCOLLECTION) +/ BuildCircleMBR(double X, double Y, double radius, int SRID) / -/ returns the number of elementary geometries for current geometry +/ builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - int cnt = 0; - gaiaPointPtr point; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; - gaiaGeomCollPtr geo = NULL; + int len; + unsigned char *p_result = NULL; + double x; + double y; + double radius; + int int_value; + int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + y = int_value; + } else { - point = geo->FirstPoint; - while (point) - { - /* counts how many points are there */ - cnt++; - point = point->Next; - } - line = geo->FirstLinestring; - while (line) - { - /* counts how many linestrings are there */ - cnt++; - line = line->Next; - } - polyg = geo->FirstPolygon; - while (polyg) - { - /* counts how many polygons are there */ - cnt++; - polyg = polyg->Next; - } - sqlite3_result_int (context, cnt); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + radius = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + radius = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + srid = sqlite3_value_int (argv[3]); + else + { + sqlite3_result_null (context); + return; + } + gaiaBuildCircleMbr (x, y, radius, srid, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_NPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Extent_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_NPoints(BLOB encoded GEOMETRYCOLLECTION) +/ Extent(BLOBencoded geom) +/ +/ aggregate function - STEP / -/ returns the total number of points/vertices for current geometry -/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int cnt = 0; - int ib; - gaiaPointPtr point; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; - gaiaRingPtr rng; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom; + double **p; + double *max_min; + int *srid_check; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -10967,59 +12544,118 @@ fnct_NPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geom) + return; + gaiaMbrGeometry (geom); + p = sqlite3_aggregate_context (context, sizeof (double **)); + if (!(*p)) + { + /* this is the first row */ + max_min = malloc ((sizeof (double) * 5)); + *(max_min + 0) = geom->MinX; + *(max_min + 1) = geom->MinY; + *(max_min + 2) = geom->MaxX; + *(max_min + 3) = geom->MaxY; + srid_check = (int *) (max_min + 4); + *(srid_check + 0) = geom->Srid; + *(srid_check + 1) = geom->Srid; + *p = max_min; + } + else + { + /* subsequent rows */ + max_min = *p; + if (geom->MinX < *(max_min + 0)) + *(max_min + 0) = geom->MinX; + if (geom->MinY < *(max_min + 1)) + *(max_min + 1) = geom->MinY; + if (geom->MaxX > *(max_min + 2)) + *(max_min + 2) = geom->MaxX; + if (geom->MaxY > *(max_min + 3)) + *(max_min + 3) = geom->MaxY; + srid_check = (int *) (max_min + 4); + if (*(srid_check + 1) != geom->Srid) + *(srid_check + 1) = geom->Srid; + } + gaiaFreeGeomColl (geom); +} + +static void +fnct_Extent_final (sqlite3_context * context) +{ +/* SQL function: +/ Extent(BLOBencoded geom) +/ +/ aggregate function - FINAL +/ +*/ + gaiaGeomCollPtr result; + gaiaPolygonPtr polyg; + gaiaRingPtr rect; + double *max_min; + double minx; + double miny; + double maxx; + double maxy; + int *srid_check; + double **p = sqlite3_aggregate_context (context, 0); + if (!p) + { + sqlite3_result_null (context); + return; + } + max_min = *p; + if (!max_min) + { + sqlite3_result_null (context); + return; + } + srid_check = (int *) (max_min + 4); + if (*(srid_check + 0) != *(srid_check + 1)) + { + sqlite3_result_null (context); + return; + } + result = gaiaAllocGeomColl (); + if (!result) sqlite3_result_null (context); else { - point = geo->FirstPoint; - while (point) - { - /* counts how many points are there */ - cnt++; - point = point->Next; - } - line = geo->FirstLinestring; - while (line) - { - /* counts how many points are there */ - cnt += line->Points; - line = line->Next; - } - polyg = geo->FirstPolygon; - while (polyg) - { - /* counts how many points are in the exterior ring */ - rng = polyg->Exterior; - cnt += rng->Points; - for (ib = 0; ib < polyg->NumInteriors; ib++) - { - /* processing any interior ring */ - rng = polyg->Interiors + ib; - cnt += rng->Points; - } - polyg = polyg->Next; - } - sqlite3_result_int (context, cnt); + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = *(srid_check + 0); + polyg = gaiaAddPolygonToGeomColl (result, 5, 0); + rect = polyg->Exterior; + minx = *(max_min + 0); + miny = *(max_min + 1); + maxx = *(max_min + 2); + maxy = *(max_min + 3); + gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ + gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ + gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ + gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ + gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); } - gaiaFreeGeomColl (geo); + free (max_min); } static void -fnct_NRings (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MbrMinX (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_NRings(BLOB encoded GEOMETRYCOLLECTION) +/ MbrMinX(BLOB encoded GEMETRY) / -/ returns the total number of rings for current geometry -/ (this including both interior and exterior rings) +/ returns the MinX coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int cnt = 0; - gaiaPolygonPtr polyg; - gaiaGeomCollPtr geo = NULL; + double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -11028,585 +12664,418 @@ fnct_NRings (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (!gaiaGetMbrMinX (p_blob, n_bytes, &coord)) { - polyg = geo->FirstPolygon; - while (polyg) - { - /* counts how many rings are there */ - cnt += polyg->NumInteriors + 1; - polyg = polyg->Next; +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_double (context, min_x); + } } - sqlite3_result_int (context, cnt); + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); } - gaiaFreeGeomColl (geo); + else + sqlite3_result_double (context, coord); } -static int -getXYZMSinglePoint (gaiaGeomCollPtr geom, double *x, double *y, double *z, - double *m) +static void +fnct_MbrMaxX (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* check if this geometry is a simple Point (returning full coords) */ - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - pt = geom->FirstPoint; - while (pt) +/* SQL function: +/ MbrMaxX(BLOB encoded GEMETRY) +/ +/ returns the MaxX coordinate for current geometry's MBR +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + double coord; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - pts++; - pt = pt->Next; + sqlite3_result_null (context); + return; } - ln = geom->FirstLinestring; - while (ln) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (!gaiaGetMbrMaxX (p_blob, n_bytes, &coord)) { - lns++; - ln = ln->Next; - } - pg = geom->FirstPolygon; - while (pg) - { - pgs++; - pg = pg->Next; +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_double (context, max_x); + } + } + else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); } - if (pts == 1 && lns == 0 && pgs == 0) - ; - else - return 0; - *x = geom->FirstPoint->X; - *y = geom->FirstPoint->Y; - if (geom->DimensionModel == GAIA_XY_Z - || geom->DimensionModel == GAIA_XY_Z_M) - *z = geom->FirstPoint->Z; - else - *z = 0.0; - if (geom->DimensionModel == GAIA_XY_M - || geom->DimensionModel == GAIA_XY_Z_M) - *m = geom->FirstPoint->M; else - *m = 0.0; - return 1; + sqlite3_result_double (context, coord); } static void -fnct_SnapToGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MbrMinY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_SnapToGrid(BLOBencoded geom, double size) -/ ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) -/ ST_SnapToGrid(BLOBencoded geom, double originX, double originY, -/ double sizeX, double sizeY) -/ -/ Snap all points of the input geometry to the grid defined by its -/ origin and cell size. Remove consecutive points falling on the same -/ cell. Collapsed geometries in a collection are stripped from it. -/ -/ -/ ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, -/ double sizeY, double sizeZ, double sizeM) +/ MbrMinY(BLOB encoded GEMETRY) / -/ Snap all points of the input geometry to the grid defined by its -/ origin (the second argument, must be a point) and cell sizes. -/ -/ Specify 0 as size for any dimension you don't want to snap to -/ a grid. -/ return NULL if any error is encountered +/ returns the MinY coordinate for current geometry's MBR +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int int_value; - double origin_x = 0.0; - double origin_y = 0.0; - double origin_z = 0.0; - double origin_m = 0.0; - double size_x; - double size_y; - double size_z = 0.0; - double size_m = 0.0; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr point = NULL; - gaiaGeomCollPtr result = NULL; + double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (argc == 2) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (!gaiaGetMbrMinY (p_blob, n_bytes, &coord)) { - /* ST_SnapToGrid(BLOBencoded geom, double size) */ - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - size_x = int_value; - size_y = size_x; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - { - size_x = sqlite3_value_double (argv[1]); - size_y = size_x; +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_double (context, min_y); + } } else - { - sqlite3_result_null (context); - return; - } +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); } - if (argc == 3) + else + sqlite3_result_double (context, coord); +} + +static void +fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ MbrMaxY(BLOB encoded GEMETRY) +/ +/ returns the MaxY coordinate for current geometry's MBR +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + double coord; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - /* ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) */ - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - size_x = int_value; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - { - size_x = sqlite3_value_double (argv[1]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - size_y = int_value; - } - else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - { - size_y = sqlite3_value_double (argv[2]); - } - else - { - sqlite3_result_null (context); - return; - } + sqlite3_result_null (context); + return; } - if (argc == 5) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (!gaiaGetMbrMaxY (p_blob, n_bytes, &coord)) { - /* - / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, - / double sizeX, double sizeY) - */ - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - origin_x = int_value; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - { - origin_x = sqlite3_value_double (argv[1]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - origin_y = int_value; - } - else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - { - origin_y = sqlite3_value_double (argv[2]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - size_x = int_value; - } - else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - { - size_x = sqlite3_value_double (argv[3]); +#ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ + if (gaiaIsValidGPB (p_blob, n_bytes)) + { + double min_x; + double max_x; + double min_y; + double max_y; + int has_z; + double min_z; + double max_z; + int has_m; + double min_m; + double max_m; + if (gaiaGetEnvelopeFromGPB + (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, + &min_z, &max_z, &has_m, &min_m, &max_m)) + { + sqlite3_result_double (context, max_y); + } } else +#endif /* end GEOPACKAGE: supporting GPKG geometries */ + sqlite3_result_null (context); + } + else + sqlite3_result_double (context, coord); +} + +#ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ +static void +gaia_mbr_del (void *p) +{ +/* freeing data used by R*Tree Geometry Callback */ + sqlite3_free (p); +} + +static int +fnct_RTreeIntersects (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, + int *pRes) +{ +/* R*Tree Geometry callback function: +/ ... MATCH RTreeIntersects(double x1, double y1, double x2, double y2) +*/ + struct gaia_rtree_mbr *mbr; + double xmin; + double xmax; + double ymin; + double ymax; + float fminx; + float fminy; + float fmaxx; + float fmaxy; + double tic; + double tic2; + + if (p->pUser == 0) + { + /* first call: we must check args and then initialize the MBR struct */ + if (nCoord != 4) + return SQLITE_ERROR; + if (p->nParam != 4) + return SQLITE_ERROR; + mbr = (struct gaia_rtree_mbr *) (p->pUser = + sqlite3_malloc (sizeof + (struct + gaia_rtree_mbr))); + if (!mbr) + return SQLITE_NOMEM; + p->xDelUser = gaia_mbr_del; + xmin = p->aParam[0]; + ymin = p->aParam[1]; + xmax = p->aParam[2]; + ymax = p->aParam[3]; + if (xmin > xmax) { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[4]); - size_y = int_value; - } - else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) - { - size_y = sqlite3_value_double (argv[4]); + xmin = p->aParam[2]; + xmax = p->aParam[0]; } - else + if (ymin > ymax) { - sqlite3_result_null (context); - return; + ymin = p->aParam[3]; + ymax = p->aParam[1]; } - } - if (argc == 6) - { - /* - / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, - / double sizeY, double sizeZ, double sizeM) - */ - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!point) - { - sqlite3_result_null (context); - return; - } - if (!getXYZMSinglePoint - (point, &origin_x, &origin_y, &origin_z, &origin_m)) - { - gaiaFreeGeomColl (point); - sqlite3_result_null (context); - return; - } - gaiaFreeGeomColl (point); - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - size_x = int_value; - } - else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - { - size_x = sqlite3_value_double (argv[2]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - size_y = int_value; - } - else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - { - size_y = sqlite3_value_double (argv[3]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[4]); - size_z = int_value; - } - else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) - { - size_z = sqlite3_value_double (argv[4]); - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[5]); - size_m = int_value; - } - else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) - { - size_m = sqlite3_value_double (argv[5]); - } - else - { - sqlite3_result_null (context); - return; - } - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - result = - gaiaSnapToGrid (geo, origin_x, origin_y, origin_z, origin_m, - size_x, size_y, size_z, size_m); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); -} -static char garsMapping[24] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', - 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' -}; + /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ + fminx = (float) xmin; + fminy = (float) ymin; + fmaxx = (float) xmax; + fmaxy = (float) ymax; + tic = fabs (xmin - fminx); + tic2 = fabs (ymin - fminy); + if (tic2 > tic) + tic = tic2; + tic2 = fabs (xmax - fmaxx); + if (tic2 > tic) + tic = tic2; + tic2 = fabs (ymax - fmaxy); + if (tic2 > tic) + tic = tic2; + tic *= 2.0; -static char -garsLetterCode (int value) -{ - return garsMapping[value]; + mbr->minx = xmin - tic; + mbr->miny = ymin - tic; + mbr->maxx = xmax + tic; + mbr->maxy = ymax + tic; + } + + mbr = (struct gaia_rtree_mbr *) (p->pUser); + xmin = aCoord[0]; + xmax = aCoord[1]; + ymin = aCoord[2]; + ymax = aCoord[3]; + *pRes = 1; +/* evaluating Intersects relationship */ + if (xmin > mbr->maxx) + *pRes = 0; + if (xmax < mbr->minx) + *pRes = 0; + if (ymin > mbr->maxy) + *pRes = 0; + if (ymax < mbr->miny) + *pRes = 0; + return SQLITE_OK; } static int -garsMappingIndex (const char letter) +fnct_RTreeDistWithin (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, + int *pRes) { - int i = 0; - for (i = 0; i < 24; ++i) - { - if (letter == garsMapping[i]) - return i; - } - return -1; -} +/* R*Tree Geometry callback function: +/ ... MATCH RTreeDistWithin(double x, double y, double radius) +*/ + struct gaia_rtree_mbr *mbr; + double xmin; + double xmax; + double ymin; + double ymax; -static double -garsLetterToDegreesLat (char msd, char lsd) -{ - double high = garsMappingIndex (msd) * 24.0; - double low = garsMappingIndex (lsd); - if ((high < 0) || (low < 0)) + if (p->pUser == 0) { - return -100.0; + /* first call: we must check args and then initialize the MBR struct */ + if (nCoord != 4) + return SQLITE_ERROR; + if (p->nParam != 3) + return SQLITE_ERROR; + mbr = (struct gaia_rtree_mbr *) (p->pUser = + sqlite3_malloc (sizeof + (struct + gaia_rtree_mbr))); + if (!mbr) + return SQLITE_NOMEM; + p->xDelUser = gaia_mbr_del; + mbr->minx = p->aParam[0] - p->aParam[2]; + mbr->miny = p->aParam[1] - p->aParam[2]; + mbr->maxx = p->aParam[0] + p->aParam[2]; + mbr->maxy = p->aParam[1] + p->aParam[2]; } - return (((high + low) * 0.5) - 90.0); -} + mbr = (struct gaia_rtree_mbr *) (p->pUser); + xmin = aCoord[0]; + xmax = aCoord[1]; + ymin = aCoord[2]; + ymax = aCoord[3]; + *pRes = 1; +/* evaluating Intersects relationship */ + if (xmin > mbr->maxx) + *pRes = 0; + if (xmax < mbr->minx) + *pRes = 0; + if (ymin > mbr->maxy) + *pRes = 0; + if (ymax < mbr->miny) + *pRes = 0; + return SQLITE_OK; +} +#endif /* end RTree geometry callbacks */ static void -fnct_GARSMbr (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_X (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GARSMbr(Text) +/ X(BLOB encoded POINT) / -/ converts the Text (which should be a valid GARS area) to the corresponding -/ MBR geometry. -/ This function will return NULL if an error occurs +/ returns the X coordinate for current POINT geometry +/ or NULL if any error is encountered */ - const char *text = NULL; - int len = 0; - unsigned char *p_result = NULL; - double x1 = 0.0; - double y1 = 0.0; - double x2 = 0.0; - double y2 = 0.0; - + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - text = (const char *) sqlite3_value_text (argv[0]); - if ((strlen (text) < 5) || (strlen (text) > 7)) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else { - sqlite3_result_null (context); - return; + point = simplePoint (geo); + if (!point) + sqlite3_result_null (context); + else + sqlite3_result_double (context, point->X); } - if (strlen (text) == 5) - { - int numMatch = 0; - unsigned int digit100 = 0; - char letterMSD = '\0'; - char letterLSD = '\0'; - numMatch = sscanf (text, "%u%c%c", &digit100, &letterMSD, &letterLSD); - if (numMatch != 3) - { - sqlite3_result_null (context); - return; - } - x1 = ((digit100 - 1) * 0.5) - 180.0; - y1 = garsLetterToDegreesLat (letterMSD, letterLSD); - if ((x1 < -180.0) || (x1 > 179.5) || (y1 < -90.0) || (y1 > 89.5)) - { - sqlite3_result_null (context); - return; - } - x2 = x1 + 0.5; - y2 = y1 + 0.5; - } - if (strlen (text) == 6) - { - unsigned int numMatch = 0; - unsigned int digit100 = 0; - char letterMSD = '\0'; - char letterLSD = '\0'; - unsigned int digitSegment = 0; - numMatch = - sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, - &digitSegment); - if (numMatch != 4) - { - sqlite3_result_null (context); - return; - } - if ((digitSegment < 1) || (digitSegment > 4)) - { - sqlite3_result_null (context); - return; - } - x1 = ((digit100 - 1) * 0.5) - 180.0; - if ((digitSegment == 2) || (digitSegment == 4)) - { - x1 += 0.25; - } - y1 = garsLetterToDegreesLat (letterMSD, letterLSD); - if ((digitSegment == 1) || (digitSegment == 2)) - { - y1 += 0.25; - } - if ((x1 < -180.0) || (x1 > 179.75) || (y1 < -90.0) || (y1 > 89.75)) - { - sqlite3_result_null (context); - return; - } - x2 = x1 + 0.25; - y2 = y1 + 0.25; - } - if (strlen (text) == 7) - { - unsigned int numMatch = 0; - unsigned int digit100 = 0; - char letterMSD = '\0'; - char letterLSD = '\0'; - unsigned int digitAndKeypad = 0; - unsigned int digitSegment = 0; - unsigned int keypadNumber = 0; - numMatch = - sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, - &digitAndKeypad); - if (numMatch != 4) - { - sqlite3_result_null (context); - return; - } - digitSegment = digitAndKeypad / 10; - keypadNumber = digitAndKeypad % 10; - if ((digitSegment < 1) || (digitSegment > 4)) - { - sqlite3_result_null (context); - return; - } - if (keypadNumber < 1) - { - sqlite3_result_null (context); - return; - } - x1 = ((digit100 - 1) * 0.5) - 180.0; - if ((digitSegment == 2) || (digitSegment == 4)) - { - x1 += 0.25; - } - y1 = garsLetterToDegreesLat (letterMSD, letterLSD); - if ((digitSegment == 1) || (digitSegment == 2)) - { - y1 += 0.25; - } - switch (keypadNumber) - { - case 1: - x1 += 0 * 0.25 / 3; - y1 += 2 * 0.25 / 3; - break; - case 2: - x1 += 1 * 0.25 / 3; - y1 += 2 * 0.25 / 3; - break; - case 3: - x1 += 2 * 0.25 / 3; - y1 += 2 * 0.25 / 3; - break; - case 4: - x1 += 0 * 0.25 / 3; - y1 += 1 * 0.25 / 3; - break; - case 5: - x1 += 1 * 0.25 / 3; - y1 += 1 * 0.25 / 3; - break; - case 6: - x1 += 2 * 0.25 / 3; - y1 += 1 * 0.25 / 3; - break; - case 7: - x1 += 0 * 0.25 / 3; - y1 += 0 * 0.25 / 3; - break; - case 8: - x1 += 1 * 0.25 / 3; - y1 += 0 * 0.25 / 3; - break; - case 9: - x1 += 2 * 0.25 / 3; - y1 += 0 * 0.25 / 3; - break; - } - if ((x1 < -180.0) || (x1 >= 180.0) || (y1 < -90.0) || (y1 >= 90.0)) - { - sqlite3_result_null (context); - return; - } - x2 = x1 + (0.25 / 3); - y2 = y1 + (0.25 / 3); - } - gaiaBuildMbr (x1, y1, x2, y2, 4326, &p_result, &len); - if (!p_result) + gaiaFreeGeomColl (geo); +} + +static void +fnct_Y (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Y(BLOB encoded POINT) +/ +/ returns the Y coordinate for current POINT geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaPointPtr point; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); - printf ("bad p_result\n"); + return; } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); else - sqlite3_result_blob (context, p_result, len, free); + { + point = simplePoint (geo); + if (!point) + sqlite3_result_null (context); + else + sqlite3_result_double (context, point->Y); + } + gaiaFreeGeomColl (geo); } static void -fnct_ToGARS (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Z (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ToGARS(BLOB encoded POINT) +/ Z(BLOB encoded POINT) / -/ returns the Global Area Reference System coordinate area for a given point, -/ or NULL if an error occurs +/ returns the Z coordinate for current POINT geometry +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaPointPtr point; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; - char p_result[8]; - int lon_band = 0; - double lon_minutes = 0; - int segmentNumber = 0; - int lat_band = 0; - double lat_minutes = 0; + gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -11617,680 +13086,470 @@ fnct_ToGARS (sqlite3_context * context, int argc, sqlite3_value ** argv) n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) + sqlite3_result_null (context); + else + { + point = simplePoint (geo); + if (!point) + sqlite3_result_null (context); + else + { + if (point->DimensionModel == GAIA_XY_Z + || point->DimensionModel == GAIA_XY_Z_M) + sqlite3_result_double (context, point->Z); + else + sqlite3_result_null (context); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_M (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ M(BLOB encoded POINT) +/ +/ returns the M coordinate for current POINT geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaPointPtr point; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - gaiaNormalizeLonLat (geo); - point = geo->FirstPoint; - while (point != NULL) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else { - pts++; - point = point->Next; + point = simplePoint (geo); + if (!point) + sqlite3_result_null (context); + else + { + if (point->DimensionModel == GAIA_XY_M + || point->DimensionModel == GAIA_XY_Z_M) + sqlite3_result_double (context, point->M); + else + sqlite3_result_null (context); + } } - line = geo->FirstLinestring; - while (line != NULL) - { - lns++; - line = line->Next; - } - polyg = geo->FirstPolygon; - while (polyg != NULL) - { - pgs++; - polyg = polyg->Next; - } - if (pts == 1 && lns == 0 && pgs == 0) - point = geo->FirstPoint; - else + gaiaFreeGeomColl (geo); +} + +static void +fnct_NumPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ NumPoints(BLOB encoded LINESTRING) +/ +/ returns the number of vertices for current LINESTRING geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaLinestringPtr line; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - /* not a single Point */ - gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } - /* longitude band */ - lon_band = 1 + (int) ((point->X + 180.0) * 2); - sprintf (p_result, "%03i", lon_band); - /* latitude band */ - lat_band = (int) ((point->Y + 90.0) * 2); - p_result[3] = garsLetterCode (lat_band / 24); - p_result[4] = garsLetterCode (lat_band % 24); - /* quadrant */ - lon_minutes = fmod ((point->X + 180.0), 0.5) * 60.0; - if (lon_minutes < 15.0) - { - segmentNumber = 1; - } - else - { - segmentNumber = 2; - lon_minutes -= 15.0; - } - lat_minutes = fmod ((point->Y + 90.0), 0.5) * 60.0; - if (lat_minutes < 15.0) - { - segmentNumber += 2; - } - else - { - /* we already have the right segment */ - lat_minutes -= 15.0; - } - sprintf (&(p_result[5]), "%i", segmentNumber); - /* area */ - segmentNumber = 0; - if (lon_minutes >= 10.0) - { - segmentNumber = 3; - } - else if (lon_minutes >= 5.0) - { - segmentNumber = 2; - } - else - { - segmentNumber = 1; - } - if (lat_minutes >= 10.0) - { - /* nothing to add */ - } - else if (lat_minutes >= 5.0) - { - segmentNumber += 3; - } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); else { - segmentNumber += 6; + line = simpleLinestring (geo); + if (!line) + sqlite3_result_null (context); + else + sqlite3_result_int (context, line->Points); } - sprintf (&(p_result[6]), "%i", segmentNumber); - sqlite3_result_text (context, p_result, 7, SQLITE_TRANSIENT); gaiaFreeGeomColl (geo); } static void -fnct_GeometryN (sqlite3_context * context, int argc, sqlite3_value ** argv) +point_n (sqlite3_context * context, int argc, sqlite3_value ** argv, + int request) { -/* SQL function: -/ GeometryN(BLOB encoded GEOMETRYCOLLECTION geometry) +/* SQL functions: +/ StartPoint(BLOB encoded LINESTRING geometry) +/ EndPoint(BLOB encoded LINESTRING geometry) +/ PointN(BLOB encoded LINESTRING geometry, integer point_no) / -/ returns the Nth geometry for current GEOMETRYCOLLECTION or MULTIxxxx geometry +/ returns the Nth POINT for current LINESTRING geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int entity; + int vertex; int len; - int cnt = 0; - int iv; - int ib; double x; double y; double z; double m; - gaiaPointPtr point; - gaiaLinestringPtr line; - gaiaLinestringPtr line2; - gaiaPolygonPtr polyg; - gaiaPolygonPtr polyg2; - gaiaRingPtr ring_in; - gaiaRingPtr ring_out; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result = NULL; + gaiaGeomCollPtr result; + gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (request == GAIA_POINTN) { - sqlite3_result_null (context); - return; + /* PointN() requires point index to be defined as an SQL function argument */ + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + vertex = sqlite3_value_int (argv[1]); } + else if (request == GAIA_END_POINT) + vertex = -1; /* EndPoint() specifies a negative point index */ + else + vertex = 1; /* StartPoint() */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - entity = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { - point = geo->FirstPoint; - while (point) - { - /* counts how many points are there */ - cnt++; - if (cnt == entity) - { - /* ok, required elementary geometry is this POINT */ - if (point->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (point->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (point->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); - else - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - if (point->DimensionModel == GAIA_XY_Z) - gaiaAddPointToGeomCollXYZ (result, point->X, - point->Y, point->Z); - else if (point->DimensionModel == GAIA_XY_M) - gaiaAddPointToGeomCollXYM (result, point->X, - point->Y, point->M); - else if (point->DimensionModel == GAIA_XY_Z_M) - gaiaAddPointToGeomCollXYZM (result, point->X, - point->Y, point->Z, - point->M); - else - gaiaAddPointToGeomColl (result, point->X, point->Y); - goto skip; - } - point = point->Next; - } - line = geo->FirstLinestring; - while (line) + line = simpleLinestring (geo); + if (!line) + sqlite3_result_null (context); + else { - /* counts how many linestrings are there */ - cnt++; - if (cnt == entity) + if (vertex < 0) + vertex = line->Points - 1; + else + vertex -= 1; /* decreasing the point index by 1, because PointN counts starting at index 1 */ + if (vertex >= 0 && vertex < line->Points) { - /* ok, required elementary geometry is this LINESTRING */ if (line->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); + { + gaiaGetPointXYZ (line->Coords, vertex, &x, &y, &z); + result = gaiaAllocGeomCollXYZ (); + result->Srid = geo->Srid; + gaiaAddPointToGeomCollXYZ (result, x, y, z); + } else if (line->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); + { + gaiaGetPointXYM (line->Coords, vertex, &x, &y, &m); + result = gaiaAllocGeomCollXYM (); + result->Srid = geo->Srid; + gaiaAddPointToGeomCollXYM (result, x, y, m); + } else if (line->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); + { + gaiaGetPointXYZM (line->Coords, vertex, &x, &y, + &z, &m); + result = gaiaAllocGeomCollXYZM (); + result->Srid = geo->Srid; + gaiaAddPointToGeomCollXYZM (result, x, y, z, m); + } else - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - line2 = - gaiaAddLinestringToGeomColl (result, line->Points); - for (iv = 0; iv < line2->Points; iv++) { - if (line->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (line->Coords, iv, &x, &y, - &z); - gaiaSetPointXYZ (line2->Coords, iv, x, y, z); - } - else if (line->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (line->Coords, iv, &x, &y, - &m); - gaiaSetPointXYM (line2->Coords, iv, x, y, m); - } - else if (line->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (line->Coords, iv, &x, &y, - &z, &m); - gaiaSetPointXYZM (line2->Coords, iv, x, y, z, - m); - } - else - { - gaiaGetPoint (line->Coords, iv, &x, &y); - gaiaSetPoint (line2->Coords, iv, x, y); - } + gaiaGetPoint (line->Coords, vertex, &x, &y); + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + gaiaAddPointToGeomColl (result, x, y); } - goto skip; } - line = line->Next; - } - polyg = geo->FirstPolygon; - while (polyg) - { - /* counts how many polygons are there */ - cnt++; - if (cnt == entity) + else + result = NULL; + if (!result) + sqlite3_result_null (context); + else { - /* ok, required elementary geometry is this POLYGON */ - if (polyg->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (polyg->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (polyg->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); - else - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - ring_in = polyg->Exterior; - polyg2 = - gaiaAddPolygonToGeomColl (result, ring_in->Points, - polyg->NumInteriors); - ring_out = polyg2->Exterior; - for (iv = 0; iv < ring_out->Points; iv++) - { - /* copying the exterior ring POINTs */ - if (ring_in->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ring_in->Coords, iv, &x, &y, - &z); - gaiaSetPointXYZ (ring_out->Coords, iv, x, y, - z); - } - else if (ring_in->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ring_in->Coords, iv, &x, &y, - &m); - gaiaSetPointXYM (ring_out->Coords, iv, x, y, - m); - } - else if (ring_in->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ring_in->Coords, iv, &x, &y, - &z, &m); - gaiaSetPointXYZM (ring_out->Coords, iv, x, y, - z, m); - } - else - { - gaiaGetPoint (ring_in->Coords, iv, &x, &y); - gaiaSetPoint (ring_out->Coords, iv, x, y); - } - } - for (ib = 0; ib < polyg2->NumInteriors; ib++) - { - /* processing the interior rings */ - ring_in = polyg->Interiors + ib; - ring_out = - gaiaAddInteriorRing (polyg2, ib, - ring_in->Points); - for (iv = 0; iv < ring_out->Points; iv++) - { - if (ring_in->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ring_in->Coords, iv, - &x, &y, &z); - gaiaSetPointXYZ (ring_out->Coords, iv, - x, y, z); - } - else if (ring_in->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ring_in->Coords, iv, - &x, &y, &m); - gaiaSetPointXYM (ring_out->Coords, iv, - x, y, m); - } - else if (ring_in->DimensionModel == - GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ring_in->Coords, iv, - &x, &y, &z, &m); - gaiaSetPointXYZM (ring_out->Coords, iv, - x, y, z, m); - } - else - { - gaiaGetPoint (ring_in->Coords, iv, &x, - &y); - gaiaSetPoint (ring_out->Coords, iv, x, - y); - } - } - } - goto skip; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); } - polyg = polyg->Next; - } - skip: - if (result) - { - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); } - else - sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } +/* +/ the following functions simply readdress the request to point_n() +/ setting the appropriate request mode +*/ + static void -mbrs_eval (sqlite3_context * context, int argc, sqlite3_value ** argv, - int request) +fnct_StartPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ MBRsomething(BLOB encoded GEOMETRY-1, BLOB encoded GEOMETRY-2) + point_n (context, argc, argv, GAIA_START_POINT); +} + +static void +fnct_EndPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + point_n (context, argc, argv, GAIA_END_POINT); +} + +static void +fnct_PointN (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + point_n (context, argc, argv, GAIA_POINTN); +} + +static void +fnct_ExteriorRing (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL functions: +/ ExteriorRing(BLOB encoded POLYGON geometry) / -/ returns: -/ 1 if the required spatial relationship between the two MBRs is TRUE -/ 0 otherwise +/ returns the EXTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int ret; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; + int iv; + double x; + double y; + double z; + double m; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + gaiaPolygonPtr polyg; + gaiaRingPtr ring; + gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); - if (!geo1 || !geo2) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) sqlite3_result_null (context); else { - ret = 0; - gaiaMbrGeometry (geo1); - gaiaMbrGeometry (geo2); - switch (request) - { - case GAIA_MBR_CONTAINS: - ret = gaiaMbrsContains (geo1, geo2); - break; - case GAIA_MBR_DISJOINT: - ret = gaiaMbrsDisjoint (geo1, geo2); - break; - case GAIA_MBR_EQUAL: - ret = gaiaMbrsEqual (geo1, geo2); - break; - case GAIA_MBR_INTERSECTS: - ret = gaiaMbrsIntersects (geo1, geo2); - break; - case GAIA_MBR_OVERLAPS: - ret = gaiaMbrsOverlaps (geo1, geo2); - break; - case GAIA_MBR_TOUCHES: - ret = gaiaMbrsTouches (geo1, geo2); - break; - case GAIA_MBR_WITHIN: - ret = gaiaMbrsWithin (geo1, geo2); - break; - } - if (ret < 0) + polyg = simplePolygon (geo); + if (!polyg) sqlite3_result_null (context); else - sqlite3_result_int (context, ret); + { + ring = polyg->Exterior; + if (ring->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (ring->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (ring->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + line = gaiaAddLinestringToGeomColl (result, ring->Points); + for (iv = 0; iv < line->Points; iv++) + { + if (ring->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (line->Coords, iv, x, y, z); + } + else if (ring->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (line->Coords, iv, x, y, m); + } + else if (ring->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); + } + else + { + gaiaGetPoint (ring->Coords, iv, &x, &y); + gaiaSetPoint (line->Coords, iv, x, y); + } + } + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); + } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); -} - -/* -/ the following functions simply readdress the mbr_eval() -/ setting the appropriate request mode -*/ - -static void -fnct_MbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_CONTAINS); -} - -static void -fnct_MbrDisjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_DISJOINT); -} - -static void -fnct_MbrEqual (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_EQUAL); -} - -static void -fnct_MbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_INTERSECTS); + gaiaFreeGeomColl (geo); } static void -fnct_EnvIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_NumInteriorRings (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ ST_EnvIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) -/ ST_EnvelopesIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) +/ NumInteriorRings(BLOB encoded POLYGON) / -/ the second MBR is defined by two points (identifying a rectangle's diagonal) +/ returns the number of INTERIOR RINGS for current POLYGON geometry / or NULL if any error is encountered */ - double x1; - double y1; - double x2; - double y2; - int int_value; unsigned char *p_blob; int n_bytes; - int ret = 0; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaLinestringPtr ln; + gaiaGeomCollPtr geo = NULL; + gaiaPolygonPtr polyg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - x1 = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - x1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - y1 = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - y1 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - x2 = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - x2 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) - y2 = sqlite3_value_double (argv[4]); - else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[4]); - y2 = int_value; - } - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) sqlite3_result_null (context); else { - gaiaMbrGeometry (geo1); - geo2 = gaiaAllocGeomColl (); - ln = gaiaAddLinestringToGeomColl (geo2, 2); - gaiaSetPoint (ln->Coords, 0, x1, y1); - gaiaSetPoint (ln->Coords, 1, x2, y2); - gaiaMbrGeometry (geo2); - ret = gaiaMbrsIntersects (geo1, geo2); - sqlite3_result_int (context, ret); + polyg = simplePolygon (geo); + if (!polyg) + sqlite3_result_null (context); + else + sqlite3_result_int (context, polyg->NumInteriors); } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); -} - - -static void -fnct_MbrOverlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_OVERLAPS); -} - -static void -fnct_MbrTouches (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_TOUCHES); -} - -static void -fnct_MbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - mbrs_eval (context, argc, argv, GAIA_MBR_WITHIN); + gaiaFreeGeomColl (geo); } static void -fnct_ShiftCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_InteriorRingN (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ ShiftCoords(BLOBencoded geometry, shiftX, shiftY) +/* SQL functions: +/ InteriorRingN(BLOB encoded POLYGON geometry) / -/ returns a new geometry that is the original one received, but with shifted coordinates +/ returns the Nth INTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + int border; + int iv; + double x; + double y; + double z; + double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; - double shift_x; - double shift_y; - int int_value; + gaiaGeomCollPtr result; + gaiaPolygonPtr polyg; + gaiaRingPtr ring; + gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - shift_x = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - shift_x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - shift_y = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - shift_y = int_value; - } - else + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); + border = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { - gaiaShiftCoords (geo, shift_x, shift_y); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) + polyg = simplePolygon (geo); + if (!polyg) sqlite3_result_null (context); else - sqlite3_result_blob (context, p_result, len, free); + { + if (border >= 1 && border <= polyg->NumInteriors) + { + ring = polyg->Interiors + (border - 1); + if (ring->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (ring->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (ring->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + line = gaiaAddLinestringToGeomColl (result, ring->Points); + for (iv = 0; iv < line->Points; iv++) + { + if (ring->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ring->Coords, iv, &x, + &y, &z); + gaiaSetPointXYZ (line->Coords, iv, x, y, z); + } + else if (ring->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ring->Coords, iv, &x, + &y, &m); + gaiaSetPointXYM (line->Coords, iv, x, y, m); + } + else if (ring->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ring->Coords, iv, &x, + &y, &z, &m); + gaiaSetPointXYZM (line->Coords, iv, x, + y, z, m); + } + else + { + gaiaGetPoint (ring->Coords, iv, &x, &y); + gaiaSetPoint (line->Coords, iv, x, y); + } + } + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); + } } gaiaFreeGeomColl (geo); } static void -fnct_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_NumGeometries (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Translate(BLOBencoded geometry, shiftX, shiftY, shiftZ) +/ NumGeometries(BLOB encoded GEOMETRYCOLLECTION) / -/ returns a new geometry that is the original one received, but with shifted coordinates +/ returns the number of elementary geometries for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; + int cnt = 0; + gaiaPointPtr point; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; - double shift_x; - double shift_y; - double shift_z; - int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - shift_x = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - shift_x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - shift_y = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - shift_y = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - shift_z = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - shift_z = int_value; - } - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); @@ -12298,31 +13557,49 @@ fnct_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - gaiaShiftCoords3D (geo, shift_x, shift_y, shift_z); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + point = geo->FirstPoint; + while (point) + { + /* counts how many points are there */ + cnt++; + point = point->Next; + } + line = geo->FirstLinestring; + while (line) + { + /* counts how many linestrings are there */ + cnt++; + line = line->Next; + } + polyg = geo->FirstPolygon; + while (polyg) + { + /* counts how many polygons are there */ + cnt++; + polyg = polyg->Next; + } + sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } - static void -fnct_ShiftLongitude (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_NPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ShiftLongitude(BLOBencoded geometry) +/ ST_NPoints(BLOB encoded GEOMETRYCOLLECTION) / -/ returns a new geometry that is the original one received, but with negative -/ longitudes shifted by 360 +/ returns the total number of points/vertices for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; + int cnt = 0; + int ib; + gaiaPointPtr point; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; + gaiaRingPtr rng; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) @@ -12337,31 +13614,53 @@ fnct_ShiftLongitude (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); else { - gaiaShiftLongitude (geo); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + point = geo->FirstPoint; + while (point) + { + /* counts how many points are there */ + cnt++; + point = point->Next; + } + line = geo->FirstLinestring; + while (line) + { + /* counts how many points are there */ + cnt += line->Points; + line = line->Next; + } + polyg = geo->FirstPolygon; + while (polyg) + { + /* counts how many points are in the exterior ring */ + rng = polyg->Exterior; + cnt += rng->Points; + for (ib = 0; ib < polyg->NumInteriors; ib++) + { + /* processing any interior ring */ + rng = polyg->Interiors + ib; + cnt += rng->Points; + } + polyg = polyg->Next; + } + sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static void -fnct_NormalizeLonLat (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_NRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ NormalizeLonLat (BLOBencoded geometry) +/ ST_NRings(BLOB encoded GEOMETRYCOLLECTION) / -/ returns a new geometry that is the original one received, but with longitude -/ and latitude values shifted into the range [-180 - 180, -90 - 90]. -/ NULL is returned if any error is encountered +/ returns the total number of rings for current geometry +/ (this including both interior and exterior rings) +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; + int cnt = 0; + gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) @@ -12376,203 +13675,335 @@ fnct_NormalizeLonLat (sqlite3_context * context, int argc, sqlite3_result_null (context); else { - gaiaNormalizeLonLat (geo); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + polyg = geo->FirstPolygon; + while (polyg) + { + /* counts how many rings are there */ + cnt += polyg->NumInteriors + 1; + polyg = polyg->Next; + } + sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } -static void -fnct_ScaleCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +is_single_point (gaiaGeomCollPtr geom) { -/* SQL function: -/ ScaleCoords(BLOBencoded geometry, scale_factor_x [, scale_factor_y]) -/ -/ returns a new geometry that is the original one received, but with scaled coordinates -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - double scale_x; - double scale_y; - int int_value; - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* check if this geometry is a simple Point */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + pt = geom->FirstPoint; + while (pt) { - sqlite3_result_null (context); - return; + pts++; + pt = pt->Next; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - scale_x = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + ln = geom->FirstLinestring; + while (ln) { - int_value = sqlite3_value_int (argv[1]); - scale_x = int_value; + lns++; + ln = ln->Next; } - else + pg = geom->FirstPolygon; + while (pg) { - sqlite3_result_null (context); - return; + pgs++; + pg = pg->Next; } - if (argc == 2) - scale_y = scale_x; /* this one is an isotropic scaling request */ - else + if (pts == 1 && lns == 0 && pgs == 0) + return 1; + return 0; +} + +static int +is_single_linestring (gaiaGeomCollPtr geom) +{ +/* check if this geometry is a simple Linestring */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + pt = geom->FirstPoint; + while (pt) { - /* an anisotropic scaling is requested */ - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - scale_y = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - scale_y = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + pts++; + pt = pt->Next; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + ln = geom->FirstLinestring; + while (ln) { - gaiaScaleCoords (geo, scale_x, scale_y); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + lns++; + ln = ln->Next; } - gaiaFreeGeomColl (geo); + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 0 && lns == 1 && pgs == 0) + return 1; + return 0; } static void -fnct_RotateCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_AddPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ RotateCoords(BLOBencoded geometry, angle) +/* SQL functions: +/ ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point) +/ ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point, INTEGER position) / -/ returns a new geometry that is the original one received, but with rotated coordinates +/ returns a new Linestring by adding a new Point before "position" (zero-based index) +/ a negative "position" (default) means appending to the end / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + gaiaLinestringPtr ln; + gaiaLinestringPtr out_ln; + gaiaPointPtr pt; + int position = -1; + gaiaGeomCollPtr line = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - double angle; - int int_value; + int iv; + int out_iv; + double x; + double y; + double m; + double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - angle = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - angle = int_value; - } - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - gaiaRotateCoords (geo, angle); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); - } - gaiaFreeGeomColl (geo); -} - -static void -fnct_ReflectCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ ReflectCoords(BLOBencoded geometry, x_axis, y_axis) -/ -/ returns a new geometry that is the original one received, but with mirrored coordinates -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - int x_axis; - int y_axis; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!line) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - x_axis = sqlite3_value_int (argv[1]); - else + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { + gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - y_axis = sqlite3_value_int (argv[2]); - else + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) { + gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (argc == 3) { - gaiaReflectCoords (geo, x_axis, y_axis); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + goto stop; + } + position = sqlite3_value_int (argv[2]); + } + if (is_single_linestring (line) && is_single_point (point)) + ; + else + { + sqlite3_result_null (context); + goto stop; + } + ln = line->FirstLinestring; + pt = point->FirstPoint; + if (position >= 0 && position >= ln->Points) + { + sqlite3_result_null (context); + goto stop; + } +/* creating the output Geometry */ + if (line->DimensionModel == GAIA_XY_Z) + out = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + out = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + out = gaiaAllocGeomCollXYZM (); + else + out = gaiaAllocGeomColl (); + out->Srid = line->Srid; + out->DeclaredType = line->DeclaredType; + out_ln = gaiaAddLinestringToGeomColl (out, ln->Points + 1); + if (position < 0) + { + /* appending the new Point */ + for (iv = 0; iv < ln->Points; iv++) + { + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (out_ln->Coords, iv, x, y); + } + } + /* appending the new Point */ + x = pt->X; + y = pt->Y; + z = pt->Z; + m = pt->M; + out_iv = ln->Points; + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } else - sqlite3_result_blob (context, p_result, len, free); + { + gaiaSetPoint (out_ln->Coords, out_iv, x, y); + } } - gaiaFreeGeomColl (geo); + else + { + /* inserting the new Point before "position" */ + out_iv = 0; + for (iv = 0; iv < position; iv++) + { + /* copying all Points before "position" */ + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (out_ln->Coords, out_iv, x, y); + } + out_iv++; + } + /* inserting the new Point */ + x = pt->X; + y = pt->Y; + z = pt->Z; + m = pt->M; + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } + else + { + gaiaSetPoint (out_ln->Coords, out_iv, x, y); + } + out_iv++; + for (iv = position; iv < ln->Points; iv++) + { + /* copying all Points after "position" */ + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (out_ln->Coords, out_iv, x, y); + } + out_iv++; + } + } + gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); + gaiaFreeGeomColl (out); + sqlite3_result_blob (context, p_result, len, free); + stop: + gaiaFreeGeomColl (line); + gaiaFreeGeomColl (point); } static void -fnct_SwapCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SetPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ SwapCoords(BLOBencoded geometry) +/* SQL functions: +/ ST_SetPoint(BLOB encoded LINESTRING line, INTEGER position, BLOB encoded POINT point) / -/ returns a new geometry that is the original one received, but with swapped x- and y-coordinate +/ returns a new Linestring by replacing the Point at "position" (zero-based index) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + gaiaLinestringPtr ln; + gaiaLinestringPtr out_ln; + gaiaPointPtr pt; + int position; + gaiaGeomCollPtr line = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; + int iv; + double x; + double y; + double m; + double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -12581,2082 +14012,6812 @@ fnct_SwapCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!line) { - gaiaSwapCoords (geo); - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - if (!p_result) - sqlite3_result_null (context); - else - sqlite3_result_blob (context, p_result, len, free); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); -} - -SPATIALITE_PRIVATE int -getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf) -{ -/* -/ retrieves the PROJ +ellps=xx [+a=xx +b=xx] params -/from SPATIAL_SYS_REF table, if possible -*/ - sqlite3 *sqlite = (sqlite3 *) p_sqlite; - char *proj4text; - char *p_proj; - char *p_ellps; - char *p_datum; - char *p_a; - char *p_b; - char *p_end; - - if (srid == 0) + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - /* - / SRID=0 is formally defined as "Undefined Geographic" - / so will default to SRID=4326 (WGS84 Long/Lat) - */ - srid = 4326; + gaiaFreeGeomColl (line); + sqlite3_result_null (context); + return; } - getProjParams (sqlite, srid, &proj4text); - if (proj4text == NULL) - return 0; -/* parsing the proj4text geodesic string */ - p_proj = strstr (proj4text, "+proj="); - p_datum = strstr (proj4text, "+datum="); - p_ellps = strstr (proj4text, "+ellps="); - p_a = strstr (proj4text, "+a="); - p_b = strstr (proj4text, "+b="); -/* checking if +proj=longlat is true */ - if (!p_proj) - goto invalid; - p_end = strchr (p_proj, ' '); - if (p_end) - *p_end = '\0'; - if (strcmp (p_proj + 6, "longlat") != 0) - goto invalid; - if (p_ellps) + position = sqlite3_value_int (argv[1]); + if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { - /* trying to retrieve the ellipsoid params by name */ - p_end = strchr (p_ellps, ' '); - if (p_end) - *p_end = '\0'; - if (gaiaEllipseParams (p_ellps + 7, a, b, rf)) - goto valid; + gaiaFreeGeomColl (line); + sqlite3_result_null (context); + return; } - else if (p_datum) + p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); + n_bytes = sqlite3_value_bytes (argv[2]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) { - /* - / starting since GDAL 1.9.0 the WGS84 [4326] PROJ.4 def doesn't - / declares any longer the "+ellps=" param - / in this case we'll attempt to recover using "+datum=". - */ - p_end = strchr (p_datum, ' '); - if (p_end) - *p_end = '\0'; - if (gaiaEllipseParams (p_datum + 7, a, b, rf)) - goto valid; + gaiaFreeGeomColl (line); + sqlite3_result_null (context); + return; } - if (p_a && p_b) + if (is_single_linestring (line) && is_single_point (point)) + ; + else { - /* trying to retrieve the +a=xx and +b=xx args */ - p_end = strchr (p_a, ' '); - if (p_end) - *p_end = '\0'; - p_end = strchr (p_b, ' '); - if (p_end) - *p_end = '\0'; - *a = atof (p_a + 3); - *b = atof (p_b + 3); - *rf = 1.0 / ((*a - *b) / *a); - goto valid; + sqlite3_result_null (context); + goto stop; } - - valid: - free (proj4text); - return 1; - - invalid: - free (proj4text); - return 0; + ln = line->FirstLinestring; + pt = point->FirstPoint; + if (position < 0 || position >= ln->Points) + { + sqlite3_result_null (context); + goto stop; + } +/* creating the output Geometry */ + if (line->DimensionModel == GAIA_XY_Z) + out = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + out = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + out = gaiaAllocGeomCollXYZM (); + else + out = gaiaAllocGeomColl (); + out->Srid = line->Srid; + out->DeclaredType = line->DeclaredType; + out_ln = gaiaAddLinestringToGeomColl (out, ln->Points); + for (iv = 0; iv < ln->Points; iv++) + { + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + } + if (iv == position) + { + /* replacing the new Point */ + x = pt->X; + y = pt->Y; + z = pt->Z; + m = pt->M; + } + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); + } + else + { + gaiaSetPoint (out_ln->Coords, iv, x, y); + } + } + gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); + gaiaFreeGeomColl (out); + sqlite3_result_blob (context, p_result, len, free); + stop: + gaiaFreeGeomColl (line); + gaiaFreeGeomColl (point); } static void -fnct_FromEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_RemovePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ GeomFromEWKB(EWKB encoded geometry) +/* SQL functions: +/ ST_RemovePoint(BLOB encoded LINESTRING line, INTEGER position) / -/ returns the current geometry by parsing Geos/PostGis EWKB encoded string +/ returns a new Linestring by removing the Point at "position" (zero-based index) / or NULL if any error is encountered */ + unsigned char *p_blob; + int n_bytes; + gaiaLinestringPtr ln; + gaiaLinestringPtr out_ln; + int position; + gaiaGeomCollPtr line = NULL; + gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; + int iv; + int out_iv; + double x; + double y; + double m; + double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaFromEWKB (text); - if (geo == NULL) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!line) { sqlite3_result_null (context); return; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); -} - -static void -fnct_ToEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ AsEWKB(BLOB encoded geometry) -/ -/ returns a text string corresponding to Geos/PostGIS EWKB notation -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; - gaiaOutBuffer out_buf; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); - return; + goto stop; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) + position = sqlite3_value_int (argv[1]); + if (!is_single_linestring (line)) { sqlite3_result_null (context); - return; + goto stop; + } + ln = line->FirstLinestring; + if (position < 0 || position >= ln->Points) + { + sqlite3_result_null (context); + goto stop; } +/* creating the output Geometry */ + if (line->DimensionModel == GAIA_XY_Z) + out = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + out = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + out = gaiaAllocGeomCollXYZM (); else + out = gaiaAllocGeomColl (); + out->Srid = line->Srid; + out->DeclaredType = line->DeclaredType; + out_ln = gaiaAddLinestringToGeomColl (out, ln->Points - 1); + out_iv = 0; + for (iv = 0; iv < position; iv++) { - gaiaOutBufferInitialize (&out_buf); - gaiaToEWKB (&out_buf, geo); - if (out_buf.Error || out_buf.Buffer == NULL) - sqlite3_result_null (context); + /* copying all Points before "position" */ + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } else { - len = out_buf.WriteOffset; - sqlite3_result_text (context, out_buf.Buffer, len, free); - out_buf.Buffer = NULL; + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (out_ln->Coords, out_iv, x, y); } + out_iv++; } - gaiaFreeGeomColl (geo); - gaiaOutBufferReset (&out_buf); + for (iv = position + 1; iv < ln->Points; iv++) + { + /* copying all Points after "position" */ + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaSetPoint (out_ln->Coords, out_iv, x, y); + } + out_iv++; + } + gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); + gaiaFreeGeomColl (out); + sqlite3_result_blob (context, p_result, len, free); + stop: + gaiaFreeGeomColl (line); } static void -fnct_ToEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MakePolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ AsEWKT(BLOB encoded geometry) +/* SQL functions: +/ ST_MakePolygon(BLOB encoded LINESTRING line) +/ ST_MakePolygon(BLOB encoded LINESTRING line, BLOB encoded (MULTI)LINESTING holes) / -/ returns the corresponding PostGIS EWKT encoded value +/ returns a new POLYGON from the given exterior and interior rings / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; + gaiaGeomCollPtr exterior = NULL; + gaiaGeomCollPtr interiors = NULL; + gaiaGeomCollPtr out; int len; - gaiaOutBuffer out_buf; - gaiaGeomCollPtr geo = NULL; + unsigned char *p_result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); - return; + goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - gaiaOutBufferInitialize (&out_buf); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + exterior = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!exterior) { - gaiaToEWKT (&out_buf, geo); - if (out_buf.Error || out_buf.Buffer == NULL) - sqlite3_result_null (context); - else - { - len = out_buf.WriteOffset; - sqlite3_result_text (context, out_buf.Buffer, len, free); - out_buf.Buffer = NULL; - } + sqlite3_result_null (context); + goto stop; } - gaiaFreeGeomColl (geo); - gaiaOutBufferReset (&out_buf); -} - -static void -fnct_FromEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ GeomFromEWKT(EWKT encoded geometry) -/ -/ returns the current geometry by parsing EWKT (PostGIS) encoded string -/ or NULL if any error is encountered -*/ - int len; - unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (argc == 2) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + goto stop; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + interiors = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!interiors) + { + sqlite3_result_null (context); + goto stop; + } } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseEWKT (text); - if (geo == NULL) + out = gaiaMakePolygon (exterior, interiors); + if (!out) { sqlite3_result_null (context); - return; + goto stop; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); + gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); + gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); + stop: + gaiaFreeGeomColl (exterior); + gaiaFreeGeomColl (interiors); } -static void -fnct_FromGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +getXYZMSinglePoint (gaiaGeomCollPtr geom, double *x, double *y, double *z, + double *m) { -/* SQL function: -/ GeomFromGeoJSON(GeoJSON encoded geometry) -/ -/ returns the current geometry by parsing GeoJSON encoded string -/ or NULL if any error is encountered -*/ - int len; - unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) +/* check if this geometry is a simple Point (returning full coords) */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + pt = geom->FirstPoint; + while (pt) { - sqlite3_result_null (context); - return; + pts++; + pt = pt->Next; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseGeoJSON (text); - if (geo == NULL) + ln = geom->FirstLinestring; + while (ln) { - sqlite3_result_null (context); - return; + lns++; + ln = ln->Next; } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts == 1 && lns == 0 && pgs == 0) + ; + else + return 0; + *x = geom->FirstPoint->X; + *y = geom->FirstPoint->Y; + if (geom->DimensionModel == GAIA_XY_Z + || geom->DimensionModel == GAIA_XY_Z_M) + *z = geom->FirstPoint->Z; + else + *z = 0.0; + if (geom->DimensionModel == GAIA_XY_M + || geom->DimensionModel == GAIA_XY_Z_M) + *m = geom->FirstPoint->M; + else + *m = 0.0; + return 1; } static void -fnct_FromKml (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SnapToGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeomFromKml(KML encoded geometry) +/ ST_SnapToGrid(BLOBencoded geom, double size) +/ ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) +/ ST_SnapToGrid(BLOBencoded geom, double originX, double originY, +/ double sizeX, double sizeY) / -/ returns the current geometry by parsing KML encoded string -/ or NULL if any error is encountered +/ Snap all points of the input geometry to the grid defined by its +/ origin and cell size. Remove consecutive points falling on the same +/ cell. Collapsed geometries in a collection are stripped from it. +/ +/ +/ ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, +/ double sizeY, double sizeZ, double sizeM) +/ +/ Snap all points of the input geometry to the grid defined by its +/ origin (the second argument, must be a point) and cell sizes. +/ +/ Specify 0 as size for any dimension you don't want to snap to +/ a grid. +/ return NULL if any error is encountered */ - int len; - unsigned char *p_result = NULL; - const unsigned char *text; + unsigned char *p_blob; + int n_bytes; + int int_value; + double origin_x = 0.0; + double origin_y = 0.0; + double origin_z = 0.0; + double origin_m = 0.0; + double size_x; + double size_y; + double size_z = 0.0; + double size_m = 0.0; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseKml (text); - if (geo == NULL) + if (argc == 2) { - sqlite3_result_null (context); - return; + /* ST_SnapToGrid(BLOBencoded geom, double size) */ + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + size_x = int_value; + size_y = size_x; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + size_x = sqlite3_value_double (argv[1]); + size_y = size_x; + } + else + { + sqlite3_result_null (context); + return; + } } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); + if (argc == 3) + { + /* ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) */ + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + size_x = int_value; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + size_x = sqlite3_value_double (argv[1]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + size_y = int_value; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + size_y = sqlite3_value_double (argv[2]); + } + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 5) + { + /* + / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, + / double sizeX, double sizeY) + */ + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + origin_x = int_value; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + origin_x = sqlite3_value_double (argv[1]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + origin_y = int_value; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + origin_y = sqlite3_value_double (argv[2]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + size_x = int_value; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + size_x = sqlite3_value_double (argv[3]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[4]); + size_y = int_value; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + { + size_y = sqlite3_value_double (argv[4]); + } + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 6) + { + /* + / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, + / double sizeY, double sizeZ, double sizeM) + */ + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) + { + sqlite3_result_null (context); + return; + } + if (!getXYZMSinglePoint + (point, &origin_x, &origin_y, &origin_z, &origin_m)) + { + gaiaFreeGeomColl (point); + sqlite3_result_null (context); + return; + } + gaiaFreeGeomColl (point); + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + size_x = int_value; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + { + size_x = sqlite3_value_double (argv[2]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + size_y = int_value; + } + else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + { + size_y = sqlite3_value_double (argv[3]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[4]); + size_z = int_value; + } + else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + { + size_z = sqlite3_value_double (argv[4]); + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[5]); + size_m = int_value; + } + else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) + { + size_m = sqlite3_value_double (argv[5]); + } + else + { + sqlite3_result_null (context); + return; + } + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + result = + gaiaSnapToGrid (geo, origin_x, origin_y, origin_z, origin_m, + size_x, size_y, size_z, size_m); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static char garsMapping[24] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', + 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' +}; + +static char +garsLetterCode (int value) +{ + return garsMapping[value]; +} + +static int +garsMappingIndex (const char letter) +{ + int i = 0; + for (i = 0; i < 24; ++i) + { + if (letter == garsMapping[i]) + return i; + } + return -1; +} + +static double +garsLetterToDegreesLat (char msd, char lsd) +{ + double high = garsMappingIndex (msd) * 24.0; + double low = garsMappingIndex (lsd); + if ((high < 0) || (low < 0)) + { + return -100.0; + } + return (((high + low) * 0.5) - 90.0); +} + + +static void +fnct_GARSMbr (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GARSMbr(Text) +/ +/ converts the Text (which should be a valid GARS area) to the corresponding +/ MBR geometry. +/ This function will return NULL if an error occurs +*/ + const char *text = NULL; + int len = 0; + unsigned char *p_result = NULL; + double x1 = 0.0; + double y1 = 0.0; + double x2 = 0.0; + double y2 = 0.0; + + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = (const char *) sqlite3_value_text (argv[0]); + if ((strlen (text) < 5) || (strlen (text) > 7)) + { + sqlite3_result_null (context); + return; + } + if (strlen (text) == 5) + { + int numMatch = 0; + unsigned int digit100 = 0; + char letterMSD = '\0'; + char letterLSD = '\0'; + numMatch = sscanf (text, "%u%c%c", &digit100, &letterMSD, &letterLSD); + if (numMatch != 3) + { + sqlite3_result_null (context); + return; + } + x1 = ((digit100 - 1) * 0.5) - 180.0; + y1 = garsLetterToDegreesLat (letterMSD, letterLSD); + if ((x1 < -180.0) || (x1 > 179.5) || (y1 < -90.0) || (y1 > 89.5)) + { + sqlite3_result_null (context); + return; + } + x2 = x1 + 0.5; + y2 = y1 + 0.5; + } + if (strlen (text) == 6) + { + unsigned int numMatch = 0; + unsigned int digit100 = 0; + char letterMSD = '\0'; + char letterLSD = '\0'; + unsigned int digitSegment = 0; + numMatch = + sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, + &digitSegment); + if (numMatch != 4) + { + sqlite3_result_null (context); + return; + } + if ((digitSegment < 1) || (digitSegment > 4)) + { + sqlite3_result_null (context); + return; + } + x1 = ((digit100 - 1) * 0.5) - 180.0; + if ((digitSegment == 2) || (digitSegment == 4)) + { + x1 += 0.25; + } + y1 = garsLetterToDegreesLat (letterMSD, letterLSD); + if ((digitSegment == 1) || (digitSegment == 2)) + { + y1 += 0.25; + } + if ((x1 < -180.0) || (x1 > 179.75) || (y1 < -90.0) || (y1 > 89.75)) + { + sqlite3_result_null (context); + return; + } + x2 = x1 + 0.25; + y2 = y1 + 0.25; + } + if (strlen (text) == 7) + { + unsigned int numMatch = 0; + unsigned int digit100 = 0; + char letterMSD = '\0'; + char letterLSD = '\0'; + unsigned int digitAndKeypad = 0; + unsigned int digitSegment = 0; + unsigned int keypadNumber = 0; + numMatch = + sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, + &digitAndKeypad); + if (numMatch != 4) + { + sqlite3_result_null (context); + return; + } + digitSegment = digitAndKeypad / 10; + keypadNumber = digitAndKeypad % 10; + if ((digitSegment < 1) || (digitSegment > 4)) + { + sqlite3_result_null (context); + return; + } + if (keypadNumber < 1) + { + sqlite3_result_null (context); + return; + } + x1 = ((digit100 - 1) * 0.5) - 180.0; + if ((digitSegment == 2) || (digitSegment == 4)) + { + x1 += 0.25; + } + y1 = garsLetterToDegreesLat (letterMSD, letterLSD); + if ((digitSegment == 1) || (digitSegment == 2)) + { + y1 += 0.25; + } + switch (keypadNumber) + { + case 1: + x1 += 0 * 0.25 / 3; + y1 += 2 * 0.25 / 3; + break; + case 2: + x1 += 1 * 0.25 / 3; + y1 += 2 * 0.25 / 3; + break; + case 3: + x1 += 2 * 0.25 / 3; + y1 += 2 * 0.25 / 3; + break; + case 4: + x1 += 0 * 0.25 / 3; + y1 += 1 * 0.25 / 3; + break; + case 5: + x1 += 1 * 0.25 / 3; + y1 += 1 * 0.25 / 3; + break; + case 6: + x1 += 2 * 0.25 / 3; + y1 += 1 * 0.25 / 3; + break; + case 7: + x1 += 0 * 0.25 / 3; + y1 += 0 * 0.25 / 3; + break; + case 8: + x1 += 1 * 0.25 / 3; + y1 += 0 * 0.25 / 3; + break; + case 9: + x1 += 2 * 0.25 / 3; + y1 += 0 * 0.25 / 3; + break; + } + if ((x1 < -180.0) || (x1 >= 180.0) || (y1 < -90.0) || (y1 >= 90.0)) + { + sqlite3_result_null (context); + return; + } + x2 = x1 + (0.25 / 3); + y2 = y1 + (0.25 / 3); + } + gaiaBuildMbr (x1, y1, x2, y2, 4326, &p_result, &len); + if (!p_result) + { + sqlite3_result_null (context); + spatialite_e ("bad p_result\n"); + } + else + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_ToGARS (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ToGARS(BLOB encoded POINT) +/ +/ returns the Global Area Reference System coordinate area for a given point, +/ or NULL if an error occurs +*/ + unsigned char *p_blob; + int n_bytes; + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr point; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; + gaiaGeomCollPtr geo = NULL; + char p_result[8]; + int lon_band = 0; + double lon_minutes = 0; + int segmentNumber = 0; + int lat_band = 0; + double lat_minutes = 0; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { + sqlite3_result_null (context); + return; + } + gaiaNormalizeLonLat (geo); + point = geo->FirstPoint; + while (point != NULL) + { + pts++; + point = point->Next; + } + line = geo->FirstLinestring; + while (line != NULL) + { + lns++; + line = line->Next; + } + polyg = geo->FirstPolygon; + while (polyg != NULL) + { + pgs++; + polyg = polyg->Next; + } + if (pts == 1 && lns == 0 && pgs == 0) + point = geo->FirstPoint; + else + { + /* not a single Point */ + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + /* longitude band */ + lon_band = 1 + (int) ((point->X + 180.0) * 2); + sprintf (p_result, "%03i", lon_band); + /* latitude band */ + lat_band = (int) ((point->Y + 90.0) * 2); + p_result[3] = garsLetterCode (lat_band / 24); + p_result[4] = garsLetterCode (lat_band % 24); + /* quadrant */ + lon_minutes = fmod ((point->X + 180.0), 0.5) * 60.0; + if (lon_minutes < 15.0) + { + segmentNumber = 1; + } + else + { + segmentNumber = 2; + lon_minutes -= 15.0; + } + lat_minutes = fmod ((point->Y + 90.0), 0.5) * 60.0; + if (lat_minutes < 15.0) + { + segmentNumber += 2; + } + else + { + /* we already have the right segment */ + lat_minutes -= 15.0; + } + sprintf (&(p_result[5]), "%i", segmentNumber); + /* area */ + segmentNumber = 0; + if (lon_minutes >= 10.0) + { + segmentNumber = 3; + } + else if (lon_minutes >= 5.0) + { + segmentNumber = 2; + } + else + { + segmentNumber = 1; + } + if (lat_minutes >= 10.0) + { + /* nothing to add */ + } + else if (lat_minutes >= 5.0) + { + segmentNumber += 3; + } + else + { + segmentNumber += 6; + } + sprintf (&(p_result[6]), "%i", segmentNumber); + sqlite3_result_text (context, p_result, 7, SQLITE_TRANSIENT); + gaiaFreeGeomColl (geo); +} + +static void +fnct_GeometryN (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeometryN(BLOB encoded GEOMETRYCOLLECTION geometry) +/ +/ returns the Nth geometry for current GEOMETRYCOLLECTION or MULTIxxxx geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int entity; + int len; + int cnt = 0; + int iv; + int ib; + double x; + double y; + double z; + double m; + gaiaPointPtr point; + gaiaLinestringPtr line; + gaiaLinestringPtr line2; + gaiaPolygonPtr polyg; + gaiaPolygonPtr polyg2; + gaiaRingPtr ring_in; + gaiaRingPtr ring_out; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + entity = sqlite3_value_int (argv[1]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + point = geo->FirstPoint; + while (point) + { + /* counts how many points are there */ + cnt++; + if (cnt == entity) + { + /* ok, required elementary geometry is this POINT */ + if (point->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (point->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (point->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + if (point->DimensionModel == GAIA_XY_Z) + gaiaAddPointToGeomCollXYZ (result, point->X, + point->Y, point->Z); + else if (point->DimensionModel == GAIA_XY_M) + gaiaAddPointToGeomCollXYM (result, point->X, + point->Y, point->M); + else if (point->DimensionModel == GAIA_XY_Z_M) + gaiaAddPointToGeomCollXYZM (result, point->X, + point->Y, point->Z, + point->M); + else + gaiaAddPointToGeomColl (result, point->X, point->Y); + goto skip; + } + point = point->Next; + } + line = geo->FirstLinestring; + while (line) + { + /* counts how many linestrings are there */ + cnt++; + if (cnt == entity) + { + /* ok, required elementary geometry is this LINESTRING */ + if (line->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (line->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (line->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + line2 = + gaiaAddLinestringToGeomColl (result, line->Points); + for (iv = 0; iv < line2->Points; iv++) + { + if (line->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (line->Coords, iv, &x, + &y, &z); + gaiaSetPointXYZ (line2->Coords, iv, x, y, z); + } + else if (line->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (line->Coords, iv, &x, + &y, &m); + gaiaSetPointXYM (line2->Coords, iv, x, y, m); + } + else if (line->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (line->Coords, iv, &x, + &y, &z, &m); + gaiaSetPointXYZM (line2->Coords, iv, x, + y, z, m); + } + else + { + gaiaGetPoint (line->Coords, iv, &x, &y); + gaiaSetPoint (line2->Coords, iv, x, y); + } + } + goto skip; + } + line = line->Next; + } + polyg = geo->FirstPolygon; + while (polyg) + { + /* counts how many polygons are there */ + cnt++; + if (cnt == entity) + { + /* ok, required elementary geometry is this POLYGON */ + if (polyg->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (polyg->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (polyg->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + ring_in = polyg->Exterior; + polyg2 = + gaiaAddPolygonToGeomColl (result, + ring_in->Points, + polyg->NumInteriors); + ring_out = polyg2->Exterior; + for (iv = 0; iv < ring_out->Points; iv++) + { + /* copying the exterior ring POINTs */ + if (ring_in->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ring_in->Coords, iv, + &x, &y, &z); + gaiaSetPointXYZ (ring_out->Coords, iv, + x, y, z); + } + else if (ring_in->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ring_in->Coords, iv, + &x, &y, &m); + gaiaSetPointXYM (ring_out->Coords, iv, + x, y, m); + } + else if (ring_in->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ring_in->Coords, iv, + &x, &y, &z, &m); + gaiaSetPointXYZM (ring_out->Coords, iv, + x, y, z, m); + } + else + { + gaiaGetPoint (ring_in->Coords, iv, &x, &y); + gaiaSetPoint (ring_out->Coords, iv, x, y); + } + } + for (ib = 0; ib < polyg2->NumInteriors; ib++) + { + /* processing the interior rings */ + ring_in = polyg->Interiors + ib; + ring_out = + gaiaAddInteriorRing (polyg2, ib, + ring_in->Points); + for (iv = 0; iv < ring_out->Points; iv++) + { + if (ring_in->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ring_in->Coords, + iv, &x, &y, &z); + gaiaSetPointXYZ (ring_out->Coords, iv, + x, y, z); + } + else if (ring_in->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ring_in->Coords, + iv, &x, &y, &m); + gaiaSetPointXYM (ring_out->Coords, iv, + x, y, m); + } + else if (ring_in->DimensionModel == + GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ring_in->Coords, iv, + &x, &y, &z, &m); + gaiaSetPointXYZM (ring_out->Coords, iv, + x, y, z, m); + } + else + { + gaiaGetPoint (ring_in->Coords, + iv, &x, &y); + gaiaSetPoint (ring_out->Coords, + iv, x, y); + } + } + } + goto skip; + } + polyg = polyg->Next; + } + skip: + if (result) + { + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); + } + else + sqlite3_result_null (context); + } + gaiaFreeGeomColl (geo); +} + +static void +mbrs_eval (sqlite3_context * context, int argc, sqlite3_value ** argv, + int request) +{ +/* SQL function: +/ MBRsomething(BLOB encoded GEOMETRY-1, BLOB encoded GEOMETRY-2) +/ +/ returns: +/ 1 if the required spatial relationship between the two MBRs is TRUE +/ 0 otherwise +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + ret = 0; + gaiaMbrGeometry (geo1); + gaiaMbrGeometry (geo2); + switch (request) + { + case GAIA_MBR_CONTAINS: + ret = gaiaMbrsContains (geo1, geo2); + break; + case GAIA_MBR_DISJOINT: + ret = gaiaMbrsDisjoint (geo1, geo2); + break; + case GAIA_MBR_EQUAL: + ret = gaiaMbrsEqual (geo1, geo2); + break; + case GAIA_MBR_INTERSECTS: + ret = gaiaMbrsIntersects (geo1, geo2); + break; + case GAIA_MBR_OVERLAPS: + ret = gaiaMbrsOverlaps (geo1, geo2); + break; + case GAIA_MBR_TOUCHES: + ret = gaiaMbrsTouches (geo1, geo2); + break; + case GAIA_MBR_WITHIN: + ret = gaiaMbrsWithin (geo1, geo2); + break; + } + if (ret < 0) + sqlite3_result_null (context); + else + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +/* +/ the following functions simply readdress the mbr_eval() +/ setting the appropriate request mode +*/ + +static void +fnct_MbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_CONTAINS); +} + +static void +fnct_MbrDisjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_DISJOINT); +} + +static void +fnct_MbrEqual (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_EQUAL); +} + +static void +fnct_MbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_INTERSECTS); +} + +static void +fnct_EnvIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ST_EnvIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) +/ ST_EnvelopesIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) +/ +/ the second MBR is defined by two points (identifying a rectangle's diagonal) +/ or NULL if any error is encountered +*/ + double x1; + double y1; + double x2; + double y2; + int int_value; + unsigned char *p_blob; + int n_bytes; + int ret = 0; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaLinestringPtr ln; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + x1 = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + x1 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + y1 = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + y1 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + x2 = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + x2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) + y2 = sqlite3_value_double (argv[4]); + else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[4]); + y2 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1) + sqlite3_result_null (context); + else + { + gaiaMbrGeometry (geo1); + geo2 = gaiaAllocGeomColl (); + ln = gaiaAddLinestringToGeomColl (geo2, 2); + gaiaSetPoint (ln->Coords, 0, x1, y1); + gaiaSetPoint (ln->Coords, 1, x2, y2); + gaiaMbrGeometry (geo2); + ret = gaiaMbrsIntersects (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + + +static void +fnct_MbrOverlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_OVERLAPS); +} + +static void +fnct_MbrTouches (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_TOUCHES); +} + +static void +fnct_MbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + mbrs_eval (context, argc, argv, GAIA_MBR_WITHIN); +} + +static void +fnct_ShiftCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ShiftCoords(BLOBencoded geometry, shiftX, shiftY) +/ +/ returns a new geometry that is the original one received, but with shifted coordinates +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + double shift_x; + double shift_y; + int int_value; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + shift_x = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + shift_x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + shift_y = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + shift_y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaShiftCoords (geo, shift_x, shift_y); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Translate(BLOBencoded geometry, shiftX, shiftY, shiftZ) +/ +/ returns a new geometry that is the original one received, but with shifted coordinates +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + double shift_x; + double shift_y; + double shift_z; + int int_value; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + shift_x = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + shift_x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + shift_y = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + shift_y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + shift_z = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + shift_z = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaShiftCoords3D (geo, shift_x, shift_y, shift_z); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + + +static void +fnct_ShiftLongitude (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ShiftLongitude(BLOBencoded geometry) +/ +/ returns a new geometry that is the original one received, but with negative +/ longitudes shifted by 360 +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaShiftLongitude (geo); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_NormalizeLonLat (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ NormalizeLonLat (BLOBencoded geometry) +/ +/ returns a new geometry that is the original one received, but with longitude +/ and latitude values shifted into the range [-180 - 180, -90 - 90]. +/ NULL is returned if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaNormalizeLonLat (geo); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_ScaleCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ScaleCoords(BLOBencoded geometry, scale_factor_x [, scale_factor_y]) +/ +/ returns a new geometry that is the original one received, but with scaled coordinates +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + double scale_x; + double scale_y; + int int_value; + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + scale_x = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + scale_x = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (argc == 2) + scale_y = scale_x; /* this one is an isotropic scaling request */ + else + { + /* an anisotropic scaling is requested */ + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + scale_y = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + scale_y = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaScaleCoords (geo, scale_x, scale_y); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_RotateCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ RotateCoords(BLOBencoded geometry, angle) +/ +/ returns a new geometry that is the original one received, but with rotated coordinates +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + double angle; + int int_value; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + angle = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + angle = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaRotateCoords (geo, angle); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_ReflectCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ReflectCoords(BLOBencoded geometry, x_axis, y_axis) +/ +/ returns a new geometry that is the original one received, but with mirrored coordinates +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + int x_axis; + int y_axis; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + x_axis = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + y_axis = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaReflectCoords (geo, x_axis, y_axis); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_SwapCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ SwapCoords(BLOBencoded geometry) +/ +/ returns a new geometry that is the original one received, but with swapped x- and y-coordinate +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaSwapCoords (geo); + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + if (!p_result) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (geo); +} + +SPATIALITE_PRIVATE int +getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf) +{ +/* +/ retrieves the PROJ +ellps=xx [+a=xx +b=xx] params +/from SPATIAL_SYS_REF table, if possible +*/ + sqlite3 *sqlite = (sqlite3 *) p_sqlite; + char *proj4text; + char *p_proj; + char *p_ellps; + char *p_datum; + char *p_a; + char *p_b; + char *p_end; + + if (srid == 0) + { + /* + / SRID=0 is formally defined as "Undefined Geographic" + / so will default to SRID=4326 (WGS84 Long/Lat) + */ + srid = 4326; + } + getProjParams (sqlite, srid, &proj4text); + if (proj4text == NULL) + return 0; +/* parsing the proj4text geodesic string */ + p_proj = strstr (proj4text, "+proj="); + p_datum = strstr (proj4text, "+datum="); + p_ellps = strstr (proj4text, "+ellps="); + p_a = strstr (proj4text, "+a="); + p_b = strstr (proj4text, "+b="); +/* checking if +proj=longlat is true */ + if (!p_proj) + goto invalid; + p_end = strchr (p_proj, ' '); + if (p_end) + *p_end = '\0'; + if (strcmp (p_proj + 6, "longlat") != 0) + goto invalid; + if (p_ellps) + { + /* trying to retrieve the ellipsoid params by name */ + p_end = strchr (p_ellps, ' '); + if (p_end) + *p_end = '\0'; + if (gaiaEllipseParams (p_ellps + 7, a, b, rf)) + goto valid; + } + else if (p_datum) + { + /* + / starting since GDAL 1.9.0 the WGS84 [4326] PROJ.4 def doesn't + / declares any longer the "+ellps=" param + / in this case we'll attempt to recover using "+datum=". + */ + p_end = strchr (p_datum, ' '); + if (p_end) + *p_end = '\0'; + if (gaiaEllipseParams (p_datum + 7, a, b, rf)) + goto valid; + } + if (p_a && p_b) + { + /* trying to retrieve the +a=xx and +b=xx args */ + p_end = strchr (p_a, ' '); + if (p_end) + *p_end = '\0'; + p_end = strchr (p_b, ' '); + if (p_end) + *p_end = '\0'; + *a = atof (p_a + 3); + *b = atof (p_b + 3); + *rf = 1.0 / ((*a - *b) / *a); + goto valid; + } + + valid: + free (proj4text); + return 1; + + invalid: + free (proj4text); + return 0; +} + +static void +fnct_FromEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromEWKB(EWKB encoded geometry) +/ +/ returns the current geometry by parsing Geos/PostGis EWKB encoded string +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *text; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + geo = gaiaFromEWKB (text); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_ToEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ AsEWKB(BLOB encoded geometry) +/ +/ returns a text string corresponding to Geos/PostGIS EWKB notation +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + gaiaOutBuffer out_buf; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + { + sqlite3_result_null (context); + return; + } + else + { + gaiaOutBufferInitialize (&out_buf); + gaiaToEWKB (&out_buf, geo); + if (out_buf.Error || out_buf.Buffer == NULL) + sqlite3_result_null (context); + else + { + len = out_buf.WriteOffset; + sqlite3_result_text (context, out_buf.Buffer, len, free); + out_buf.Buffer = NULL; + } + } + gaiaFreeGeomColl (geo); + gaiaOutBufferReset (&out_buf); +} + +static void +fnct_ToEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ AsEWKT(BLOB encoded geometry) +/ +/ returns the corresponding PostGIS EWKT encoded value +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + gaiaOutBuffer out_buf; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + gaiaOutBufferInitialize (&out_buf); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + gaiaToEWKT (&out_buf, geo); + if (out_buf.Error || out_buf.Buffer == NULL) + sqlite3_result_null (context); + else + { + len = out_buf.WriteOffset; + sqlite3_result_text (context, out_buf.Buffer, len, free); + out_buf.Buffer = NULL; + } + } + gaiaFreeGeomColl (geo); + gaiaOutBufferReset (&out_buf); +} + +static void +fnct_FromEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromEWKT(EWKT encoded geometry) +/ +/ returns the current geometry by parsing EWKT (PostGIS) encoded string +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *text; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + geo = gaiaParseEWKT (text); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_FromGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromGeoJSON(GeoJSON encoded geometry) +/ +/ returns the current geometry by parsing GeoJSON encoded string +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *text; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + geo = gaiaParseGeoJSON (text); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_FromKml (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromKml(KML encoded geometry) +/ +/ returns the current geometry by parsing KML encoded string +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *text; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + geo = gaiaParseKml (text); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeomFromGml(GML encoded geometry) +/ +/ returns the current geometry by parsing GML encoded string +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *text; + gaiaGeomCollPtr geo = NULL; + void *data = sqlite3_user_data (context); + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + text = sqlite3_value_text (argv[0]); + if (data != NULL) + geo = gaiaParseGml_r (data, text, sqlite); + else + geo = gaiaParseGml (text, sqlite); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); + gaiaFreeGeomColl (geo); + sqlite3_result_blob (context, p_result, len, free); +} + +static void +fnct_LinesFromRings (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ LinesFromRings(BLOBencoded geometry, BOOL multi_linestring) +/ +/ returns a new geometry [LINESTRING or MULTILINESTRING] representing +/ the linearization for current (MULTI)POLYGON geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom_new = NULL; + int len; + int multi_linestring = 0; + unsigned char *p_result = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + { + sqlite3_result_null (context); + return; + } + if (argc == 2) + { + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + multi_linestring = sqlite3_value_int (argv[1]); + } + geom_new = gaiaLinearize (geo, multi_linestring); + if (!geom_new) + goto invalid; + gaiaFreeGeomColl (geo); + gaiaToSpatiaLiteBlobWkb (geom_new, &p_result, &len); + gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); + return; + invalid: + if (geo) + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); +} + +#ifndef OMIT_GEOS /* including GEOS */ + +static void +fnct_BuildArea (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ BuildArea(BLOBencoded geometry) +/ +/ Assuming that Geometry represents a set of sparse Linestrings, +/ this function will attempt to reassemble a single Polygon +/ (or a set of Polygons) +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaPolygonize_r (data, geo, 0); + else + result = gaiaPolygonize (geo, 0); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + + +static void +fnct_Polygonize_step (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ Polygonize(BLOBencoded geom) +/ +/ aggregate function - STEP +/ +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr result; + gaiaGeomCollPtr *p; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geom) + return; + p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); + if (!(*p)) + { + /* this is the first row */ + *p = geom; + } + else + { + /* subsequent rows */ + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaMergeGeometries_r (data, *p, geom); + else + result = gaiaMergeGeometries (*p, geom); + gaiaFreeGeomColl (*p); + *p = result; + gaiaFreeGeomColl (geom); + } +} + +static void +fnct_Polygonize_final (sqlite3_context * context) +{ +/* SQL function: +/ Polygonize(BLOBencoded geom) +/ +/ aggregate function - FINAL +/ +*/ + gaiaGeomCollPtr result; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); + if (!p) + { + sqlite3_result_null (context); + return; + } + result = *p; + if (!result) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + geom = gaiaPolygonize_r (data, result, 0); + else + geom = gaiaPolygonize (result, 0); + if (geom == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + geom->Srid = result->Srid; + gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geom); + } + gaiaFreeGeomColl (result); + } +} + +#endif /* end including GEOS */ + +static void +fnct_DissolveSegments (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ DissolveSegments(BLOBencoded geometry) +/ +/ Dissolves any LINESTRING or RING into elementary segments +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + result = gaiaDissolveSegments (geo); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_DissolvePoints (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ DissolvePoints(BLOBencoded geometry) +/ +/ Dissolves any LINESTRING or RING into elementary Vertices +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + result = gaiaDissolvePoints (geo); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_CollectionExtract (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ CollectionExtract(BLOBencoded geometry, Integer type) +/ +/ Extracts from a GEOMETRYCOLLECTION any item of the required TYPE +/ 1=Point - 2=Linestring - 3=Polygon +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + int type; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + type = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } + if (type == 1 || type == 2 || type == 3) + ; + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + switch (type) + { + case 1: + result = gaiaExtractPointsFromGeomColl (geo); + break; + case 2: + result = gaiaExtractLinestringsFromGeomColl (geo); + break; + case 3: + result = gaiaExtractPolygonsFromGeomColl (geo); + break; + }; + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_LocateBetweenMeasures (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL functions: +/ ST_Locate_Along_Measure(BLOBencoded geometry, Double m_value) +/ ST_Locate_Between_Measures(BLOBencoded geometry, Double m_start, Double m_end) +/ +/ Extracts from a GEOMETRY (supporting M) any Point/Linestring +/ matching the range of measures +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + double m_start; + double m_end; + int intval; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + m_start = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + intval = sqlite3_value_int (argv[1]); + m_start = intval; + } + else + { + sqlite3_result_null (context); + return; + } + if (argc > 2) + { + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + m_end = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + intval = sqlite3_value_int (argv[2]); + m_end = intval; + } + else + { + sqlite3_result_null (context); + return; + } + } + else + m_end = m_start; + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + result = gaiaLocateBetweenMeasures (geo, m_start, m_end); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +#ifndef OMIT_PROJ /* including PROJ.4 */ + +static void +fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Transform(BLOBencoded geometry, srid) +/ +/ returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int srid_from; + int srid_to; + char *proj_from; + char *proj_to; + void *data = sqlite3_user_data (context); + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + srid_to = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + srid_from = geo->Srid; + getProjParams (sqlite, srid_from, &proj_from); + getProjParams (sqlite, srid_to, &proj_to); + if (proj_to == NULL || proj_from == NULL) + { + if (proj_from) + free (proj_from); + if (proj_to) + free (proj_to); + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + if (data != NULL) + result = gaiaTransform_r (data, geo, proj_from, proj_to); + else + result = gaiaTransform (geo, proj_from, proj_to); + free (proj_from); + free (proj_to); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = srid_to; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +#endif /* end including PROJ.4 */ + +#ifndef OMIT_GEOS /* including GEOS */ + +static void +fnct_GEOS_GetLastWarningMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GEOS_GetLastWarningMsg() +/ +/ return the most recent GEOS warning message (if any) +/ return NULL on any other case +*/ + const char *msg; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (data != NULL) + msg = gaiaGetGeosWarningMsg_r (data); + else + msg = gaiaGetGeosWarningMsg (); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); +} + +static void +fnct_GEOS_GetLastErrorMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GEOS_GetLastErrorMsg() +/ +/ return the most recent GEOS error message (if any) +/ return NULL on any other case +*/ + const char *msg; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (data != NULL) + msg = gaiaGetGeosErrorMsg_r (data); + else + msg = gaiaGetGeosErrorMsg (); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); +} + +static void +fnct_GEOS_GetLastAuxErrorMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GEOS_GetLastAuxErrorMsg() +/ +/ return the most recent GEOS error message (if any) +/ return NULL on any other case +*/ + const char *msg; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (data != NULL) + msg = gaiaGetGeosAuxErrorMsg_r (data); + else + msg = gaiaGetGeosAuxErrorMsg (); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); +} + +static void +fnct_GEOS_GetCriticalPointFromMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GEOS_GetCriticalPointFromMsg() +/ +/ return a Point Geometry by (possibly) parsing the most recent GEOS error/warning message +/ return NULL on any other case +*/ + int srid = -1; + gaiaGeomCollPtr geom; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (argc == 1) + { + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + srid = sqlite3_value_int (argv[0]); + } + if (data != NULL) + geom = gaiaCriticalPointFromGEOSmsg_r (data); + else + geom = gaiaCriticalPointFromGEOSmsg (); + if (geom == NULL) + sqlite3_result_null (context); + else + { + unsigned char *blob; + int len; + geom->Srid = srid; + gaiaToSpatiaLiteBlobWkb (geom, &blob, &len); + gaiaFreeGeomColl (geom); + sqlite3_result_blob (context, blob, len, free); + } +} + +static void +fnct_IsValidReason (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidReason(geom) +/ ST_IsValidReason(geom) +/ +/ return a TEXT string stating if a Geometry is valid +/ and if not valid, a reason why +/ return NULL on any other case +*/ + unsigned char *p_blob; + int n_bytes; + int len; + gaiaGeomCollPtr geom; + char *str; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (data != NULL) + str = gaiaIsValidReason_r (data, geom); + else + str = gaiaIsValidReason (geom); + if (str == NULL) + sqlite3_result_null (context); + else + { + len = strlen (str); + sqlite3_result_text (context, str, len, free); + } + if (geom != NULL) + gaiaFreeGeomColl (geom); +} + +static void +fnct_IsValidDetail (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsValidDetail(geom) +/ ST_IsValidDetail(geom) +/ +/ return a Geometry detail causing a Geometry to be invalid +/ return NULL on any other case +*/ + unsigned char *p_blob; + int n_bytes; + int len; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr detail; + unsigned char *p_result = NULL; + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (data != NULL) + detail = gaiaIsValidDetail_r (data, geom); + else + detail = gaiaIsValidDetail (geom); + if (detail == NULL) + sqlite3_result_null (context); + else + { + detail->Srid = geom->Srid; + gaiaToSpatiaLiteBlobWkb (detail, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + if (geom != NULL) + gaiaFreeGeomColl (geom); + if (detail != NULL) + gaiaFreeGeomColl (detail); +} + +static void +fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Boundary(BLOB encoded geometry) +/ +/ returns the combinatorial boundary for current geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr boundary; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + if (gaiaIsEmpty (geo)) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + boundary = gaiaBoundary_r (data, geo); + else + boundary = gaiaBoundary (geo); + if (!boundary) + sqlite3_result_null (context); + else + { + gaiaToSpatiaLiteBlobWkb (boundary, &p_result, &len); + gaiaFreeGeomColl (boundary); + sqlite3_result_blob (context, p_result, len, free); + } + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_IsClosed (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsClosed(BLOB encoded LINESTRING or MULTILINESTRING geometry) +/ +/ returns: +/ 1 if this LINESTRING is closed [or if this is a MULTILINESTRING and every LINESTRINGs are closed] +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_int (context, -1); + else + { + sqlite3_result_int (context, gaiaIsClosedGeom (geo)); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_IsSimple (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsSimple(BLOB encoded GEOMETRY) +/ +/ returns: +/ 1 if this GEOMETRY is simple +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaIsSimple_r (data, geo); + else + ret = gaiaIsSimple (geo); + if (ret < 0) + sqlite3_result_int (context, -1); + else + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_IsRing (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsRing(BLOB encoded LINESTRING geometry) +/ +/ returns: +/ 1 if this LINESTRING is a valid RING +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + gaiaGeomCollPtr geo = NULL; + gaiaLinestringPtr line; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_int (context, -1); + else + { + line = simpleLinestring (geo); + if (!line < 0) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaIsRing_r (data, line); + else + ret = gaiaIsRing (line); + sqlite3_result_int (context, ret); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ IsValid(BLOB encoded GEOMETRY) +/ +/ returns: +/ 1 if this GEOMETRY is a valid one +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaIsValid_r (data, geo); + else + ret = gaiaIsValid (geo); + if (ret < 0) + sqlite3_result_int (context, -1); + else + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo); +} + +static void +length_common (const void *p_cache, sqlite3_context * context, int argc, + sqlite3_value ** argv, int is_perimeter) +{ +/* common implementation supporting both ST_Length and ST_Perimeter */ + unsigned char *p_blob; + int n_bytes; + double length = 0.0; + int ret; + int use_ellipsoid = -1; + double a; + double b; + double rf; + gaiaGeomCollPtr geo = NULL; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (argc == 2) + { + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + use_ellipsoid = sqlite3_value_int (argv[1]); + if (use_ellipsoid != 0) + use_ellipsoid = 1; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + if (use_ellipsoid >= 0) + { + /* attempting to identify the corresponding ellipsoid */ + if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) + { + double l; + int ib; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; + gaiaRingPtr ring; + if (use_ellipsoid) + { + /* measuring on the Ellipsoid */ + if (!is_perimeter) + { + 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; + } + } + if (length >= 0) + { + if (is_perimeter) + { + /* Polygons */ + polyg = geo->FirstPolygon; + 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; + 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; + } + length += l; + } + if (length < 0.0) + break; + polyg = polyg->Next; + } + } + } + } + else + { + /* measuring on the Great Circle */ + if (!is_perimeter) + { + line = geo->FirstLinestring; + while (line) + { + /* Linestrings */ + length += + gaiaGreatCircleTotalLength + (a, b, line->DimensionModel, + line->Coords, line->Points); + line = line->Next; + } + } + if (length >= 0) + { + if (is_perimeter) + { + /* Polygons */ + 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; + } + } + } + } + if (length < 0.0) + { + /* invalid distance */ + sqlite3_result_null (context); + } + else + sqlite3_result_double (context, length); + } + else + sqlite3_result_null (context); + goto stop; + } + else if (p_cache != NULL) + ret = + gaiaGeomCollLengthOrPerimeter_r (p_cache, geo, is_perimeter, + &length); + else + ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length); + if (!ret) + sqlite3_result_null (context); + else + sqlite3_result_double (context, length); + } + stop: + gaiaFreeGeomColl (geo); +} + +static void +fnct_Length (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ST_Length(BLOB encoded GEOMETRYCOLLECTION) +/ ST_Length(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) +/ +/ returns the total length for current geometry +/ or NULL if any error is encountered +/ +/ Please note: starting since 4.0.0 this function will ignore +/ any Polygon (only Linestrings will be considered) +/ +*/ + void *data = sqlite3_user_data (context); + length_common (data, context, argc, argv, 0); +} + +static void +fnct_Perimeter (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION) +/ ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) +/ +/ returns the total perimeter length for current geometry +/ or NULL if any error is encountered +/ +/ Please note: starting since 4.0.0 this function will ignore +/ any Linestring (only Polygons will be considered) +/ +*/ + void *data = sqlite3_user_data (context); + length_common (data, context, argc, argv, 1); +} + +static void +fnct_Area (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Area(BLOB encoded GEOMETRYCOLLECTION) +/ +/ returns the total area for current geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + double area = 0.0; + int ret; + int use_ellipsoid = -1; +#ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ + double a; + double b; + double rf; + sqlite3 *sqlite = sqlite3_context_db_handle (context); +#endif /* end LWGEOM conditional */ + gaiaGeomCollPtr geo = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (argc == 2) + { + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + use_ellipsoid = sqlite3_value_int (argv[1]); + if (use_ellipsoid != 0) + use_ellipsoid = 1; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + if (use_ellipsoid >= 0) + { +#ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ + /* attempting to identify the corresponding ellipsoid */ + if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) + ret = gaiaGeodesicArea (geo, a, b, use_ellipsoid, &area); + else + ret = 0; +#else + ret = 0; +#endif /* end LWGEOM conditional */ + } + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollArea_r (data, geo, &area); + else + ret = gaiaGeomCollArea (geo, &area); + } + if (!ret) + sqlite3_result_null (context); + else + sqlite3_result_double (context, area); + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_Centroid (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Centroid(BLOBencoded POLYGON or MULTIPOLYGON geometry) +/ +/ returns a POINT representing the centroid for current POLYGON / MULTIPOLYGON geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + int ret; + double x; + double y; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + if (gaiaIsEmpty (geo)) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollCentroid_r (data, geo, &x, &y); + else + ret = gaiaGeomCollCentroid (geo, &x, &y); + if (!ret) + sqlite3_result_null (context); + else + { + result = gaiaAllocGeomColl (); + result->Srid = geo->Srid; + gaiaAddPointToGeomColl (result, x, y); + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); + } + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_PointOnSurface (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ PointOnSurface(BLOBencoded POLYGON or MULTIPOLYGON geometry) +/ +/ returns a POINT guaranteed to lie on the Surface +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + double x; + double y; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + int posret; + if (data != NULL) + posret = gaiaGetPointOnSurface_r (data, geo, &x, &y); + else + posret = gaiaGetPointOnSurface (geo, &x, &y); + if (!posret) + sqlite3_result_null (context); + else + { + result = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (result, x, y); + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + gaiaFreeGeomColl (result); + sqlite3_result_blob (context, p_result, len, free); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_Simplify (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Simplify(BLOBencoded geometry, tolerance) +/ +/ returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int int_value; + double tolerance; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + tolerance = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeomCollSimplify_r (data, geo, tolerance); + else + result = gaiaGeomCollSimplify (geo, tolerance); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_SimplifyPreserveTopology (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ SimplifyPreserveTopology(BLOBencoded geometry, tolerance) +/ +/ returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm [preserving topology] +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int int_value; + double tolerance; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + tolerance = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaGeomCollSimplifyPreserveTopology_r (data, geo, tolerance); + else + result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_ConvexHull (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ConvexHull(BLOBencoded geometry) +/ +/ returns a new geometry representing the CONVEX HULL for current geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaConvexHull_r (data, geo); + else + result = gaiaConvexHull (geo); + if (!result) + sqlite3_result_null (context); + else + { + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_Buffer (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Buffer(BLOBencoded geometry, radius) +/ +/ returns a new geometry representing the BUFFER for current geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + double radius; + int int_value; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + radius = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + radius = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeomCollBuffer_r (data, geo, radius, 30); + else + result = gaiaGeomCollBuffer (geo, radius, 30); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); +} + +static void +fnct_Intersection (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Intersection(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns a new geometry representing the INTERSECTION of both geometries +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeometryIntersection_r (data, geo1, geo2); + else + result = gaiaGeometryIntersection (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static int +gaia_union_polygs (gaiaGeomCollPtr geom) +{ +/* testing if this geometry simply contains Polygons */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + pt = geom->FirstPoint; + while (pt) + { + pts++; + pt = pt->Next; + } + ln = geom->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + pg = geom->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pts || lns) + return 0; + if (!pgs) + return 0; + return 1; +} + +static void +fnct_Union_step (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Union(BLOBencoded geom) +/ +/ aggregate function - STEP +/ +*/ + struct gaia_geom_chain *chain; + struct gaia_geom_chain_item *item; + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geom; + struct gaia_geom_chain **p; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geom) + return; + p = sqlite3_aggregate_context (context, sizeof (struct gaia_geom_chain **)); + if (!(*p)) + { + /* this is the first row */ + chain = malloc (sizeof (struct gaia_geom_chain)); + *p = chain; + item = malloc (sizeof (struct gaia_geom_chain_item)); + item->geom = geom; + item->next = NULL; + chain->all_polygs = gaia_union_polygs (geom); + chain->first = item; + chain->last = item; + } + else + { + /* subsequent rows */ + chain = *p; + item = malloc (sizeof (struct gaia_geom_chain_item)); + item->geom = geom; + item->next = NULL; + if (!gaia_union_polygs (geom)) + chain->all_polygs = 0; + chain->last->next = item; + chain->last = item; + } +} + +static void +gaia_free_geom_chain (struct gaia_geom_chain *chain) +{ + struct gaia_geom_chain_item *p = chain->first; + struct gaia_geom_chain_item *pn; + while (p) + { + pn = p->next; + gaiaFreeGeomColl (p->geom); + free (p); + p = pn; + } + free (chain); +} + +static void +fnct_Union_final (sqlite3_context * context) +{ +/* SQL function: +/ Union(BLOBencoded geom) +/ +/ aggregate function - FINAL +/ +*/ + gaiaGeomCollPtr tmp; + struct gaia_geom_chain *chain; + struct gaia_geom_chain_item *item; + gaiaGeomCollPtr aggregate; + gaiaGeomCollPtr result; + void *data = sqlite3_user_data (context); + struct gaia_geom_chain **p = sqlite3_aggregate_context (context, 0); + if (!p) + { + sqlite3_result_null (context); + return; + } + chain = *p; + +/* applying UnaryUnion */ + item = chain->first; + while (item) + { + gaiaGeomCollPtr geom = item->geom; + if (item == chain->first) + { + /* initializing the aggregate geometry */ + aggregate = geom; + item->geom = NULL; + item = item->next; + continue; + } + if (data != NULL) + tmp = gaiaMergeGeometries_r (data, aggregate, geom); + else + tmp = gaiaMergeGeometries (aggregate, geom); + gaiaFreeGeomColl (aggregate); + gaiaFreeGeomColl (geom); + item->geom = NULL; + aggregate = tmp; + item = item->next; + } + if (data != NULL) + result = gaiaUnaryUnion_r (data, aggregate); + else + result = gaiaUnaryUnion (aggregate); + gaiaFreeGeomColl (aggregate); + gaia_free_geom_chain (chain); + + if (result == NULL) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + } + gaiaFreeGeomColl (result); +} + +static void +fnct_Union (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Union(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns a new geometry representing the UNION of both geometries +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeometryUnion_r (data, geo1, geo2); + else + result = gaiaGeometryUnion (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Difference (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Difference(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns a new geometry representing the DIFFERENCE of both geometries +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeometryDifference_r (data, geo1, geo2); + else + result = gaiaGeometryDifference (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_SymDifference (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ SymDifference(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns a new geometry representing the SYMMETRIC DIFFERENCE of both geometries +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaGeometrySymDifference_r (data, geo1, geo2); + else + result = gaiaGeometrySymDifference (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else if (gaiaIsEmpty (result)) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Equals(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries are "spatially equal" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollEquals_r (data, geo1, geo2); + else + ret = gaiaGeomCollEquals (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Intersects(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries do "spatially intersects" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedIntersects (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollIntersects (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Disjoint(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries are "spatially disjoint" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedDisjoint (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollDisjoint (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Overlaps(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries do "spatially overlaps" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedOverlaps (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollOverlaps (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Crosses (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Crosses(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries do "spatially crosses" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedCrosses (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollCrosses (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Touches (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Touches(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if the two geometries do "spatially touches" +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedTouches (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollTouches (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Within(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if GEOM-1 is completely contained within GEOM-2 +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedWithin (data, geo1, + blob1, bytes1, geo2, blob2, + bytes2); + else + ret = gaiaGeomCollWithin (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Contains (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Contains(BLOBencoded geom1, BLOBencoded geom2) +/ +/ returns: +/ 1 if GEOM-1 completely contains GEOM-2 +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedContains (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollContains (geo1, geo2); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Relate(BLOBencoded geom1, BLOBencoded geom2, string pattern) +/ +/ returns: +/ 1 if GEOM-1 and GEOM-2 have a spatial relationship as specified by the patternMatrix +/ 0 otherwise +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + int ret; + const unsigned char *pattern; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + pattern = sqlite3_value_text (argv[2]); + if (!geo1 || !geo2) + sqlite3_result_int (context, -1); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollRelate_r (data, geo1, geo2, (char *) pattern); + else + ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern); + sqlite3_result_int (context, ret); + } + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +static void +fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ Distance(BLOBencoded geom1, BLOBencoded geom2) +/ Distance(BLOBencoded geom1, BLOBencoded geom2, Boolen use_ellipsoid) +/ +/ returns the distance between GEOM-1 and GEOM-2 +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + double dist; + int use_ellipsoid = -1; + double a; + double b; + double rf; + int ret; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + void *data = sqlite3_user_data (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (argc == 3) + { + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + use_ellipsoid = sqlite3_value_int (argv[2]); + if (use_ellipsoid != 0) + use_ellipsoid = 1; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + if (use_ellipsoid >= 0) + { + /* attempting to identify the corresponding ellipsoid */ + if (getEllipsoidParams (sqlite, geo1->Srid, &a, &b, &rf)) + { + gaiaGeomCollPtr shortest; + if (data != NULL) + shortest = gaiaShortestLine_r (data, geo1, geo2); + else + shortest = gaiaShortestLine (geo1, geo2); + if (shortest == NULL) + sqlite3_result_null (context); + else if (shortest->FirstLinestring == NULL) + { + gaiaFreeGeomColl (shortest); + sqlite3_result_null (context); + } + else + { + /* computes the metric distance */ + double x0; + double y0; + double x1; + double y1; + double z; + double m; + gaiaLinestringPtr ln = shortest->FirstLinestring; + dist = -1.0; + if (ln->Points == 2) + { + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, 0, + &x0, &y0, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, 0, + &x0, &y0, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, 0, + &x0, &y0, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, 0, &x0, &y0); + } + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, 1, + &x1, &y1, &z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, 1, + &x1, &y1, &m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, 1, + &x1, &y1, &z, &m); + } + else + { + gaiaGetPoint (ln->Coords, 1, &x1, &y1); + } + if (use_ellipsoid) + dist = + gaiaGeodesicDistance (a, b, + rf, y0, + x0, y1, x1); + else + { + a = 6378137.0; + rf = 298.257223563; + b = (a * (1.0 - (1.0 / rf))); + dist = + gaiaGreatCircleDistance (a, + b, + y0, + x0, + y1, x1); + } + if (dist < 0.0) + { + /* invalid distance */ + sqlite3_result_null (context); + } + else + sqlite3_result_double (context, dist); + } + else + sqlite3_result_null (context); + gaiaFreeGeomColl (shortest); + } + } + else + sqlite3_result_null (context); + goto stop; + } + else + { + if (data != NULL) + ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist); + else + ret = gaiaGeomCollDistance (geo1, geo2, &dist); + if (!ret) + sqlite3_result_null (context); + else + sqlite3_result_double (context, dist); + } + } + stop: + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); } static void -fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeomFromGml(GML encoded geometry) +/ PtDistWithin(BLOBencoded geom1, BLOBencoded geom2, double dist +/ [, boolen use_spheroid]) / -/ returns the current geometry by parsing GML encoded string -/ or NULL if any error is encountered +/ returns TRUE if the distance between GEOM-1 and GEOM-2 +/ is less or equal to dist +/ +/ - if both geom1 and geom2 are in the 4326 (WGS84) SRID, +/ (and does actually contains a single POINT each one) +/ dist is assumed to be measured in Meters +/ - in this case the optional arg use_spheroid is +/ checked to determine if geodesic distance has to be +/ computed on the sphere (quickest) or on the spheroid +/ default: use_spheroid = FALSE +/ +/ in any other case the "plain" distance is evaluated */ - int len; - unsigned char *p_result = NULL; - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; - sqlite3 *sqlite = sqlite3_context_db_handle (context); + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo1 = NULL; + gaiaGeomCollPtr geo2 = NULL; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + double ref_dist; + int use_spheroid = 0; + double x0; + double y0; + double x1; + double y1; + int pt0 = 0; + int ln0 = 0; + int pg0 = 0; + int pt1 = 0; + int ln1 = 0; + int pg1 = 0; + double dist; + double a; + double b; + double rf; + int ret; + void *data = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER + || sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + ; + else + { + sqlite3_result_null (context); + return; + } + if (argc == 4) + { + /* optional use_spheroid arg */ + if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int dst = sqlite3_value_int (argv[2]); + ref_dist = dst; + } + else + ref_dist = sqlite3_value_double (argv[2]); + if (argc == 4) + use_spheroid = sqlite3_value_int (argv[3]); + if (!geo1 || !geo2) + sqlite3_result_null (context); + else + { + if (geo1->Srid == 4326 && geo2->Srid == 4326) + { + /* checking for single points */ + pt = geo1->FirstPoint; + while (pt) + { + x0 = pt->X; + y0 = pt->Y; + pt0++; + pt = pt->Next; + } + ln = geo1->FirstLinestring; + while (ln) + { + ln0++; + ln = ln->Next; + } + pg = geo1->FirstPolygon; + while (pg) + { + pg0++; + pg = pg->Next; + } + pt = geo2->FirstPoint; + while (pt) + { + x1 = pt->X; + y1 = pt->Y; + pt1++; + pt = pt->Next; + } + ln = geo2->FirstLinestring; + while (ln) + { + ln1++; + ln = ln->Next; + } + pg = geo2->FirstPolygon; + while (pg) + { + pg1++; + pg = pg->Next; + } + if (pt0 == 1 && pt1 == 1 && ln0 == 0 && ln1 == 0 && pg0 == 0 + && pg1 == 0) + { + /* using geodesic distance */ + a = 6378137.0; + rf = 298.257223563; + b = (a * (1.0 - (1.0 / rf))); + if (use_spheroid) + { + dist = + gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); + if (dist <= ref_dist) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } + else + { + dist = + gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); + if (dist <= ref_dist) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } + goto stop; + } + } +/* defaulting to flat distance */ + if (data != NULL) + ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist); + else + ret = gaiaGeomCollDistance (geo1, geo2, &dist); + if (!ret) + sqlite3_result_null (context); + if (dist <= ref_dist) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + } + stop: + gaiaFreeGeomColl (geo1); + gaiaFreeGeomColl (geo2); +} + +SPATIALITE_PRIVATE void +geos_error (const char *fmt, ...) +{ +/* reporting some GEOS error */ + va_list ap; + char *msg; + va_start (ap, fmt); + msg = sqlite3_vmprintf (fmt, ap); + va_end (ap); + if (msg) { - sqlite3_result_null (context); - return; + spatialite_e ("GEOS error: %s\n", msg); + gaiaSetGeosErrorMsg (msg); + sqlite3_free (msg); } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseGml (text, sqlite); - if (geo == NULL) + else + gaiaSetGeosErrorMsg (NULL); +} + +SPATIALITE_PRIVATE void +geos_warning (const char *fmt, ...) +{ +/* reporting some GEOS warning */ + va_list ap; + char *msg; + va_start (ap, fmt); + msg = sqlite3_vmprintf (fmt, ap); + va_end (ap); + if (msg) { - sqlite3_result_null (context); - return; + spatialite_e ("GEOS warning: %s\n", msg); + gaiaSetGeosWarningMsg (msg); + sqlite3_free (msg); } - gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); - gaiaFreeGeomColl (geo); - sqlite3_result_blob (context, p_result, len, free); + else + gaiaSetGeosWarningMsg (NULL); } static void -fnct_LinesFromRings (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_aux_polygonize (sqlite3_context * context, gaiaGeomCollPtr geom_org, + int force_multipolygon, int allow_multipolygon) { -/* SQL function: -/ LinesFromRings(BLOBencoded geometry, BOOL multi_linestring) -/ -/ returns a new geometry [LINESTRING or MULTILINESTRING] representing -/ the linearization for current (MULTI)POLYGON geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; +/* a common function performing any kind of polygonization op */ gaiaGeomCollPtr geom_new = NULL; int len; - int multi_linestring = 0; unsigned char *p_result = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + gaiaPolygonPtr pg; + int pgs = 0; + void *data = sqlite3_user_data (context); + if (!geom_org) + goto invalid; + if (data != NULL) + geom_new = gaiaPolygonize_r (data, geom_org, force_multipolygon); + else + geom_new = gaiaPolygonize (geom_org, force_multipolygon); + if (!geom_new) + goto invalid; + gaiaFreeGeomColl (geom_org); + pg = geom_new->FirstPolygon; + while (pg) { - sqlite3_result_null (context); - return; + pgs++; + pg = pg->Next; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) + if (pgs > 1 && allow_multipolygon == 0) { + /* invalid: a POLYGON is expected !!! */ + gaiaFreeGeomColl (geom_new); sqlite3_result_null (context); return; } - if (argc == 2) - { - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - multi_linestring = sqlite3_value_int (argv[1]); - } - geom_new = gaiaLinearize (geo, multi_linestring); - if (!geom_new) - goto invalid; - gaiaFreeGeomColl (geo); gaiaToSpatiaLiteBlobWkb (geom_new, &p_result, &len); gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); return; invalid: - if (geo) - gaiaFreeGeomColl (geo); + if (geom_org) + gaiaFreeGeomColl (geom_org); sqlite3_result_null (context); } -#ifndef OMIT_GEOS /* including GEOS */ - -static void -fnct_BuildArea (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ BuildArea(BLOBencoded geometry) -/ -/ Assuming that Geometry represents a set of sparse Linestrings, -/ this function will attempt to reassemble a single Polygon -/ (or a set of Polygons) -/ NULL is returned for invalid arguments +/* +/ the following functions performs initial argument checking, +/ and then readdressing the request to fnct_aux_polygonize() +/ for actual processing */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else - { - result = gaiaPolygonize (geo, 0); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); -} - static void -fnct_Polygonize_step (sqlite3_context * context, int argc, +fnct_BdPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Polygonize(BLOBencoded geom) -/ -/ aggregate function - STEP -/ -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom; - gaiaGeomCollPtr result; - gaiaGeomCollPtr *p; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geom) - return; - p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); - if (!(*p)) - { - /* this is the first row */ - *p = geom; - } - else - { - /* subsequent rows */ - result = gaiaMergeGeometries (*p, geom); - gaiaFreeGeomColl (*p); - *p = result; - gaiaFreeGeomColl (geom); - } -} - -static void -fnct_Polygonize_final (sqlite3_context * context) -{ -/* SQL function: -/ Polygonize(BLOBencoded geom) -/ -/ aggregate function - FINAL +/ BdPolyFromText(WKT encoded MULTILINESTRING) / -*/ - gaiaGeomCollPtr result; - gaiaGeomCollPtr geom; - gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); - if (!p) - { - sqlite3_result_null (context); - return; - } - result = *p; - if (!result) - sqlite3_result_null (context); - else - { - geom = gaiaPolygonize (result, 0); - if (geom == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - geom->Srid = result->Srid; - gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (geom); - } - gaiaFreeGeomColl (result); - } -} - -#endif /* end including GEOS */ - -static void -fnct_DissolveSegments (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ DissolveSegments(BLOBencoded geometry) +/ returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ Dissolves any LINESTRING or RING into elementary segments -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else - { - result = gaiaDissolveSegments (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); -} - -static void -fnct_DissolvePoints (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ DissolvePoints(BLOBencoded geometry) -/ -/ Dissolves any LINESTRING or RING into elementary Vertices -/ NULL is returned for invalid arguments -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, -1); + if (geo == NULL) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + if (geo->DeclaredType != GAIA_MULTILINESTRING) { - result = gaiaDissolvePoints (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + geo->Srid = 0; + fnct_aux_polygonize (context, geo, 0, 0); + return; } static void -fnct_CollectionExtract (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_BdPolyFromText2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ CollectionExtract(BLOBencoded geometry, Integer type) +/ BdPolyFromText(WKT encoded MULTILINESTRING, SRID) +/ +/ returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ Extracts from a GEOMETRYCOLLECTION any item of the required TYPE -/ 1=Point - 2=Linestring - 3=Polygon -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - int type; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - type = sqlite3_value_int (argv[1]); - else + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } - if (type == 1 || type == 2 || type == 3) - ; - else + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, -1); + if (geo == NULL) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + if (geo->DeclaredType != GAIA_MULTILINESTRING) { - switch (type) - { - case 1: - result = gaiaExtractPointsFromGeomColl (geo); - break; - case 2: - result = gaiaExtractLinestringsFromGeomColl (geo); - break; - case 3: - result = gaiaExtractPolygonsFromGeomColl (geo); - break; - }; - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + geo->Srid = sqlite3_value_int (argv[1]); + fnct_aux_polygonize (context, geo, 0, 0); + return; } static void -fnct_LocateBetweenMeasures (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_BdMPolyFromText1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* SQL functions: -/ ST_Locate_Along_Measure(BLOBencoded geometry, Double m_value) -/ ST_Locate_Between_Measures(BLOBencoded geometry, Double m_start, Double m_end) +/* SQL function: +/ BdMPolyFromText(WKT encoded MULTILINESTRING) +/ +/ returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ Extracts from a GEOMETRY (supporting M) any Point/Linestring -/ matching the range of measures -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - double m_start; - double m_end; - int intval; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - m_start = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - intval = sqlite3_value_int (argv[1]); - m_start = intval; - } - else + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, -1); + if (geo == NULL) { sqlite3_result_null (context); return; } - if (argc > 2) - { - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - m_end = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - intval = sqlite3_value_int (argv[2]); - m_end = intval; - } - else - { - sqlite3_result_null (context); - return; - } - } - else - m_end = m_start; - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + if (geo->DeclaredType != GAIA_MULTILINESTRING) { - result = gaiaLocateBetweenMeasures (geo, m_start, m_end); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + geo->Srid = 0; + fnct_aux_polygonize (context, geo, 1, 1); + return; } -#ifndef OMIT_PROJ /* including PROJ.4 */ - static void -fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BdMPolyFromText2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Transform(BLOBencoded geometry, srid) +/ BdMPolyFromText(WKT encoded MULTILINESTRING, SRID) / -/ returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] +/ returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered +/ */ - unsigned char *p_blob; - int n_bytes; + const unsigned char *text; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - int srid_from; - int srid_to; - char *proj_from; - char *proj_to; - sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - srid_to = sqlite3_value_int (argv[1]); - else + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + text = sqlite3_value_text (argv[0]); + geo = gaiaParseWkt (text, -1); + if (geo == NULL) { - srid_from = geo->Srid; - getProjParams (sqlite, srid_from, &proj_from); - getProjParams (sqlite, srid_to, &proj_to); - if (proj_to == NULL || proj_from == NULL) - { - if (proj_from) - free (proj_from); - if (proj_to) - free (proj_to); - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; - } - result = gaiaTransform (geo, proj_from, proj_to); - free (proj_from); - free (proj_to); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = srid_to; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geo->DeclaredType != GAIA_MULTILINESTRING) + { + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + geo->Srid = sqlite3_value_int (argv[1]); + fnct_aux_polygonize (context, geo, 1, 1); + return; } -#endif /* end including PROJ.4 */ - -#ifndef OMIT_GEOS /* including GEOS */ - static void -fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BdPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Boundary(BLOB encoded geometry) +/ BdPolyFromWKB(WKB encoded MULTILINESTRING) / -/ returns the combinatorial boundary for current geometry +/ returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered +/ */ - unsigned char *p_blob; int n_bytes; - int len; - unsigned char *p_result = NULL; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr boundary; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (!check_wkb (wkb, n_bytes, -1)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - if (gaiaIsEmpty (geo)) - sqlite3_result_null (context); - else - { - boundary = gaiaBoundary (geo); - if (!boundary) - sqlite3_result_null (context); - else - { - gaiaToSpatiaLiteBlobWkb (boundary, &p_result, &len); - gaiaFreeGeomColl (boundary); - sqlite3_result_blob (context, p_result, len, free); - } - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geo->DeclaredType != GAIA_MULTILINESTRING) + { + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + geo->Srid = 0; + fnct_aux_polygonize (context, geo, 0, 0); + return; } static void -fnct_IsClosed (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BdPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ IsClosed(BLOB encoded LINESTRING or MULTILINESTRING geometry) +/ BdPolyFromWKB(WKB encoded MULTILINESTRING) +/ +/ returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ returns: -/ 1 if this LINESTRING is closed [or if this is a MULTILINESTRING and every LINESTRINGs are closed] -/ 0 otherwise -/ or -1 if any error is encountered */ - unsigned char *p_blob; int n_bytes; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_int (context, -1); - else + if (!check_wkb (wkb, n_bytes, -1)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - sqlite3_result_int (context, gaiaIsClosedGeom (geo)); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geo->DeclaredType != GAIA_MULTILINESTRING) + { + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + geo->Srid = sqlite3_value_int (argv[1]); + fnct_aux_polygonize (context, geo, 0, 0); + return; } static void -fnct_IsSimple (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BdMPolyFromWKB1 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ IsSimple(BLOB encoded GEOMETRY) +/ BdMPolyFromWKB(WKB encoded MULTILINESTRING) +/ +/ returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ returns: -/ 1 if this GEOMETRY is simple -/ 0 otherwise -/ or -1 if any error is encountered */ - unsigned char *p_blob; int n_bytes; - int ret; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_int (context, -1); - else + if (!check_wkb (wkb, n_bytes, -1)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - ret = gaiaIsSimple (geo); - if (ret < 0) - sqlite3_result_int (context, -1); - else - sqlite3_result_int (context, ret); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geo->DeclaredType != GAIA_MULTILINESTRING) + { + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + geo->Srid = 0; + fnct_aux_polygonize (context, geo, 1, 1); + return; } static void -fnct_IsRing (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BdMPolyFromWKB2 (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ IsRing(BLOB encoded LINESTRING geometry) +/ BdMPolyFromWKB(WKB encoded MULTILINESTRING) +/ +/ returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING +/ or NULL if any error is encountered / -/ returns: -/ 1 if this LINESTRING is a valid RING -/ 0 otherwise -/ or -1 if any error is encountered */ - unsigned char *p_blob; int n_bytes; - int ret; + const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; - gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_int (context, -1); - else + if (!check_wkb (wkb, n_bytes, -1)) + return; + geo = gaiaFromWkb (wkb, n_bytes); + if (geo == NULL) { - line = simpleLinestring (geo); - if (!line < 0) - sqlite3_result_int (context, -1); - else - { - ret = gaiaIsRing (line); - sqlite3_result_int (context, ret); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geo->DeclaredType != GAIA_MULTILINESTRING) + { + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); + return; + } + geo->Srid = sqlite3_value_int (argv[1]); + fnct_aux_polygonize (context, geo, 1, 1); + return; } -static void -fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +check_topo_table (sqlite3 * sqlite, const char *table, int is_view) { -/* SQL function: -/ IsValid(BLOB encoded GEOMETRY) -/ -/ returns: -/ 1 if this GEOMETRY is a valid one -/ 0 otherwise -/ or -1 if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; +/* checking if some Topology-related table/view already exists */ + int exists = 0; + char *sql_statement; + char *errMsg = NULL; int ret; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + char **results; + int rows; + int columns; + int i; + sql_statement = + sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" + "AND Upper(name) = Upper(%Q)", + (!is_view) ? "table" : "view", table); + ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, + &errMsg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + sqlite3_free (errMsg); + return 0; + } + for (i = 1; i <= rows; i++) + exists = 1; + sqlite3_free_table (results); + return exists; +} + +static int +create_topo_nodes (sqlite3 * sqlite, const char *table, int srid, int dims) +{ +/* creating the topo_nodes table */ + char *sql_statement; + char *sqltable; + char *idx_name; + char *xidx_name; + int ret; + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "node_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "node_code TEXT)", sqltable); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; + } + sql_statement = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'POINT', '%s', 1)", + table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", + table, err_msg); + sqlite3_free (err_msg); + return 0; + } + sql_statement = + sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_int (context, -1); - return; + spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", + table, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_int (context, -1); - else + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_code", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - ret = gaiaIsValid (geo); - if (ret < 0) - sqlite3_result_int (context, -1); - else - sqlite3_result_int (context, ret); + spatialite_e ("Create Index '%s'('node_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -length_common (sqlite3_context * context, int argc, sqlite3_value ** argv, - int is_perimeter) +static int +create_topo_edges (sqlite3 * sqlite, const char *table, int srid, int dims) { -/* common implementation supporting both ST_Length and ST_Perimeter */ - unsigned char *p_blob; - int n_bytes; - double length = 0.0; +/* creating the topo_edges table */ + char *sql_statement; + char *sqltable; + char *idx_name; + char *xidx_name; int ret; - int use_ellipsoid = -1; - double a; - double b; - double rf; - gaiaGeomCollPtr geo = NULL; - sqlite3 *sqlite = sqlite3_context_db_handle (context); - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "edge_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "node_from_code TEXT,\n" + "node_to_code TEXT,\n" + "edge_code TEXT)", sqltable); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; } - if (argc == 2) + sql_statement = + sqlite3_mprintf + ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'LINESTRING', '%s', 1)", + table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - use_ellipsoid = sqlite3_value_int (argv[1]); - if (use_ellipsoid != 0) - use_ellipsoid = 1; + spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", + table, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + sql_statement = + sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - if (use_ellipsoid >= 0) - { - /* attempting to identify the corresponding ellipsoid */ - if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) - { - double l; - int ib; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; - gaiaRingPtr ring; - if (use_ellipsoid) - { - /* measuring on the Ellipsoid */ - if (!is_perimeter) - { - 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; - } - } - if (length >= 0) - { - if (is_perimeter) - { - /* Polygons */ - polyg = geo->FirstPolygon; - 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; - 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; - } - length += l; - } - if (length < 0.0) - break; - polyg = polyg->Next; - } - } - } - } - else - { - /* measuring on the Great Circle */ - if (!is_perimeter) - { - line = geo->FirstLinestring; - while (line) - { - /* Linestrings */ - length += - gaiaGreatCircleTotalLength (a, b, - line->DimensionModel, - line-> - Coords, - line-> - Points); - line = line->Next; - } - } - if (length >= 0) - { - if (is_perimeter) - { - /* Polygons */ - 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; - } - } - } - } - if (length < 0.0) - { - /* invalid distance */ - sqlite3_result_null (context); - } - else - sqlite3_result_double (context, length); - } - else - sqlite3_result_null (context); - goto stop; - } - ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length); - if (!ret) - sqlite3_result_null (context); - else - sqlite3_result_double (context, length); + spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", + table, err_msg); + sqlite3_free (err_msg); + return 0; + } + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_code", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index '%s'('edge_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - stop: - gaiaFreeGeomColl (geo); -} - -static void -fnct_Length (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ ST_Length(BLOB encoded GEOMETRYCOLLECTION) -/ ST_Length(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) -/ -/ returns the total length for current geometry -/ or NULL if any error is encountered -/ -/ Please note: starting since 4.0.0 this function will ignore -/ any Polygon (only Linestrings will be considered) -/ -*/ - length_common (context, argc, argv, 0); -} - -static void -fnct_Perimeter (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION) -/ ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) -/ -/ returns the total perimeter length for current geometry -/ or NULL if any error is encountered -/ -/ Please note: starting since 4.0.0 this function will ignore -/ any Linestring (only Polygons will be considered) -/ -*/ - length_common (context, argc, argv, 1); -} - -static void -fnct_Area (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ Area(BLOB encoded GEOMETRYCOLLECTION) -/ -/ returns the total area for current geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - double area = 0.0; - int ret; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_from", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_from_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("Create Index '%s'('node_from_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_to", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_to_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - ret = gaiaGeomCollArea (geo, &area); - if (!ret) - sqlite3_result_null (context); - else - sqlite3_result_double (context, area); + spatialite_e ("Create Index '%s'('node_to_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_Centroid (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_topo_faces (sqlite3 * sqlite, const char *table) { -/* SQL function: -/ Centroid(BLOBencoded POLYGON or MULTIPOLYGON geometry) -/ -/ returns a POINT representing the centroid for current POLYGON / MULTIPOLYGON geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; +/* creating the topo_faces table */ + char *sql_statement; + char *sqltable; + char *idx_name; + char *xidx_name; int ret; - double x; - double y; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "face_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + "face_code TEXT)", sqltable); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_code", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - if (gaiaIsEmpty (geo)) - sqlite3_result_null (context); - else - { - ret = gaiaGeomCollCentroid (geo, &x, &y); - if (!ret) - sqlite3_result_null (context); - else - { - result = gaiaAllocGeomColl (); - result->Srid = geo->Srid; - gaiaAddPointToGeomColl (result, x, y); - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); - } - } + spatialite_e ("Create Index '%s'('face_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_PointOnSurface (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_topo_faces_edges (sqlite3 * sqlite, const char *table, + const char *table2) { -/* SQL function: -/ PointOnSurface(BLOBencoded POLYGON or MULTIPOLYGON geometry) -/ -/ returns a POINT guaranteed to lie on the Surface -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; - double x; - double y; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* creating the topo_faces_edges table */ + char *sql_statement; + char *sqltable; + char *sqltable2; + char *idx_name; + char *xidx_name; + int ret; + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sqltable2 = gaiaDoubleQuotedSql (table2); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "face_id INTEGER NOT NULL,\n" + "edge_code TEXT NOT NULL,\n" + "orientation TEXT,\n" + "CONSTRAINT pk_faces_edges PRIMARY KEY " + "(face_id, edge_code),\n" + "CONSTRAINT fk_faces_edges FOREIGN KEY " + "(face_id) REFERENCES \"%s\" (face_id))\n", + sqltable, sqltable2); + free (sqltable); + free (sqltable2); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - if (!gaiaGetPointOnSurface (geo, &x, &y)) - sqlite3_result_null (context); - else - { - result = gaiaAllocGeomColl (); - gaiaAddPointToGeomColl (result, x, y); - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - gaiaFreeGeomColl (result); - sqlite3_result_blob (context, p_result, len, free); - } + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_edge", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("Create Index '%s'('edge_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_Simplify (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_topo_curves (sqlite3 * sqlite, const char *table) { -/* SQL function: -/ Simplify(BLOBencoded geometry, tolerance) -/ -/ returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - int int_value; - double tolerance; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* creating the topo_curves table */ + char *sql_statement; + char *sqltable; + char *idx_name; + char *xidx_name; + int ret; + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "curve_id INTEGER NOT NULL,\n" + "edge_code TEXT NOT NULL,\n" + "orientation TEXT,\n" + "CONSTRAINT pk_curves PRIMARY KEY " + "(curve_id, edge_code))\n", sqltable); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_edge", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - int_value = sqlite3_value_int (argv[1]); - tolerance = int_value; + spatialite_e ("Create Index '%s'('edge_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - else + return 1; +} + +static int +create_topo_surfaces (sqlite3 * sqlite, const char *table) +{ +/* creating the topo_surfaces table */ + char *sql_statement; + char *sqltable; + char *idx_name; + char *xidx_name; + int ret; + char *err_msg = NULL; + sqltable = gaiaDoubleQuotedSql (table); + sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" + "surface_id INTEGER NOT NULL,\n" + "face_code TEXT NOT NULL,\n" + "orientation TEXT,\n" + "CONSTRAINT pk_surfaces PRIMARY KEY " + "(surface_id, face_code))", sqltable); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + sqltable = gaiaDoubleQuotedSql (table); + idx_name = sqlite3_mprintf ("idx_%s_face", table); + xidx_name = gaiaDoubleQuotedSql (idx_name); + sqlite3_free (idx_name); + sql_statement = + sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", + xidx_name, sqltable); + free (sqltable); + free (xidx_name); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - result = gaiaGeomCollSimplify (geo, tolerance); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + spatialite_e ("Create Index '%s'('face_code') error: %s\n", + sqltable, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_SimplifyPreserveTopology (sqlite3_context * context, int argc, - sqlite3_value ** argv) +static int +create_check_node_codes (sqlite3 * sqlite, const char *view, + const char *table_nodes) { -/* SQL function: -/ SimplifyPreserveTopology(BLOBencoded geometry, tolerance) -/ -/ returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm [preserving topology] -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - int int_value; - double tolerance; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) +/* creating the check node codes VIEW */ + char *sql_statement; + char *sqltable; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sqltable = gaiaDoubleQuotedSql (table_nodes); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT node_code AS node_code, Count(node_id) AS count\n" + "FROM \"%s\"\nGROUP BY node_code\nHAVING count > 1\n", + sqlview, sqltable); + free (sqlview); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - int_value = sqlite3_value_int (argv[1]); - tolerance = int_value; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - else + return 1; +} + +static int +create_check_node_geoms (sqlite3 * sqlite, const char *view, + const char *table_nodes) +{ +/* creating the check node geoms VIEW */ + char *sql_statement; + char *sqltable; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sqltable = gaiaDoubleQuotedSql (table_nodes); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT n1.node_id AS node1_id, n1.node_code AS node1_code, " + "n2.node_id AS node2_id, n2.node_code AS node2_code\n" + "FROM \"%s\" AS n1\nJOIN \"%s\" AS n2 ON (\n" + " n1.node_id <> n2.node_id AND\n" + " ST_Equals(n1.Geometry, n2.Geometry) = 1 AND\n" + " n2.node_id IN (\n SELECT ROWID FROM SpatialIndex\n" + " WHERE f_table_name = %Q AND\n search_frame = n1.Geometry))\n", + sqlview, sqltable, sqltable, table_nodes); + free (sqlview); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + return 1; +} + +static int +create_check_edge_codes (sqlite3 * sqlite, const char *view, + const char *table_edges) +{ +/* creating the check edge codes VIEW */ + char *sql_statement; + char *sqltable; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sqltable = gaiaDoubleQuotedSql (table_edges); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT edge_code AS edge_code, Count(edge_id) AS count\n" + "FROM \"%s\"\nGROUP BY edge_code\nHAVING count > 1\n", + sqlview, sqltable); + free (sqlview); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) + { + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_ConvexHull (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_check_edge_geoms (sqlite3 * sqlite, const char *view, + const char *table_edges) { -/* SQL function: -/ ConvexHull(BLOBencoded geometry) -/ -/ returns a new geometry representing the CONVEX HULL for current geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* creating the check edge geoms VIEW */ + char *sql_statement; + char *sqltable; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sqltable = gaiaDoubleQuotedSql (table_edges); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT e1.edge_id AS edge1_id, e1.edge_code AS edge1_code, " + "e2.edge_id AS edge2_id, e2.edge_code AS edge2_code\n" + "FROM \"%s\" AS e1\nJOIN \"%s\" AS e2 ON (\n e1.edge_id <> e2.edge_id AND\n" + "NOT (e1.node_from_code = e2.node_from_code " + "AND e1.node_to_code = e2.node_to_code) AND\n" + " ST_Crosses(e1.Geometry, e2.Geometry) = 1 AND\n" + " e2.edge_id IN (\n" + " SELECT ROWID FROM SpatialIndex\n" + " WHERE f_table_name = %Q AND\n search_frame = e1.Geometry))\n", + sqlview, sqltable, sqltable, table_edges); + free (sqlview); + free (sqltable); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + return 1; +} + +static int +create_check_edge_node_geoms (sqlite3 * sqlite, const char *view, + const char *table_edges, const char *table_nodes) +{ +/* creating the check edge/node geoms VIEW */ + char *sql_statement; + char *sql_edges; + char *sql_nodes; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_edges = gaiaDoubleQuotedSql (table_edges); + sql_nodes = gaiaDoubleQuotedSql (table_nodes); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT e.edge_id AS edge_id, n.node_id AS node_id\n" + "FROM \"%s\" AS e,\n\"%s\" AS n\n" + "WHERE ST_Intersects(e.Geometry, n.Geometry)\n" + " AND ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n" + " AND ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n" + " AND n.ROWID IN (\n SELECT ROWID FROM SpatialIndex\n" + " WHERE f_table_name = %Q\n AND search_frame = e.Geometry);", + sqlview, sql_edges, sql_nodes, + table_nodes); + free (sqlview); + free (sql_nodes); + free (sql_edges); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - result = gaiaConvexHull (geo); - if (!result) - sqlite3_result_null (context); - else - { - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_Buffer (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_check_face_codes (sqlite3 * sqlite, const char *view, + const char *table_faces) { -/* SQL function: -/ Buffer(BLOBencoded geometry, radius) -/ -/ returns a new geometry representing the BUFFER for current geometry -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - double radius; - int int_value; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* creating the check face codes VIEW */ + char *sql_statement; + char *sqltable; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sqltable = gaiaDoubleQuotedSql (table_faces); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT face_code AS face_code, Count(face_id) AS count\n" + "FROM \"%s\"\nGROUP BY face_code\nHAVING count > 1\n", + sqlview, sqltable); + free (sqltable); + free (sqlview); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - radius = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + return 1; +} + +static int +create_faces_resolved (sqlite3 * sqlite, const char *view, const char *faces, + const char *faces_edges, const char *edges) +{ +/* creating the Faces Resolved VIEW */ + char *sql_statement; + char *sql_faces; + char *sql_faces_edges; + char *sql_edges; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_faces = gaiaDoubleQuotedSql (faces); + sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); + sql_edges = gaiaDoubleQuotedSql (edges); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT f.face_id AS face_id, f.face_code AS face_code, " + "ST_Polygonize(e.Geometry) AS Geometry\n" + "FROM \"%s\" AS f\nLEFT JOIN \"%s\" AS fe ON (fe.face_id = f.face_id)\n" + "LEFT JOIN \"%s\" AS e ON (e.edge_code = fe.edge_code)\n" + "GROUP BY f.face_id\n", sqlview, + sql_faces, sql_faces_edges, sql_edges); + free (sqlview); + free (sql_faces); + free (sql_faces_edges); + free (sql_edges); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - int_value = sqlite3_value_int (argv[1]); - radius = int_value; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - else + return 1; +} + +static int +create_curves_resolved (sqlite3 * sqlite, const char *view, + const char *curves, char *edges) +{ +/* creating the Curves Resolved VIEW */ + char *sql_statement; + char *sql_curves; + char *sql_edges; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_curves = gaiaDoubleQuotedSql (curves); + sql_edges = gaiaDoubleQuotedSql (edges); + sql_statement = + sqlite3_mprintf + ("CREATE VIEW \"%s\" AS\nSELECT c.curve_id AS curve_id, " + "CastToMultiLinestring(ST_Collect(e.Geometry)) AS Geometry\n" + "FROM \"%s\" AS c\nLEFT JOIN \"%s\" AS e ON (e.edge_code = c.edge_code)\n" + "GROUP BY c.curve_id\n", sqlview, sql_curves, sql_edges); + free (sqlview); + free (sql_edges); + free (sql_curves); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - sqlite3_result_null (context); - return; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + return 1; +} + +static int +create_surfaces_resolved (sqlite3 * sqlite, const char *view, + const char *surfaces, const char *faces) +{ +/* creating the Surfaces Resolved VIEW */ + char *sql_statement; + char *sql_surfaces; + char *sql_faces; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_surfaces = gaiaDoubleQuotedSql (surfaces); + sql_faces = gaiaDoubleQuotedSql (faces); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT s.surface_id AS surface_id,\n" + " CastToMultipolygon(ST_UnaryUnion(ST_Collect(f.Geometry))) AS Geometry\n" + "FROM \"%s\" AS s\n" + "LEFT JOIN \"%s\" AS f ON (f.face_code = s.face_code)\n" + "GROUP BY s.surface_id\n", sqlview, + sql_surfaces, sql_faces); + free (sqlview); + free (sql_surfaces); + free (sql_faces); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - result = gaiaGeomCollBuffer (geo, radius, 30); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo); + return 1; } -static void -fnct_Intersection (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +create_dangling_nodes (sqlite3 * sqlite, const char *view, + const char *nodes, const char *edges) { -/* SQL function: -/ Intersection(BLOBencoded geom1, BLOBencoded geom2) -/ -/ returns a new geometry representing the INTERSECTION of both geometries -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else +/* creating the Dangling Nodes VIEW */ + char *sql_statement; + char *sql_nodes; + char *sql_edges; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_nodes = gaiaDoubleQuotedSql (nodes); + sql_edges = gaiaDoubleQuotedSql (edges); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT n.node_id AS node_id\nFROM \"%s\" AS n\n" + "LEFT JOIN \"%s\" AS e ON (n.node_code = e.node_from_code)\n" + "WHERE e.edge_id IS NULL\nINTERSECT\nSELECT n.node_id AS node_id\n" + "FROM \"%s\" AS n\nLEFT JOIN \"%s\" AS e ON (n.node_code = e.node_to_code)\n" + "WHERE e.edge_id IS NULL\n", sqlview, + sql_nodes, sql_edges, sql_nodes, + sql_edges); + free (sqlview); + free (sql_nodes); + free (sql_edges); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - result = gaiaGeometryIntersection (geo1, geo2); - if (!result) - sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) - { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); - } - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + return 1; } static int -gaia_union_polygs (gaiaGeomCollPtr geom) +create_dangling_edges (sqlite3 * sqlite, const char *view, + const char *edges, const char *faces_edges, + const char *curves) { -/* testing if this geometry simply contains Polygons */ - int pts = 0; - int lns = 0; - int pgs = 0; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - pt = geom->FirstPoint; - while (pt) +/* creating the Dangling Edges VIEW */ + char *sql_statement; + char *sql_edges; + char *sql_faces_edges; + char *sql_curves; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_edges = gaiaDoubleQuotedSql (edges); + sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); + sql_curves = gaiaDoubleQuotedSql (curves); + sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" + "SELECT e.edge_id AS edge_id\nFROM \"%s\" AS e\n" + "LEFT JOIN \"%s\" AS f ON (e.edge_code = f.edge_code)\n" + "WHERE f.edge_code IS NULL\nINTERSECT\nSELECT e.edge_id AS edge_id\n" + "FROM \"%s\" AS e\nLEFT JOIN \"%s\" AS c ON (e.edge_code = c.edge_code)\n" + "WHERE c.edge_code IS NULL\n", sqlview, + sql_edges, sql_faces_edges, sql_edges, + sql_curves); + free (sqlview); + free (sql_edges); + free (sql_faces_edges); + free (sql_curves); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - pts++; - pt = pt->Next; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - ln = geom->FirstLinestring; - while (ln) + return 1; +} + +static int +create_check_edges_from_to (sqlite3 * sqlite, const char *view, + const char *edges, const char *nodes) +{ +/* creating the Edges/Nodes [from/to] VIEW */ + char skeleton[2048]; + char *sql_statement; + char *sql_edges; + char *sql_nodes; + char *sqlview; + int ret; + char *err_msg = NULL; + sqlview = gaiaDoubleQuotedSql (view); + sql_edges = gaiaDoubleQuotedSql (edges); + sql_nodes = gaiaDoubleQuotedSql (nodes); + strcpy (skeleton, "CREATE VIEW \"%s\" AS\n"); + strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); + strcat (skeleton, " n.node_code AS node_code,\n"); + strcat (skeleton, "'Mismatching coords' AS error_cause\n"); + strcat (skeleton, "FROM \"%s\" AS e\n"); + strcat (skeleton, "JOIN \"%s\" AS n ON "); + strcat (skeleton, "(e.node_from_code = n.node_code)\n"); + strcat (skeleton, + "WHERE ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n"); + strcat (skeleton, "UNION\n"); + strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); + strcat (skeleton, " n.node_code AS node_code,\n"); + strcat (skeleton, " 'Mismatching coords' AS error_cause\n"); + strcat (skeleton, "FROM \"%s\" AS e\n"); + strcat (skeleton, "JOIN \"%s\" AS n ON "); + strcat (skeleton, "(e.node_to_code = n.node_code)\n"); + strcat (skeleton, + "WHERE ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n"); + strcat (skeleton, "UNION\n"); + strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); + strcat (skeleton, " n.node_code AS node_code,\n"); + strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); + strcat (skeleton, "FROM \"%s\" AS e\n"); + strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); + strcat (skeleton, "(e.node_from_code = n.node_code)\n"); + strcat (skeleton, "WHERE n.node_id IS NULL\n"); + strcat (skeleton, "UNION\n"); + strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); + strcat (skeleton, " n.node_code AS node_code,\n"); + strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); + strcat (skeleton, "FROM \"%s\" AS e\n"); + strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); + strcat (skeleton, "(e.node_to_code = n.node_code)\n"); + strcat (skeleton, "WHERE n.node_id IS NULL\n"); + sql_statement = sqlite3_mprintf (skeleton, sqlview, + sql_edges, sql_nodes, sql_edges, + sql_nodes, sql_edges, sql_nodes, + sql_edges, sql_nodes); + free (sqlview); + free (sql_edges); + free (sql_nodes); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - lns++; - ln = ln->Next; + spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); + sqlite3_free (err_msg); + return 0; } - pg = geom->FirstPolygon; - while (pg) + return 1; +} + +static int +create_topo_master (sqlite3 * sqlite) +{ +/* creating the topo_master table */ + char sql[2048]; + int ret; + char *err_msg = NULL; + +/* creating the table */ + strcpy (sql, "CREATE TABLE topology_master (\n"); + strcat (sql, "nodes TEXT NOT NULL,\n"); + strcat (sql, "edges TEXT NOT NULL,\n"); + strcat (sql, "faces TEXT NOT NULL,\n"); + strcat (sql, "faces_edges TEXT NOT NULL,\n"); + strcat (sql, "curves TEXT NOT NULL,\n"); + strcat (sql, "surfaces TEXT NOT NULL,\n"); + strcat (sql, "check_node_ids TEXT NOT NULL,\n"); + strcat (sql, "check_node_geoms TEXT NOT NULL,\n"); + strcat (sql, "check_edge_ids TEXT NOT NULL,\n"); + strcat (sql, "check_edge_geoms TEXT NOT NULL,\n"); + strcat (sql, "check_edge_node_geoms TEXT NOT NULL,\n"); + strcat (sql, "check_face_ids TEXT NOT NULL,\n"); + strcat (sql, "faces_resolved TEXT NOT NULL,\n"); + strcat (sql, "curves_resolved TEXT NOT NULL,\n"); + strcat (sql, "surfaces_resolved TEXT NOT NULL,\n"); + strcat (sql, "dangling_nodes TEXT NOT NULL,\n"); + strcat (sql, "dangling_edges TEXT NOT NULL,\n"); + strcat (sql, "check_edges_from_to TEXT NOT NULL,\n"); + strcat (sql, "coord_dimension TEXT NOT NULL,\n"); + strcat (sql, "srid INTEGER NOT NULL,\n"); + strcat (sql, "CONSTRAINT fk_topo_master FOREIGN KEY \n"); + strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) { - pgs++; - pg = pg->Next; + spatialite_e ("CREATE TABLE 'topology_master' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; } - if (pts || lns) - return 0; - if (!pgs) - return 0; return 1; } -static void -fnct_Union_step (sqlite3_context * context, int argc, sqlite3_value ** argv) +static int +update_topo_master (sqlite3 * sqlite, const char *nodes, const char *edges, + const char *faces, const char *faces_edges, + const char *curves, const char *surfaces, + const char *check_nodes, const char *check_node_geoms, + const char *check_edges, const char *check_edge_geoms, + const char *check_edge_node_geoms, + const char *check_faces, const char *faces_res, + const char *curves_res, const char *surfaces_res, + const char *dangling_nodes, const char *dangling_edges, + const char *check_edges_from_to, int srid, int dims) { -/* SQL function: -/ Union(BLOBencoded geom) -/ -/ aggregate function - STEP -/ -*/ - struct gaia_geom_chain *chain; - struct gaia_geom_chain_item *item; - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom; - struct gaia_geom_chain **p; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geom) - return; - p = sqlite3_aggregate_context (context, sizeof (struct gaia_geom_chain **)); - if (!(*p)) - { - /* this is the first row */ - chain = malloc (sizeof (struct gaia_geom_chain)); - *p = chain; - item = malloc (sizeof (struct gaia_geom_chain_item)); - item->geom = geom; - item->next = NULL; - chain->all_polygs = gaia_union_polygs (geom); - chain->first = item; - chain->last = item; - } - else - { - /* subsequent rows */ - chain = *p; - item = malloc (sizeof (struct gaia_geom_chain_item)); - item->geom = geom; - item->next = NULL; - if (!gaia_union_polygs (geom)) - chain->all_polygs = 0; - chain->last->next = item; - chain->last = item; - } -} +/* updating the topo_master table */ + char *sql_statement; + int ret; + char *err_msg = NULL; -static void -gaia_free_geom_chain (struct gaia_geom_chain *chain) -{ - struct gaia_geom_chain_item *p = chain->first; - struct gaia_geom_chain_item *pn; - while (p) +/* inserting Topology data into MASTER */ + sql_statement = sqlite3_mprintf ("INSERT INTO topology_master " + "(nodes, edges, faces, faces_edges, curves, surfaces, check_node_ids, " + "check_node_geoms, check_edge_ids, check_edge_geoms, check_edge_node_geoms, " + "check_face_ids, faces_resolved, curves_resolved, surfaces_resolved, " + "dangling_nodes, dangling_edges, check_edges_from_to, coord_dimension, srid) " + "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d)", + nodes, edges, faces, faces_edges, curves, + surfaces, check_nodes, check_node_geoms, + check_edges, check_edge_geoms, + check_edge_node_geoms, check_faces, + faces_res, curves_res, surfaces_res, + dangling_nodes, dangling_edges, + check_edges_from_to, + (dims == GAIA_XY_Z) ? "XYZ" : "XY", srid); + ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); + sqlite3_free (sql_statement); + if (ret != SQLITE_OK) { - pn = p->next; - gaiaFreeGeomColl (p->geom); - free (p); - p = pn; + spatialite_e ("INSERT INTO 'topology_master' error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; } - free (chain); + return 1; } static void -fnct_Union_final (sqlite3_context * context) +fnct_CreateTopologyTables (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Union(BLOBencoded geom) -/ -/ aggregate function - FINAL +/ CreateTopologyTables(srid, coord_dims) +/ or +/ CreateTopologyTables(prefix, srid, coord_dims) / +/ creates any Topology related table +/ returns 1 on success +/ 0 on failure */ - gaiaGeomCollPtr tmp; - struct gaia_geom_chain *chain; - struct gaia_geom_chain_item *item; - gaiaGeomCollPtr aggregate; - gaiaGeomCollPtr result; - struct gaia_geom_chain **p = sqlite3_aggregate_context (context, 0); - if (!p) - { - sqlite3_result_null (context); - return; - } - chain = *p; - -#ifdef GEOS_ADVANCED -/* we can apply UnaryUnion */ - item = chain->first; - while (item) + const char *prefix = "topo_"; + const unsigned char *txt_dims; + int srid = -1; + int dimension; + int dims = -1; + char *table_curves; + char *table_surfaces; + char *table_nodes; + char *table_edges; + char *table_faces; + char *table_faces_edges; + char *view_check_node_codes; + char *view_check_node_geoms; + char *view_check_edge_codes; + char *view_check_edge_geoms; + char *view_check_edge_node_geoms; + char *view_check_face_codes; + char *view_faces_resolved; + char *view_curves_resolved; + char *view_surfaces_resolved; + char *view_dangling_nodes; + char *view_dangling_edges; + char *view_edges_check_from_to; + const char *tables[20]; + int views[20]; + int *p_view; + const char **p_tbl; + int ok_table; + int create_master = 1; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (argc == 3) { - gaiaGeomCollPtr geom = item->geom; - if (item == chain->first) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - /* initializing the aggregate geometry */ - aggregate = geom; - item->geom = NULL; - item = item->next; - continue; + spatialite_e + ("CreateTopologyTables() error: argument 1 [table_prefix] is not of the String type\n"); + sqlite3_result_int (context, 0); + return; } - tmp = gaiaMergeGeometries (aggregate, geom); - gaiaFreeGeomColl (aggregate); - gaiaFreeGeomColl (geom); - item->geom = NULL; - aggregate = tmp; - item = item->next; - } - result = gaiaUnaryUnion (aggregate); - gaiaFreeGeomColl (aggregate); -/* end UnaryUnion */ -#else -/* old GEOS; no UnaryUnion available */ - if (chain->all_polygs) - { - /* all Polygons: we can apply UnionCascaded */ - item = chain->first; - while (item) + prefix = (char *) sqlite3_value_text (argv[0]); + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - gaiaGeomCollPtr geom = item->geom; - if (item == chain->first) - { - /* initializing the aggregate geometry */ - aggregate = geom; - item->geom = NULL; - item = item->next; - continue; - } - tmp = gaiaMergeGeometries (aggregate, geom); - gaiaFreeGeomColl (aggregate); - gaiaFreeGeomColl (geom); - item->geom = NULL; - aggregate = tmp; - item = item->next; + spatialite_e + ("CreateTopologyTables() error: argument 2 [SRID] is not of the Integer type\n"); + sqlite3_result_int (context, 0); + return; + } + srid = sqlite3_value_int (argv[1]); + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + dimension = sqlite3_value_int (argv[2]); + if (dimension == 2) + dims = GAIA_XY; + if (dimension == 3) + dims = GAIA_XY_Z; + } + else if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + { + txt_dims = sqlite3_value_text (argv[2]); + if (strcasecmp ((char *) txt_dims, "XY") == 0) + dims = GAIA_XY; + if (strcasecmp ((char *) txt_dims, "XYZ") == 0) + dims = GAIA_XY_Z; + } + else + { + spatialite_e + ("CreateTopologyTables() error: argument 3 [dimension] is not of the Integer or Text type\n"); + sqlite3_result_int (context, 0); + return; } - result = gaiaUnionCascaded (aggregate); - gaiaFreeGeomColl (aggregate); } else { - /* mixed types: the hardest/slowest way */ - item = chain->first; - while (item) + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { - gaiaGeomCollPtr geom = item->geom; - if (item == chain->first) - { - result = geom; - item->geom = NULL; - item = item->next; - continue; - } - tmp = gaiaGeometryUnion (result, geom); - gaiaFreeGeomColl (result); - gaiaFreeGeomColl (geom); - item->geom = NULL; - result = tmp; - item = item->next; + spatialite_e + ("CreateTopologyTables() error: argument 1 [SRID] is not of the Integer type\n"); + sqlite3_result_int (context, 0); + return; + } + srid = sqlite3_value_int (argv[0]); + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + dimension = sqlite3_value_int (argv[1]); + if (dimension == 2) + dims = GAIA_XY; + if (dimension == 3) + dims = GAIA_XY_Z; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) + { + txt_dims = sqlite3_value_text (argv[1]); + if (strcasecmp ((char *) txt_dims, "XY") == 0) + dims = GAIA_XY; + if (strcasecmp ((char *) txt_dims, "XYZ") == 0) + dims = GAIA_XY_Z; + } + else + { + spatialite_e + ("CreateTopologyTables() error: argument 2 [dimension] is not of the Integer or Text type\n"); + sqlite3_result_int (context, 0); + return; } } -/* end old GEOS: no UnaryUnion available */ -#endif - gaia_free_geom_chain (chain); - - if (result == NULL) - sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) - sqlite3_result_null (context); + if (dims == GAIA_XY || dims == GAIA_XY_Z) + ; else { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - } - gaiaFreeGeomColl (result); -} - -static void -fnct_Union (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ Union(BLOBencoded geom1, BLOBencoded geom2) -/ -/ returns a new geometry representing the UNION of both geometries -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); + spatialite_e + ("CreateTopologyTables() error: [dimension] ILLEGAL VALUE\n"); + sqlite3_result_int (context, 0); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (srid <= 0) { - sqlite3_result_null (context); + spatialite_e ("CreateTopologyTables() error: [SRID] ILLEGAL VALUE\n"); + sqlite3_result_int (context, 0); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else + +/* checking Topology tables */ + tables[0] = "topology_master"; + views[0] = 0; + table_curves = sqlite3_mprintf ("%scurves", prefix); + tables[1] = table_curves; + views[1] = 0; + table_surfaces = sqlite3_mprintf ("%ssurfaces", prefix); + tables[2] = table_surfaces; + views[2] = 0; + table_nodes = sqlite3_mprintf ("%snodes", prefix); + tables[3] = table_nodes; + views[3] = 0; + table_edges = sqlite3_mprintf ("%sedges", prefix); + tables[4] = table_edges; + views[4] = 0; + table_faces = sqlite3_mprintf ("%sfaces", prefix); + tables[5] = table_faces; + views[5] = 0; + table_faces_edges = sqlite3_mprintf ("%sfaces_edges", prefix); + tables[6] = table_faces_edges; + views[6] = 0; + view_check_node_codes = + sqlite3_mprintf ("%snodes_check_dupl_codes", prefix); + tables[7] = view_check_node_codes; + views[7] = 1; + view_check_node_geoms = + sqlite3_mprintf ("%snodes_check_dupl_geoms", prefix); + tables[8] = view_check_node_geoms; + views[8] = 1; + view_check_edge_codes = + sqlite3_mprintf ("%sedges_check_dupl_codes", prefix); + tables[9] = view_check_edge_codes; + views[9] = 1; + view_check_edge_geoms = + sqlite3_mprintf ("%sedges_check_intersections", prefix); + tables[10] = view_check_edge_geoms; + views[10] = 1; + view_check_edge_node_geoms = + sqlite3_mprintf ("%sedges_check_nodes", prefix); + tables[11] = view_check_edge_node_geoms; + views[11] = 1; + view_check_face_codes = + sqlite3_mprintf ("%sfaces_check_dupl_codes", prefix); + tables[12] = view_check_face_codes; + views[12] = 1; + view_faces_resolved = sqlite3_mprintf ("%sfaces_resolved", prefix); + tables[13] = view_faces_resolved; + views[13] = 1; + view_curves_resolved = sqlite3_mprintf ("%scurves_resolved", prefix); + tables[14] = view_curves_resolved; + views[14] = 1; + view_surfaces_resolved = sqlite3_mprintf ("%ssurfaces_resolved", prefix); + tables[15] = view_surfaces_resolved; + views[15] = 1; + view_dangling_nodes = sqlite3_mprintf ("%sdangling_nodes", prefix); + tables[16] = view_dangling_nodes; + views[16] = 1; + view_dangling_edges = sqlite3_mprintf ("%sdangling_edges", prefix); + tables[17] = view_dangling_edges; + views[17] = 1; + view_edges_check_from_to = + sqlite3_mprintf ("%sedges_check_from_to", prefix); + tables[18] = view_edges_check_from_to; + views[18] = 1; + tables[19] = NULL; + p_view = views; + p_tbl = tables; + while (*p_tbl != NULL) { - result = gaiaGeometryUnion (geo1, geo2); - if (!result) - sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) - { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); - } - else + ok_table = check_topo_table (sqlite, *p_tbl, *p_view); + if (ok_table) { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + if (strcmp (*p_tbl, "topology_master") == 0) + create_master = 0; + else + { + spatialite_e + ("CreateTopologyTables() error: table '%s' already exists\n", + *p_tbl); + goto error; + } } + p_tbl++; + p_view++; } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + +/* creating Topology tables */ + if (create_master) + { + if (!create_topo_master (sqlite)) + goto error; + } + if (!create_topo_nodes (sqlite, table_nodes, srid, dims)) + goto error; + if (!create_topo_edges (sqlite, table_edges, srid, dims)) + goto error; + if (!create_topo_faces (sqlite, table_faces)) + goto error; + if (!create_topo_faces_edges (sqlite, table_faces_edges, table_faces)) + goto error; + if (!create_topo_curves (sqlite, table_curves)) + goto error; + if (!create_topo_surfaces (sqlite, table_surfaces)) + goto error; + if (!create_check_node_codes (sqlite, view_check_node_codes, table_nodes)) + goto error; + if (!create_check_node_geoms (sqlite, view_check_node_geoms, table_nodes)) + goto error; + if (!create_check_edge_codes (sqlite, view_check_edge_codes, table_edges)) + goto error; + if (!create_check_edge_geoms (sqlite, view_check_edge_geoms, table_edges)) + goto error; + if (!create_check_edge_node_geoms + (sqlite, view_check_edge_node_geoms, table_edges, table_nodes)) + goto error; + if (!create_check_face_codes (sqlite, view_check_face_codes, table_faces)) + goto error; + if (!create_faces_resolved + (sqlite, view_faces_resolved, table_faces, table_faces_edges, + table_edges)) + goto error; + if (!create_curves_resolved + (sqlite, view_curves_resolved, table_curves, table_edges)) + goto error; + if (!create_surfaces_resolved + (sqlite, view_surfaces_resolved, table_surfaces, view_faces_resolved)) + goto error; + if (!create_dangling_nodes + (sqlite, view_dangling_nodes, table_nodes, table_edges)) + goto error; + if (!create_dangling_edges + (sqlite, view_dangling_edges, table_edges, table_faces_edges, + table_curves)) + goto error; + if (!create_check_edges_from_to + (sqlite, view_edges_check_from_to, table_edges, table_nodes)) + goto error; + if (!update_topo_master + (sqlite, table_nodes, table_edges, table_faces, table_faces_edges, + table_curves, table_surfaces, view_check_node_codes, + view_check_node_geoms, view_check_edge_codes, view_check_edge_geoms, + view_check_edge_node_geoms, view_check_face_codes, + view_faces_resolved, view_curves_resolved, view_surfaces_resolved, + view_dangling_nodes, view_dangling_edges, view_edges_check_from_to, + srid, dims)) + goto error; + updateSpatiaLiteHistory (sqlite, "*** TOPOLOGY ***", NULL, + "Topology tables successfully created"); + sqlite3_result_int (context, 1); + sqlite3_free (table_curves); + sqlite3_free (table_surfaces); + sqlite3_free (table_nodes); + sqlite3_free (table_edges); + sqlite3_free (table_faces); + sqlite3_free (table_faces_edges); + sqlite3_free (view_check_node_codes); + sqlite3_free (view_check_node_geoms); + sqlite3_free (view_check_edge_codes); + sqlite3_free (view_check_edge_geoms); + sqlite3_free (view_check_edge_node_geoms); + sqlite3_free (view_check_face_codes); + sqlite3_free (view_faces_resolved); + sqlite3_free (view_curves_resolved); + sqlite3_free (view_surfaces_resolved); + sqlite3_free (view_dangling_nodes); + sqlite3_free (view_dangling_edges); + sqlite3_free (view_edges_check_from_to); + return; + + error: + sqlite3_result_int (context, 0); + sqlite3_free (table_curves); + sqlite3_free (table_surfaces); + sqlite3_free (table_nodes); + sqlite3_free (table_edges); + sqlite3_free (table_faces); + sqlite3_free (table_faces_edges); + sqlite3_free (view_check_node_codes); + sqlite3_free (view_check_node_geoms); + sqlite3_free (view_check_edge_codes); + sqlite3_free (view_check_edge_geoms); + sqlite3_free (view_check_edge_node_geoms); + sqlite3_free (view_check_face_codes); + sqlite3_free (view_faces_resolved); + sqlite3_free (view_curves_resolved); + sqlite3_free (view_surfaces_resolved); + sqlite3_free (view_dangling_nodes); + sqlite3_free (view_dangling_edges); + sqlite3_free (view_edges_check_from_to); + return; } static void -fnct_Difference (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Difference(BLOBencoded geom1, BLOBencoded geom2) +/ OffsetCurve(BLOBencoded geometry, radius, left-or-right-side) / -/ returns a new geometry representing the DIFFERENCE of both geometries +/ returns a new geometry representing the OFFSET-CURVE for current geometry +/ [a LINESTRING is expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; + double radius; + int int_value; + int left_right; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + radius = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + radius = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + left_right = sqlite3_value_int (argv[2]); + else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) sqlite3_result_null (context); else { - result = gaiaGeometryDifference (geo1, geo2); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaOffsetCurve_r (data, geo, radius, 16, left_right); + else + result = gaiaOffsetCurve (geo, radius, 16, left_right); if (!result) sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) - { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); - } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; + result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + gaiaFreeGeomColl (geo); } static void -fnct_SymDifference (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SingleSidedBuffer (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ SymDifference(BLOBencoded geom1, BLOBencoded geom2) +/ SingleSidedBuffer(BLOBencoded geometry, radius, left-or-right-side) / -/ returns a new geometry representing the SYMMETRIC DIFFERENCE of both geometries +/ returns a new geometry representing the SingleSided BUFFER +/ for current geometry [a LINESTRING is expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; + gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; + double radius; + int int_value; + int left_right; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + radius = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + radius = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + left_right = sqlite3_value_int (argv[2]); + else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) sqlite3_result_null (context); else { - result = gaiaGeometrySymDifference (geo1, geo2); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaSingleSidedBuffer_r (data, geo, radius, 16, left_right); + else + result = gaiaSingleSidedBuffer (geo, radius, 16, left_right); if (!result) sqlite3_result_null (context); - else if (gaiaIsEmpty (result)) - { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); - } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; + result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + gaiaFreeGeomColl (geo); } static void -fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_HausdorffDistance (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Equals(BLOBencoded geom1, BLOBencoded geom2) +/ HausdorffDistance(BLOBencoded geom1, BLOBencoded geom2) / -/ returns: -/ 1 if the two geometries are "spatially equal" -/ 0 otherwise -/ or -1 if any error is encountered +/ returns the discrete Hausdorff distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; + double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); @@ -14666,41 +20827,46 @@ fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv) n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + sqlite3_result_null (context); else { - ret = gaiaGeomCollEquals (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaHausdorffDistance_r (data, geo1, geo2, &dist); + else + ret = gaiaHausdorffDistance (geo1, geo2, &dist); + if (!ret) + sqlite3_result_null (context); + sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Intersects(BLOBencoded geom1, BLOBencoded geom2) +/ SharedPaths(BLOBencoded geometry1, BLOBencoded geometry2) / -/ returns: -/ 1 if the two geometries do "spatially intersects" -/ 0 otherwise -/ or -1 if any error is encountered +/ returns a new geometry representing common (shared) Edges +/ [two LINESTRINGs/MULTILINESTRINGs are expected] +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - int ret; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); @@ -14709,30 +20875,47 @@ fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv) p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + if (geo1 == NULL || geo2 == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollIntersects (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaSharedPaths_r (data, geo1, geo2); + else + result = gaiaSharedPaths (geo1, geo2); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo1->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Disjoint(BLOBencoded geom1, BLOBencoded geom2) +/ Covers(BLOBencoded geom1, BLOBencoded geom2) / / returns: -/ 1 if the two geometries are "spatially disjoint" +/ 1 if GEOM-1 "spatially covers" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ - unsigned char *p_blob; - int n_bytes; + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; @@ -14747,17 +20930,23 @@ fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_int (context, -1); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { - ret = gaiaGeomCollDisjoint (geo1, geo2); + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedCovers (data, geo1, + blob1, bytes1, geo2, blob2, + bytes2); + else + ret = gaiaGeomCollCovers (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); @@ -14765,18 +20954,20 @@ fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) } static void -fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CoveredBy (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Overlaps(BLOBencoded geom1, BLOBencoded geom2) +/ CoveredBy(BLOBencoded geom1, BLOBencoded geom2) / / returns: -/ 1 if the two geometries do "spatially overlaps" +/ 1 if GEOM-1 is "spatially covered by" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ - unsigned char *p_blob; - int n_bytes; + unsigned char *blob1; + unsigned char *blob2; + int bytes1; + int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; @@ -14791,17 +20982,23 @@ fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_int (context, -1); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); + bytes1 = sqlite3_value_bytes (argv[0]); + geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); + blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); + bytes2 = sqlite3_value_bytes (argv[1]); + geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { - ret = gaiaGeomCollOverlaps (geo1, geo2); + void *data = sqlite3_user_data (context); + if (data != NULL) + ret = gaiaGeomCollPreparedCoveredBy (data, + geo1, blob1, bytes1, geo2, + blob2, bytes2); + else + ret = gaiaGeomCollCoveredBy (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); @@ -14809,118 +21006,160 @@ fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) } static void -fnct_Crosses (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_LineInterpolatePoint (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Crosses(BLOBencoded geom1, BLOBencoded geom2) +/ LineInterpolatePoint(BLOBencoded geometry1, double fraction) / -/ returns: -/ 1 if the two geometries do "spatially crosses" -/ 0 otherwise -/ or -1 if any error is encountered +/ returns a new geometry representing a point interpolated along a line +/ [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - int ret; + int int_value; + double fraction; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + fraction = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_int (context, -1); + int_value = sqlite3_value_int (argv[1]); + fraction = int_value; + } + else + { + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollCrosses (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaLineInterpolatePoint_r (data, geo, fraction); + else + result = gaiaLineInterpolatePoint (geo, fraction); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + gaiaFreeGeomColl (geo); } static void -fnct_Touches (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_LineInterpolateEquidistantPoints (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Touches(BLOBencoded geom1, BLOBencoded geom2) +/ LineInterpolateEquidistantPointS(BLOBencoded geometry1, double distance) / -/ returns: -/ 1 if the two geometries do "spatially touches" -/ 0 otherwise -/ or -1 if any error is encountered +/ returns a new geometry representing a point interpolated along a line +/ [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - int ret; + int int_value; + double distance; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + distance = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_int (context, -1); + int_value = sqlite3_value_int (argv[1]); + distance = int_value; + } + else + { + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollTouches (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaLineInterpolateEquidistantPoints_r (data, geo, distance); + else + result = gaiaLineInterpolateEquidistantPoints (geo, distance); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + gaiaFreeGeomColl (geo); } static void -fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_LineLocatePoint (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ Within(BLOBencoded geom1, BLOBencoded geom2) +/ LineLocatePoint(BLOBencoded geometry1, BLOBencoded geometry2) / -/ returns: -/ 1 if GEOM-1 is completely contained within GEOM-2 -/ 0 otherwise -/ or -1 if any error is encountered +/ return a number (between 0.0 and 1.0) representing the location +/ of the closest point on LineString to the given Point, as a fraction +/ of total 2d line length +/ +/ - geom1 is expected to represent some LINESTRING +/ - geom2 is expected to represent some POINT */ unsigned char *p_blob; int n_bytes; + double fraction; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); @@ -14929,92 +21168,122 @@ fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv) p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + if (geo1 == NULL || geo2 == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollWithin (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + fraction = gaiaLineLocatePoint_r (data, geo1, geo2); + else + fraction = gaiaLineLocatePoint (geo1, geo2); + if (fraction >= 0.0 && fraction <= 1.0) + sqlite3_result_double (context, fraction); + else + sqlite3_result_null (context); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_Contains (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_LineSubstring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Contains(BLOBencoded geom1, BLOBencoded geom2) +/ LineSubstring(BLOBencoded geometry1, double start_fraction, double end_fraction) / -/ returns: -/ 1 if GEOM-1 completely contains GEOM-2 -/ 0 otherwise -/ or -1 if any error is encountered +/ Return a Linestring being a substring of the input one starting and ending at +/ the given fractions of total 2d length [fractions ranging from 0.0 to 1.0] +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - int ret; + int int_value; + double fraction1; + double fraction2; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + fraction1 = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_int (context, -1); + int_value = sqlite3_value_int (argv[1]); + fraction1 = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + fraction2 = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + fraction2 = int_value; + } + else + { + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollContains (geo1, geo2); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaLineSubstring_r (data, geo, fraction1, fraction2); + else + result = gaiaLineSubstring (geo, fraction1, fraction2); + if (!result) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + gaiaFreeGeomColl (geo); } static void -fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ClosestPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Relate(BLOBencoded geom1, BLOBencoded geom2, string pattern) +/ ClosestPoint(BLOBencoded geometry1, BLOBencoded geometry2) / -/ returns: -/ 1 if GEOM-1 and GEOM-2 have a spatial relationship as specified by the patternMatrix -/ 0 otherwise -/ or -1 if any error is encountered +/ Returns the Point on geom1 that is closest to geom2 +/ NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - int ret; - const unsigned char *pattern; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); - return; - } - if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) - { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); @@ -15023,59 +21292,96 @@ fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv) p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - pattern = sqlite3_value_text (argv[2]); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + if (geo1 == NULL || geo2 == NULL) + sqlite3_result_null (context); else { - ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern); - sqlite3_result_int (context, ret); + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaShortestLine_r (data, geo1, geo2); + else + result = gaiaShortestLine (geo1, geo2); + if (result == NULL) + sqlite3_result_null (context); + else if (result->FirstLinestring == NULL) + { + gaiaFreeGeomColl (result); + sqlite3_result_null (context); + } + else + { + /* builds the BLOB geometry to be returned */ + double x; + double y; + double z; + double m; + int len; + unsigned char *p_result = NULL; + gaiaGeomCollPtr pt = NULL; + gaiaLinestringPtr ln = result->FirstLinestring; + if (ln->DimensionModel == GAIA_XY_Z) + pt = gaiaAllocGeomCollXYZ (); + else if (ln->DimensionModel == GAIA_XY_M) + pt = gaiaAllocGeomCollXYM (); + else if (ln->DimensionModel == GAIA_XY_Z_M) + pt = gaiaAllocGeomCollXYZM (); + else + pt = gaiaAllocGeomColl (); + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); + gaiaAddPointToGeomCollXYZ (pt, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); + gaiaAddPointToGeomCollXYM (pt, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); + gaiaAddPointToGeomCollXYZM (pt, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, 0, &x, &y); + gaiaAddPointToGeomColl (pt, x, y); + } + pt->Srid = geo1->Srid; + gaiaToSpatiaLiteBlobWkb (pt, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + gaiaFreeGeomColl (pt); + } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ShortestLine (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Distance(BLOBencoded geom1, BLOBencoded geom2) -/ Distance(BLOBencoded geom1, BLOBencoded geom2, Boolen use_ellipsoid) +/ ShortestLine(BLOBencoded geometry1, BLOBencoded geometry2) / -/ returns the distance between GEOM-1 and GEOM-2 +/ Returns the shortest line between two geometries +/ NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - double dist; - int use_ellipsoid = -1; - double a; - double b; - double rf; - int ret; - sqlite3 *sqlite = sqlite3_context_db_handle (context); + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (argc == 3) - { - if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - use_ellipsoid = sqlite3_value_int (argv[2]); - if (use_ellipsoid != 0) - use_ellipsoid = 1; + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); @@ -15083,166 +21389,50 @@ fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv) p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) + if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { - if (use_ellipsoid >= 0) - { - /* attempting to identify the corresponding ellipsoid */ - if (getEllipsoidParams (sqlite, geo1->Srid, &a, &b, &rf)) - { -#ifdef GEOS_ADVANCED - /* GEOS advanced features support is strictly required */ - gaiaGeomCollPtr shortest = gaiaShortestLine (geo1, geo2); - if (shortest == NULL) - sqlite3_result_null (context); - else if (shortest->FirstLinestring == NULL) - { - gaiaFreeGeomColl (shortest); - sqlite3_result_null (context); - } - else - { - /* computes the metric distance */ - double x0; - double y0; - double x1; - double y1; - double z; - double m; - gaiaLinestringPtr ln = shortest->FirstLinestring; - dist = -1.0; - if (ln->Points == 2) - { - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, 0, &x0, - &y0, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, 0, &x0, - &y0, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, 0, &x0, - &y0, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, 0, &x0, &y0); - } - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, 1, &x1, - &y1, &z); - } - else if (ln->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (ln->Coords, 1, &x1, - &y1, &m); - } - else if (ln->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (ln->Coords, 1, &x1, - &y1, &z, &m); - } - else - { - gaiaGetPoint (ln->Coords, 1, &x1, &y1); - } - if (use_ellipsoid) - dist = - gaiaGeodesicDistance (a, b, rf, x0, - y0, x1, y1); - else - { - a = 6378137.0; - rf = 298.257223563; - b = (a * (1.0 - (1.0 / rf))); - dist = - gaiaGreatCircleDistance (a, b, x0, - y0, x1, - y1); - } - if (dist < 0.0) - { - /* invalid distance */ - sqlite3_result_null (context); - } - else - sqlite3_result_double (context, dist); - } - else - sqlite3_result_null (context); - gaiaFreeGeomColl (shortest); - } -#else - /* GEOS advanced features support unavailable */ - sqlite3_result_null (context); -#endif - } - else - sqlite3_result_null (context); - goto stop; - } - ret = gaiaGeomCollDistance (geo1, geo2, &dist); - if (!ret) + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaShortestLine_r (data, geo1, geo2); + else + result = gaiaShortestLine (geo1, geo2); + sqlite3_result_null (context); + if (!result) sqlite3_result_null (context); else - sqlite3_result_double (context, dist); + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo1->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Snap (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ PtDistWithin(BLOBencoded geom1, BLOBencoded geom2, double dist -/ [, boolen use_spheroid]) -/ -/ returns TRUE if the distance between GEOM-1 and GEOM-2 -/ is less or equal to dist +/ Snap(BLOBencoded geometry1, BLOBencoded geometry2, double tolerance) / -/ - if both geom1 and geom2 are in the 4326 (WGS84) SRID, -/ (and does actually contains a single POINT each one) -/ dist is assumed to be measured in Meters -/ - in this case the optional arg use_spheroid is -/ checked to determine if geodesic distance has to be -/ computed on the sphere (quickest) or on the spheroid -/ default: use_spheroid = FALSE -/ -/ in any other case the "plain" distance is evaluated +/ Returns a new Geometry corresponding to geom1 snapped to geom2 +/ and using the given tolerance +/ NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; + int int_value; + double tolerance; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - double ref_dist; - int use_spheroid = 0; - double x0; - double y0; - double x1; - double y1; - int pt0 = 0; - int ln0 = 0; - int pg0 = 0; - int pt1 = 0; - int ln1 = 0; - int pg1 = 0; - double dist; - double a; - double b; - double rf; - int ret; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -15254,1802 +21444,1713 @@ fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER - || sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - ; + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + tolerance = int_value; + } else { sqlite3_result_null (context); return; } - if (argc == 4) - { - /* optional use_spheroid arg */ - if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int dst = sqlite3_value_int (argv[2]); - ref_dist = dst; - } - else - ref_dist = sqlite3_value_double (argv[2]); - if (argc == 4) - use_spheroid = sqlite3_value_int (argv[3]); - if (!geo1 || !geo2) + if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { - if (geo1->Srid == 4326 && geo2->Srid == 4326) + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaSnap_r (data, geo1, geo2, tolerance); + else + result = gaiaSnap (geo1, geo2, tolerance); + if (result == NULL) + sqlite3_result_null (context); + else { - /* checking for single points */ - pt = geo1->FirstPoint; - while (pt) - { - x0 = pt->X; - y0 = pt->Y; - pt0++; - pt = pt->Next; - } - ln = geo1->FirstLinestring; - while (ln) - { - ln0++; - ln = ln->Next; - } - pg = geo1->FirstPolygon; - while (pg) - { - pg0++; - pg = pg->Next; - } - pt = geo2->FirstPoint; - while (pt) - { - x1 = pt->X; - y1 = pt->Y; - pt1++; - pt = pt->Next; - } - ln = geo2->FirstLinestring; - while (ln) - { - ln1++; - ln = ln->Next; - } - pg = geo2->FirstPolygon; - while (pg) - { - pg1++; - pg = pg->Next; - } - if (pt0 == 1 && pt1 == 1 && ln0 == 0 && ln1 == 0 && pg0 == 0 - && pg1 == 0) - { - /* using geodesic distance */ - a = 6378137.0; - rf = 298.257223563; - b = (a * (1.0 - (1.0 / rf))); - if (use_spheroid) - { - dist = - gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); - if (dist <= ref_dist) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - } - else - { - dist = - gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); - if (dist <= ref_dist) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - } - goto stop; - } + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo1->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); } -/* defaulting to flat distance */ - ret = gaiaGeomCollDistance (geo1, geo2, &dist); - if (!ret) - sqlite3_result_null (context); - if (dist <= ref_dist) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); } - stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -geos_error (const char *fmt, ...) -{ -/* reporting some GEOS error */ - va_list ap; - char msg[2048]; - va_start (ap, fmt); - vsprintf (msg, fmt, ap); - va_end (ap); - spatialite_e ("GEOS error: %s\n", msg); - gaiaSetGeosErrorMsg (msg); -} - - -static void -geos_warning (const char *fmt, ...) +fnct_LineMerge (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* reporting some GEOS warning */ - va_list ap; - char msg[2048]; - va_start (ap, fmt); - vsprintf (msg, fmt, ap); - va_end (ap); - spatialite_e ("GEOS warning: %s\n", msg); - gaiaSetGeosWarningMsg (msg); +/* SQL function: +/ LineMerge(BLOBencoded geometry) +/ +/ Assuming that Geometry represents a set of sparse Linestrings, +/ this function will attempt to reassemble a single line +/ (or a set of lines) +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaLineMerge_r (data, geo); + else + result = gaiaLineMerge (geo); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); } static void -fnct_aux_polygonize (sqlite3_context * context, gaiaGeomCollPtr geom_org, - int force_multipolygon, int allow_multipolygon) +fnct_UnaryUnion (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* a common function performing any kind of polygonization op */ - gaiaGeomCollPtr geom_new = NULL; - int len; - unsigned char *p_result = NULL; - gaiaPolygonPtr pg; - int pgs = 0; - if (!geom_org) - goto invalid; - geom_new = gaiaPolygonize (geom_org, force_multipolygon); - if (!geom_new) - goto invalid; - gaiaFreeGeomColl (geom_org); - pg = geom_new->FirstPolygon; - while (pg) - { - pgs++; - pg = pg->Next; - } - if (pgs > 1 && allow_multipolygon == 0) +/* SQL function: +/ UnaryUnion(BLOBencoded geometry) +/ +/ exactly like Union, but using a single Collection +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - /* invalid: a POLYGON is expected !!! */ - gaiaFreeGeomColl (geom_new); sqlite3_result_null (context); return; } - gaiaToSpatiaLiteBlobWkb (geom_new, &p_result, &len); - gaiaFreeGeomColl (geom_new); - sqlite3_result_blob (context, p_result, len, free); - return; - invalid: - if (geom_org) - gaiaFreeGeomColl (geom_org); - sqlite3_result_null (context); + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = gaiaUnaryUnion_r (data, geo); + else + result = gaiaUnaryUnion (geo); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); } -/* -/ the following functions performs initial argument checking, -/ and then readdressing the request to fnct_aux_polygonize() -/ for actual processing -*/ - static void -fnct_BdPolyFromText1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_SquareGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BdPolyFromText(WKT encoded MULTILINESTRING) -/ -/ returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING -/ or NULL if any error is encountered +/ ST_SquareGrid(BLOBencoded geom, double size) +/ ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only) +/ ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / +/ Builds a regular grid (Square cells) covering the geom. +/ each cell has the edges's length as defined by the size argument +/ an arbitrary origin is supported (0,0 is assumed by default) +/ return NULL if any error is encountered */ - const unsigned char *text; + unsigned char *p_blob; + int n_bytes; + int int_value; + double origin_x = 0.0; + double origin_y = 0.0; + double size; + int edges_only = 0; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, -1); - if (geo == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + size = int_value; + } + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + { + size = sqlite3_value_double (argv[1]); + } + else { sqlite3_result_null (context); return; } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + if (size <= 0.0) { - gaiaFreeGeomColl (geo); + /* negative side size */ sqlite3_result_null (context); return; } - geo->Srid = 0; - fnct_aux_polygonize (context, geo, 0, 0); + if (argc >= 3) + { + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + edges_only = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 4) + { + if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); + n_bytes = sqlite3_value_bytes (argv[3]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) + { + sqlite3_result_null (context); + return; + } + if (point->FirstLinestring != NULL) + goto no_point; + if (point->FirstPolygon != NULL) + goto no_point; + if (point->FirstPoint != NULL) + { + if (point->FirstPoint == point->LastPoint) + { + origin_x = point->FirstPoint->X; + origin_y = point->FirstPoint->Y; + gaiaFreeGeomColl (point); + } + else + goto no_point; + } + else + goto no_point; + + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (geo->FirstPoint != NULL) + goto no_polygon; + if (geo->FirstLinestring != NULL) + goto no_polygon; + if (geo->FirstPolygon == NULL) + goto no_polygon; + if (data != NULL) + result = + gaiaSquareGrid_r (data, geo, origin_x, origin_y, size, + edges_only); + else + result = + gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); + return; + + no_point: + gaiaFreeGeomColl (point); + sqlite3_result_null (context); + return; + + no_polygon: + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); return; } static void -fnct_BdPolyFromText2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_TriangularGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BdPolyFromText(WKT encoded MULTILINESTRING, SRID) -/ -/ returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING -/ or NULL if any error is encountered +/ ST_TriangularGrid(BLOBencoded geom, double size) +/ ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only) +/ ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / +/ Builds a regular grid (Triangular cells) covering the geom. +/ each cell has the edge's length as defined by the size argument +/ an arbitrary origin is supported (0,0 is assumed by default) +/ return NULL if any error is encountered */ - const unsigned char *text; + unsigned char *p_blob; + int n_bytes; + int int_value; + double origin_x = 0.0; + double origin_y = 0.0; + double size; + int edges_only = 0; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[1]); + size = int_value; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, -1); - if (geo == NULL) + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { - sqlite3_result_null (context); - return; + size = sqlite3_value_double (argv[1]); } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + else { - gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } - geo->Srid = sqlite3_value_int (argv[1]); - fnct_aux_polygonize (context, geo, 0, 0); - return; -} - -static void -fnct_BdMPolyFromText1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) -{ -/* SQL function: -/ BdMPolyFromText(WKT encoded MULTILINESTRING) -/ -/ returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING -/ or NULL if any error is encountered -/ -*/ - const unsigned char *text; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (size <= 0.0) { + /* negative side size */ sqlite3_result_null (context); return; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, -1); - if (geo == NULL) + if (argc >= 3) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + edges_only = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + if (argc == 4) { - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); + n_bytes = sqlite3_value_bytes (argv[3]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) + { + sqlite3_result_null (context); + return; + } + if (point->FirstLinestring != NULL) + goto no_point; + if (point->FirstPolygon != NULL) + goto no_point; + if (point->FirstPoint != NULL) + { + if (point->FirstPoint == point->LastPoint) + { + origin_x = point->FirstPoint->X; + origin_y = point->FirstPoint->Y; + gaiaFreeGeomColl (point); + } + else + goto no_point; + } + else + goto no_point; + } - geo->Srid = 0; - fnct_aux_polygonize (context, geo, 1, 1); + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (geo->FirstPoint != NULL) + goto no_polygon; + if (geo->FirstLinestring != NULL) + goto no_polygon; + if (geo->FirstPolygon == NULL) + goto no_polygon; + if (data != NULL) + result = + gaiaTriangularGrid_r (data, geo, origin_x, origin_y, size, + edges_only); + else + result = + gaiaTriangularGrid (geo, origin_x, origin_y, size, + edges_only); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); + return; + + no_point: + gaiaFreeGeomColl (point); + sqlite3_result_null (context); + return; + + no_polygon: + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); return; } static void -fnct_BdMPolyFromText2 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_HexagonalGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BdMPolyFromText(WKT encoded MULTILINESTRING, SRID) -/ -/ returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING -/ or NULL if any error is encountered +/ ST_HexagonalGrid(BLOBencoded geom, double size) +/ ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only) +/ ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / +/ Builds a regular grid (Hexagonal cells) covering the geom. +/ each cell has the edges's length as defined by the size argument +/ an arbitrary origin is supported (0,0 is assumed by default) +/ return NULL if any error is encountered */ - const unsigned char *text; + unsigned char *p_blob; + int n_bytes; + int int_value; + double origin_x = 0.0; + double origin_y = 0.0; + double size; + int edges_only = 0; gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr point = NULL; + gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[1]); + size = int_value; } - text = sqlite3_value_text (argv[0]); - geo = gaiaParseWkt (text, -1); - if (geo == NULL) + else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { - sqlite3_result_null (context); - return; + size = sqlite3_value_double (argv[1]); } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + else { - gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } - geo->Srid = sqlite3_value_int (argv[1]); - fnct_aux_polygonize (context, geo, 1, 1); - return; -} - -static void -fnct_BdPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ BdPolyFromWKB(WKB encoded MULTILINESTRING) -/ -/ returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING -/ or NULL if any error is encountered -/ -*/ - int n_bytes; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (size <= 0.0) { + /* negative side size */ sqlite3_result_null (context); return; } - wkb = sqlite3_value_blob (argv[0]); + if (argc >= 3) + { + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + edges_only = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } + } + if (argc == 4) + { + if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); + n_bytes = sqlite3_value_bytes (argv[3]); + point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!point) + { + sqlite3_result_null (context); + return; + } + if (point->FirstLinestring != NULL) + goto no_point; + if (point->FirstPolygon != NULL) + goto no_point; + if (point->FirstPoint != NULL) + { + if (point->FirstPoint == point->LastPoint) + { + origin_x = point->FirstPoint->X; + origin_y = point->FirstPoint->Y; + gaiaFreeGeomColl (point); + } + else + goto no_point; + } + else + goto no_point; + + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, -1)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) - { - sqlite3_result_null (context); - return; - } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else { - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + void *data = sqlite3_user_data (context); + if (geo->FirstPoint != NULL) + goto no_polygon; + if (geo->FirstLinestring != NULL) + goto no_polygon; + if (geo->FirstPolygon == NULL) + goto no_polygon; + if (data != NULL) + result = + gaiaHexagonalGrid_r (data, geo, origin_x, origin_y, size, + edges_only); + else + result = + gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - geo->Srid = 0; - fnct_aux_polygonize (context, geo, 0, 0); + gaiaFreeGeomColl (geo); + return; + + no_point: + gaiaFreeGeomColl (point); + sqlite3_result_null (context); + return; + + no_polygon: + gaiaFreeGeomColl (geo); + sqlite3_result_null (context); return; } static void -fnct_BdPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_LinesCutAtNodes (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ BdPolyFromWKB(WKB encoded MULTILINESTRING) -/ -/ returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING -/ or NULL if any error is encountered +/ LinesCutAtNodes(BLOBencoded geometry1, BLOBencoded geometry2) / +/ Assuming that Geometry-1 represents a set of arbitray Linestrings, +/ and that Geometry-2 represents of arbitrary Points, this function +/ will then attempt to cut lines accordingly to given nodes. +/ NULL is returned for invalid arguments */ + unsigned char *p_blob; int n_bytes; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr geom1 = NULL; + gaiaGeomCollPtr geom2 = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - wkb = sqlite3_value_blob (argv[0]); + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, -1)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) + geom1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geom2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom1 == NULL || geom2 == NULL) { + if (geom1) + gaiaFreeGeomColl (geom1); + if (geom2) + gaiaFreeGeomColl (geom2); sqlite3_result_null (context); return; } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + result = gaiaLinesCutAtNodes (geom1, geom2); + if (result == NULL) { - gaiaFreeGeomColl (geo); sqlite3_result_null (context); - return; } - geo->Srid = sqlite3_value_int (argv[1]); - fnct_aux_polygonize (context, geo, 0, 0); - return; + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geom1->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + gaiaFreeGeomColl (geom1); + gaiaFreeGeomColl (geom2); } -static void -fnct_BdMPolyFromWKB1 (sqlite3_context * context, int argc, - sqlite3_value ** argv) +static int +cmp_pt_coords (const void *p1, const void *p2) { -/* SQL function: -/ BdMPolyFromWKB(WKB encoded MULTILINESTRING) -/ -/ returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING -/ or NULL if any error is encountered -/ -*/ - int n_bytes; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) +/* compares two nodes by ID [for QSORT] */ + gaiaPointPtr pt1 = *((gaiaPointPtr *) p1); + gaiaPointPtr pt2 = *((gaiaPointPtr *) p2); + if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z == pt2->Z) + return 0; + if (pt1->X > pt2->X) + return 1; + if (pt1->X == pt2->X && pt1->Y > pt2->Y) + return 1; + if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z > pt2->Z) + return 1; + return -1; +} + +static gaiaGeomCollPtr +auxPolygNodes (gaiaGeomCollPtr geom) +{ +/* attempting to identify Ring-Nodes */ + gaiaGeomCollPtr result = NULL; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + gaiaPointPtr pt; + gaiaPointPtr prev_pt; + gaiaPointPtr *sorted = NULL; + int count = 0; + int iv; + int ib; + double x; + double y; + double z; + double m; + +/* inserting all Points into a Dynamic Line */ + gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); + pg = geom->FirstPolygon; + while (pg) { - sqlite3_result_null (context); - return; + rng = pg->Exterior; + /* CAVEAT: first point needs to be skipped (closed ring) */ + for (iv = 1; iv < rng->Points; iv++) + { + /* exterior ring */ + if (geom->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + gaiaAppendPointZToDynamicLine (dyn, x, y, z); + } + else if (geom->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + gaiaAppendPointMToDynamicLine (dyn, x, y, m); + } + else if (geom->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (rng->Coords, iv, &x, &y); + gaiaAppendPointToDynamicLine (dyn, x, y); + } + } + + for (ib = 0; ib < pg->NumInteriors; ib++) + { + rng = pg->Interiors + ib; + /* CAVEAT: first point needs to be skipped (closed ring) */ + for (iv = 1; iv < rng->Points; iv++) + { + /* interior ring */ + if (geom->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); + gaiaAppendPointZToDynamicLine (dyn, x, y, z); + } + else if (geom->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); + gaiaAppendPointMToDynamicLine (dyn, x, y, m); + } + else if (geom->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); + gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); + } + else + { + gaiaGetPoint (rng->Coords, iv, &x, &y); + gaiaAppendPointToDynamicLine (dyn, x, y); + } + } + } + pg = pg->Next; } - wkb = sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, -1)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) + + pt = dyn->First; + while (pt) + { + /* counting how many points */ + count++; + pt = pt->Next; + } + if (count == 0) + { + gaiaFreeDynamicLine (dyn); + return NULL; + } + +/* allocating and initializing an array of pointers */ + sorted = malloc (sizeof (gaiaPointPtr) * count); + iv = 0; + pt = dyn->First; + while (pt) + { + *(sorted + iv++) = pt; + pt = pt->Next; + } + +/* sorting points by coords */ + qsort (sorted, count, sizeof (gaiaPointPtr), cmp_pt_coords); + + if (geom->DimensionModel == GAIA_XY_Z) + result = gaiaAllocGeomCollXYZ (); + else if (geom->DimensionModel == GAIA_XY_M) + result = gaiaAllocGeomCollXYM (); + else if (geom->DimensionModel == GAIA_XY_Z_M) + result = gaiaAllocGeomCollXYZM (); + else + result = gaiaAllocGeomColl (); + result->Srid = geom->Srid; + +/* identifying nodes */ + prev_pt = NULL; + for (iv = 0; iv < count; iv++) { - sqlite3_result_null (context); - return; + pt = *(sorted + iv); + if (prev_pt != NULL) + { + if (prev_pt->X == pt->X && prev_pt->Y == pt->Y + && prev_pt->Z == pt->Z) + { + if (result->LastPoint != NULL) + { + if (result->LastPoint->X == pt->X + && result->LastPoint->Y == pt->Y + && result->LastPoint->Z == pt->Z) + continue; + } + /* Node found */ + if (result->DimensionModel == GAIA_XY_Z) + gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, + pt->Z); + else if (result->DimensionModel == GAIA_XY_M) + gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, + pt->M); + else if (result->DimensionModel == GAIA_XY_Z_M) + gaiaAddPointToGeomCollXYZM (result, pt->X, + pt->Y, pt->Z, pt->M); + else + gaiaAddPointToGeomColl (result, pt->X, pt->Y); + } + } + prev_pt = pt; } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + + if (result->FirstPoint == NULL) { - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + gaiaFreeGeomColl (result); + result = NULL; } - geo->Srid = 0; - fnct_aux_polygonize (context, geo, 1, 1); - return; + free (sorted); + gaiaFreeDynamicLine (dyn); + return result; } static void -fnct_BdMPolyFromWKB2 (sqlite3_context * context, int argc, +fnct_RingsCutAtNodes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BdMPolyFromWKB(WKB encoded MULTILINESTRING) +/ RingsCutAtNodes(BLOBencoded geometry) / -/ returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING -/ or NULL if any error is encountered +/ This function will attempt to return a collection of lines +/ representing Polygon/Rings: the input geometry is expected +/ to be a Polygon or MultiPolygon. +/ Each Ring will be cut accordingly to any identified "node" +/ i.e. self-intersections or intersections between two Rings. / +/ NULL is returned for invalid arguments */ + int pts = 0; + int lns = 0; + int pgs = 0; + unsigned char *p_blob; int n_bytes; - const unsigned char *wkb; - gaiaGeomCollPtr geo = NULL; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaGeomCollPtr geom = NULL; + gaiaGeomCollPtr geom1 = NULL; + gaiaGeomCollPtr geom2 = NULL; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) - { - sqlite3_result_null (context); - return; - } - wkb = sqlite3_value_blob (argv[0]); + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - if (!check_wkb (wkb, n_bytes, -1)) - return; - geo = gaiaFromWkb (wkb, n_bytes); - if (geo == NULL) - { - sqlite3_result_null (context); - return; - } - if (geo->DeclaredType != GAIA_MULTILINESTRING) + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) { - gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } - geo->Srid = sqlite3_value_int (argv[1]); - fnct_aux_polygonize (context, geo, 1, 1); - return; -} - -#ifdef GEOS_ADVANCED /* GEOS advanced features */ - -static int -check_topo_table (sqlite3 * sqlite, const char *table, int is_view) -{ -/* checking if some Topology-related table/view already exists */ - int exists = 0; - char *sql_statement; - char *errMsg = NULL; - int ret; - char **results; - int rows; - int columns; - int i; - sql_statement = - sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" - "AND Upper(name) = Upper(%Q)", - (!is_view) ? "table" : "view", table); - ret = - sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, - &errMsg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - sqlite3_free (errMsg); - return 0; - } - for (i = 1; i <= rows; i++) - exists = 1; - sqlite3_free_table (results); - return exists; -} -static int -create_topo_nodes (sqlite3 * sqlite, const char *table, int srid, int dims) -{ -/* creating the topo_nodes table */ - char *sql_statement; - char *sqltable; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "node_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" - "node_code TEXT)", sqltable); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; - } - sql_statement = - sqlite3_mprintf - ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'POINT', '%s', 1)", - table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", - table, err_msg); - sqlite3_free (err_msg); - return 0; - } - sql_statement = - sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", - table, err_msg); - sqlite3_free (err_msg); - return 0; - } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_code", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* checking if Geometry is a Polygon or MultiPolyhon */ + pt = geom->FirstPoint; + while (pt) { - spatialite_e ("Create Index '%s'('node_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + pts++; + pt = pt->Next; } - return 1; -} - -static int -create_topo_edges (sqlite3 * sqlite, const char *table, int srid, int dims) -{ -/* creating the topo_edges table */ - char *sql_statement; - char *sqltable; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "edge_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" - "node_from_code TEXT,\n" - "node_to_code TEXT,\n" - "edge_code TEXT)", sqltable); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + ln = geom->FirstLinestring; + while (ln) { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; + lns++; + ln = ln->Next; } - sql_statement = - sqlite3_mprintf - ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'LINESTRING', '%s', 1)", - table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + pg = geom->FirstPolygon; + while (pg) { - spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", - table, err_msg); - sqlite3_free (err_msg); - return 0; + pgs++; + pg = pg->Next; } - sql_statement = - sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (pts > 0 || lns > 0 || pgs == 0) { - spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", - table, err_msg); - sqlite3_free (err_msg); - return 0; + /* not Polygon/MultiPolygon */ + gaiaFreeGeomColl (geom); + sqlite3_result_null (context); + return; } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_code", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + +/* transforming Rings into Linestrings */ + geom1 = gaiaLinearize (geom, 1); + if (geom1 == NULL) { - spatialite_e ("Create Index '%s'('edge_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + gaiaFreeGeomColl (geom); + sqlite3_result_null (context); + return; } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_from", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_from_code)", - xidx_name, sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + +/* identifying the Nodes */ + geom2 = auxPolygNodes (geom); + if (geom2 == NULL) { - spatialite_e ("Create Index '%s'('node_from_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + /* there is no need to cut any Ring [no Nodes] */ + int len; + unsigned char *p_result = NULL; + geom1->Srid = geom->Srid; + gaiaToSpatiaLiteBlobWkb (geom1, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (geom); + gaiaFreeGeomColl (geom1); + return; } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_to", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_to_code)", - xidx_name, sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + +/* attempting to cut Rings */ + result = gaiaLinesCutAtNodes (geom1, geom2); + if (result == NULL) + sqlite3_result_null (context); + else { - spatialite_e ("Create Index '%s'('node_to_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geom->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); } - return 1; + gaiaFreeGeomColl (geom); + gaiaFreeGeomColl (geom1); + gaiaFreeGeomColl (geom2); } -static int -create_topo_faces (sqlite3 * sqlite, const char *table) +#ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ + +static void +fnct_DelaunayTriangulation (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* creating the topo_faces table */ - char *sql_statement; - char *sqltable; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "face_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" - "face_code TEXT)", sqltable); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ DelaunayTriangulation(BLOBencoded geometry) +/ DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges) +/ DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges, double tolerance) +/ +/ Attempts to build a Delaunay Triangulation using all points/vertices +/ found in the input geometry. +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int int_value; + double tolerance = 0.0; + int only_edges = 0; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_code", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc >= 2) { - spatialite_e ("Create Index '%s'('face_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + only_edges = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } } - return 1; + if (argc == 3) + { + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + tolerance = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaDelaunayTriangulation_r (data, geo, tolerance, + only_edges); + else + result = gaiaDelaunayTriangulation (geo, tolerance, only_edges); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); } -static int -create_topo_faces_edges (sqlite3 * sqlite, const char *table, - const char *table2) +static void +fnct_VoronojDiagram (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the topo_faces_edges table */ - char *sql_statement; - char *sqltable; - char *sqltable2; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sqltable2 = gaiaDoubleQuotedSql (table2); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "face_id INTEGER NOT NULL,\n" - "edge_code TEXT NOT NULL,\n" - "orientation TEXT,\n" - "CONSTRAINT pk_faces_edges PRIMARY KEY " - "(face_id, edge_code),\n" - "CONSTRAINT fk_faces_edges FOREIGN KEY " - "(face_id) REFERENCES \"%s\" (face_id))\n", - sqltable, sqltable2); - free (sqltable); - free (sqltable2); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ VoronojDiagram(BLOBencoded geometry) +/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges) +/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, +/ double extra_frame_size) +/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, +/ double extra_frame_size, double tolerance) +/ +/ Attempts to build a Voronoj Diagram using all points/vertices +/ found in the input geometry. +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int int_value; + double tolerance = 0.0; + double extra_frame_size = -1.0; + int only_edges = 0; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; + } + if (argc >= 2) + { + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + only_edges = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_edge", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc >= 3) { - spatialite_e ("Create Index '%s'('edge_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + extra_frame_size = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[2]); + extra_frame_size = int_value; + } + else + { + sqlite3_result_null (context); + return; + } } - return 1; -} - -static int -create_topo_curves (sqlite3 * sqlite, const char *table) -{ -/* creating the topo_curves table */ - char *sql_statement; - char *sqltable; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "curve_id INTEGER NOT NULL,\n" - "edge_code TEXT NOT NULL,\n" - "orientation TEXT,\n" - "CONSTRAINT pk_curves PRIMARY KEY " - "(curve_id, edge_code))\n", sqltable); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc == 4) { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + tolerance = int_value; + } + else + { + sqlite3_result_null (context); + return; + } } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_edge", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else { - spatialite_e ("Create Index '%s'('edge_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaVoronojDiagram_r (data, geo, extra_frame_size, tolerance, + only_edges); + else + result = + gaiaVoronojDiagram (geo, extra_frame_size, tolerance, + only_edges); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - return 1; + gaiaFreeGeomColl (geo); } -static int -create_topo_surfaces (sqlite3 * sqlite, const char *table) +static void +fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the topo_surfaces table */ - char *sql_statement; - char *sqltable; - char *idx_name; - char *xidx_name; - int ret; - char *err_msg = NULL; - sqltable = gaiaDoubleQuotedSql (table); - sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" - "surface_id INTEGER NOT NULL,\n" - "face_code TEXT NOT NULL,\n" - "orientation TEXT,\n" - "CONSTRAINT pk_surfaces PRIMARY KEY " - "(surface_id, face_code))", sqltable); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ ConcaveHull(BLOBencoded geometry) +/ ConcaveHull(BLOBencoded geometry, double factor) +/ ConcaveHull(BLOBencoded geometry, double factor, boolean allow_holes) +/ ConcaveHull(BLOBencoded geometry, double factor, +/ boolean allow_holes, double tolerance) +/ +/ Attempts to build a ConcaveHull using all points/vertices +/ found in the input geometry. +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + int int_value; + double tolerance = 0.0; + double factor = 3.0; + int allow_holes = 0; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - sqltable = gaiaDoubleQuotedSql (table); - idx_name = sqlite3_mprintf ("idx_%s_face", table); - xidx_name = gaiaDoubleQuotedSql (idx_name); - sqlite3_free (idx_name); - sql_statement = - sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, - sqltable); - free (sqltable); - free (xidx_name); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc >= 2) { - spatialite_e ("Create Index '%s'('face_code') error: %s\n", - sqltable, err_msg); - sqlite3_free (err_msg); - return 0; + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + factor = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + factor = int_value; + } + else + { + sqlite3_result_null (context); + return; + } } - return 1; -} - -static int -create_check_node_codes (sqlite3 * sqlite, const char *view, - const char *table_nodes) -{ -/* creating the check node codes VIEW */ - char *sql_statement; - char *sqltable; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sqltable = gaiaDoubleQuotedSql (table_nodes); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT node_code AS node_code, Count(node_id) AS count\n" - "FROM \"%s\"\nGROUP BY node_code\nHAVING count > 1\n", - sqlview, sqltable); - free (sqlview); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc >= 3) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + allow_holes = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } } - return 1; -} - -static int -create_check_node_geoms (sqlite3 * sqlite, const char *view, - const char *table_nodes) -{ -/* creating the check node geoms VIEW */ - char *sql_statement; - char *sqltable; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sqltable = gaiaDoubleQuotedSql (table_nodes); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT n1.node_id AS node1_id, n1.node_code AS node1_code, " - "n2.node_id AS node2_id, n2.node_code AS node2_code\n" - "FROM \"%s\" AS n1\nJOIN \"%s\" AS n2 ON (\n" - " n1.node_id <> n2.node_id AND\n" - " ST_Equals(n1.Geometry, n2.Geometry) = 1 AND\n" - " n2.node_id IN (\n SELECT ROWID FROM SpatialIndex\n" - " WHERE f_table_name = %Q AND\n search_frame = n1.Geometry))\n", - sqlview, sqltable, sqltable, table_nodes); - free (sqlview); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (argc == 4) + { + if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) + tolerance = sqlite3_value_double (argv[3]); + else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[3]); + tolerance = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + void *data = sqlite3_user_data (context); + if (data != NULL) + result = + gaiaConcaveHull_r (data, geo, factor, tolerance, allow_holes); + else + result = gaiaConcaveHull (geo, factor, tolerance, allow_holes); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - return 1; + gaiaFreeGeomColl (geo); } -static int -create_check_edge_codes (sqlite3 * sqlite, const char *view, - const char *table_edges) +#endif /* end GEOS advanced features */ + +#ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ + +static void +fnct_LWGEOM_GetLastWarningMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* creating the check edge codes VIEW */ - char *sql_statement; - char *sqltable; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sqltable = gaiaDoubleQuotedSql (table_edges); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT edge_code AS edge_code, Count(edge_id) AS count\n" - "FROM \"%s\"\nGROUP BY edge_code\nHAVING count > 1\n", - sqlview, sqltable); - free (sqlview); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; - } - return 1; +/* SQL function: +/ LWGEOM_GetLastWarningMsg() +/ +/ return the most recent LWGEOM warning message (if any) +/ return NULL on any other case +*/ + const char *msg; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + msg = gaiaGetLwGeomWarningMsg (); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } -static int -create_check_edge_geoms (sqlite3 * sqlite, const char *view, - const char *table_edges) +static void +fnct_LWGEOM_GetLastErrorMsg (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* creating the check edge geoms VIEW */ - char *sql_statement; - char *sqltable; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sqltable = gaiaDoubleQuotedSql (table_edges); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT e1.edge_id AS edge1_id, e1.edge_code AS edge1_code, " - "e2.edge_id AS edge2_id, e2.edge_code AS edge2_code\n" - "FROM \"%s\" AS e1\nJOIN \"%s\" AS e2 ON (\n e1.edge_id <> e2.edge_id AND\n" - "NOT (e1.node_from_code = e2.node_from_code " - "AND e1.node_to_code = e2.node_to_code) AND\n" - " ST_Crosses(e1.Geometry, e2.Geometry) = 1 AND\n" - " e2.edge_id IN (\n" - " SELECT ROWID FROM SpatialIndex\n" - " WHERE f_table_name = %Q AND\n search_frame = e1.Geometry))\n", - sqlview, sqltable, sqltable, table_edges); - free (sqlview); - free (sqltable); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; - } - return 1; +/* SQL function: +/ LWGEOM_GetLastErrorMsg() +/ +/ return the most recent LWGEOM error message (if any) +/ return NULL on any other case +*/ + const char *msg; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + msg = gaiaGetLwGeomErrorMsg (); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } -static int -create_check_edge_node_geoms (sqlite3 * sqlite, const char *view, - const char *table_edges, const char *table_nodes) +static void +fnct_MakeValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the check edge/node geoms VIEW */ - char *sql_statement; - char *sql_edges; - char *sql_nodes; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_edges = gaiaDoubleQuotedSql (table_edges); - sql_nodes = gaiaDoubleQuotedSql (table_nodes); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT e.edge_id AS edge_id, n.node_id AS node_id\n" - "FROM \"%s\" AS e,\n\"%s\" AS n\n" - "WHERE ST_Intersects(e.Geometry, n.Geometry)\n" - " AND ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n" - " AND ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n" - " AND n.ROWID IN (\n SELECT ROWID FROM SpatialIndex\n" - " WHERE f_table_name = %Q\n AND search_frame = e.Geometry);", - sqlview, sql_edges, sql_nodes, - table_nodes); - free (sqlview); - free (sql_nodes); - free (sql_edges); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ MakeValid(BLOBencoded geometry) +/ +/ Attempts to make an invalid geometry valid without loosing vertices. +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; -} - -static int -create_check_face_codes (sqlite3 * sqlite, const char *view, - const char *table_faces) -{ -/* creating the check face codes VIEW */ - char *sql_statement; - char *sqltable; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sqltable = gaiaDoubleQuotedSql (table_faces); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT face_code AS face_code, Count(face_id) AS count\n" - "FROM \"%s\"\nGROUP BY face_code\nHAVING count > 1\n", - sqlview, sqltable); - free (sqltable); - free (sqlview); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + result = gaiaMakeValid (geo); + if (result == NULL) + { + char *msg; + const char *lw_err = gaiaGetLwGeomErrorMsg (); + if (lw_err) + msg = sqlite3_mprintf + ("MakeValid error - LWGEOM reports: %s\n", lw_err); + else + msg = sqlite3_mprintf + ("MakeValid error - LWGEOM reports: Unknown Reason\n"); + sqlite3_result_error (context, msg, strlen (msg)); + sqlite3_free (msg); + } + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - return 1; + gaiaFreeGeomColl (geo); } -static int -create_faces_resolved (sqlite3 * sqlite, const char *view, const char *faces, - const char *faces_edges, const char *edges) +static void +fnct_MakeValidDiscarded (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* creating the Faces Resolved VIEW */ - char *sql_statement; - char *sql_faces; - char *sql_faces_edges; - char *sql_edges; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_faces = gaiaDoubleQuotedSql (faces); - sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); - sql_edges = gaiaDoubleQuotedSql (edges); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT f.face_id AS face_id, f.face_code AS face_code, " - "ST_Polygonize(e.Geometry) AS Geometry\n" - "FROM \"%s\" AS f\nLEFT JOIN \"%s\" AS fe ON (fe.face_id = f.face_id)\n" - "LEFT JOIN \"%s\" AS e ON (e.edge_code = fe.edge_code)\n" - "GROUP BY f.face_id\n", sqlview, sql_faces, - sql_faces_edges, sql_edges); - free (sqlview); - free (sql_faces); - free (sql_faces_edges); - free (sql_edges); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ MakeValidDiscarded(BLOBencoded geometry) +/ +/ Strictly related to MakeValid(); useful to collect any offending item +/ discarded during the validation process. +/ NULL is returned for invalid arguments (or if no discarded items are found) +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + result = gaiaMakeValidDiscarded (geo); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - return 1; + gaiaFreeGeomColl (geo); } -static int -create_curves_resolved (sqlite3 * sqlite, const char *view, - const char *curves, char *edges) +static void +fnct_Segmentize (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the Curves Resolved VIEW */ - char *sql_statement; - char *sql_curves; - char *sql_edges; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_curves = gaiaDoubleQuotedSql (curves); - sql_edges = gaiaDoubleQuotedSql (edges); - sql_statement = - sqlite3_mprintf - ("CREATE VIEW \"%s\" AS\nSELECT c.curve_id AS curve_id, " - "CastToMultiLinestring(ST_Collect(e.Geometry)) AS Geometry\n" - "FROM \"%s\" AS c\nLEFT JOIN \"%s\" AS e ON (e.edge_code = c.edge_code)\n" - "GROUP BY c.curve_id\n", sqlview, sql_curves, sql_edges); - free (sqlview); - free (sql_edges); - free (sql_curves); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ Segmentize(BLOBencoded geometry, double dist) +/ +/ Ensure every segment is at most 'dist' long +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + int int_value; + double dist; + gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + dist = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[1]); + dist = int_value; + } + else + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geo == NULL) + sqlite3_result_null (context); + else + { + result = gaiaSegmentize (geo, dist); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = geo->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (geo); } -static int -create_surfaces_resolved (sqlite3 * sqlite, const char *view, - const char *surfaces, const char *faces) +static void +fnct_Split (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the Surfaces Resolved VIEW */ - char *sql_statement; - char *sql_surfaces; - char *sql_faces; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_surfaces = gaiaDoubleQuotedSql (surfaces); - sql_faces = gaiaDoubleQuotedSql (faces); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT s.surface_id AS surface_id,\n" - " CastToMultipolygon(ST_UnaryUnion(ST_Collect(f.Geometry))) AS Geometry\n" - "FROM \"%s\" AS s\n" - "LEFT JOIN \"%s\" AS f ON (f.face_code = s.face_code)\n" - "GROUP BY s.surface_id\n", sqlview, - sql_surfaces, sql_faces); - free (sqlview); - free (sql_surfaces); - free (sql_faces); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ Split(BLOBencoded input, BLOBencoded blade) +/ +/ Returns a collection of geometries resulting by splitting a geometry +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr input = NULL; + gaiaGeomCollPtr blade = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (input == NULL) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (blade == NULL) + { + gaiaFreeGeomColl (input); + sqlite3_result_null (context); + return; + } + else + { + result = gaiaSplit (input, blade); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = input->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (input); + gaiaFreeGeomColl (blade); } -static int -create_dangling_nodes (sqlite3 * sqlite, const char *view, - const char *nodes, const char *edges) +static void +fnct_SplitLeft (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the Dangling Nodes VIEW */ - char *sql_statement; - char *sql_nodes; - char *sql_edges; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_nodes = gaiaDoubleQuotedSql (nodes); - sql_edges = gaiaDoubleQuotedSql (edges); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT n.node_id AS node_id\nFROM \"%s\" AS n\n" - "LEFT JOIN \"%s\" AS e ON (n.node_code = e.node_from_code)\n" - "WHERE e.edge_id IS NULL\nINTERSECT\nSELECT n.node_id AS node_id\n" - "FROM \"%s\" AS n\nLEFT JOIN \"%s\" AS e ON (n.node_code = e.node_to_code)\n" - "WHERE e.edge_id IS NULL\n", sqlview, - sql_nodes, sql_edges, sql_nodes, - sql_edges); - free (sqlview); - free (sql_nodes); - free (sql_edges); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ SplitLeft(BLOBencoded input, BLOBencoded blade) +/ +/ Returns a collection of geometries resulting by splitting a geometry [left half] +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr input = NULL; + gaiaGeomCollPtr blade = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (input == NULL) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (blade == NULL) + { + gaiaFreeGeomColl (input); + sqlite3_result_null (context); + return; + } + else { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + result = gaiaSplitLeft (input, blade); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = input->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } } - return 1; + gaiaFreeGeomColl (input); + gaiaFreeGeomColl (blade); } -static int -create_dangling_edges (sqlite3 * sqlite, const char *view, - const char *edges, const char *faces_edges, - const char *curves) +static void +fnct_SplitRight (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* creating the Dangling Edges VIEW */ - char *sql_statement; - char *sql_edges; - char *sql_faces_edges; - char *sql_curves; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_edges = gaiaDoubleQuotedSql (edges); - sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); - sql_curves = gaiaDoubleQuotedSql (curves); - sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" - "SELECT e.edge_id AS edge_id\nFROM \"%s\" AS e\n" - "LEFT JOIN \"%s\" AS f ON (e.edge_code = f.edge_code)\n" - "WHERE f.edge_code IS NULL\nINTERSECT\nSELECT e.edge_id AS edge_id\n" - "FROM \"%s\" AS e\nLEFT JOIN \"%s\" AS c ON (e.edge_code = c.edge_code)\n" - "WHERE c.edge_code IS NULL\n", sqlview, - sql_edges, sql_faces_edges, sql_edges, - sql_curves); - free (sqlview); - free (sql_edges); - free (sql_faces_edges); - free (sql_curves); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) +/* SQL function: +/ SplitRight(BLOBencoded input, BLOBencoded blade) +/ +/ Returns a collection of geometries resulting by splitting a geometry [right half] +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr input = NULL; + gaiaGeomCollPtr blade = NULL; + gaiaGeomCollPtr result; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; -} - -static int -create_check_edges_from_to (sqlite3 * sqlite, const char *view, - const char *edges, const char *nodes) -{ -/* creating the Edges/Nodes [from/to] VIEW */ - char skeleton[2048]; - char *sql_statement; - char *sql_edges; - char *sql_nodes; - char *sqlview; - int ret; - char *err_msg = NULL; - sqlview = gaiaDoubleQuotedSql (view); - sql_edges = gaiaDoubleQuotedSql (edges); - sql_nodes = gaiaDoubleQuotedSql (nodes); - strcpy (skeleton, "CREATE VIEW \"%s\" AS\n"); - strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); - strcat (skeleton, " n.node_code AS node_code,\n"); - strcat (skeleton, "'Mismatching coords' AS error_cause\n"); - strcat (skeleton, "FROM \"%s\" AS e\n"); - strcat (skeleton, "JOIN \"%s\" AS n ON "); - strcat (skeleton, "(e.node_from_code = n.node_code)\n"); - strcat (skeleton, - "WHERE ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n"); - strcat (skeleton, "UNION\n"); - strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); - strcat (skeleton, " n.node_code AS node_code,\n"); - strcat (skeleton, " 'Mismatching coords' AS error_cause\n"); - strcat (skeleton, "FROM \"%s\" AS e\n"); - strcat (skeleton, "JOIN \"%s\" AS n ON "); - strcat (skeleton, "(e.node_to_code = n.node_code)\n"); - strcat (skeleton, - "WHERE ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n"); - strcat (skeleton, "UNION\n"); - strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); - strcat (skeleton, " n.node_code AS node_code,\n"); - strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); - strcat (skeleton, "FROM \"%s\" AS e\n"); - strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); - strcat (skeleton, "(e.node_from_code = n.node_code)\n"); - strcat (skeleton, "WHERE n.node_id IS NULL\n"); - strcat (skeleton, "UNION\n"); - strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); - strcat (skeleton, " n.node_code AS node_code,\n"); - strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); - strcat (skeleton, "FROM \"%s\" AS e\n"); - strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); - strcat (skeleton, "(e.node_to_code = n.node_code)\n"); - strcat (skeleton, "WHERE n.node_id IS NULL\n"); - sql_statement = sqlite3_mprintf (skeleton, sqlview, - sql_edges, sql_nodes, sql_edges, sql_nodes, - sql_edges, sql_nodes, sql_edges, - sql_nodes); - free (sqlview); - free (sql_edges); - free (sql_nodes); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; -} - -static int -create_topo_master (sqlite3 * sqlite) -{ -/* creating the topo_master table */ - char sql[2048]; - int ret; - char *err_msg = NULL; - -/* creating the table */ - strcpy (sql, "CREATE TABLE topology_master (\n"); - strcat (sql, "nodes TEXT NOT NULL,\n"); - strcat (sql, "edges TEXT NOT NULL,\n"); - strcat (sql, "faces TEXT NOT NULL,\n"); - strcat (sql, "faces_edges TEXT NOT NULL,\n"); - strcat (sql, "curves TEXT NOT NULL,\n"); - strcat (sql, "surfaces TEXT NOT NULL,\n"); - strcat (sql, "check_node_ids TEXT NOT NULL,\n"); - strcat (sql, "check_node_geoms TEXT NOT NULL,\n"); - strcat (sql, "check_edge_ids TEXT NOT NULL,\n"); - strcat (sql, "check_edge_geoms TEXT NOT NULL,\n"); - strcat (sql, "check_edge_node_geoms TEXT NOT NULL,\n"); - strcat (sql, "check_face_ids TEXT NOT NULL,\n"); - strcat (sql, "faces_resolved TEXT NOT NULL,\n"); - strcat (sql, "curves_resolved TEXT NOT NULL,\n"); - strcat (sql, "surfaces_resolved TEXT NOT NULL,\n"); - strcat (sql, "dangling_nodes TEXT NOT NULL,\n"); - strcat (sql, "dangling_edges TEXT NOT NULL,\n"); - strcat (sql, "check_edges_from_to TEXT NOT NULL,\n"); - strcat (sql, "coord_dimension TEXT NOT NULL,\n"); - strcat (sql, "srid INTEGER NOT NULL,\n"); - strcat (sql, "CONSTRAINT fk_topo_master FOREIGN KEY \n"); - strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); - ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (input == NULL) { - spatialite_e ("CREATE TABLE 'topology_master' error: %s\n", err_msg); - sqlite3_free (err_msg); - return 0; + sqlite3_result_null (context); + return; } - return 1; + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (blade == NULL) + { + gaiaFreeGeomColl (input); + sqlite3_result_null (context); + return; + } + else + { + result = gaiaSplitRight (input, blade); + if (result == NULL) + sqlite3_result_null (context); + else + { + /* builds the BLOB geometry to be returned */ + int len; + unsigned char *p_result = NULL; + result->Srid = input->Srid; + gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); + sqlite3_result_blob (context, p_result, len, free); + gaiaFreeGeomColl (result); + } + } + gaiaFreeGeomColl (input); + gaiaFreeGeomColl (blade); } static int -update_topo_master (sqlite3 * sqlite, const char *nodes, const char *edges, - const char *faces, const char *faces_edges, - const char *curves, const char *surfaces, - const char *check_nodes, const char *check_node_geoms, - const char *check_edges, const char *check_edge_geoms, - const char *check_edge_node_geoms, - const char *check_faces, const char *faces_res, - const char *curves_res, const char *surfaces_res, - const char *dangling_nodes, const char *dangling_edges, - const char *check_edges_from_to, int srid, int dims) +getXYSinglePoint (gaiaGeomCollPtr geom, double *x, double *y) { -/* updating the topo_master table */ - char *sql_statement; - int ret; - char *err_msg = NULL; - -/* inserting Topology data into MASTER */ - sql_statement = sqlite3_mprintf ("INSERT INTO topology_master " - "(nodes, edges, faces, faces_edges, curves, surfaces, check_node_ids, " - "check_node_geoms, check_edge_ids, check_edge_geoms, check_edge_node_geoms, " - "check_face_ids, faces_resolved, curves_resolved, surfaces_resolved, " - "dangling_nodes, dangling_edges, check_edges_from_to, coord_dimension, srid) " - "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d)", - nodes, edges, faces, faces_edges, curves, - surfaces, check_nodes, check_node_geoms, - check_edges, check_edge_geoms, - check_edge_node_geoms, check_faces, - faces_res, curves_res, surfaces_res, - dangling_nodes, dangling_edges, - check_edges_from_to, - (dims == GAIA_XY_Z) ? "XYZ" : "XY", srid); - ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); - sqlite3_free (sql_statement); - if (ret != SQLITE_OK) - { - spatialite_e ("INSERT INTO 'topology_master' error: %s\n", err_msg); - sqlite3_free (err_msg); - return 0; - } - return 1; +/* check if this geometry is a simple Point (returning 2D coords) */ + double z; + double m; + return getXYZMSinglePoint (geom, x, y, &z, &m); } static void -fnct_CreateTopologyTables (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_Azimuth (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ CreateTopologyTables(srid, coord_dims) -/ or -/ CreateTopologyTables(prefix, srid, coord_dims) +/ Azimuth(BLOBencoded pointA, BLOBencoded pointB) / -/ creates any Topology related table -/ returns 1 on success -/ 0 on failure +/ Returns the angle in radians from the horizontal of the vector +/ defined by pointA and pointB. +/ Angle is computed clockwise from down-to-up: on the clock: +/ 12=0; 3=PI/2; 6=PI; 9=3PI/2. +/ NULL is returned for invalid arguments */ - const char *prefix = "topo_"; - const unsigned char *txt_dims; - int srid = -1; - int dimension; - int dims = -1; - char *table_curves; - char *table_surfaces; - char *table_nodes; - char *table_edges; - char *table_faces; - char *table_faces_edges; - char *view_check_node_codes; - char *view_check_node_geoms; - char *view_check_edge_codes; - char *view_check_edge_geoms; - char *view_check_edge_node_geoms; - char *view_check_face_codes; - char *view_faces_resolved; - char *view_curves_resolved; - char *view_surfaces_resolved; - char *view_dangling_nodes; - char *view_dangling_edges; - char *view_edges_check_from_to; - const char *tables[20]; - int views[20]; - int *p_view; - const char **p_tbl; - int ok_table; - int create_master = 1; + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geom; + double x1; + double y1; + double x2; + double y2; + double a; + double b; + double rf; + double azimuth; + int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (argc == 3) + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) - { - spatialite_e - ("CreateTopologyTables() error: argument 1 [table_prefix] is not of the String type\n"); - sqlite3_result_int (context, 0); - return; - } - prefix = (char *) sqlite3_value_text (argv[0]); - if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) - { - spatialite_e - ("CreateTopologyTables() error: argument 2 [SRID] is not of the Integer type\n"); - sqlite3_result_int (context, 0); - return; - } - srid = sqlite3_value_int (argv[1]); - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - dimension = sqlite3_value_int (argv[2]); - if (dimension == 2) - dims = GAIA_XY; - if (dimension == 3) - dims = GAIA_XY_Z; - } - else if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) - { - txt_dims = sqlite3_value_text (argv[2]); - if (strcasecmp ((char *) txt_dims, "XY") == 0) - dims = GAIA_XY; - if (strcasecmp ((char *) txt_dims, "XYZ") == 0) - dims = GAIA_XY_Z; - } - else - { - spatialite_e - ("CreateTopologyTables() error: argument 3 [dimension] is not of the Integer or Text type\n"); - sqlite3_result_int (context, 0); - return; - } + sqlite3_result_null (context); + return; } - else + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) - { - spatialite_e - ("CreateTopologyTables() error: argument 1 [SRID] is not of the Integer type\n"); - sqlite3_result_int (context, 0); - return; - } - srid = sqlite3_value_int (argv[0]); - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - dimension = sqlite3_value_int (argv[1]); - if (dimension == 2) - dims = GAIA_XY; - if (dimension == 3) - dims = GAIA_XY_Z; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) - { - txt_dims = sqlite3_value_text (argv[1]); - if (strcasecmp ((char *) txt_dims, "XY") == 0) - dims = GAIA_XY; - if (strcasecmp ((char *) txt_dims, "XYZ") == 0) - dims = GAIA_XY_Z; - } - else - { - spatialite_e - ("CreateTopologyTables() error: argument 2 [dimension] is not of the Integer or Text type\n"); - sqlite3_result_int (context, 0); - return; - } + sqlite3_result_null (context); + return; } - if (dims == GAIA_XY || dims == GAIA_XY_Z) - ; - else + +/* retrieving and validating the first point */ + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) { - spatialite_e - ("CreateTopologyTables() error: [dimension] ILLEGAL VALUE\n"); - sqlite3_result_int (context, 0); + sqlite3_result_null (context); return; } - if (srid <= 0) + if (!getXYSinglePoint (geom, &x1, &y1)) { - spatialite_e ("CreateTopologyTables() error: [SRID] ILLEGAL VALUE\n"); - sqlite3_result_int (context, 0); + gaiaFreeGeomColl (geom); + sqlite3_result_null (context); return; } + srid = geom->Srid; + gaiaFreeGeomColl (geom); -/* checking Topology tables */ - tables[0] = "topology_master"; - views[0] = 0; - table_curves = sqlite3_mprintf ("%scurves", prefix); - tables[1] = table_curves; - views[1] = 0; - table_surfaces = sqlite3_mprintf ("%ssurfaces", prefix); - tables[2] = table_surfaces; - views[2] = 0; - table_nodes = sqlite3_mprintf ("%snodes", prefix); - tables[3] = table_nodes; - views[3] = 0; - table_edges = sqlite3_mprintf ("%sedges", prefix); - tables[4] = table_edges; - views[4] = 0; - table_faces = sqlite3_mprintf ("%sfaces", prefix); - tables[5] = table_faces; - views[5] = 0; - table_faces_edges = sqlite3_mprintf ("%sfaces_edges", prefix); - tables[6] = table_faces_edges; - views[6] = 0; - view_check_node_codes = - sqlite3_mprintf ("%snodes_check_dupl_codes", prefix); - tables[7] = view_check_node_codes; - views[7] = 1; - view_check_node_geoms = - sqlite3_mprintf ("%snodes_check_dupl_geoms", prefix); - tables[8] = view_check_node_geoms; - views[8] = 1; - view_check_edge_codes = - sqlite3_mprintf ("%sedges_check_dupl_codes", prefix); - tables[9] = view_check_edge_codes; - views[9] = 1; - view_check_edge_geoms = - sqlite3_mprintf ("%sedges_check_intersections", prefix); - tables[10] = view_check_edge_geoms; - views[10] = 1; - view_check_edge_node_geoms = - sqlite3_mprintf ("%sedges_check_nodes", prefix); - tables[11] = view_check_edge_node_geoms; - views[11] = 1; - view_check_face_codes = - sqlite3_mprintf ("%sfaces_check_dupl_codes", prefix); - tables[12] = view_check_face_codes; - views[12] = 1; - view_faces_resolved = sqlite3_mprintf ("%sfaces_resolved", prefix); - tables[13] = view_faces_resolved; - views[13] = 1; - view_curves_resolved = sqlite3_mprintf ("%scurves_resolved", prefix); - tables[14] = view_curves_resolved; - views[14] = 1; - view_surfaces_resolved = sqlite3_mprintf ("%ssurfaces_resolved", prefix); - tables[15] = view_surfaces_resolved; - views[15] = 1; - view_dangling_nodes = sqlite3_mprintf ("%sdangling_nodes", prefix); - tables[16] = view_dangling_nodes; - views[16] = 1; - view_dangling_edges = sqlite3_mprintf ("%sdangling_edges", prefix); - tables[17] = view_dangling_edges; - views[17] = 1; - view_edges_check_from_to = - sqlite3_mprintf ("%sedges_check_from_to", prefix); - tables[18] = view_edges_check_from_to; - views[18] = 1; - tables[19] = NULL; - p_view = views; - p_tbl = tables; - while (*p_tbl != NULL) +/* retrieving and validating the second point */ + p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) { - ok_table = check_topo_table (sqlite, *p_tbl, *p_view); - if (ok_table) - { - if (strcmp (*p_tbl, "topology_master") == 0) - create_master = 0; - else - { - spatialite_e - ("CreateTopologyTables() error: table '%s' already exists\n", - *p_tbl); - goto error; - } - } - p_tbl++; - p_view++; + sqlite3_result_null (context); + return; + } + if (!getXYSinglePoint (geom, &x2, &y2)) + { + gaiaFreeGeomColl (geom); + sqlite3_result_null (context); + return; } + gaiaFreeGeomColl (geom); -/* creating Topology tables */ - if (create_master) + if (getEllipsoidParams (sqlite, srid, &a, &b, &rf)) { - if (!create_topo_master (sqlite)) - goto error; + if (gaiaEllipsoidAzimuth (x1, y1, x2, y2, a, b, &azimuth)) + sqlite3_result_double (context, azimuth); + else + sqlite3_result_null (context); + return; } - if (!create_topo_nodes (sqlite, table_nodes, srid, dims)) - goto error; - if (!create_topo_edges (sqlite, table_edges, srid, dims)) - goto error; - if (!create_topo_faces (sqlite, table_faces)) - goto error; - if (!create_topo_faces_edges (sqlite, table_faces_edges, table_faces)) - goto error; - if (!create_topo_curves (sqlite, table_curves)) - goto error; - if (!create_topo_surfaces (sqlite, table_surfaces)) - goto error; - if (!create_check_node_codes (sqlite, view_check_node_codes, table_nodes)) - goto error; - if (!create_check_node_geoms (sqlite, view_check_node_geoms, table_nodes)) - goto error; - if (!create_check_edge_codes (sqlite, view_check_edge_codes, table_edges)) - goto error; - if (!create_check_edge_geoms (sqlite, view_check_edge_geoms, table_edges)) - goto error; - if (!create_check_edge_node_geoms - (sqlite, view_check_edge_node_geoms, table_edges, table_nodes)) - goto error; - if (!create_check_face_codes (sqlite, view_check_face_codes, table_faces)) - goto error; - if (!create_faces_resolved - (sqlite, view_faces_resolved, table_faces, table_faces_edges, - table_edges)) - goto error; - if (!create_curves_resolved - (sqlite, view_curves_resolved, table_curves, table_edges)) - goto error; - if (!create_surfaces_resolved - (sqlite, view_surfaces_resolved, table_surfaces, view_faces_resolved)) - goto error; - if (!create_dangling_nodes - (sqlite, view_dangling_nodes, table_nodes, table_edges)) - goto error; - if (!create_dangling_edges - (sqlite, view_dangling_edges, table_edges, table_faces_edges, - table_curves)) - goto error; - if (!create_check_edges_from_to - (sqlite, view_edges_check_from_to, table_edges, table_nodes)) - goto error; - if (!update_topo_master - (sqlite, table_nodes, table_edges, table_faces, table_faces_edges, - table_curves, table_surfaces, view_check_node_codes, - view_check_node_geoms, view_check_edge_codes, view_check_edge_geoms, - view_check_edge_node_geoms, view_check_face_codes, view_faces_resolved, - view_curves_resolved, view_surfaces_resolved, view_dangling_nodes, - view_dangling_edges, view_edges_check_from_to, srid, dims)) - goto error; - updateSpatiaLiteHistory (sqlite, "*** TOPOLOGY ***", NULL, - "Topology tables successfully created"); - sqlite3_result_int (context, 1); - sqlite3_free (table_curves); - sqlite3_free (table_surfaces); - sqlite3_free (table_nodes); - sqlite3_free (table_edges); - sqlite3_free (table_faces); - sqlite3_free (table_faces_edges); - sqlite3_free (view_check_node_codes); - sqlite3_free (view_check_node_geoms); - sqlite3_free (view_check_edge_codes); - sqlite3_free (view_check_edge_geoms); - sqlite3_free (view_check_edge_node_geoms); - sqlite3_free (view_check_face_codes); - sqlite3_free (view_faces_resolved); - sqlite3_free (view_curves_resolved); - sqlite3_free (view_surfaces_resolved); - sqlite3_free (view_dangling_nodes); - sqlite3_free (view_dangling_edges); - sqlite3_free (view_edges_check_from_to); - return; - error: - sqlite3_result_int (context, 0); - sqlite3_free (table_curves); - sqlite3_free (table_surfaces); - sqlite3_free (table_nodes); - sqlite3_free (table_edges); - sqlite3_free (table_faces); - sqlite3_free (table_faces_edges); - sqlite3_free (view_check_node_codes); - sqlite3_free (view_check_node_geoms); - sqlite3_free (view_check_edge_codes); - sqlite3_free (view_check_edge_geoms); - sqlite3_free (view_check_edge_node_geoms); - sqlite3_free (view_check_face_codes); - sqlite3_free (view_faces_resolved); - sqlite3_free (view_curves_resolved); - sqlite3_free (view_surfaces_resolved); - sqlite3_free (view_dangling_nodes); - sqlite3_free (view_dangling_edges); - sqlite3_free (view_edges_check_from_to); - return; + if (gaiaAzimuth (x1, y1, x2, y2, &azimuth)) + sqlite3_result_double (context, azimuth); + else + sqlite3_result_null (context); } static void -fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Project (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ OffsetCurve(BLOBencoded geometry, radius, left-or-right-side) +/ Project(BLOBencoded point, distance Double, bearing Double) / -/ returns a new geometry representing the OFFSET-CURVE for current geometry -/ [a LINESTRING is expected] -/ or NULL if any error is encountered +/ Returns a new Point projected from a start point given a +/ distance and a bearing. +/ - Point is expected to be Long/Lat +/ - Distance is in meters +/ - Bearing is in radians; on the clock: +/ 12=0; 3=PI/2; 6=PI; 9=3PI/2. +/ NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - double radius; - int int_value; - int left_right; + gaiaGeomCollPtr geom; + double x1; + double y1; + double x2; + double y2; + int ival; + double distance; + double azimuth; + double a; + double b; + double rf; + int srid; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -17057,123 +23158,260 @@ fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv) return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - radius = sqlite3_value_double (argv[1]); + distance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - int_value = sqlite3_value_int (argv[1]); - radius = int_value; + ival = sqlite3_value_int (argv[1]); + distance = ival; } else { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - left_right = sqlite3_value_int (argv[2]); + if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) + azimuth = sqlite3_value_double (argv[2]); + else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + ival = sqlite3_value_int (argv[2]); + azimuth = ival; + } else { sqlite3_result_null (context); return; } + +/* retrieving and validating the start point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) { - result = gaiaOffsetCurve (geo, radius, 16, left_right); - if (!result) + sqlite3_result_null (context); + return; + } + if (!getXYSinglePoint (geom, &x1, &y1)) + { + gaiaFreeGeomColl (geom); + sqlite3_result_null (context); + return; + } + srid = geom->Srid; + gaiaFreeGeomColl (geom); + if (!getEllipsoidParams (sqlite, srid, &a, &b, &rf)) + { + sqlite3_result_null (context); + return; + } + if (distance == 0.0) + { + /* returning the Start Point */ + gaiaMakePoint (x1, y1, srid, &p_blob, &n_bytes); + if (!p_blob) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_blob, n_bytes, free); + return; + } + + if (gaiaProjectedPoint (x1, y1, a, b, distance, azimuth, &x2, &y2)) + { + gaiaMakePoint (x2, y2, srid, &p_blob, &n_bytes); + if (!p_blob) sqlite3_result_null (context); + else + sqlite3_result_blob (context, p_blob, n_bytes, free); + } + else + sqlite3_result_null (context); +} + +static void +fnct_GeoHash (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ GeoHash(BLOBencoded geom) +/ GeoHash(BLOBencoded geom, Integer precision) +/ +/ Returns a GeoHash representation for input geometry +/ (expected to be in longitude/latitude coords) +/ NULL is returned for invalid arguments +*/ + unsigned char *p_blob; + int n_bytes; + gaiaGeomCollPtr geom; + int precision = 0; + char *geo_hash; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (argc == 2) + { + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + precision = sqlite3_value_int (argv[1]); else { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + sqlite3_result_null (context); + return; + } + } + + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) + { + sqlite3_result_null (context); + return; + } + geo_hash = gaiaGeoHash (geom, precision); + if (geo_hash != NULL) + { + int len = strlen (geo_hash); + sqlite3_result_text (context, geo_hash, len, free); + } + else + sqlite3_result_null (context); + gaiaFreeGeomColl (geom); +} + +static char * +get_srs_by_srid (sqlite3 * sqlite, int srid, int longsrs) +{ +/* retrieves the short- or long- srs reference for the given srid */ + char sql[1024]; + int ret; + const char *name; + int i; + char **results; + int rows; + int columns; + int len; + char *srs = NULL; + + if (longsrs) + sprintf (sql, + "SELECT 'urn:ogc:def:crs:' || auth_name || '::' || auth_srid " + "FROM spatial_ref_sys WHERE srid = %d", srid); + else + sprintf (sql, "SELECT auth_name || ':' || auth_srid " + "FROM spatial_ref_sys WHERE srid = %d", srid); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + if (ret != SQLITE_OK) + return NULL; + if (rows < 1) + ; + else + { + for (i = 1; i <= rows; i++) + { + name = results[(i * columns) + 0]; + len = strlen (name); + srs = malloc (len + 1); + strcpy (srs, name); } } - gaiaFreeGeomColl (geo); + sqlite3_free_table (results); + return srs; } static void -fnct_SingleSidedBuffer (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ SingleSidedBuffer(BLOBencoded geometry, radius, left-or-right-side) +/ AsX3D(BLOBencoded geom) +/ AsX3D(BLOBencoded geom, Integer precision) +/ AsX3D(BLOBencoded geom, Integer precision, Integer options) +/ AsX3D(BLOBencoded geom, Integer precision, Integer options, Text refid) / -/ returns a new geometry representing the SingleSided BUFFER -/ for current geometry [a LINESTRING is expected] -/ or NULL if any error is encountered +/ Returns an X3D representation for input geometry +/ NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - double radius; - int int_value; - int left_right; + gaiaGeomCollPtr geom; + int precision = 15; + int options = 0; + const char *refid = ""; + char *srs = NULL; + char *x3d; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - radius = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + if (argc >= 2) { - int_value = sqlite3_value_int (argv[1]); - radius = int_value; + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + precision = sqlite3_value_int (argv[1]); + else + { + sqlite3_result_null (context); + return; + } } - else + if (argc >= 3) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + options = sqlite3_value_int (argv[2]); + else + { + sqlite3_result_null (context); + return; + } } - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - left_right = sqlite3_value_int (argv[2]); - else + if (argc == 4) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) + refid = (const char *) sqlite3_value_text (argv[3]); + else + { + sqlite3_result_null (context); + return; + } } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (geom == NULL) { - result = gaiaSingleSidedBuffer (geo, radius, 16, left_right); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + if (geom->Srid > 0) + { + int longshort = 0; + if (options & 1) + longshort = 1; + srs = get_srs_by_srid (sqlite, geom->Srid, longshort); + } + x3d = gaiaAsX3D (geom, srs, precision, options, refid); + if (x3d != NULL) + { + int len = strlen (x3d); + sqlite3_result_text (context, x3d, len, free); + } + else + sqlite3_result_null (context); + gaiaFreeGeomColl (geom); + if (srs) + free (srs); } static void -fnct_HausdorffDistance (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ HausdorffDistance(BLOBencoded geom1, BLOBencoded geom2) +/ 3DDistance(BLOBencoded geom1, BLOBencoded geom2) / -/ returns the discrete Hausdorff distance between GEOM-1 and GEOM-2 +/ returns the 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; @@ -17202,30 +23440,30 @@ fnct_HausdorffDistance (sqlite3_context * context, int argc, sqlite3_result_null (context); else { - ret = gaiaHausdorffDistance (geo1, geo2, &dist); + ret = gaia3DDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); - sqlite3_result_double (context, dist); + else + sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ SharedPaths(BLOBencoded geometry1, BLOBencoded geometry2) +/ MaxDistance(BLOBencoded geom1, BLOBencoded geom2) / -/ returns a new geometry representing common (shared) Edges -/ [two LINESTRINGs/MULTILINESTRINGs are expected] -/ or NULL if any error is encountered +/ returns the max 2D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; + double dist; + int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -17243,53 +23481,43 @@ fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv) p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo1 == NULL || geo2 == NULL) + if (!geo1 || !geo2) sqlite3_result_null (context); else { - result = gaiaSharedPaths (geo1, geo2); - if (!result) + ret = gaiaMaxDistance (geo1, geo2, &dist); + if (!ret) sqlite3_result_null (context); else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo1->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Covers(BLOBencoded geom1, BLOBencoded geom2) +/ 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2) / -/ returns: -/ 1 if GEOM-1 "spatially covers" GEOM-2 -/ 0 otherwise -/ or -1 if any error is encountered +/ returns the max 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; + double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); @@ -17299,1686 +23527,1827 @@ fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv) n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + sqlite3_result_null (context); else { - ret = gaiaGeomCollCovers (geo1, geo2); - sqlite3_result_int (context, ret); + ret = gaia3DMaxDistance (geo1, geo2, &dist); + if (!ret) + sqlite3_result_null (context); + else + sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void -fnct_CoveredBy (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_Node (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ CoveredBy(BLOBencoded geom1, BLOBencoded geom2) +/ ST_Node(BLOBencoded linestring(s)) / -/ returns: -/ 1 if GEOM-1 is "spatially covered by" GEOM-2 -/ 0 otherwise -/ or -1 if any error is encountered +/ Returns a new new (Multi)Linestring by re-noding the input linestring(s) +/ NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - int ret; + gaiaGeomCollPtr input; + gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + +/* retrieving the input geometry */ + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (input == NULL) { - sqlite3_result_int (context, -1); + sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_int (context, -1); + + result = gaiaNodeLines (input); + if (result != NULL) + { + gaiaToSpatiaLiteBlobWkb (result, &p_blob, &n_bytes); + sqlite3_result_blob (context, p_blob, n_bytes, free); + gaiaFreeGeomColl (result); + } else + sqlite3_result_null (context); + gaiaFreeGeomColl (input); +} + +static int +check_all_linestrings (gaiaGeomCollPtr in) +{ +/* check id this is a collection of Linestrings */ + int pts = 0; + int lns = 0; + int pgs = 0; + gaiaPointPtr pt; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + + if (in == NULL) + return 0; +/* checking if we have any POINT */ + pt = in->FirstPoint; + while (pt) { - ret = gaiaGeomCollCoveredBy (geo1, geo2); - sqlite3_result_int (context, ret); + pts++; + pt = pt->Next; + } + if (pts > 0) + return 0; +/* checking if we have any POLYGON */ + pg = in->FirstPolygon; + while (pg) + { + pgs++; + pg = pg->Next; + } + if (pgs > 0) + return 0; +/* checking if we have any LINESTRING */ + ln = in->FirstLinestring; + while (ln) + { + lns++; + ln = ln->Next; + } + if (lns == 0) + return 0; + return 1; +} + +static gaiaGeomCollPtr +get_nodes (gaiaGeomCollPtr in) +{ +/* extracts all Nodes (Linestring extermities) */ + int iv; + double x; + double y; + double m; + double z; + gaiaLinestringPtr ln; + gaiaGeomCollPtr out; + + if (in == NULL) + return NULL; + + if (in->DimensionModel == GAIA_XY_M) + out = gaiaAllocGeomCollXYM (); + else if (in->DimensionModel == GAIA_XY_Z) + out = gaiaAllocGeomCollXYZ (); + else if (in->DimensionModel == GAIA_XY_Z_M) + out = gaiaAllocGeomCollXYZM (); + else + out = gaiaAllocGeomColl (); + out->Srid = in->Srid; + + ln = in->FirstLinestring; + while (ln) + { + /* saving the extreme points - Start */ + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); + gaiaAddPointToGeomCollXYZ (out, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); + gaiaAddPointToGeomCollXYM (out, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); + gaiaAddPointToGeomCollXYZM (out, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, 0, &x, &y); + gaiaAddPointToGeomColl (out, x, y); + } + /* saving the extreme points - End */ + iv = ln->Points - 1; + if (ln->DimensionModel == GAIA_XY_Z) + { + gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); + gaiaAddPointToGeomCollXYZ (out, x, y, z); + } + else if (ln->DimensionModel == GAIA_XY_M) + { + gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); + gaiaAddPointToGeomCollXYM (out, x, y, m); + } + else if (ln->DimensionModel == GAIA_XY_Z_M) + { + gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); + gaiaAddPointToGeomCollXYZM (out, x, y, z, m); + } + else + { + gaiaGetPoint (ln->Coords, iv, &x, &y); + gaiaAddPointToGeomColl (out, x, y); + } + ln = ln->Next; } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + + return out; } -static void -fnct_LineInterpolatePoint (sqlite3_context * context, int argc, - sqlite3_value ** argv) +static int +point_is_defined (gaiaPointPtr in, gaiaGeomCollPtr geom) { -/* SQL function: -/ LineInterpolatePoint(BLOBencoded geometry1, double fraction) -/ -/ returns a new geometry representing a point interpolated along a line -/ [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] -/ or NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int int_value; - double fraction; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - fraction = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) +/* checking if a Point is already defined */ + gaiaPointPtr pt = geom->FirstPoint; + while (pt) { - int_value = sqlite3_value_int (argv[1]); - fraction = int_value; + if (geom->DimensionModel == GAIA_XY_Z) + { + if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z) + return 1; + } + else if (geom->DimensionModel == GAIA_XY_M) + { + if (pt->X == in->X && pt->Y == in->Y && pt->M == in->M) + return 1; + } + else if (geom->DimensionModel == GAIA_XY_Z_M) + { + if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z + && pt->M == in->M) + return 1; + } + else + { + if (pt->X == in->X && pt->Y == in->Y) + return 1; + } + pt = pt->Next; } + return 0; +} + +static gaiaGeomCollPtr +get_self_intersections (gaiaGeomCollPtr in_old, gaiaGeomCollPtr in_new) +{ +/* extracting the self-intersection points */ + gaiaPointPtr pt; + gaiaGeomCollPtr out; + + if (in_old->DimensionModel == GAIA_XY_M) + out = gaiaAllocGeomCollXYM (); + else if (in_old->DimensionModel == GAIA_XY_Z) + out = gaiaAllocGeomCollXYZ (); + else if (in_old->DimensionModel == GAIA_XY_Z_M) + out = gaiaAllocGeomCollXYZM (); else + out = gaiaAllocGeomColl (); + out->Srid = in_old->Srid; + + pt = in_new->FirstPoint; + while (pt) { - sqlite3_result_null (context); - return; + int ok1 = point_is_defined (pt, in_old); + int ok2 = point_is_defined (pt, out); + if (!ok1 && !ok2) + { + /* inserting a Point into the result collection */ + if (out->DimensionModel == GAIA_XY_Z) + gaiaAddPointToGeomCollXYZ (out, pt->X, pt->Y, pt->Z); + else if (out->DimensionModel == GAIA_XY_M) + gaiaAddPointToGeomCollXYM (out, pt->X, pt->Y, pt->M); + else if (out->DimensionModel == GAIA_XY_Z_M) + gaiaAddPointToGeomCollXYZM (out, pt->X, pt->Y, pt->Z, + pt->M); + else + gaiaAddPointToGeomColl (out, pt->X, pt->Y); + } + pt = pt->Next; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + + if (out->FirstPoint == NULL) { - result = gaiaLineInterpolatePoint (geo, fraction); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + /* no self-intersections were found */ + gaiaFreeGeomColl (out); + return NULL; } - gaiaFreeGeomColl (geo); + + return out; } static void -fnct_LineInterpolateEquidistantPoints (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_SelfIntersections (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ LineInterpolateEquidistantPointS(BLOBencoded geometry1, double distance) +/ ST_SelfIntersections(BLOBencoded linestring(s)) / -/ returns a new geometry representing a point interpolated along a line -/ [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] -/ or NULL if any error is encountered +/ Returns a MultiPoint Geometry representing any self-intersection +/ found within the input geometry [linestring(s)] +/ NULL is returned for invalid arguments, or when no self-intersections +/ were found */ unsigned char *p_blob; int n_bytes; - int int_value; - double distance; - gaiaGeomCollPtr geo = NULL; + gaiaGeomCollPtr input; + gaiaGeomCollPtr noded; gaiaGeomCollPtr result; + gaiaGeomCollPtr nodes_in; + gaiaGeomCollPtr nodes_out; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - distance = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + +/* retrieving the input geometry */ + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (input == NULL) { - int_value = sqlite3_value_int (argv[1]); - distance = int_value; + sqlite3_result_null (context); + return; } - else + +/* checking the input (Linestrings only) */ + if (!check_all_linestrings (input)) { + gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); +/* extracting all input nodes */ + nodes_in = get_nodes (input); + + noded = gaiaNodeLines (input); + gaiaFreeGeomColl (input); +/* extracting all output nodes */ + nodes_out = get_nodes (noded); + gaiaFreeGeomColl (noded); + +/* identifying the intersections */ + result = get_self_intersections (nodes_in, nodes_out); + gaiaFreeGeomColl (nodes_in); + gaiaFreeGeomColl (nodes_out); + if (result != NULL) + { + result->DeclaredType = GAIA_MULTIPOINT; + gaiaToSpatiaLiteBlobWkb (result, &p_blob, &n_bytes); + sqlite3_result_blob (context, p_blob, n_bytes, free); + gaiaFreeGeomColl (result); + } else - { - result = gaiaLineInterpolateEquidistantPoints (geo, distance); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_null (context); +} + +#endif /* end LWGEOM support */ + +#endif /* end including GEOS */ + +static int +text2double (const unsigned char *str, double *val) +{ +/* checks for a valid number, eventually returning a DOUBLE */ + int err = 0; + int sign = 0; + int decimal = 0; + int exp = 0; + int expsign = 0; + const unsigned char *p = str; + while (*p != '\0') + { + switch (*p) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + break; + case '-': + case '+': + if (!exp) + sign++; + else + expsign++; + case '.': + decimal++; + break; + case 'e': + case 'E': + exp++; + break; + default: + err = 1; + break; + }; + p++; } - gaiaFreeGeomColl (geo); + if (sign > 1 || expsign > 1 || decimal > 1 || (exp == 0 && expsign > 0)) + err = 1; + if (err) + return 0; + *val = atof ((const char *) str); + return 1; } static void -fnct_LineLocatePoint (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_CastToInteger (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ LineLocatePoint(BLOBencoded geometry1, BLOBencoded geometry2) -/ -/ return a number (between 0.0 and 1.0) representing the location -/ of the closest point on LineString to the given Point, as a fraction -/ of total 2d line length +/ CastToInteger(generic value) / -/ - geom1 is expected to represent some LINESTRING -/ - geom2 is expected to represent some POINT +/ returns an INTEGER value [if conversion is possible] +/ or NULL in any other case */ - unsigned char *p_blob; - int n_bytes; - double fraction; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); + sqlite3_int64 val = sqlite3_value_int64 (argv[0]); + sqlite3_result_int64 (context, val); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - sqlite3_result_null (context); + sqlite3_int64 val; + double dval = sqlite3_value_double (argv[0]); + double diff = dval - floor (dval); + val = (sqlite3_int64) sqlite3_value_double (argv[0]); + if (diff >= 0.5) + val++; + sqlite3_result_int64 (context, val); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo1 == NULL || geo2 == NULL) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { - fraction = gaiaLineLocatePoint (geo1, geo2); - if (fraction >= 0.0 && fraction <= 1.0) - sqlite3_result_double (context, fraction); - else - sqlite3_result_null (context); + const unsigned char *txt = sqlite3_value_text (argv[0]); + double dval; + if (text2double (txt, &dval)) + { + sqlite3_int64 val; + double dval = sqlite3_value_double (argv[0]); + double diff = dval - floor (dval); + val = (sqlite3_int64) sqlite3_value_double (argv[0]); + if (diff >= 0.5) + val++; + sqlite3_result_int64 (context, val); + return; + } } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + sqlite3_result_null (context); } static void -fnct_LineSubstring (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToDouble (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ LineSubstring(BLOBencoded geometry1, double start_fraction, double end_fraction) +/ CastToDouble(generic value) / -/ Return a Linestring being a substring of the input one starting and ending at -/ the given fractions of total 2d length [fractions ranging from 0.0 to 1.0] -/ or NULL if any error is encountered +/ returns a DOUBLE value [if conversion is possible] +/ or NULL in any other case */ - unsigned char *p_blob; - int n_bytes; - int int_value; - double fraction1; - double fraction2; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - fraction1 = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - fraction1 = int_value; - } - else + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); + double val = (double) sqlite3_value_int64 (argv[0]); + sqlite3_result_double (context, val); return; } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - fraction2 = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - fraction2 = int_value; - } - else + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - sqlite3_result_null (context); + double val = sqlite3_value_double (argv[0]); + sqlite3_result_double (context, val); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else - { - result = gaiaLineSubstring (geo, fraction1, fraction2); - if (!result) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + { + const unsigned char *txt = sqlite3_value_text (argv[0]); + double val; + if (text2double (txt, &val)) + { + sqlite3_result_double (context, val); + return; } } - gaiaFreeGeomColl (geo); + sqlite3_result_null (context); } static void -fnct_ClosestPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ClosestPoint(BLOBencoded geometry1, BLOBencoded geometry2) +/ CastToText(generic value) +/ CastToText(generic value, Integer left-aligned-length) / -/ Returns the Point on geom1 that is closest to geom2 -/ NULL is returned for invalid arguments (or if distance is ZERO) +/ returns a TEXT value [if conversion is possible] +/ or NULL in any other case */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; + char *txt; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); + char format[32]; + const char *fmt = FRMT64; + sqlite3_int64 val; + if (argc == 2) + { + int length; + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + length = sqlite3_value_int (argv[1]); + if (length > 0) + { + sprintf (format, "%%0%d" FRMT64_WO_PCT, length); + fmt = format; + } + } + val = sqlite3_value_int64 (argv[0]); + txt = sqlite3_mprintf (fmt, val); + sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo1 == NULL || geo2 == NULL) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - result = gaiaShortestLine (geo1, geo2); - if (result == NULL) - sqlite3_result_null (context); - else if (result->FirstLinestring == NULL) - { - gaiaFreeGeomColl (result); - sqlite3_result_null (context); - } - else + int i; + int len; + double val = sqlite3_value_double (argv[0]); + char format[32]; + const char *fmt = "%1.18f"; + if (argc == 2) { - /* builds the BLOB geometry to be returned */ - double x; - double y; - double z; - double m; - int len; - unsigned char *p_result = NULL; - gaiaGeomCollPtr pt = NULL; - gaiaLinestringPtr ln = result->FirstLinestring; - if (ln->DimensionModel == GAIA_XY_Z) - pt = gaiaAllocGeomCollXYZ (); - else if (ln->DimensionModel == GAIA_XY_M) - pt = gaiaAllocGeomCollXYM (); - else if (ln->DimensionModel == GAIA_XY_Z_M) - pt = gaiaAllocGeomCollXYZM (); - else - pt = gaiaAllocGeomColl (); - if (ln->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); - gaiaAddPointToGeomCollXYZ (pt, x, y, z); - } - else if (ln->DimensionModel == GAIA_XY_M) + int length; + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); - gaiaAddPointToGeomCollXYM (pt, x, y, m); + sqlite3_result_null (context); + return; } - else if (ln->DimensionModel == GAIA_XY_Z_M) + length = sqlite3_value_int (argv[1]); + if (length > 0) { - gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); - gaiaAddPointToGeomCollXYZM (pt, x, y, z, m); + sprintf (format, "%%0%d.18f", length + 19); + fmt = format; } - else + } + txt = sqlite3_mprintf (fmt, val); + len = strlen (txt); + for (i = len - 1; i > 0; i--) + { + /* suppressing meaningless trailing zeroes */ + if (txt[i] >= '1' && txt[i] <= '9') + break; + if (txt[i] == '.') { - gaiaGetPoint (ln->Coords, 0, &x, &y); - gaiaAddPointToGeomColl (pt, x, y); + txt[i + 1] = '0'; + break; } - pt->Srid = geo1->Srid; - gaiaToSpatiaLiteBlobWkb (pt, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - gaiaFreeGeomColl (pt); + if (txt[i] == '0') + txt[i] = '\0'; } + sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); + return; } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + { + int n_bytes; + txt = (char *) sqlite3_value_text (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + sqlite3_result_text (context, txt, n_bytes, SQLITE_TRANSIENT); + return; + } + sqlite3_result_null (context); +} + +static int +parseHexByte (unsigned char hi, unsigned char lo, unsigned char *val) +{ +/* converting a byte for its Hex representation */ + unsigned char x; + switch (hi) + { + case '0': + x = 0; + break; + case '1': + x = 16; + break; + case '2': + x = 16 * 2; + break; + case '3': + x = 16 * 3; + break; + case '4': + x = 16 * 4; + break; + case '5': + x = 16 * 5; + break; + case '6': + x = 16 * 6; + break; + case '7': + x = 16 * 7; + break; + case '8': + x = 16 * 8; + break; + case '9': + x = 16 * 9; + break; + case 'a': + case 'A': + x = 16 * 10; + break; + case 'b': + case 'B': + x = 16 * 11; + break; + case 'c': + case 'C': + x = 16 * 12; + break; + case 'd': + case 'D': + x = 16 * 13; + break; + case 'e': + case 'E': + x = 16 * 14; + break; + case 'f': + case 'F': + x = 16 * 15; + break; + default: + return 0; + }; + switch (lo) + { + case '0': + x += 0; + break; + case '1': + x += 1; + break; + case '2': + x += 2; + break; + case '3': + x += 3; + break; + case '4': + x += 4; + break; + case '5': + x += 5; + break; + case '6': + x += 6; + break; + case '7': + x += 7; + break; + case '8': + x += 8; + break; + case '9': + x += 9; + break; + case 'a': + case 'A': + x += 10; + break; + case 'b': + case 'B': + x += 11; + break; + case 'c': + case 'C': + x += 12; + break; + case 'd': + case 'D': + x += 13; + break; + case 'e': + case 'E': + x += 14; + break; + case 'f': + case 'F': + x += 15; + break; + default: + return 0; + }; + *val = x; + return 1; +} + +static int +parseHexString (const unsigned char *in, int in_len, unsigned char **out, + int *out_len) +{ +/* parsing an Hexadecimal string */ + unsigned char *buf; + unsigned char *p_out; + unsigned char byteval; + int i; + int len; + *out = NULL; + *out_len = 0; + if (in == NULL) + return 0; + len = in_len / 2; + if (len * 2 != in_len) /* # digits is an odd number */ + return 0; + buf = malloc (len); + p_out = buf; + for (i = 0; i < in_len; i += 2) + { + if (!parseHexByte (in[i], in[i + 1], &byteval)) + goto error; + *p_out++ = byteval; + } + *out = buf; + *out_len = len; + return 1; + error: + free (buf); + return 0; } static void -fnct_ShortestLine (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CastToBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ShortestLine(BLOBencoded geometry1, BLOBencoded geometry2) +/ CastToBlob(generic value) +/ or +/ CastToBlob(generic value, boolen hex_input) / -/ Returns the shortest line between two geometries -/ NULL is returned for invalid arguments (or if distance is ZERO) +/ returns a BLOB value [if conversion is possible] +/ or NULL in any other case */ - unsigned char *p_blob; + const unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; + int is_hex = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (argc == 2) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } + is_hex = sqlite3_value_int (argv[1]); } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { - sqlite3_result_null (context); + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (is_hex) + { + /* attempting to convert Hexadecimal input */ + unsigned char *blob; + int bytes; + if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_blob (context, blob, bytes, free); + return; + } + sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo1 == NULL || geo2 == NULL) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { - result = gaiaShortestLine (geo1, geo2); - sqlite3_result_null (context); - if (!result) - sqlite3_result_null (context); - else + p_blob = sqlite3_value_text (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (is_hex) { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo1->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + /* attempting to convert Hexadecimal input */ + unsigned char *blob; + int bytes; + if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_blob (context, blob, bytes, free); + return; } + sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); + return; + } + sqlite3_result_null (context); +} + +static void +fnct_ForceAsNull (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ForceAsNull(generic val1, generic val2) +/ +/ returns a NULL value if val1 and val2 are equal +/ (and exactly of the same type) +/ return val1 in any other case +*/ + int type1; + int type2; + const unsigned char *p_blob; + int n_bytes; + const unsigned char *p_blob2; + int n_bytes2; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + type1 = sqlite3_value_type (argv[0]); + type2 = sqlite3_value_type (argv[1]); + if (type1 == type2) + { + switch (type1) + { + case SQLITE_INTEGER: + if (sqlite3_value_int64 (argv[0]) == + sqlite3_value_int64 (argv[1])) + { + sqlite3_result_null (context); + return; + } + break; + case SQLITE_FLOAT: + if (sqlite3_value_double (argv[0]) == + sqlite3_value_double (argv[1])) + { + sqlite3_result_null (context); + return; + } + break; + case SQLITE_TEXT: + p_blob = sqlite3_value_text (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + p_blob2 = sqlite3_value_text (argv[1]); + n_bytes2 = sqlite3_value_bytes (argv[1]); + if (n_bytes == n_bytes2) + { + if (strcasecmp + ((const char *) p_blob, (const char *) p_blob2) == 0) + { + sqlite3_result_null (context); + return; + } + } + break; + case SQLITE_BLOB: + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + p_blob2 = sqlite3_value_blob (argv[1]); + n_bytes2 = sqlite3_value_bytes (argv[1]); + if (n_bytes == n_bytes2) + { + if (memcmp (p_blob, p_blob2, n_bytes) == 0) + { + sqlite3_result_null (context); + return; + } + } + break; + case SQLITE_NULL: + sqlite3_result_null (context); + return; + }; } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); +/* returning the first argument */ + switch (type1) + { + case SQLITE_INTEGER: + sqlite3_result_int64 (context, sqlite3_value_int64 (argv[0])); + break; + case SQLITE_FLOAT: + sqlite3_result_double (context, sqlite3_value_double (argv[0])); + break; + case SQLITE_TEXT: + p_blob = sqlite3_value_text (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + sqlite3_result_text (context, (const char *) p_blob, n_bytes, + SQLITE_TRANSIENT); + break; + case SQLITE_BLOB: + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); + break; + default: + sqlite3_result_null (context); + break; + }; } static void -fnct_Snap (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CreateUUID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Snap(BLOBencoded geometry1, BLOBencoded geometry2, double tolerance) +/ CreateUUID() / -/ Returns a new Geometry corresponding to geom1 snapped to geom2 -/ and using the given tolerance -/ NULL is returned for invalid arguments (or if distance is ZERO) +/ returns a TEXT value containing an UUID +/ [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx] */ - unsigned char *p_blob; - int n_bytes; - int int_value; - double tolerance; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - gaiaGeomCollPtr result; + unsigned char rnd[16]; + char uuid[64]; + char *p = uuid; + int i; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + sqlite3_randomness (16, rnd); + for (i = 0; i < 16; i++) { - sqlite3_result_null (context); - return; + if (i == 4 || i == 6 || i == 8 || i == 10) + *p++ = '-'; + sprintf (p, "%02x", rnd[i]); + p += 2; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + *p = '\0'; + uuid[14] = '4'; + uuid[19] = '8'; + sqlite3_result_text (context, uuid, strlen (uuid), SQLITE_TRANSIENT); +} + +static void +fnct_MD5Checksum (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ MD5Checksum(blob) +/ +/ returns a TEXT value containing an hex MD5 checksum +/ [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] +/ or +/ NULL on invalid arguments +*/ + void *md5; + char *checksum; + const unsigned char *blob; + int blob_len; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + + if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { - sqlite3_result_null (context); - return; + blob = sqlite3_value_blob (argv[0]); + blob_len = sqlite3_value_bytes (argv[0]); } - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { - int_value = sqlite3_value_int (argv[2]); - tolerance = int_value; + blob = sqlite3_value_text (argv[0]); + blob_len = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo1 == NULL || geo2 == NULL) +/* creating an MD5 object */ + md5 = gaiaCreateMD5Checksum (); +/* evaluating the BLOB */ + gaiaUpdateMD5Checksum (md5, blob, blob_len); + checksum = gaiaFinalizeMD5Checksum (md5); + gaiaFreeMD5Checksum (md5); + if (checksum == NULL) sqlite3_result_null (context); else - { - result = gaiaSnap (geo1, geo2, tolerance); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo1->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + sqlite3_result_text (context, checksum, strlen (checksum), free); } static void -fnct_LineMerge (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MD5TotalChecksum_step (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ LineMerge(BLOBencoded geometry) +/ MD5TotalChecksum(BLOB) +/ +/ aggregate function - STEP / -/ Assuming that Geometry represents a set of sparse Linestrings, -/ this function will attempt to reassemble a single line -/ (or a set of lines) -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; + void **p; + void *md5; + const unsigned char *blob; + int blob_len; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + + if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) + { + blob = sqlite3_value_blob (argv[0]); + blob_len = sqlite3_value_bytes (argv[0]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + { + blob = sqlite3_value_text (argv[0]); + blob_len = sqlite3_value_bytes (argv[0]); + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); + p = sqlite3_aggregate_context (context, sizeof (void *)); + if (!(*p)) + { + /* this is the first row - creating an MD5 object */ + md5 = gaiaCreateMD5Checksum (); + gaiaUpdateMD5Checksum (md5, blob, blob_len); + *p = md5; + } else { - result = gaiaLineMerge (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + /* subsequent rows */ + md5 = *p; + gaiaUpdateMD5Checksum (md5, blob, blob_len); } - gaiaFreeGeomColl (geo); } static void -fnct_UnaryUnion (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_MD5TotalChecksum_final (sqlite3_context * context) { /* SQL function: -/ UnaryUnion(BLOBencoded geometry) +/ MD5TotalChecksum(BLOB) +/ +/ aggregate function - FINAL / -/ exactly like Union, but using a single Collection -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + void **p; + void *md5; + char *checksum; + p = sqlite3_aggregate_context (context, 0); + if (!(*p)) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) + md5 = *p; + checksum = gaiaFinalizeMD5Checksum (md5); + gaiaFreeMD5Checksum (md5); + if (checksum == NULL) sqlite3_result_null (context); else - { - result = gaiaUnaryUnion (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); + sqlite3_result_text (context, checksum, strlen (checksum), free); } -static void -fnct_SquareGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) +#ifndef OMIT_MATHSQL /* supporting SQL math functions */ + +static int +testInvalidFP (double x) { -/* SQL function: -/ ST_SquareGrid(BLOBencoded geom, double size) -/ ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only) -/ ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) -/ -/ Builds a regular grid (Square cells) covering the geom. -/ each cell has the edges's length as defined by the size argument -/ an arbitrary origin is supported (0,0 is assumed by default) -/ return NULL if any error is encountered -*/ - unsigned char *p_blob; - int n_bytes; - int int_value; - double origin_x = 0.0; - double origin_y = 0.0; - double size; - int edges_only = 0; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr point = NULL; - gaiaGeomCollPtr result = NULL; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - size = int_value; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - { - size = sqlite3_value_double (argv[1]); - } +/* testing if this one is an invalid Floating Point */ +#ifdef _WIN32 + if (_fpclass (x) == _FPCLASS_NN || _fpclass (x) == _FPCLASS_PN || + _fpclass (x) == _FPCLASS_NZ || _fpclass (x) == _FPCLASS_PZ) + ; else - { - sqlite3_result_null (context); - return; - } - if (size <= 0.0) - { - /* negative side size */ - sqlite3_result_null (context); - return; - } - if (argc >= 3) - { - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - edges_only = sqlite3_value_int (argv[2]); - else - { - sqlite3_result_null (context); - return; - } - } - if (argc == 4) - { - if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); - n_bytes = sqlite3_value_bytes (argv[3]); - point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!point) - { - sqlite3_result_null (context); - return; - } - if (point->FirstLinestring != NULL) - goto no_point; - if (point->FirstPolygon != NULL) - goto no_point; - if (point->FirstPoint != NULL) - { - if (point->FirstPoint == point->LastPoint) - { - origin_x = point->FirstPoint->X; - origin_y = point->FirstPoint->Y; - gaiaFreeGeomColl (point); - } - else - goto no_point; - } - else - goto no_point; + return 1; +#else + if (fpclassify (x) == FP_NORMAL || fpclassify (x) == FP_ZERO) + ; + else + return 1; +#endif + return 0; +} +static void +fnct_math_acos (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ acos(double X) +/ +/ Returns the arc cosine of X, that is, the value whose cosine is X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = acos (sqlite3_value_double (argv[0])); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - if (geo->FirstPoint != NULL) - goto no_polygon; - if (geo->FirstLinestring != NULL) - goto no_polygon; - if (geo->FirstPolygon == NULL) - goto no_polygon; - result = gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only); - if (result == NULL) + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = acos (x); + if (testInvalidFP (x)) sqlite3_result_null (context); else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_double (context, x); } - gaiaFreeGeomColl (geo); - return; - - no_point: - gaiaFreeGeomColl (point); - sqlite3_result_null (context); - return; - - no_polygon: - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + else + sqlite3_result_null (context); } static void -fnct_TriangularGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_math_asin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_TriangularGrid(BLOBencoded geom, double size) -/ ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only) -/ ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) +/ asin(double X) / -/ Builds a regular grid (Triangular cells) covering the geom. -/ each cell has the edge's length as defined by the size argument -/ an arbitrary origin is supported (0,0 is assumed by default) -/ return NULL if any error is encountered +/ Returns the arc sine of X, that is, the value whose sine is X +/ or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; int int_value; - double origin_x = 0.0; - double origin_y = 0.0; - double size; - int edges_only = 0; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr point = NULL; - gaiaGeomCollPtr result = NULL; + double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - int_value = sqlite3_value_int (argv[1]); - size = int_value; + x = asin (sqlite3_value_double (argv[0])); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - size = sqlite3_value_double (argv[1]); + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = asin (x); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); } else + sqlite3_result_null (context); +} + +static void +fnct_math_atan (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ atan(double X) +/ +/ Returns the arc tangent of X, that is, the value whose tangent is X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - sqlite3_result_null (context); - return; + x = atan (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - if (size <= 0.0) + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - /* negative side size */ - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = atan (x); + sqlite3_result_double (context, x); } - if (argc >= 3) + else + sqlite3_result_null (context); +} + +static void +fnct_math_ceil (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ ceil(double X) +/ +/ Returns the smallest integer value not less than X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - edges_only = sqlite3_value_int (argv[2]); - else - { - sqlite3_result_null (context); - return; - } + x = ceil (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - if (argc == 4) + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); - n_bytes = sqlite3_value_bytes (argv[3]); - point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!point) - { - sqlite3_result_null (context); - return; - } - if (point->FirstLinestring != NULL) - goto no_point; - if (point->FirstPolygon != NULL) - goto no_point; - if (point->FirstPoint != NULL) - { - if (point->FirstPoint == point->LastPoint) - { - origin_x = point->FirstPoint->X; - origin_y = point->FirstPoint->Y; - gaiaFreeGeomColl (point); - } - else - goto no_point; - } - else - goto no_point; - + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = ceil (x); + sqlite3_result_double (context, x); } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); else + sqlite3_result_null (context); +} + +static void +fnct_math_cos (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ cos(double X) +/ +/ Returns the cosine of X, where X is given in radians +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - if (geo->FirstPoint != NULL) - goto no_polygon; - if (geo->FirstLinestring != NULL) - goto no_polygon; - if (geo->FirstPolygon == NULL) - goto no_polygon; - result = - gaiaTriangularGrid (geo, origin_x, origin_y, size, edges_only); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + x = cos (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - gaiaFreeGeomColl (geo); - return; - - no_point: - gaiaFreeGeomColl (point); - sqlite3_result_null (context); - return; - - no_polygon: - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = cos (x); + sqlite3_result_double (context, x); + } + else + sqlite3_result_null (context); } static void -fnct_HexagonalGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_math_cot (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ST_HexagonalGrid(BLOBencoded geom, double size) -/ ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only) -/ ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) +/ cot(double X) / -/ Builds a regular grid (Hexagonal cells) covering the geom. -/ each cell has the edges's length as defined by the size argument -/ an arbitrary origin is supported (0,0 is assumed by default) -/ return NULL if any error is encountered +/ Returns the cotangent of X +/ or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; int int_value; - double origin_x = 0.0; - double origin_y = 0.0; - double size; - int edges_only = 0; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr point = NULL; - gaiaGeomCollPtr result = NULL; + double x; + double tang; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - size = int_value; - } - else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - size = sqlite3_value_double (argv[1]); + int_value = sqlite3_value_int (argv[0]); + x = int_value; } else { sqlite3_result_null (context); return; } - if (size <= 0.0) + tang = tan (x); + if (tang == 0.0) { - /* negative side size */ sqlite3_result_null (context); return; } - if (argc >= 3) - { - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - edges_only = sqlite3_value_int (argv[2]); - else - { - sqlite3_result_null (context); - return; - } - } - if (argc == 4) - { - if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); - n_bytes = sqlite3_value_bytes (argv[3]); - point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!point) - { - sqlite3_result_null (context); - return; - } - if (point->FirstLinestring != NULL) - goto no_point; - if (point->FirstPolygon != NULL) - goto no_point; - if (point->FirstPoint != NULL) - { - if (point->FirstPoint == point->LastPoint) - { - origin_x = point->FirstPoint->X; - origin_y = point->FirstPoint->Y; - gaiaFreeGeomColl (point); - } - else - goto no_point; - } - else - goto no_point; - - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else - { - if (geo->FirstPoint != NULL) - goto no_polygon; - if (geo->FirstLinestring != NULL) - goto no_polygon; - if (geo->FirstPolygon == NULL) - goto no_polygon; - result = - gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); - return; - - no_point: - gaiaFreeGeomColl (point); - sqlite3_result_null (context); - return; - - no_polygon: - gaiaFreeGeomColl (geo); - sqlite3_result_null (context); - return; + x = 1.0 / tang; + sqlite3_result_double (context, x); } static void -fnct_LinesCutAtNodes (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_math_degrees (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ LinesCutAtNodes(BLOBencoded geometry1, BLOBencoded geometry2) +/ degrees(double X) / -/ Assuming that Geometry-1 represents a set of arbitray Linestrings, -/ and that Geometry-2 represents of arbitrary Points, this function -/ will then attempt to cut lines accordingly to given nodes. -/ NULL is returned for invalid arguments +/ Returns the argument X, converted from radians to degrees +/ or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom1 = NULL; - gaiaGeomCollPtr geom2 = NULL; - gaiaGeomCollPtr result; + int int_value; + double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geom2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom1 == NULL || geom2 == NULL) + x = x * 57.29577951308232; + sqlite3_result_double (context, x); +} + +static void +fnct_math_exp (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ exp(double X) +/ +/ Returns the value of e (the base of natural logarithms) raised to the power of X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - if (geom1) - gaiaFreeGeomColl (geom1); - if (geom2) - gaiaFreeGeomColl (geom2); - sqlite3_result_null (context); - return; + x = exp (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - result = gaiaLinesCutAtNodes (geom1, geom2); - if (result == NULL) + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = exp (x); + sqlite3_result_double (context, x); } else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geom1->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - gaiaFreeGeomColl (geom1); - gaiaFreeGeomColl (geom2); + sqlite3_result_null (context); } -static int -cmp_pt_coords (const void *p1, const void *p2) +static void +fnct_math_floor (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* compares two nodes by ID [for QSORT] */ - gaiaPointPtr pt1 = *((gaiaPointPtr *) p1); - gaiaPointPtr pt2 = *((gaiaPointPtr *) p2); - if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z == pt2->Z) - return 0; - if (pt1->X > pt2->X) - return 1; - if (pt1->X == pt2->X && pt1->Y > pt2->Y) - return 1; - if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z > pt2->Z) - return 1; - return -1; +/* SQL function: +/ floor(double X) +/ +/ Returns the largest integer value not greater than X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + { + x = floor (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = floor (x); + sqlite3_result_double (context, x); + } + else + sqlite3_result_null (context); } -static gaiaGeomCollPtr -auxPolygNodes (gaiaGeomCollPtr geom) +static void +fnct_math_logn (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* attempting to identify Ring-Nodes */ - gaiaGeomCollPtr result = NULL; - gaiaPolygonPtr pg; - gaiaRingPtr rng; - gaiaPointPtr pt; - gaiaPointPtr prev_pt; - gaiaPointPtr *sorted = NULL; - int count = 0; - int iv; - int ib; +/* SQL function: +/ log(double X) +/ +/ Returns the natural logarithm of X; that is, the base-e logarithm of X +/ or NULL if any error is encountered +*/ + int int_value; double x; - double y; - double z; - double m; - -/* inserting all Points into a Dynamic Line */ - gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); - pg = geom->FirstPolygon; - while (pg) + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - rng = pg->Exterior; - /* CAVEAT: first point needs to be skipped (closed ring) */ - for (iv = 1; iv < rng->Points; iv++) - { - /* exterior ring */ - if (geom->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - gaiaAppendPointZToDynamicLine (dyn, x, y, z); - } - else if (geom->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - gaiaAppendPointMToDynamicLine (dyn, x, y, m); - } - else if (geom->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (rng->Coords, iv, &x, &y); - gaiaAppendPointToDynamicLine (dyn, x, y); - } - } - - for (ib = 0; ib < pg->NumInteriors; ib++) - { - rng = pg->Interiors + ib; - /* CAVEAT: first point needs to be skipped (closed ring) */ - for (iv = 1; iv < rng->Points; iv++) - { - /* interior ring */ - if (geom->DimensionModel == GAIA_XY_Z) - { - gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); - gaiaAppendPointZToDynamicLine (dyn, x, y, z); - } - else if (geom->DimensionModel == GAIA_XY_M) - { - gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); - gaiaAppendPointMToDynamicLine (dyn, x, y, m); - } - else if (geom->DimensionModel == GAIA_XY_Z_M) - { - gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); - gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); - } - else - { - gaiaGetPoint (rng->Coords, iv, &x, &y); - gaiaAppendPointToDynamicLine (dyn, x, y); - } - } - } - pg = pg->Next; + x = log (sqlite3_value_double (argv[0])); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = log (x); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); } + else + sqlite3_result_null (context); +} - pt = dyn->First; - while (pt) +static void +fnct_math_logn2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ log(double B, double X) +/ +/ Returns the logarithm of X to the base B +/ or NULL if any error is encountered +*/ + int int_value; + double x = 0.0; + double b = 1.0; + double log1; + double log2; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - /* counting how many points */ - count++; - pt = pt->Next; + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - if (count == 0) + else { - gaiaFreeDynamicLine (dyn); - return NULL; + sqlite3_result_null (context); + return; } - -/* allocating and initializing an array of pointers */ - sorted = malloc (sizeof (gaiaPointPtr) * count); - iv = 0; - pt = dyn->First; - while (pt) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + b = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - *(sorted + iv++) = pt; - pt = pt->Next; + int_value = sqlite3_value_int (argv[1]); + b = int_value; } - -/* sorting points by coords */ - qsort (sorted, count, sizeof (gaiaPointPtr), cmp_pt_coords); - - if (geom->DimensionModel == GAIA_XY_Z) - result = gaiaAllocGeomCollXYZ (); - else if (geom->DimensionModel == GAIA_XY_M) - result = gaiaAllocGeomCollXYM (); - else if (geom->DimensionModel == GAIA_XY_Z_M) - result = gaiaAllocGeomCollXYZM (); else - result = gaiaAllocGeomColl (); - result->Srid = geom->Srid; - -/* identifying nodes */ - prev_pt = NULL; - for (iv = 0; iv < count; iv++) { - pt = *(sorted + iv); - if (prev_pt != NULL) - { - if (prev_pt->X == pt->X && prev_pt->Y == pt->Y - && prev_pt->Z == pt->Z) - { - if (result->LastPoint != NULL) - { - if (result->LastPoint->X == pt->X - && result->LastPoint->Y == pt->Y - && result->LastPoint->Z == pt->Z) - continue; - } - /* Node found */ - if (result->DimensionModel == GAIA_XY_Z) - gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, - pt->Z); - else if (result->DimensionModel == GAIA_XY_M) - gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, - pt->M); - else if (result->DimensionModel == GAIA_XY_Z_M) - gaiaAddPointToGeomCollXYZM (result, pt->X, - pt->Y, pt->Z, pt->M); - else - gaiaAddPointToGeomColl (result, pt->X, pt->Y); - } - } - prev_pt = pt; + sqlite3_result_null (context); + return; } - - if (result->FirstPoint == NULL) + if (x <= 0.0 || b <= 1.0) { - gaiaFreeGeomColl (result); - result = NULL; + sqlite3_result_null (context); + return; } - free (sorted); - gaiaFreeDynamicLine (dyn); - return result; + log1 = log (x); + if (testInvalidFP (log1)) + { + sqlite3_result_null (context); + return; + } + log2 = log (b); + if (testInvalidFP (log2)) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_double (context, log1 / log2); } static void -fnct_RingsCutAtNodes (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_math_log_2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ RingsCutAtNodes(BLOBencoded geometry) -/ -/ This function will attempt to return a collection of lines -/ representing Polygon/Rings: the input geometry is expected -/ to be a Polygon or MultiPolygon. -/ Each Ring will be cut accordingly to any identified "node" -/ i.e. self-intersections or intersections between two Rings. +/ log2(double X) / -/ NULL is returned for invalid arguments +/ Returns the base-2 logarithm of X +/ or NULL if any error is encountered */ - int pts = 0; - int lns = 0; - int pgs = 0; - unsigned char *p_blob; - int n_bytes; - gaiaPointPtr pt; - gaiaLinestringPtr ln; - gaiaPolygonPtr pg; - gaiaGeomCollPtr geom = NULL; - gaiaGeomCollPtr geom1 = NULL; - gaiaGeomCollPtr geom2 = NULL; - gaiaGeomCollPtr result; + int int_value; + double x; + double log1; + double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom == NULL) + log1 = log (x); + if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } + log2 = log (2.0); + sqlite3_result_double (context, log1 / log2); +} -/* checking if Geometry is a Polygon or MultiPolyhon */ - pt = geom->FirstPoint; - while (pt) - { - pts++; - pt = pt->Next; - } - ln = geom->FirstLinestring; - while (ln) +static void +fnct_math_log_10 (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ log10(double X) +/ +/ Returns the base-10 logarithm of X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + double log1; + double log2; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - lns++; - ln = ln->Next; + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - pg = geom->FirstPolygon; - while (pg) + else { - pgs++; - pg = pg->Next; + sqlite3_result_null (context); + return; } - if (pts > 0 || lns > 0 || pgs == 0) + log1 = log (x); + if (testInvalidFP (log1)) { - /* not Polygon/MultiPolygon */ - gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } + log2 = log (10.0); + sqlite3_result_double (context, log1 / log2); +} -/* transforming Rings into Linestrings */ - geom1 = gaiaLinearize (geom, 1); - if (geom1 == NULL) +static void +fnct_math_pi (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ pi(void) +/ +/ Returns the value of (pi) +*/ + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + sqlite3_result_double (context, 3.14159265358979323846); +} + +static void +fnct_math_pow (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ pow(double X, double Y) +/ +/ Returns the value of X raised to the power of Y. +/ or NULL if any error is encountered +*/ + int int_value; + double x; + double y; + double p; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + } + else { - gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } - -/* identifying the Nodes */ - geom2 = auxPolygNodes (geom); - if (geom2 == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) + y = sqlite3_value_double (argv[1]); + else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - /* there is no need to cut any Ring [no Nodes] */ - int len; - unsigned char *p_result = NULL; - geom1->Srid = geom->Srid; - gaiaToSpatiaLiteBlobWkb (geom1, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (geom); - gaiaFreeGeomColl (geom1); - return; + int_value = sqlite3_value_int (argv[1]); + y = int_value; } - -/* attempting to cut Rings */ - result = gaiaLinesCutAtNodes (geom1, geom2); - if (result == NULL) - sqlite3_result_null (context); else { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geom->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geom); - gaiaFreeGeomColl (geom1); - gaiaFreeGeomColl (geom2); + p = pow (x, y); + if (testInvalidFP (p)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, p); } -#endif /* end GEOS advanced features */ - -#ifdef GEOS_TRUNK /* GEOS experimental features */ - static void -fnct_DelaunayTriangulation (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_math_stddev_step (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ DelaunayTriangulation(BLOBencoded geometry) -/ DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges) -/ DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges, double tolerance) +/ stddev_pop(double X) +/ stddev_samp(double X) +/ var_pop(double X) +/ var_samp(double X) +/ +/ aggregate function - STEP / -/ Attempts to build a Delaunay Triangulation using all points/vertices -/ found in the input geometry. -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; + struct stddev_str *p; int int_value; - double tolerance = 0.0; - int only_edges = 0; + double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - if (argc >= 2) + else + return; + p = sqlite3_aggregate_context (context, sizeof (struct stddev_str)); + if (!(p->cleaned)) { - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - only_edges = sqlite3_value_int (argv[1]); - else - { - sqlite3_result_null (context); - return; - } + p->cleaned = 1; + p->mean = x; + p->quot = 0.0; + p->count = 0.0; } - if (argc == 3) + p->count += 1.0; + p->quot = + p->quot + + (((p->count - 1.0) * ((x - p->mean) * (x - p->mean))) / p->count); + p->mean = p->mean + ((x - p->mean) / p->count); +} + +static void +fnct_math_stddev_pop_final (sqlite3_context * context) +{ +/* SQL function: +/ stddev_pop(double X) +/ aggregate function - FINAL +/ +*/ + double x; + struct stddev_str *p = sqlite3_aggregate_context (context, 0); + if (!p) { - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - tolerance = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + sqlite3_result_null (context); + return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + x = sqrt (p->quot / p->count); + sqlite3_result_double (context, x); +} + +static void +fnct_math_stddev_samp_final (sqlite3_context * context) +{ +/* SQL function: +/ stddev_samp(double X) +/ aggregate function - FINAL +/ +*/ + double x; + struct stddev_str *p = sqlite3_aggregate_context (context, 0); + if (!p) { - result = gaiaDelaunayTriangulation (geo, tolerance, only_edges); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + x = sqrt (p->quot / (p->count - 1.0)); + sqlite3_result_double (context, x); } static void -fnct_VoronojDiagram (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_math_var_pop_final (sqlite3_context * context) { /* SQL function: -/ VoronojDiagram(BLOBencoded geometry) -/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges) -/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, -/ double extra_frame_size) -/ VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, -/ double extra_frame_size, double tolerance) +/ var_pop(double X) +/ aggregate function - FINAL / -/ Attempts to build a Voronoj Diagram using all points/vertices -/ found in the input geometry. -/ NULL is returned for invalid arguments */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; - int int_value; - double tolerance = 0.0; - double extra_frame_size = -1.0; - int only_edges = 0; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + double x; + struct stddev_str *p = sqlite3_aggregate_context (context, 0); + if (!p) { sqlite3_result_null (context); return; } - if (argc >= 2) - { - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - only_edges = sqlite3_value_int (argv[1]); - else - { - sqlite3_result_null (context); - return; - } - } - if (argc >= 3) + x = p->quot / p->count; + sqlite3_result_double (context, x); +} + +static void +fnct_math_var_samp_final (sqlite3_context * context) +{ +/* SQL function: +/ var_samp(double X) +/ aggregate function - FINAL +/ +*/ + double x; + struct stddev_str *p = sqlite3_aggregate_context (context, 0); + if (!p) { - if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) - extra_frame_size = sqlite3_value_double (argv[2]); - else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[2]); - extra_frame_size = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + sqlite3_result_null (context); + return; } - if (argc == 4) + x = p->quot / (p->count - 1.0); + sqlite3_result_double (context, x); +} + +static void +fnct_math_radians (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ radians(double X) +/ +/ Returns the argument X, converted from degrees to radians +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - tolerance = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); else { - result = - gaiaVoronojDiagram (geo, extra_frame_size, tolerance, only_edges); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_null (context); + return; } - gaiaFreeGeomColl (geo); + x = x * .0174532925199432958; + sqlite3_result_double (context, x); } static void -fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_math_sign (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ ConcaveHull(BLOBencoded geometry) -/ ConcaveHull(BLOBencoded geometry, double factor) -/ ConcaveHull(BLOBencoded geometry, double factor, boolean allow_holes) -/ ConcaveHull(BLOBencoded geometry, double factor, -/ boolean allow_holes, double tolerance) +/ sign(double X) / -/ Attempts to build a ConcaveHull using all points/vertices -/ found in the input geometry. -/ NULL is returned for invalid arguments +/ Returns the sign of the argument as -1, 0, or 1, depending on whether X is negative, zero, or positive +/ or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; int int_value; - double tolerance = 0.0; - double factor = 3.0; - int allow_holes = 0; + double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + x = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - sqlite3_result_null (context); - return; + int_value = sqlite3_value_int (argv[0]); + x = int_value; } - if (argc >= 2) + else { - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - factor = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - factor = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + sqlite3_result_null (context); + return; } - if (argc >= 3) + if (x > 0.0) + sqlite3_result_double (context, 1.0); + else if (x < 0.0) + sqlite3_result_double (context, -1.0); + else + sqlite3_result_double (context, 0.0); +} + +static void +fnct_math_sin (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ sin(double X) +/ +/ Returns the sine of X, where X is given in radians +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - allow_holes = sqlite3_value_int (argv[2]); - else - { - sqlite3_result_null (context); - return; - } + x = sin (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - if (argc == 4) + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) - tolerance = sqlite3_value_double (argv[3]); - else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[3]); - tolerance = int_value; - } - else - { - sqlite3_result_null (context); - return; - } + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = sin (x); + sqlite3_result_double (context, x); } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); else + sqlite3_result_null (context); +} + +static void +fnct_math_sqrt (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ sqrt(double X) +/ +/ Returns the square root of a non-negative number X +/ or NULL if any error is encountered +*/ + int int_value; + double x; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - result = gaiaConcaveHull (geo, factor, tolerance, allow_holes); - if (result == NULL) + x = sqrt (sqlite3_value_double (argv[0])); + if (testInvalidFP (x)) sqlite3_result_null (context); else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_double (context, x); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = sqrt (x); + if (testInvalidFP (x)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, x); } - gaiaFreeGeomColl (geo); + else + sqlite3_result_null (context); } -#endif /* end GEOS experimental features */ - -#ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ - static void -fnct_MakeValid (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_math_tan (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ MakeValid(BLOBencoded geometry) +/ tan(double X) / -/ Attempts to make an invalid geometry valid without loosing vertices. -/ NULL is returned for invalid arguments +/ Returns the tangent of X, where X is given in radians +/ or NULL if any error is encountered */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; + int int_value; + double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { - sqlite3_result_null (context); - return; + x = tan (sqlite3_value_double (argv[0])); + sqlite3_result_double (context, x); } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); - else + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - result = gaiaMakeValid (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + int_value = sqlite3_value_int (argv[0]); + x = int_value; + x = tan (x); + sqlite3_result_double (context, x); } - gaiaFreeGeomColl (geo); + else + sqlite3_result_null (context); } +#endif /* end supporting SQL math functions */ + static void -fnct_MakeValidDiscarded (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_GeomFromExifGpsBlob (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ MakeValidDiscarded(BLOBencoded geometry) +/ GeomFromExifGpsBlob(BLOB encoded image) / -/ Strictly related to MakeValid(); useful to collect any offending item -/ discarded during the validation process. -/ NULL is returned for invalid arguments (or if no discarded items are found) +/ returns: +/ a POINT geometry +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; + gaiaGeomCollPtr geom; + unsigned char *geoblob; + int geosize; + double longitude; + double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { @@ -18987,464 +25356,646 @@ fnct_MakeValidDiscarded (sqlite3_context * context, int argc, } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) - sqlite3_result_null (context); + if (gaiaGetGpsCoords (p_blob, n_bytes, &longitude, &latitude)) + { + geom = gaiaAllocGeomColl (); + geom->Srid = 4326; + gaiaAddPointToGeomColl (geom, longitude, latitude); + gaiaToSpatiaLiteBlobWkb (geom, &geoblob, &geosize); + gaiaFreeGeomColl (geom); + sqlite3_result_blob (context, geoblob, geosize, free); + } else + sqlite3_result_null (context); +} + +static char * +guess_mime_type (const unsigned char *p_blob, int n_bytes) +{ +/* guessing the mime-type corresponding to some BLOB */ + int blob_type; + const char *mime = NULL; + int len; + char *string = NULL; + blob_type = gaiaGuessBlobType (p_blob, n_bytes); + switch (blob_type) { - result = gaiaMakeValidDiscarded (geo); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + case GAIA_ZIP_BLOB: + mime = "application/zip"; + break; + case GAIA_PDF_BLOB: + mime = "application/pdf"; + break; + case GAIA_TIFF_BLOB: + mime = "image/tiff"; + break; + case GAIA_GIF_BLOB: + mime = "image/gif"; + break; + case GAIA_PNG_BLOB: + mime = "image/png"; + break; + case GAIA_JPEG_BLOB: + case GAIA_EXIF_BLOB: + case GAIA_EXIF_GPS_BLOB: + mime = "image/jpeg"; + break; +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ + case GAIA_XML_BLOB: + mime = "application/xml"; + if (gaiaIsSvgXmlBlob (p_blob, n_bytes)) + mime = "image/svg+xml"; + break; +#endif /* end including LIBXML2 */ + }; + if (mime != NULL) + { + len = strlen (mime); + string = malloc (len + 1); + strcpy (string, mime); } - gaiaFreeGeomColl (geo); + return string; } static void -fnct_Segmentize (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GetMimeType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Segmentize(BLOBencoded geometry, double dist) +/ GetMimeType(BLOB) / -/ Ensure every segment is at most 'dist' long -/ NULL is returned for invalid arguments +/ returns: +/ the Mime-Type corresponding to the BLOB +/ or NULL if any error is encountered or no valid mime is defined */ unsigned char *p_blob; int n_bytes; - int int_value; - double dist; - gaiaGeomCollPtr geo = NULL; - gaiaGeomCollPtr result; + char *mime = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - dist = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - dist = int_value; - } - else - { - sqlite3_result_null (context); - return; - } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geo == NULL) + mime = guess_mime_type (p_blob, n_bytes); + if (mime == NULL) sqlite3_result_null (context); else - { - result = gaiaSegmentize (geo, dist); - if (result == NULL) - sqlite3_result_null (context); - else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = geo->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } - } - gaiaFreeGeomColl (geo); + sqlite3_result_text (context, mime, strlen (mime), free); } static void -fnct_Split (sqlite3_context * context, int argc, sqlite3_value ** argv) +blob_guess (sqlite3_context * context, int argc, sqlite3_value ** argv, + int request) { /* SQL function: -/ Split(BLOBencoded input, BLOBencoded blade) +/ IsGifBlob(BLOB encoded image) +/ IsPngBlob, IsJpegBlob, IsExifBlob, IsExifGpsBlob, IsTiffBlob, +/ IsZipBlob, IsPdfBlob,IsGeometryBlob / -/ Returns a collection of geometries resulting by splitting a geometry -/ NULL is returned for invalid arguments +/ returns: +/ 1 if the required BLOB_TYPE is TRUE +/ 0 otherwise +/ or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr input = NULL; - gaiaGeomCollPtr blade = NULL; - gaiaGeomCollPtr result; + int blob_type; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + blob_type = gaiaGuessBlobType (p_blob, n_bytes); + if (request == GAIA_GEOMETRY_BLOB) { - sqlite3_result_null (context); + if (blob_type == GAIA_GEOMETRY_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (input == NULL) + if (request == GAIA_ZIP_BLOB) { - sqlite3_result_null (context); + if (blob_type == GAIA_ZIP_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (blade == NULL) + if (request == GAIA_PDF_BLOB) { - gaiaFreeGeomColl (input); - sqlite3_result_null (context); + if (blob_type == GAIA_PDF_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - else + if (request == GAIA_TIFF_BLOB) { - result = gaiaSplit (input, blade); - if (result == NULL) - sqlite3_result_null (context); + if (blob_type == GAIA_TIFF_BLOB) + sqlite3_result_int (context, 1); else - { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = input->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); - } + sqlite3_result_int (context, 0); + return; } - gaiaFreeGeomColl (input); - gaiaFreeGeomColl (blade); -} - -static void -fnct_SplitLeft (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ SplitLeft(BLOBencoded input, BLOBencoded blade) -/ -/ Returns a collection of geometries resulting by splitting a geometry [left half] -/ NULL is returned for invalid arguments -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr input = NULL; - gaiaGeomCollPtr blade = NULL; - gaiaGeomCollPtr result; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (request == GAIA_GIF_BLOB) { - sqlite3_result_null (context); + if (blob_type == GAIA_GIF_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (request == GAIA_PNG_BLOB) { - sqlite3_result_null (context); + if (blob_type == GAIA_PNG_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (input == NULL) + if (request == GAIA_JPEG_BLOB) { - sqlite3_result_null (context); + if (blob_type == GAIA_JPEG_BLOB || blob_type == GAIA_EXIF_BLOB + || blob_type == GAIA_EXIF_GPS_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (blade == NULL) + if (request == GAIA_EXIF_BLOB) { - gaiaFreeGeomColl (input); - sqlite3_result_null (context); + if (blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) + { + sqlite3_result_int (context, 1); + } + else + sqlite3_result_int (context, 0); return; } - else + if (request == GAIA_EXIF_GPS_BLOB) { - result = gaiaSplitLeft (input, blade); - if (result == NULL) - sqlite3_result_null (context); - else + if (blob_type == GAIA_EXIF_GPS_BLOB) { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = input->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + sqlite3_result_int (context, 1); } + else + sqlite3_result_int (context, 0); + return; } - gaiaFreeGeomColl (input); - gaiaFreeGeomColl (blade); + if (request == GAIA_WEBP_BLOB) + { + if (blob_type == GAIA_WEBP_BLOB) + sqlite3_result_int (context, 1); + else + sqlite3_result_int (context, 0); + return; + } + sqlite3_result_int (context, -1); +} + +/* +/ the following functions simply readdress the blob_guess() +/ setting the appropriate request mode +*/ + +static void +fnct_IsGeometryBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_GEOMETRY_BLOB); } static void -fnct_SplitRight (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_IsZipBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_ZIP_BLOB); +} + +static void +fnct_IsPdfBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_PDF_BLOB); +} + +static void +fnct_IsTiffBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_TIFF_BLOB); +} + +static void +fnct_IsGifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_GIF_BLOB); +} + +static void +fnct_IsPngBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_PNG_BLOB); +} + +static void +fnct_IsJpegBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_JPEG_BLOB); +} + +static void +fnct_IsExifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_EXIF_BLOB); +} + +static void +fnct_IsExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_EXIF_GPS_BLOB); +} + +static void +fnct_IsWebPBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + blob_guess (context, argc, argv, GAIA_WEBP_BLOB); +} + +static void +fnct_BlobFromFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ SplitRight(BLOBencoded input, BLOBencoded blade) +/ BlobFromFile(TEXT filepath) / -/ Returns a collection of geometries resulting by splitting a geometry [right half] -/ NULL is returned for invalid arguments +/ returns: +/ some BLOB on success +/ or NULL on failure */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr input = NULL; - gaiaGeomCollPtr blade = NULL; - gaiaGeomCollPtr result; + int max_blob; + int rd; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + const char *path = NULL; + FILE *in = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + path = (const char *) sqlite3_value_text (argv[0]); + if (path == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (input == NULL) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (blade == NULL) + in = fopen (path, "rb"); + if (in == NULL) { - gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { - result = gaiaSplitRight (input, blade); - if (result == NULL) - sqlite3_result_null (context); - else + /* querying the file length */ + if (fseek (in, 0, SEEK_END) < 0) { - /* builds the BLOB geometry to be returned */ - int len; - unsigned char *p_result = NULL; - result->Srid = input->Srid; - gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); - sqlite3_result_blob (context, p_result, len, free); - gaiaFreeGeomColl (result); + sqlite3_result_null (context); + fclose (in); + return; + } + n_bytes = ftell (in); + max_blob = sqlite3_limit (sqlite, SQLITE_LIMIT_LENGTH, -1); + if (n_bytes > max_blob) + { + /* too big; cannot be stored into a BLOB */ + sqlite3_result_null (context); + fclose (in); + return; + } + rewind (in); + p_blob = malloc (n_bytes); + /* attempting to load the BLOB from the file */ + rd = fread (p_blob, 1, n_bytes, in); + fclose (in); + if (rd != n_bytes) + { + /* read error */ + free (p_blob); + sqlite3_result_null (context); + return; } + sqlite3_result_blob (context, p_blob, n_bytes, free); } - gaiaFreeGeomColl (input); - gaiaFreeGeomColl (blade); -} - -static int -getXYSinglePoint (gaiaGeomCollPtr geom, double *x, double *y) -{ -/* check if this geometry is a simple Point (returning 2D coords) */ - double z; - double m; - return getXYZMSinglePoint (geom, x, y, &z, &m); } static void -fnct_Azimuth (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_BlobToFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ Azimuth(BLOBencoded pointA, BLOBencoded pointB) +/ BlobToFile(BLOB payload, TEXT filepath) / -/ Returns the angle in radians from the horizontal of the vector -/ defined by pointA and pointB. -/ Angle is computed clockwise from down-to-up: on the clock: -/ 12=0; 3=PI/2; 6=PI; 9=3PI/2. -/ NULL is returned for invalid arguments -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom; - double x1; - double y1; - double x2; - double y2; - double azimuth; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - -/* retrieving and validating the first point */ - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom == NULL) - { - sqlite3_result_null (context); - return; - } - if (!getXYSinglePoint (geom, &x1, &y1)) +/ returns: +/ 1 on success +/ or 0 on failure +*/ + unsigned char *p_blob; + int n_bytes; + const char *path = NULL; + FILE *out = NULL; + int ret = 1; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - gaiaFreeGeomColl (geom); - sqlite3_result_null (context); + sqlite3_result_int (context, 0); return; } - gaiaFreeGeomColl (geom); - -/* retrieving and validating the second point */ - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom == NULL) + if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) + path = (const char *) sqlite3_value_text (argv[1]); + if (path == NULL) { - sqlite3_result_null (context); + sqlite3_result_int (context, 0); return; } - if (!getXYSinglePoint (geom, &x2, &y2)) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + out = fopen (path, "wb"); + if (out == NULL) + ret = 0; + else { - gaiaFreeGeomColl (geom); - sqlite3_result_null (context); - return; + /* exporting the BLOB into the file */ + int wr = fwrite (p_blob, 1, n_bytes, out); + if (wr != n_bytes) + ret = 0; + fclose (out); } - gaiaFreeGeomColl (geom); - - if (gaiaAzimuth (x1, y1, x2, y2, &azimuth)) - sqlite3_result_double (context, azimuth); - else - sqlite3_result_null (context); + sqlite3_result_int (context, ret); } static void -fnct_GeoHash (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_ExportDXF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeoHash(BLOBencoded geom) -/ GeoHash(BLOBencoded geom, Integer precision) +/ ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, +/ TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, +/ TEXT text_rotation_col_name, BLOB geom_filter) +/ or +/ ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, +/ TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, +/ TEXT text_rotation_col_name, BLOB geom_filter, INT precision) / -/ Returns a GeoHash representation for input geometry -/ (expected to be in longitude/latitude coords) -/ NULL is returned for invalid arguments +/ returns: +/ 1 on success +/ or 0 on failure */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geom; - int precision = 0; - char *geo_hash; + char *path; + const char *dir_path = NULL; + const char *filename = NULL; + FILE *out = NULL; + const char *sql_query = NULL; + const char *layer_col_name = NULL; + const char *geom_col_name = NULL; + const char *label_col_name = NULL; + const char *text_height_col_name = NULL; + const char *text_rotation_col_name = NULL; + gaiaGeomCollPtr geom = NULL; + int precision = 3; + int ret = 1; + sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + dir_path = (const char *) sqlite3_value_text (argv[0]); + if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) + filename = (const char *) sqlite3_value_text (argv[1]); + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + sql_query = (const char *) sqlite3_value_text (argv[2]); + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) + layer_col_name = (const char *) sqlite3_value_text (argv[3]); + if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) + geom_col_name = (const char *) sqlite3_value_text (argv[4]); + if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) + label_col_name = (const char *) sqlite3_value_text (argv[5]); + if (sqlite3_value_type (argv[6]) == SQLITE_TEXT) + text_height_col_name = (const char *) sqlite3_value_text (argv[6]); + if (sqlite3_value_type (argv[7]) == SQLITE_TEXT) + text_rotation_col_name = (const char *) sqlite3_value_text (argv[7]); + if (sqlite3_value_type (argv[8]) == SQLITE_BLOB) + { + p_blob = (unsigned char *) sqlite3_value_blob (argv[8]); + n_bytes = sqlite3_value_bytes (argv[8]); + geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); } - if (argc == 2) + if (argc == 10) { - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - precision = sqlite3_value_int (argv[1]); - else - { - sqlite3_result_null (context); - return; - } + if (sqlite3_value_type (argv[9]) == SQLITE_INTEGER) + precision = sqlite3_value_int (argv[9]); } - - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom == NULL) + if (dir_path == NULL || filename == NULL || sql_query == NULL + || layer_col_name == NULL || geom_col_name == NULL) { - sqlite3_result_null (context); + sqlite3_result_int (context, 0); + if (geom != NULL) + gaiaFreeGeomColl (geom); return; } - geo_hash = gaiaGeoHash (geom, precision); - if (geo_hash != NULL) + + path = sqlite3_mprintf ("%s/%s.dxf", dir_path, filename); + out = fopen (path, "wb"); + if (out == NULL) { - int len = strlen (geo_hash); - sqlite3_result_text (context, geo_hash, len, free); + ret = 0; + spatialite_e ("ExportDXF error - unable to create \"%s\"\n", path); } else - sqlite3_result_null (context); - gaiaFreeGeomColl (geom); + { + /* exporting the DXF */ + gaiaDxfWriter dxf; + gaiaDxfWriterInit (&dxf, out, precision, GAIA_DXF_V12); + ret = gaiaExportDxf (&dxf, db_handle, sql_query, layer_col_name, + geom_col_name, label_col_name, + text_height_col_name, text_rotation_col_name, + geom); + if (ret > 0) + ret = 1; + fclose (out); + } + sqlite3_result_int (context, ret); + if (geom != NULL) + gaiaFreeGeomColl (geom); + sqlite3_free (path); } -static char * -get_srs_by_srid (sqlite3 * sqlite, int srid, int longsrs) +static void +fnct_CountUnsafeTriggers (sqlite3_context * context, int argc, + sqlite3_value ** argv) { -/* retrieves the short- or long- srs reference for the given srid */ - char sql[1024]; +/* SQL function: +/ CountUnsafeTriggers() +/ +/ returns: +/ the total count of *unsafe* triggers found +/ 0 if no dubious trigger has been identifiedfailure +*/ int ret; - const char *name; int i; char **results; int rows; int columns; - int len; - char *srs = NULL; + const char *sql; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + int count = 0; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (longsrs) - sprintf (sql, - "SELECT 'urn:ogc:def:crs:' || auth_name || '::' || auth_srid " - "FROM spatial_ref_sys WHERE srid = %d", srid); - else - sprintf (sql, "SELECT auth_name || ':' || auth_srid " - "FROM spatial_ref_sys WHERE srid = %d", srid); +/* checking all Triggers */ + sql = "SELECT Count(*) FROM sqlite_master WHERE " + "type IN ('trigger', 'view') AND (sql LIKE '%BlobFromFile%' " + "OR sql LIKE '%BlobToFile%' OR sql LIKE '%XB_LoadXML%' " + "OR sql LIKE '%XB_StoreXML%')"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) - return NULL; + goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { - name = results[(i * columns) + 0]; - len = strlen (name); - srs = malloc (len + 1); - strcpy (srs, name); + count = atoi (results[(i * columns) + 0]); } } sqlite3_free_table (results); - return srs; + unknown: + sqlite3_result_int (context, count); } static void -fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_GeodesicLength (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ AsX3D(BLOBencoded geom) -/ AsX3D(BLOBencoded geom, Integer precision) -/ AsX3D(BLOBencoded geom, Integer precision, Integer options) -/ AsX3D(BLOBencoded geom, Integer precision, Integer options, Text refid) +/ GeodesicLength(BLOB encoded GEOMETRYCOLLECTION) / -/ Returns an X3D representation for input geometry -/ NULL is returned for invalid arguments +/ returns the total Geodesic length for current geometry +/ or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; - gaiaGeomCollPtr geom; - int precision = 15; - int options = 0; - const char *refid = ""; - char *srs = NULL; - char *x3d; + double l; + double length = 0.0; + double a; + double b; + double rf; + gaiaGeomCollPtr geo = NULL; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; + gaiaRingPtr ring; + int ib; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else + { + if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) + { + 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; + } + if (length >= 0) + { + /* Polygons */ + polyg = geo->FirstPolygon; + 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; 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; + } + length += l; + } + if (length < 0.0) + break; + polyg = polyg->Next; + } + } + if (length < 0.0) + sqlite3_result_null (context); + else + sqlite3_result_double (context, length); + } + else + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); + } +} + +static void +fnct_GreatCircleLength (sqlite3_context * context, int argc, + sqlite3_value ** argv) +{ +/* SQL function: +/ GreatCircleLength(BLOB encoded GEOMETRYCOLLECTION) +/ +/ returns the total Great Circle length for current geometry +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + double length = 0.0; + double a; + double b; + double rf; + gaiaGeomCollPtr geo = NULL; + gaiaLinestringPtr line; + gaiaPolygonPtr polyg; + gaiaRingPtr ring; + int ib; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) @@ -19452,693 +26003,413 @@ fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv) sqlite3_result_null (context); return; } - if (argc >= 2) + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); + if (!geo) + sqlite3_result_null (context); + else { - if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - precision = sqlite3_value_int (argv[1]); - else + if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { - sqlite3_result_null (context); - return; + line = geo->FirstLinestring; + while (line) + { + /* Linestrings */ + length += + gaiaGreatCircleTotalLength (a, b, + line->DimensionModel, + line->Coords, + line->Points); + line = line->Next; + } + if (length >= 0) + { + /* Polygons */ + 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); } - } - if (argc >= 3) - { - if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) - options = sqlite3_value_int (argv[2]); else - { - sqlite3_result_null (context); - return; - } + sqlite3_result_null (context); + gaiaFreeGeomColl (geo); } - if (argc == 4) +} + +static void +convertUnit (sqlite3_context * context, int argc, sqlite3_value ** argv, + int unit_from, int unit_to) +{ +/* SQL functions: +/ CvtToKm(), CvtToDm(), CvtToCm(), CvtToMm(), CvtToKmi(), CvtToIn(), CvtToFt(), +/ CvtToYd(), CvtToMi(), CvtToFath(), CvtToCh(), CvtToLink(), CvtToUsIn(), +/ CvtToUsFt(), CvtToUsYd(), CvtToUsCh(), CvtToUsMi(), CvtToIndFt(), +/ CvtToIndYd(), CvtToIndCh(), +/ CvtFromKm(), CvtFromDm(), CvtFromCm(), CvtFromMm(), CvtFromKmi(), +/ CvtFromIn(), CvtFromFt(), CvtFromYd(), CvtFromMi(), CvtFromFath(), +/ CvtFromCh(), CvtFromLink(), CvtFromUsIn(), CvtFromUsFt(), CvtFromUsYd(), +/ CvtFromUsCh(), CvtFromUsMi(), CvtFromIndFt(), CvtFromIndYd(), +/ CvtFromIndCh() +/ +/ converts a Length from one unit to a different one +/ or NULL if any error is encountered +*/ + double cvt; + double value; + int int_value; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + value = sqlite3_value_double (argv[0]); + else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) - refid = (const char *) sqlite3_value_text (argv[3]); - else - { - sqlite3_result_null (context); - return; - } + int_value = sqlite3_value_int (argv[0]); + value = int_value; } - - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (geom == NULL) + else { sqlite3_result_null (context); return; } - if (geom->Srid > 0) - { - int longshort = 0; - if (options & 1) - longshort = 1; - srs = get_srs_by_srid (sqlite, geom->Srid, longshort); - } - x3d = gaiaAsX3D (geom, srs, precision, options, refid); - if (x3d != NULL) - { - int len = strlen (x3d); - sqlite3_result_text (context, x3d, len, free); - } - else + if (!gaiaConvertLength (value, unit_from, unit_to, &cvt)) sqlite3_result_null (context); - gaiaFreeGeomColl (geom); - if (srs) - free (srs); + else + sqlite3_result_double (context, cvt); +} + +static void +fnct_cvtToKm (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_KM); +} + +static void +fnct_cvtToDm (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_DM); +} + +static void +fnct_cvtToCm (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_CM); +} + +static void +fnct_cvtToMm (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_MM); +} + +static void +fnct_cvtToKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_KMI); +} + +static void +fnct_cvtToIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_IN); +} + +static void +fnct_cvtToFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_FT); +} + +static void +fnct_cvtToYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_YD); +} + +static void +fnct_cvtToMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_MI); +} + +static void +fnct_cvtToFath (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_FATH); +} + +static void +fnct_cvtToCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_CH); +} + +static void +fnct_cvtToLink (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_LINK); +} + +static void +fnct_cvtToUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_US_IN); +} + +static void +fnct_cvtToUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_US_FT); +} + +static void +fnct_cvtToUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_US_YD); +} + +static void +fnct_cvtToUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_US_CH); +} + +static void +fnct_cvtToUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_US_MI); +} + +static void +fnct_cvtToIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_IND_FT); +} + +static void +fnct_cvtToIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_IND_YD); +} + +static void +fnct_cvtToIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_M, GAIA_IND_CH); +} + +static void +fnct_cvtFromKm (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_KM, GAIA_M); } static void -fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromDm (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ 3DDistance(BLOBencoded geom1, BLOBencoded geom2) -/ -/ returns the 3D distance between GEOM-1 and GEOM-2 -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - double dist; - int ret; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else - { - ret = gaia3DDistance (geo1, geo2, &dist); - if (!ret) - sqlite3_result_null (context); - else - sqlite3_result_double (context, dist); - } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + convertUnit (context, argc, argv, GAIA_DM, GAIA_M); } static void -fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromCm (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ MaxDistance(BLOBencoded geom1, BLOBencoded geom2) -/ -/ returns the max 2D distance between GEOM-1 and GEOM-2 -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - double dist; - int ret; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else - { - ret = gaiaMaxDistance (geo1, geo2, &dist); - if (!ret) - sqlite3_result_null (context); - else - sqlite3_result_double (context, dist); - } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + convertUnit (context, argc, argv, GAIA_CM, GAIA_M); } static void -fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromMm (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2) -/ -/ returns the max 3D distance between GEOM-1 and GEOM-2 -*/ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geo1 = NULL; - gaiaGeomCollPtr geo2 = NULL; - double dist; - int ret; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); - n_bytes = sqlite3_value_bytes (argv[1]); - geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo1 || !geo2) - sqlite3_result_null (context); - else - { - ret = gaia3DMaxDistance (geo1, geo2, &dist); - if (!ret) - sqlite3_result_null (context); - else - sqlite3_result_double (context, dist); - } - gaiaFreeGeomColl (geo1); - gaiaFreeGeomColl (geo2); + convertUnit (context, argc, argv, GAIA_MM, GAIA_M); } -#endif /* end LWGEOM support */ +static void +fnct_cvtFromKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_KMI, GAIA_M); +} -#endif /* end including GEOS */ +static void +fnct_cvtFromIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_IN, GAIA_M); +} -#ifndef OMIT_MATHSQL /* supporting SQL math functions */ +static void +fnct_cvtFromFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_FT, GAIA_M); +} -static int -testInvalidFP (double x) +static void +fnct_cvtFromYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* testing if this one is an invalid Floating Point */ -#ifdef _WIN32 - if (_fpclass (x) == _FPCLASS_NN || _fpclass (x) == _FPCLASS_PN || - _fpclass (x) == _FPCLASS_NZ || _fpclass (x) == _FPCLASS_PZ) - ; - else - return 1; -#else - if (fpclassify (x) == FP_NORMAL || fpclassify (x) == FP_ZERO) - ; - else - return 1; -#endif - return 0; + convertUnit (context, argc, argv, GAIA_YD, GAIA_M); } static void -fnct_math_acos (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ acos(double X) -/ -/ Returns the arc cosine of X, that is, the value whose cosine is X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = acos (sqlite3_value_double (argv[0])); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = acos (x); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_MI, GAIA_M); } static void -fnct_math_asin (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromFath (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ asin(double X) -/ -/ Returns the arc sine of X, that is, the value whose sine is X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = asin (sqlite3_value_double (argv[0])); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = asin (x); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_FATH, GAIA_M); } static void -fnct_math_atan (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ atan(double X) -/ -/ Returns the arc tangent of X, that is, the value whose tangent is X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = atan (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = atan (x); - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_CH, GAIA_M); } static void -fnct_math_ceil (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromLink (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ ceil(double X) -/ -/ Returns the smallest integer value not less than X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = ceil (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = ceil (x); - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_LINK, GAIA_M); } static void -fnct_math_cos (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ cos(double X) -/ -/ Returns the cosine of X, where X is given in radians -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = cos (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = cos (x); - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_US_IN, GAIA_M); } static void -fnct_math_cot (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ cot(double X) -/ -/ Returns the cotangent of X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - double tang; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - tang = tan (x); - if (tang == 0.0) - { - sqlite3_result_null (context); - return; - } - x = 1.0 / tang; - sqlite3_result_double (context, x); + convertUnit (context, argc, argv, GAIA_US_FT, GAIA_M); } static void -fnct_math_degrees (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ degrees(double X) -/ -/ Returns the argument X, converted from radians to degrees -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - x = x * 57.29577951308232; - sqlite3_result_double (context, x); + convertUnit (context, argc, argv, GAIA_US_YD, GAIA_M); } static void -fnct_math_exp (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ exp(double X) -/ -/ Returns the value of e (the base of natural logarithms) raised to the power of X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = exp (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = exp (x); - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_US_CH, GAIA_M); } static void -fnct_math_floor (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ floor(double X) -/ -/ Returns the largest integer value not greater than X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = floor (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = floor (x); - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_US_MI, GAIA_M); } static void -fnct_math_logn (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ log(double X) -/ -/ Returns the natural logarithm of X; that is, the base-e logarithm of X -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = log (sqlite3_value_double (argv[0])); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = log (x); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); - } - else - sqlite3_result_null (context); + convertUnit (context, argc, argv, GAIA_IND_FT, GAIA_M); } static void -fnct_math_logn2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_cvtFromIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { -/* SQL function: -/ log(double B, double X) -/ -/ Returns the logarithm of X to the base B -/ or NULL if any error is encountered -*/ - int int_value; - double x = 0.0; - double b = 1.0; - double log1; - double log2; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - b = sqlite3_value_double (argv[1]); - else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[1]); - b = int_value; - } - else - { - sqlite3_result_null (context); - return; - } - if (x <= 0.0 || b <= 1.0) - { - sqlite3_result_null (context); - return; - } - log1 = log (x); - if (testInvalidFP (log1)) - { - sqlite3_result_null (context); - return; - } - log2 = log (b); - if (testInvalidFP (log2)) - { - sqlite3_result_null (context); - return; - } - sqlite3_result_double (context, log1 / log2); + convertUnit (context, argc, argv, GAIA_IND_YD, GAIA_M); +} + +static void +fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ + convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M); } static void -fnct_math_log_2 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_longFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ log2(double X) +/ LongitudeFromDMS ( dms_string ) / -/ Returns the base-2 logarithm of X +/ return the Longitude (in Decimal Degrees) from a DMS text expression / or NULL if any error is encountered */ - int int_value; - double x; - double log1; - double log2; + const char *dms; + double longitude; + double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + dms = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } - log1 = log (x); - if (testInvalidFP (log1)) - { - sqlite3_result_null (context); - return; - } - log2 = log (2.0); - sqlite3_result_double (context, log1 / log2); + if (!gaiaParseDMS (dms, &longitude, &latitude)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, longitude); } static void -fnct_math_log_10 (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_latFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ log10(double X) +/ LatitudeFromDMS ( dms_string ) / -/ Returns the base-10 logarithm of X +/ return the Latitude (in Decimal Degrees) from a DMS text expression / or NULL if any error is encountered */ - int int_value; - double x; - double log1; - double log2; + const char *dms; + double longitude; + double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) + dms = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } - log1 = log (x); - if (testInvalidFP (log1)) - { - sqlite3_result_null (context); - return; - } - log2 = log (10.0); - sqlite3_result_double (context, log1 / log2); -} - -static void -fnct_math_pi (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ pi(void) -/ -/ Returns the value of (pi) -*/ - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - sqlite3_result_double (context, 3.14159265358979323846); + if (!gaiaParseDMS (dms, &longitude, &latitude)) + sqlite3_result_null (context); + else + sqlite3_result_double (context, latitude); } static void -fnct_math_pow (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_toDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ pow(double X, double Y) +/ LongLatToDMS ( longitude, latitude ) / -/ Returns the value of X raised to the power of Y. +/ return a DMS text expression / or NULL if any error is encountered */ - int int_value; - double x; - double y; - double p; + double longitude; + double latitude; + char *dms; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); + longitude = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; + int value = sqlite3_value_int (argv[0]); + longitude = value; } else { @@ -20146,1129 +26417,1857 @@ fnct_math_pow (sqlite3_context * context, int argc, sqlite3_value ** argv) return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) - y = sqlite3_value_double (argv[1]); + latitude = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { - int_value = sqlite3_value_int (argv[1]); - y = int_value; + int value = sqlite3_value_int (argv[1]); + latitude = value; } else { sqlite3_result_null (context); return; } - p = pow (x, y); - if (testInvalidFP (p)) + dms = gaiaConvertToDMS (longitude, latitude); + if (dms == NULL) sqlite3_result_null (context); else - sqlite3_result_double (context, p); + sqlite3_result_text (context, dms, strlen (dms), free); } +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ + static void -fnct_math_stddev_step (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_CreateStylingTables (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ stddev_pop(double X) -/ stddev_samp(double X) -/ var_pop(double X) -/ var_samp(double X) -/ -/ aggregate function - STEP +/ CreateStylingTables() +/ or +/ CreateStylingTables(bool relaxed) / +/ creates any SLD/SE related table +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - struct stddev_str *p; - int int_value; - double x; + int relaxed = 0; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) - { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - } - else - return; - p = sqlite3_aggregate_context (context, sizeof (struct stddev_str)); - if (!(p->cleaned)) + if (argc == 1) { - p->cleaned = 1; - p->mean = x; - p->quot = 0.0; - p->count = 0.0; + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + relaxed = sqlite3_value_int (argv[0]); } - p->count += 1.0; - p->quot = - p->quot + - (((p->count - 1.0) * ((x - p->mean) * (x - p->mean))) / p->count); - p->mean = p->mean + ((x - p->mean) / p->count); + + if (!createStylingTables (sqlite, relaxed)) + goto error; + updateSpatiaLiteHistory (sqlite, "*** SE Styling ***", NULL, + "Styling tables successfully created"); + sqlite3_result_int (context, 1); + return; + + error: + sqlite3_result_int (context, 0); + return; } static void -fnct_math_stddev_pop_final (sqlite3_context * context) +fnct_RegisterExternalGraphic (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ stddev_pop(double X) -/ aggregate function - FINAL +/ RegisterExternalGraphic(String xlink_href, BLOB resource) +/ or +/ RegisterExternalGraphic(String xlink_href, BLOB resource, String file_name) / +/ insert or updates an External Graphic +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - double x; - struct stddev_str *p = sqlite3_aggregate_context (context, 0); - if (!p) + int ret; + const char *xlink_href; + const char *title = NULL; + const char *abstract = NULL; + const char *file_name = NULL; + const unsigned char *p_blob; + int n_bytes; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } - x = sqrt (p->quot / p->count); - sqlite3_result_double (context, x); -} - -static void -fnct_math_stddev_samp_final (sqlite3_context * context) -{ -/* SQL function: -/ stddev_samp(double X) -/ aggregate function - FINAL -/ -*/ - double x; - struct stddev_str *p = sqlite3_aggregate_context (context, 0); - if (!p) + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } - x = sqrt (p->quot / (p->count - 1.0)); - sqlite3_result_double (context, x); + if (argc == 5) + { + /* optional extra args */ + if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + } + xlink_href = (const char *) sqlite3_value_text (argv[0]); + p_blob = sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + if (argc == 5) + { + title = (const char *) sqlite3_value_text (argv[2]); + abstract = (const char *) sqlite3_value_text (argv[3]); + file_name = (const char *) sqlite3_value_text (argv[4]); + } + ret = register_external_graphic (sqlite, xlink_href, p_blob, n_bytes, + title, abstract, file_name); + sqlite3_result_int (context, ret); } static void -fnct_math_var_pop_final (sqlite3_context * context) +fnct_RegisterVectorStyledLayer (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ var_pop(double X) -/ aggregate function - FINAL +/ RegisterVectorStyledLayer(String f_table_name, String f_geometry_column, +/ BLOB style) +/ or +/ RegisterVectorStyledLayer(String f_table_name, String f_geometry_column, +/ Integer style_id, BLOB style) / +/ inserts or updates a Vector Styled Layer +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - double x; - struct stddev_str *p = sqlite3_aggregate_context (context, 0); - if (!p) + int ret; + const char *f_geometry_column; + const char *f_table_name; + int style_id = -1; + const unsigned char *p_blob; + int n_bytes; + sqlite3 *sqlite = sqlite3_context_db_handle (context); + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } - x = p->quot / p->count; - sqlite3_result_double (context, x); -} - -static void -fnct_math_var_samp_final (sqlite3_context * context) -{ -/* SQL function: -/ var_samp(double X) -/ aggregate function - FINAL -/ -*/ - double x; - struct stddev_str *p = sqlite3_aggregate_context (context, 0); - if (!p) + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { - sqlite3_result_null (context); + sqlite3_result_int (context, -1); return; } - x = p->quot / (p->count - 1.0); - sqlite3_result_double (context, x); -} - -static void -fnct_math_radians (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ -/* SQL function: -/ radians(double X) -/ -/ Returns the argument X, converted from degrees to radians -/ or NULL if any error is encountered -*/ - int int_value; - double x; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (argc == 4) + { + /* optional extra args */ + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + } + else + { + /* no extra-args */ + if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + } + f_table_name = (const char *) sqlite3_value_text (argv[0]); + f_geometry_column = (const char *) sqlite3_value_text (argv[1]); + if (argc == 4) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; + style_id = sqlite3_value_int (argv[2]); + p_blob = sqlite3_value_blob (argv[3]); + n_bytes = sqlite3_value_bytes (argv[3]); } else { - sqlite3_result_null (context); - return; + p_blob = sqlite3_value_blob (argv[2]); + n_bytes = sqlite3_value_bytes (argv[2]); } - x = x * .0174532925199432958; - sqlite3_result_double (context, x); + ret = register_vector_styled_layer (sqlite, f_table_name, + f_geometry_column, style_id, p_blob, + n_bytes); + sqlite3_result_int (context, ret); } - static void -fnct_math_round (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_RegisterRasterStyledLayer (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ round(double X) +/ RegisterRasterStyledLayer(String coverage_name, BLOB style) +/ or +/ RegisterRasterStyledLayer(String coverage_name, Integer style_id, +/ BLOB style) / -/ Returns the the nearest integer, but round halfway cases away from zero -/ or NULL if any error is encountered +/ inserts or updates a Raster Styled Layer +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - int int_value; - double x; + int ret; + const char *coverage_name; + int style_id = -1; + const unsigned char *p_blob; + int n_bytes; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - x = math_round (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); + sqlite3_result_int (context, -1); + return; } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (argc == 3) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = math_round (x); - sqlite3_result_double (context, x); + /* optional extra args */ + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } } else - sqlite3_result_null (context); + { + /* no extra-args */ + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + } + coverage_name = (const char *) sqlite3_value_text (argv[0]); + if (argc == 3) + { + style_id = sqlite3_value_int (argv[1]); + p_blob = sqlite3_value_blob (argv[2]); + n_bytes = sqlite3_value_bytes (argv[2]); + } + else + { + p_blob = sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + } + ret = register_raster_styled_layer (sqlite, coverage_name, style_id, + p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_math_sign (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_RegisterStyledGroup (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ sign(double X) +/ RegisterStyledGroup(String group_name, String coverage_name +/ [, Integer paint_order ] ) +/ or +/ RegisterStyledGroup(String group_name, String f_table_name, +/ String f_geometry_column +/ [, Integer paint_order ] ) / -/ Returns the sign of the argument as -1, 0, or 1, depending on whether X is negative, zero, or positive -/ or NULL if any error is encountered +/ inserts or updates a Styled Group item +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - int int_value; - double x; + int ret; + const char *group_name; + const char *f_table_name = NULL; + const char *f_geometry_column = NULL; + const char *coverage_name = NULL; + int paint_order = -1; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - x = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (argc == 2) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; + /* raster layer - default */ + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT + && sqlite3_value_type (argv[1]) == SQLITE_TEXT) + { + group_name = (const char *) sqlite3_value_text (argv[0]); + coverage_name = (const char *) sqlite3_value_text (argv[1]); + } + else + { + sqlite3_result_int (context, -1); + return; + } } - else + else if (argc == 3) { - sqlite3_result_null (context); - return; + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT + && sqlite3_value_type (argv[1]) == SQLITE_TEXT + && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + { + /* raster layer - paint_order */ + group_name = (const char *) sqlite3_value_text (argv[0]); + coverage_name = (const char *) sqlite3_value_text (argv[1]); + paint_order = sqlite3_value_int (argv[2]); + } + else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT + && sqlite3_value_type (argv[1]) == SQLITE_TEXT + && sqlite3_value_type (argv[2]) == SQLITE_TEXT) + { + /* vector layer - default */ + group_name = (const char *) sqlite3_value_text (argv[0]); + f_table_name = (const char *) sqlite3_value_text (argv[1]); + f_geometry_column = (const char *) sqlite3_value_text (argv[2]); + } + else + { + sqlite3_result_int (context, -1); + return; + } } - if (x > 0.0) - sqlite3_result_double (context, 1.0); - else if (x < 0.0) - sqlite3_result_double (context, -1.0); - else - sqlite3_result_double (context, 0.0); + else if (argc == 4) + { + /* vector layer - paint_order */ + if (sqlite3_value_type (argv[0]) == SQLITE_TEXT + && sqlite3_value_type (argv[1]) == SQLITE_TEXT + && sqlite3_value_type (argv[2]) == SQLITE_TEXT + && sqlite3_value_type (argv[3]) == SQLITE_INTEGER) + { + group_name = (const char *) sqlite3_value_text (argv[0]); + f_table_name = (const char *) sqlite3_value_text (argv[1]); + f_geometry_column = (const char *) sqlite3_value_text (argv[2]); + paint_order = sqlite3_value_int (argv[3]); + } + else + { + sqlite3_result_int (context, -1); + return; + } + } + ret = register_styled_group (sqlite, group_name, f_table_name, + f_geometry_column, coverage_name, paint_order); + sqlite3_result_int (context, ret); } static void -fnct_math_sin (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_SetStyledGroupInfos (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ sin(double X) +/ SetStyledGroupInfos(String group_name, String title, +/ String abstract) / -/ Returns the sine of X, where X is given in radians -/ or NULL if any error is encountered +/ inserts or updates the descriptive infos supporting a Styled Group +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - int int_value; - double x; + int ret; + const char *group_name; + const char *title = NULL; + const char *abstract = NULL; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - x = sin (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); + sqlite3_result_int (context, -1); + return; } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = sin (x); - sqlite3_result_double (context, x); + sqlite3_result_int (context, -1); + return; } - else - sqlite3_result_null (context); + if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + group_name = (const char *) sqlite3_value_text (argv[0]); + title = (const char *) sqlite3_value_text (argv[1]); + abstract = (const char *) sqlite3_value_text (argv[2]); + ret = styled_group_set_infos (sqlite, group_name, title, abstract); + sqlite3_result_int (context, ret); } static void -fnct_math_sqrt (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_RegisterGroupStyle (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ sqrt(double X) +/ RegisterGroupStyle(String group_name, BLOB style) +/ or +/ RegisterGroupStyle(String group_name, Integer style_id, +/ BLOB style) / -/ Returns the square root of a non-negative number X -/ or NULL if any error is encountered +/ inserts or updates a Group Style +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - int int_value; - double x; + int ret; + const char *group_name; + int style_id = -1; + const unsigned char *p_blob; + int n_bytes; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { - x = sqrt (sqlite3_value_double (argv[0])); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); + sqlite3_result_int (context, -1); + return; } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (argc == 3) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = sqrt (x); - if (testInvalidFP (x)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, x); + /* optional extra args */ + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } } else - sqlite3_result_null (context); + { + /* no extra-args */ + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + } + group_name = (const char *) sqlite3_value_text (argv[0]); + if (argc == 3) + { + style_id = sqlite3_value_int (argv[1]); + p_blob = sqlite3_value_blob (argv[2]); + n_bytes = sqlite3_value_bytes (argv[2]); + } + else + { + p_blob = sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + } + ret = register_group_style (sqlite, group_name, style_id, p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_math_tan (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_CreateIsoMetadataTables (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ tan(double X) +/ CreateIsoMetadataTables() +/ or +/ CreateIsoMetadataTables(bool relaxed) / -/ Returns the tangent of X, where X is given in radians -/ or NULL if any error is encountered +/ creates any ISO Metadata related table +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - int int_value; - double x; + int relaxed = 0; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - { - x = tan (sqlite3_value_double (argv[0])); - sqlite3_result_double (context, x); - } - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + if (argc == 1) { - int_value = sqlite3_value_int (argv[0]); - x = int_value; - x = tan (x); - sqlite3_result_double (context, x); + if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + relaxed = sqlite3_value_int (argv[0]); } - else - sqlite3_result_null (context); -} -#endif /* end supporting SQL math functions */ + if (!createIsoMetadataTables (sqlite, relaxed)) + goto error; + updateSpatiaLiteHistory (sqlite, "*** ISO Metadata ***", NULL, + "ISO Metadata tables successfully created"); + sqlite3_result_int (context, 1); + return; + + error: + sqlite3_result_int (context, 0); + return; +} static void -fnct_GeomFromExifGpsBlob (sqlite3_context * context, int argc, - sqlite3_value ** argv) +fnct_GetIsoMetadataId (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ GeomFromExifGpsBlob(BLOB encoded image) +/ GetIsoMetadataId(String fileIdentifier) / -/ returns: -/ a POINT geometry -/ or NULL if any error is encountered +/ return the ID of the row corresponding to "fileIdentifier" +/ 0 on failure / -1 on invalid argument */ - unsigned char *p_blob; - int n_bytes; - gaiaGeomCollPtr geom; - unsigned char *geoblob; - int geosize; - double longitude; - double latitude; + const char *fileIdentifier; + sqlite3_int64 id; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) - { - sqlite3_result_null (context); - return; - } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - if (gaiaGetGpsCoords (p_blob, n_bytes, &longitude, &latitude)) - { - geom = gaiaAllocGeomColl (); - geom->Srid = 4326; - gaiaAddPointToGeomColl (geom, longitude, latitude); - gaiaToSpatiaLiteBlobWkb (geom, &geoblob, &geosize); - gaiaFreeGeomColl (geom); - sqlite3_result_blob (context, geoblob, geosize, free); + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; } + fileIdentifier = (const char *) sqlite3_value_text (argv[0]); + if (!get_iso_metadata_id (sqlite, fileIdentifier, &id)) + sqlite3_result_int (context, 0); else - sqlite3_result_null (context); + sqlite3_result_int64 (context, id); } static void -blob_guess (sqlite3_context * context, int argc, sqlite3_value ** argv, - int request) +fnct_RegisterIsoMetadata (sqlite3_context * context, int argc, + sqlite3_value ** argv) { /* SQL function: -/ IsGifBlob(BLOB encoded image) -/ IsPngBlob, IsJpegBlob, IsExifBlob, IsExifGpsBlob, IsTiffBlob, -/ IsZipBlob, IsPdfBlob,IsGeometryBlob +/ RegisterIsoMetadata(String scope, BLOB metadata) +/ or +/ RegisterIsoMetadata(String scope, BLOB metadata, +/ Integer id) +/ or +/ RegisterIsoMetadata(String scope, BLOB metadata, +/ String fileIdentifier) / -/ returns: -/ 1 if the required BLOB_TYPE is TRUE -/ 0 otherwise -/ or -1 if any error is encountered +/ insert or updates a Raster Styled Layer +/ returns 1 on success +/ 0 on failure, -1 on invalid arguments */ - unsigned char *p_blob; + int ret; + const char *scope; + const unsigned char *p_blob; int n_bytes; - int blob_type; + sqlite3_int64 id = -1; + const char *fileIdentifier = NULL; + sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - blob_type = gaiaGuessBlobType (p_blob, n_bytes); - if (request == GAIA_GEOMETRY_BLOB) - { - if (blob_type == GAIA_GEOMETRY_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - return; - } - if (request == GAIA_ZIP_BLOB) - { - if (blob_type == GAIA_ZIP_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - return; - } - if (request == GAIA_PDF_BLOB) + if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { - if (blob_type == GAIA_PDF_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); + sqlite3_result_int (context, -1); return; } - if (request == GAIA_TIFF_BLOB) + if (argc == 3) { - if (blob_type == GAIA_TIFF_BLOB) - sqlite3_result_int (context, 1); + /* optional extra args */ + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER || + sqlite3_value_type (argv[2]) == SQLITE_TEXT) + ; else - sqlite3_result_int (context, 0); - return; + { + sqlite3_result_int (context, -1); + return; + } } - if (request == GAIA_GIF_BLOB) + scope = (const char *) sqlite3_value_text (argv[0]); + p_blob = sqlite3_value_blob (argv[1]); + n_bytes = sqlite3_value_bytes (argv[1]); + if (argc == 3) { - if (blob_type == GAIA_GIF_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - return; + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + id = sqlite3_value_int64 (argv[2]); + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + fileIdentifier = (const char *) sqlite3_value_text (argv[2]); } - if (request == GAIA_PNG_BLOB) + ret = register_iso_metadata (sqlite, scope, p_blob, n_bytes, &id, + fileIdentifier); + sqlite3_result_int (context, ret); +} + +static void +fnct_XB_Create (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ XB_Create(BLOB XMLdocument) +/ XB_Create(BLOB XMLdocument, bool compressed) +/ XB_Create(BLOB XMLdocument, bool compressed, text SchemaURI) +/ XB_Create(BLOB XMLdocument, bool compressed, int InternalSchemaURI) +/ +/ returns the current XmlBlob by parsing an XMLdocument +/ or NULL if any error is encountered +/ +/ - the XMLdocument should be "well formed" +/ - if *compressed* is TRUE (default) the XmlBlob would be zipped +/ - if *SchemaURI* in not NULL then only XMLdocuments succesfully +/ passing a formal Schema Validation will be accepted as valid +/ - if *InternalSchamaURI* is defined (any numeric value) then an +/ attempt will be made in order to identify a SchemaURI defined +/ internally within the XMLDocument itself. +/ if such internal SchemaURI doesn't exists, or if the formal +/ Schema Validation fails, NULL will be returned. +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *xml; + int xml_len; + int compressed = 1; + int use_internal_schema_uri = 0; + const char *schemaURI = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - if (blob_type == GAIA_PNG_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); + sqlite3_result_null (context); return; } - if (request == GAIA_JPEG_BLOB) + if (argc >= 2) { - if (blob_type == GAIA_JPEG_BLOB || blob_type == GAIA_EXIF_BLOB - || blob_type == GAIA_EXIF_GPS_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); - return; + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) + { + sqlite3_result_null (context); + return; + } } - if (request == GAIA_EXIF_BLOB) + if (argc == 3) { - if (blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) + if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) + use_internal_schema_uri = 1; + else if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { - sqlite3_result_int (context, 1); + sqlite3_result_null (context); + return; } - else - sqlite3_result_int (context, 0); - return; } - if (request == GAIA_EXIF_GPS_BLOB) + xml = (const unsigned char *) sqlite3_value_blob (argv[0]); + xml_len = sqlite3_value_bytes (argv[0]); + if (argc >= 2) + compressed = sqlite3_value_int (argv[1]); + if (use_internal_schema_uri) { - if (blob_type == GAIA_EXIF_GPS_BLOB) + /* using the SchemaURI internally defined within the XMLDocument */ + char *internalSchemaURI = + gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, + xml_len); + if (internalSchemaURI == NULL) { - sqlite3_result_int (context, 1); + /* unable to identify the SchemaURI */ + p_result = NULL; } else - sqlite3_result_int (context, 0); - return; + { + /* ok, attempting to validate using the internal SchemaURI */ + gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, + compressed, internalSchemaURI, &p_result, + &len, NULL, NULL); + free (internalSchemaURI); + } } - if (request == GAIA_WEBP_BLOB) + else { - if (blob_type == GAIA_WEBP_BLOB) - sqlite3_result_int (context, 1); - else - sqlite3_result_int (context, 0); + if (argc == 3) + schemaURI = (const char *) sqlite3_value_text (argv[2]); + gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, + compressed, schemaURI, &p_result, &len, NULL, NULL); + } + if (p_result == NULL) + { + sqlite3_result_null (context); return; } - sqlite3_result_int (context, -1); -} - -/* -/ the following functions simply readdress the blob_guess() -/ setting the appropriate request mode -*/ - -static void -fnct_IsGeometryBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_GEOMETRY_BLOB); -} - -static void -fnct_IsZipBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_ZIP_BLOB); -} - -static void -fnct_IsPdfBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_PDF_BLOB); -} - -static void -fnct_IsTiffBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_TIFF_BLOB); -} - -static void -fnct_IsGifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_GIF_BLOB); -} - -static void -fnct_IsPngBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_PNG_BLOB); -} - -static void -fnct_IsJpegBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_JPEG_BLOB); -} - -static void -fnct_IsExifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_EXIF_BLOB); -} - -static void -fnct_IsExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_EXIF_GPS_BLOB); -} - -static void -fnct_IsWebPBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - blob_guess (context, argc, argv, GAIA_WEBP_BLOB); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_BlobFromFile (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_LoadXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BlobFromFile(TEXT filepath) +/ XB_LoadXML(text path-or-URL) +/ +/ returns a generic Text by parsing an XML Document +/ or NULL if any error is encountered / -/ returns: -/ some BLOB on success -/ or NULL on failure */ - unsigned char *p_blob; - int n_bytes; - int max_blob; - int rd; - sqlite3 *sqlite = sqlite3_context_db_handle (context); - const char *path = NULL; - FILE *in = NULL; + const char *path_or_url; + unsigned char *xml; + int xml_len; + int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) - path = (const char *) sqlite3_value_text (argv[0]); - if (path == NULL) + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - in = fopen (path, "rb"); - if (in == NULL) + path_or_url = (const char *) sqlite3_value_text (argv[0]); + +/* acquiring the XML Document as a Blob */ + ret = gaiaXmlLoad + (sqlite3_user_data (context), path_or_url, &xml, &xml_len, NULL); + if (!ret || xml == NULL) { sqlite3_result_null (context); return; } - else + + sqlite3_result_blob (context, xml, xml_len, free); +} + +static void +fnct_XB_GetPayload (sqlite3_context * context, int argc, sqlite3_value ** argv) +{ +/* SQL function: +/ XB_GetPayload(XmlBLOB) +/ XB_GetPayload(XmlBLOB, int format) +/ +/ returns the current XMLDocument (as BLOB) by parsing an XmlBLOB +/ or NULL if any error is encountered +/ +/ the returned buffer will be always null-terminated +*/ + const unsigned char *p_blob; + int n_bytes; + unsigned char *out; + int out_len; + int indent = -1; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - /* querying the file length */ - if (fseek (in, 0, SEEK_END) < 0) - { - sqlite3_result_null (context); - fclose (in); - return; - } - n_bytes = ftell (in); - max_blob = sqlite3_limit (sqlite, SQLITE_LIMIT_LENGTH, -1); - if (n_bytes > max_blob) - { - /* too big; cannot be stored into a BLOB */ - sqlite3_result_null (context); - fclose (in); - return; - } - rewind (in); - p_blob = malloc (n_bytes); - /* attempting to load the BLOB from the file */ - rd = fread (p_blob, 1, n_bytes, in); - fclose (in); - if (rd != n_bytes) + sqlite3_result_null (context); + return; + } + if (argc == 2) + { + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - /* read error */ - free (p_blob); sqlite3_result_null (context); return; } - sqlite3_result_blob (context, p_blob, n_bytes, free); } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (argc == 2) + indent = sqlite3_value_int (argv[1]); + gaiaXmlFromBlob (p_blob, n_bytes, indent, &out, &out_len); + if (out == NULL) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_blob (context, out, out_len, free); } static void -fnct_BlobToFile (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_StoreXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ BlobToFile(BLOB payload, TEXT filepath) +/ XB_StoreXML(XmlBLOB, text path) +/ XB_StoreXML(XmlBLOB, taxt path, int format) +/ +/ exports the current XMLDocument into an external file by parsing an XmlBLOB +/ return 1 on success, 0 on failure, -1 on invalid args / -/ returns: -/ 1 on success -/ or 0 on failure */ - unsigned char *p_blob; + const unsigned char *p_blob; int n_bytes; - const char *path = NULL; - FILE *out = NULL; - int ret = 1; + const char *path; + int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { - sqlite3_result_int (context, 0); + sqlite3_result_int (context, -1); return; } - if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) - path = (const char *) sqlite3_value_text (argv[1]); - if (path == NULL) + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { - sqlite3_result_int (context, 0); + sqlite3_result_int (context, -1); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + if (argc == 3) + { + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) + { + sqlite3_result_int (context, -1); + return; + } + } + p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); - out = fopen (path, "wb"); - if (out == NULL) - ret = 0; - else + path = (const char *) sqlite3_value_text (argv[1]); + if (argc == 3) + indent = sqlite3_value_int (argv[2]); + if (!gaiaXmlStore (p_blob, n_bytes, path, indent)) { - /* exporting the BLOB into the file */ - int wr = fwrite (p_blob, 1, n_bytes, out); - if (wr != n_bytes) - ret = 0; - fclose (out); + sqlite3_result_int (context, 0); + return; } - sqlite3_result_int (context, ret); + sqlite3_result_int (context, 1); } static void -fnct_GeodesicLength (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetDocument (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GeodesicLength(BLOB encoded GEOMETRYCOLLECTION) +/ XB_GetDocument(XmlBLOB) +/ XB_GetDocument(XmlBLOB, int indent) / -/ returns the total Geodesic length for current geometry +/ returns the current XMLDocument (as UTF-8 TEXT) by parsing an XmlBLOB / or NULL if any error is encountered +/ +/ the returned buffer will be always null-terminated */ - unsigned char *p_blob; + const unsigned char *p_blob; int n_bytes; - double l; - double length = 0.0; - double a; - double b; - double rf; - gaiaGeomCollPtr geo = NULL; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; - gaiaRingPtr ring; - int ib; - sqlite3 *sqlite = sqlite3_context_db_handle (context); + char *xml; + int len; + int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (argc == 2) { - if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) + if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { - 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; - } - if (length >= 0) - { - /* Polygons */ - polyg = geo->FirstPolygon; - 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; 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; - } - length += l; - } - if (length < 0.0) - break; - polyg = polyg->Next; - } - } - if (length < 0.0) - sqlite3_result_null (context); - else - sqlite3_result_double (context, length); + sqlite3_result_null (context); + return; } - else - sqlite3_result_null (context); - gaiaFreeGeomColl (geo); } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (argc == 2) + indent = sqlite3_value_int (argv[1]); + xml = gaiaXmlTextFromBlob (p_blob, n_bytes, indent); + if (xml == NULL) + { + sqlite3_result_null (context); + return; + } + len = strlen ((const char *) xml); + sqlite3_result_text (context, (char *) xml, len, free); } static void -fnct_GreatCircleLength (sqlite3_context * context, int argc, +fnct_XB_SchemaValidate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: -/ GreatCircleLength(BLOB encoded GEOMETRYCOLLECTION) +/ XB_SchemaValidate(XmlBLOB, text SchemaURI) +/ XB_SchemaValidate(XmlBLOB, text SchemaURI, bool compressed) +/ XB_SchemaValidate(XmlBLOB, int InternalSchemaURI) +/ XB_SchemaValidate(XmlBLOB, int InternalSchemaURI, bool compressed) / -/ returns the total Great Circle length for current geometry +/ returns a validated XmlBLOB object if the SchemaValidation was succesfull / or NULL if any error is encountered */ - unsigned char *p_blob; + int len; + unsigned char *p_result = NULL; + const unsigned char *p_blob; int n_bytes; - double length = 0.0; - double a; - double b; - double rf; - gaiaGeomCollPtr geo = NULL; - gaiaLinestringPtr line; - gaiaPolygonPtr polyg; - gaiaRingPtr ring; - int ib; - sqlite3 *sqlite = sqlite3_context_db_handle (context); + unsigned char *xml; + int xml_len; + int compressed = 1; + const char *schemaURI = NULL; + int use_internal_schema_uri = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } - p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); - n_bytes = sqlite3_value_bytes (argv[0]); - geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); - if (!geo) - sqlite3_result_null (context); - else + if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) + use_internal_schema_uri = 1; + else if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { - if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) + sqlite3_result_null (context); + return; + } + if (argc == 3) + { + if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { - line = geo->FirstLinestring; - while (line) - { - /* Linestrings */ - length += - gaiaGreatCircleTotalLength (a, b, - line->DimensionModel, - line->Coords, - line->Points); - line = line->Next; - } - if (length >= 0) - { - /* Polygons */ - 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_null (context); + return; } - else - sqlite3_result_null (context); - gaiaFreeGeomColl (geo); } -} - -static void -convertUnit (sqlite3_context * context, int argc, sqlite3_value ** argv, - int unit_from, int unit_to) -{ -/* SQL functions: -/ CvtToKm(), CvtToDm(), CvtToCm(), CvtToMm(), CvtToKmi(), CvtToIn(), CvtToFt(), -/ CvtToYd(), CvtToMi(), CvtToFath(), CvtToCh(), CvtToLink(), CvtToUsIn(), -/ CvtToUsFt(), CvtToUsYd(), CvtToUsCh(), CvtToUsMi(), CvtToIndFt(), -/ CvtToIndYd(), CvtToIndCh(), -/ CvtFromKm(), CvtFromDm(), CvtFromCm(), CvtFromMm(), CvtFromKmi(), -/ CvtFromIn(), CvtFromFt(), CvtFromYd(), CvtFromMi(), CvtFromFath(), -/ CvtFromCh(), CvtFromLink(), CvtFromUsIn(), CvtFromUsFt(), CvtFromUsYd(), -/ CvtFromUsCh(), CvtFromUsMi(), CvtFromIndFt(), CvtFromIndYd(), -/ CvtFromIndCh() -/ -/ converts a Length from one unit to a different one -/ or NULL if any error is encountered -*/ - double cvt; - double value; - int int_value; - GAIA_UNUSED (); /* LCOV_EXCL_LINE */ - if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) - value = sqlite3_value_double (argv[0]); - else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + if (argc == 3) + compressed = sqlite3_value_int (argv[2]); + gaiaXmlFromBlob (p_blob, n_bytes, -1, &xml, &xml_len); + if (xml == NULL) + { + sqlite3_result_null (context); + return; + } + if (use_internal_schema_uri) { - int_value = sqlite3_value_int (argv[0]); - value = int_value; + /* using the SchemaURI internally defined within the XMLDocument */ + char *internalSchemaURI = + gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, + xml_len); + if (internalSchemaURI == NULL) + { + /* unable to identify the SchemaURI */ + p_result = NULL; + } + else + { + /* ok, attempting to validate using the internal SchemaURI */ + gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, + compressed, internalSchemaURI, &p_result, + &len, NULL, NULL); + free (internalSchemaURI); + } } else + { + schemaURI = (const char *) sqlite3_value_text (argv[1]); + gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, + compressed, schemaURI, &p_result, &len, NULL, NULL); + } + free (xml); + if (p_result == NULL) { sqlite3_result_null (context); return; } - if (!gaiaConvertLength (value, unit_from, unit_to, &cvt)) - sqlite3_result_null (context); - else - sqlite3_result_double (context, cvt); -} - -static void -fnct_cvtToKm (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_KM); -} - -static void -fnct_cvtToDm (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_DM); -} - -static void -fnct_cvtToCm (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_CM); -} - -static void -fnct_cvtToMm (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_MM); -} - -static void -fnct_cvtToKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_KMI); -} - -static void -fnct_cvtToIn (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_IN); -} - -static void -fnct_cvtToFt (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_FT); -} - -static void -fnct_cvtToYd (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_M, GAIA_YD); + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_cvtToMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_Compress (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_MI); +/* SQL function: +/ XB_Compress(XmlBLOB) +/ +/ returns a compressed XmlBLOB object +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *p_blob; + int n_bytes; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + gaiaXmlBlobCompression (p_blob, n_bytes, 1, &p_result, &len); + if (p_result == NULL) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_cvtToFath (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_Uncompress (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_FATH); +/* SQL function: +/ XB_Uncompress(XmlBLOB) +/ +/ returns an uncompressed XmlBLOB object +/ or NULL if any error is encountered +*/ + int len; + unsigned char *p_result = NULL; + const unsigned char *p_blob; + int n_bytes; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + gaiaXmlBlobCompression (p_blob, n_bytes, 0, &p_result, &len); + if (p_result == NULL) + { + sqlite3_result_null (context); + return; + } + sqlite3_result_blob (context, p_result, len, free); } static void -fnct_cvtToCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_CH); +/* SQL function: +/ XB_IsValid(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an XmlBLOB, FALSE if not +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsValidXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToLink (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsCompressed (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_LINK); +/* SQL function: +/ XB_IsCompressed(XmlBLOB) +/ +/ returns TRUE if the current BLOB is a compressed XmlBLOB, +/ FALSE if it's a valid uncompressed XmlBLOB +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsCompressedXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsSchemaValidated (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_US_IN); +/* SQL function: +/ XB_IsSchemaValidated(XmlBLOB) +/ +/ returns TRUE if the current BLOB is a Schema validated XmlBLOB, +/ FALSE if it's a valid but not validated XmlBLOB +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsSchemaValidatedXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsIsoMetadata (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_US_FT); +/* SQL function: +/ XB_IsIsoMetadata(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an ISO Metadata XmlBLOB, +/ FALSE if it's a valid XmlBLOB but not an ISO Metadata +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsIsoMetadataXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsSldSeVectorStyle (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_US_YD); +/* SQL function: +/ XB_IsSldSeVectorStyle(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an SLD/SE Vector Style XmlBLOB, +/ FALSE if it's a valid XmlBLOB but not an SLD/SE Style +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsSldSeVectorStyleXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsSldSeRasterStyle (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_US_CH); +/* SQL function: +/ XB_IsSldSeRasterStyle(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an SLD/SE Raster Style XmlBLOB, +/ FALSE if it's a valid XmlBLOB but not an SLD/SE Style +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsSldSeRasterStyleXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsSldStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_US_MI); +/* SQL function: +/ XB_IsSldStyle(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an SLD Style XmlBLOB, +/ FALSE if it's a valid XmlBLOB but not an SLD Style +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsSldStyleXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_IND_FT); +/* SQL function: +/ XB_IsSvg(XmlBLOB) +/ +/ returns TRUE if the current BLOB is an SLD/SE Style XmlBLOB, +/ FALSE if it's a valid XmlBLOB but not an SLD/SE Style +/ or -1 if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_int (context, -1); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaIsSvgXmlBlob (p_blob, n_bytes); + sqlite3_result_int (context, ret); } static void -fnct_cvtToIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetDocumentSize (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_IND_YD); +/* SQL function: +/ XB_GetDocumentSize(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB will return the XMLDocument size (in bytes) +/ or NULL if any error is encountered +*/ + unsigned char *p_blob; + int n_bytes; + int ret; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + ret = gaiaXmlBlobGetDocumentSize (p_blob, n_bytes); + if (ret < 0) + sqlite3_result_null (context); + else + sqlite3_result_int (context, ret); } static void -fnct_cvtToIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetSchemaURI (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_M, GAIA_IND_CH); +/* SQL function: +/ XB_GetSchemaURI(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a SchemaURI then +/ the SchemaURI will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *schema_uri; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + schema_uri = gaiaXmlBlobGetSchemaURI (p_blob, n_bytes); + if (schema_uri == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void -fnct_cvtFromKm (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_KM, GAIA_M); +/* SQL function: +/ XB_GetFileId(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a FileIdentifier then +/ the FileIdentifier will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *file_identifier; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + file_identifier = gaiaXmlBlobGetFileId (p_blob, n_bytes); + if (file_identifier == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, file_identifier, + strlen (file_identifier), free); } static void -fnct_cvtFromDm (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_DM, GAIA_M); +/* SQL function: +/ XB_GetParentId(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a ParentIdentifier then +/ the ParentIdentifier will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *parent_identifier; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + parent_identifier = gaiaXmlBlobGetParentId (p_blob, n_bytes); + if (parent_identifier == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, parent_identifier, + strlen (parent_identifier), free); } static void -fnct_cvtFromCm (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_SetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_CM, GAIA_M); +/* SQL function: +/ XB_SetFileId(XmlBLOB, Text value) +/ +/ if the BLOB is a valid XmlBLOB of the ISO-Metadata type +/ already containing a FileID then this function will +/ return a new XmlBLOB containing the new FileID +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + unsigned char *new_blob; + int new_bytes; + const char *identifier; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + identifier = (const char *) sqlite3_value_text (argv[1]); + if (!gaiaXmlBlobSetFileId + (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, + &new_bytes)) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, new_blob, new_bytes, free); } static void -fnct_cvtFromMm (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_SetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_MM, GAIA_M); +/* SQL function: +/ XB_SetParentId(XmlBLOB, Text value) +/ +/ if the BLOB is a valid XmlBLOB of the ISO-Metadata type +/ already containing a ParentID then this function will +/ return a new XmlBLOB containing the new ParentID +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + unsigned char *new_blob; + int new_bytes; + const char *identifier; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + identifier = (const char *) sqlite3_value_text (argv[1]); + if (!gaiaXmlBlobSetParentId + (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, + &new_bytes)) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, new_blob, new_bytes, free); } static void -fnct_cvtFromKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_AddFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_KMI, GAIA_M); +/* SQL function: +/ XB_AddFileId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text uri_charstr) +/ +/ if the BLOB is a valid XmlBLOB of the ISO-Metadata type +/ not containing a FileID then this function will +/ return a new XmlBLOB containing the new FileID +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + unsigned char *new_blob; + int new_bytes; + const char *identifier; + const char *ns_id = NULL; + const char *uri_id = NULL; + const char *ns_charstr = NULL; + const char *uri_charstr = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT + || sqlite3_value_type (argv[2]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT + || sqlite3_value_type (argv[3]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_TEXT + || sqlite3_value_type (argv[4]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[5]) == SQLITE_TEXT + || sqlite3_value_type (argv[5]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + identifier = (const char *) sqlite3_value_text (argv[1]); + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + ns_id = (const char *) sqlite3_value_text (argv[2]); + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) + uri_id = (const char *) sqlite3_value_text (argv[3]); + if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) + ns_charstr = (const char *) sqlite3_value_text (argv[4]); + if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) + uri_charstr = (const char *) sqlite3_value_text (argv[5]); + if (!gaiaXmlBlobAddFileId + (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, + uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, new_blob, new_bytes, free); } static void -fnct_cvtFromIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_AddParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_IN, GAIA_M); +/* SQL function: +/ XB_AddParentId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text url_charstr) +/ +/ if the BLOB is a valid XmlBLOB of the ISO-Metadata type +/ not containing a ParentID then this function will +/ return a new XmlBLOB containing the new ParentID +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + unsigned char *new_blob; + int new_bytes; + const char *identifier; + const char *ns_id = NULL; + const char *uri_id = NULL; + const char *ns_charstr = NULL; + const char *uri_charstr = NULL; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT + || sqlite3_value_type (argv[2]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT + || sqlite3_value_type (argv[3]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[4]) == SQLITE_TEXT + || sqlite3_value_type (argv[4]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + if (sqlite3_value_type (argv[5]) == SQLITE_TEXT + || sqlite3_value_type (argv[5]) == SQLITE_NULL) + ; + else + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + identifier = (const char *) sqlite3_value_text (argv[1]); + if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) + ns_id = (const char *) sqlite3_value_text (argv[2]); + if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) + uri_id = (const char *) sqlite3_value_text (argv[3]); + if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) + ns_charstr = (const char *) sqlite3_value_text (argv[4]); + if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) + uri_charstr = (const char *) sqlite3_value_text (argv[5]); + if (!gaiaXmlBlobAddParentId + (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, + uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, new_blob, new_bytes, free); } static void -fnct_cvtFromFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetName (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_FT, GAIA_M); +/* SQL function: +/ XB_GetName(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a Name then +/ the Name will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *name; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + name = gaiaXmlBlobGetName (p_blob, n_bytes); + if (name == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, name, strlen (name), free); } static void -fnct_cvtFromYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetTitle (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_YD, GAIA_M); +/* SQL function: +/ XB_GetTitle(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a Title then +/ the Title will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *title; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + title = gaiaXmlBlobGetTitle (p_blob, n_bytes); + if (title == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, title, strlen (title), free); } static void -fnct_cvtFromMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetAbstract (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_MI, GAIA_M); +/* SQL function: +/ XB_GetAbstract(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing an Abstract then +/ the Abstract will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *abstract; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + abstract = gaiaXmlBlobGetAbstract (p_blob, n_bytes); + if (abstract == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, abstract, strlen (abstract), free); } static void -fnct_cvtFromFath (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_FATH, GAIA_M); +/* SQL function: +/ XB_GetGeometry(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB containing a Geometry then +/ the Geometry will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + int blob_len; + unsigned char *blob; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + gaiaXmlBlobGetGeometry (p_blob, n_bytes, &blob, &blob_len); + if (blob == NULL) + sqlite3_result_null (context); + else + sqlite3_result_blob (context, blob, blob_len, free); } static void -fnct_cvtFromCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetEncoding (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_CH, GAIA_M); +/* SQL function: +/ XB_GetEncoding(XmlBLOB) +/ +/ if the BLOB is a valid XmlBLOB explicitly defining an encoding then +/ the charset name will be returned +/ return NULL on any other case +*/ + const unsigned char *p_blob; + int n_bytes; + char *encoding; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + p_blob = sqlite3_value_blob (argv[0]); + n_bytes = sqlite3_value_bytes (argv[0]); + encoding = gaiaXmlBlobGetEncoding (p_blob, n_bytes); + if (encoding == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, encoding, strlen (encoding), free); } static void -fnct_cvtFromLink (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetInternalSchemaURI (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_LINK, GAIA_M); +/* SQL function: +/ XB_GetInternalSchemaURI(XmlDocument) +/ +/ if the XMLDocument is valid and it contains an internally +/ defined SchemaURI then this SchemaURI will be returned +/ return NULL on any other case +*/ + const unsigned char *xml; + int xml_len; + char *schema_uri; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) + { + sqlite3_result_null (context); + return; + } + xml = sqlite3_value_blob (argv[0]); + xml_len = sqlite3_value_bytes (argv[0]); + schema_uri = + gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); + if (schema_uri == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void -fnct_cvtFromUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetLastParseError (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_US_IN, GAIA_M); +/* SQL function: +/ XB_GetLastParseError() +/ +/ return the most recent XML Parse error/warning (if any) +/ return NULL on any other case +*/ + char *msg; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + msg = gaiaXmlBlobGetLastParseError (sqlite3_user_data (context)); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void -fnct_cvtFromUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetLastValidateError (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_US_FT, GAIA_M); +/* SQL function: +/ XB_GetLastValidateError() +/ +/ return the most recent XML Validate error/warning (if any) +/ return NULL on any other case +*/ + char *msg; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + msg = gaiaXmlBlobGetLastValidateError (sqlite3_user_data (context)); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void -fnct_cvtFromUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_IsValidXPathExpression (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_US_YD, GAIA_M); +/* SQL function: +/ XB_IsValidXPathExpression(text XPathExpression) +/ +/ returns TRUE if the current arg is a valid XPathExpression, +/ FALSE if it's not +/ or -1 if any error is encountered +*/ + int ret; + const char *xpath; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) + { + sqlite3_result_int (context, -1); + return; + } + xpath = (const char *) sqlite3_value_text (argv[0]); + ret = gaiaIsValidXPathExpression (sqlite3_user_data (context), xpath); + sqlite3_result_int (context, ret); } static void -fnct_cvtFromUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_GetLastXPathError (sqlite3_context * context, int argc, + sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_US_CH, GAIA_M); +/* SQL function: +/ XB_GetLastXPathError() +/ +/ return the most recent XML Validate error/warning (if any) +/ return NULL on any other case +*/ + char *msg; + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ + msg = gaiaXmlBlobGetLastXPathError (sqlite3_user_data (context)); + if (msg == NULL) + sqlite3_result_null (context); + else + sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void -fnct_cvtFromUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) +fnct_XB_CacheFlush (sqlite3_context * context, int argc, sqlite3_value ** argv) { - convertUnit (context, argc, argv, GAIA_US_MI, GAIA_M); -} +/* SQL function: +/ XB_CacheFlush() +/ +/ resets the Internal XML Schema Cache to its initial empty state +/ +/ returns TRUE on success +*/ + int i; + struct splite_xmlSchema_cache_item *p_xmlSchema; + struct splite_internal_cache *cache = sqlite3_user_data (context); -static void -fnct_cvtFromIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_IND_FT, GAIA_M); -} + GAIA_UNUSED (); /* LCOV_EXCL_LINE */ -static void -fnct_cvtFromIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_IND_YD, GAIA_M); + for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) + { + /* freeing the XmlSchema cache */ + p_xmlSchema = &(cache->xmlSchemaCache[i]); + splite_free_xml_schema_cache_item (p_xmlSchema); + } + sqlite3_result_int (context, 1); } -static void -fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) -{ - convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M); -} +#endif /* end including LIBXML2 */ -static void -register_spatialite_sql_functions (sqlite3 * db) +SPATIALITE_PRIVATE void * +register_spatialite_sql_functions (void *p_db, const void *p_cache) { + sqlite3 *db = p_db; + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; const char *security_level; sqlite3_create_function (db, "spatialite_version", 0, SQLITE_ANY, 0, fnct_spatialite_version, 0, 0); + sqlite3_create_function (db, "spatialite_target_cpu", 0, SQLITE_ANY, 0, + fnct_spatialite_target_cpu, 0, 0); sqlite3_create_function (db, "proj4_version", 0, SQLITE_ANY, 0, fnct_proj4_version, 0, 0); sqlite3_create_function (db, "geos_version", 0, SQLITE_ANY, 0, fnct_geos_version, 0, 0); sqlite3_create_function (db, "lwgeom_version", 0, SQLITE_ANY, 0, fnct_lwgeom_version, 0, 0); + sqlite3_create_function (db, "libxml2_version", 0, SQLITE_ANY, 0, + fnct_libxml2_version, 0, 0); sqlite3_create_function (db, "HasProj", 0, SQLITE_ANY, 0, fnct_has_proj, 0, 0); sqlite3_create_function (db, "HasGeos", 0, SQLITE_ANY, 0, @@ -21289,14 +28288,32 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_has_freeXL, 0, 0); sqlite3_create_function (db, "HasEpsg", 0, SQLITE_ANY, 0, fnct_has_epsg, 0, 0); + sqlite3_create_function (db, "HasLibXML2", 0, SQLITE_ANY, 0, + fnct_has_libxml2, 0, 0); + sqlite3_create_function (db, "HasGeoPackage", 0, SQLITE_ANY, 0, + fnct_has_geopackage, 0, 0); sqlite3_create_function (db, "GeometryConstraints", 3, SQLITE_ANY, 0, fnct_GeometryConstraints, 0, 0); sqlite3_create_function (db, "GeometryConstraints", 4, SQLITE_ANY, 0, fnct_GeometryConstraints, 0, 0); sqlite3_create_function (db, "RTreeAlign", 3, SQLITE_ANY, 0, fnct_RTreeAlign, 0, 0); + sqlite3_create_function (db, "IsValidNoDataPixel", 3, SQLITE_ANY, 0, + fnct_IsValidNoDataPixel, 0, 0); + sqlite3_create_function (db, "IsValidRasterPalette", 2, SQLITE_ANY, 0, + fnct_IsValidRasterPalette, 0, 0); + sqlite3_create_function (db, "IsValidRasterStatistics", 2, SQLITE_ANY, 0, + fnct_IsValidRasterStatistics, 0, 0); + sqlite3_create_function (db, "IsValidRasterStatistics", 3, SQLITE_ANY, 0, + fnct_IsValidRasterStatistics, 0, 0); + sqlite3_create_function (db, "IsValidRasterTile", 4, SQLITE_ANY, 0, + fnct_IsValidRasterTile, 0, 0); + sqlite3_create_function (db, "IsPopulatedCoverage", 1, SQLITE_ANY, 0, + fnct_IsPopulatedCoverage, 0, 0); sqlite3_create_function (db, "CheckSpatialMetaData", 0, SQLITE_ANY, 0, fnct_CheckSpatialMetaData, 0, 0); + sqlite3_create_function (db, "CheckGeoPackageMetaData", 0, SQLITE_ANY, 0, + fnct_CheckGeoPackageMetaData, 0, 0); sqlite3_create_function (db, "AutoFDOStart", 0, SQLITE_ANY, 0, fnct_AutoFDOStart, 0, 0); sqlite3_create_function (db, "AutoFDOStop", 0, SQLITE_ANY, 0, @@ -21313,6 +28330,8 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_InitSpatialMetaData, 0, 0); sqlite3_create_function (db, "InitSpatialMetaData", 1, SQLITE_ANY, 0, fnct_InitSpatialMetaData, 0, 0); + sqlite3_create_function (db, "InitSpatialMetaData", 2, SQLITE_ANY, 0, + fnct_InitSpatialMetaData, 0, 0); sqlite3_create_function (db, "InsertEpsgSrid", 1, SQLITE_ANY, 0, fnct_InsertEpsgSrid, 0, 0); sqlite3_create_function (db, "AddGeometryColumn", 4, SQLITE_ANY, 0, @@ -21343,6 +28362,10 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_CheckSpatialIndex, 0, 0); sqlite3_create_function (db, "CheckSpatialIndex", 2, SQLITE_ANY, 0, fnct_CheckSpatialIndex, 0, 0); + sqlite3_create_function (db, "CheckShadowedRowid", 1, SQLITE_ANY, 0, + fnct_CheckShadowedRowid, 0, 0); + sqlite3_create_function (db, "CheckWithoutRowid", 1, SQLITE_ANY, 0, + fnct_CheckWithoutRowid, 0, 0); sqlite3_create_function (db, "CreateSpatialIndex", 2, SQLITE_ANY, 0, fnct_CreateSpatialIndex, 0, 0); sqlite3_create_function (db, "CreateMbrCache", 2, SQLITE_ANY, 0, @@ -21357,9 +28380,29 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_UpdateLayerStatistics, 0, 0); sqlite3_create_function (db, "UpdateLayerStatistics", 2, SQLITE_ANY, 0, fnct_UpdateLayerStatistics, 0, 0); + sqlite3_create_function (db, "GetLayerExtent", 1, SQLITE_ANY, 0, + fnct_GetLayerExtent, 0, 0); + sqlite3_create_function (db, "GetLayerExtent", 2, SQLITE_ANY, 0, + fnct_GetLayerExtent, 0, 0); + sqlite3_create_function (db, "GetLayerExtent", 3, SQLITE_ANY, 0, + fnct_GetLayerExtent, 0, 0); + sqlite3_create_function (db, "InvalidateLayerStatistics", 0, SQLITE_ANY, 0, + fnct_InvalidateLayerStatistics, 0, 0); + sqlite3_create_function (db, "InvalidateLayerStatistics", 1, SQLITE_ANY, 0, + fnct_InvalidateLayerStatistics, 0, 0); + sqlite3_create_function (db, "InvalidateLayerStatistics", 2, SQLITE_ANY, 0, + fnct_InvalidateLayerStatistics, 0, 0); + sqlite3_create_function (db, "CreateRasterCoveragesTable", 0, SQLITE_ANY, + 0, fnct_CreateRasterCoveragesTable, 0, 0); + sqlite3_create_function (db, "CreateMetaCatalogTables", 1, SQLITE_ANY, 0, + fnct_CreateMetaCatalogTables, 0, 0); + sqlite3_create_function (db, "UpdateMetaCatalogStatistics", 3, SQLITE_ANY, + 0, fnct_UpdateMetaCatalogStatistics, 0, 0); + sqlite3_create_function (db, "UpdateMetaCatalogStatistics", 4, SQLITE_ANY, + 0, fnct_UpdateMetaCatalogStatistics, 0, 0); sqlite3_create_function (db, "AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0, 0); - sqlite3_create_function (db, "ST_AsText", 1, SQLITE_ANY, 0, fnct_AsText, - 0, 0); + sqlite3_create_function (db, "ST_AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0, + 0); sqlite3_create_function (db, "AsWkt", 1, SQLITE_ANY, 0, fnct_AsWkt, 0, 0); sqlite3_create_function (db, "AsWkt", 2, SQLITE_ANY, 0, fnct_AsWkt, 0, 0); sqlite3_create_function (db, "AsSvg", 1, SQLITE_ANY, 0, fnct_AsSvg1, 0, 0); @@ -21367,23 +28410,27 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "AsSvg", 3, SQLITE_ANY, 0, fnct_AsSvg3, 0, 0); #ifndef OMIT_PROJ /* PROJ.4 is strictly required to support KML */ - sqlite3_create_function (db, "AsKml", 1, SQLITE_ANY, 0, fnct_AsKml, 0, 0); - sqlite3_create_function (db, "AsKml", 2, SQLITE_ANY, 0, fnct_AsKml, 0, 0); - sqlite3_create_function (db, "AsKml", 3, SQLITE_ANY, 0, fnct_AsKml, 0, 0); - sqlite3_create_function (db, "AsKml", 4, SQLITE_ANY, 0, fnct_AsKml, 0, 0); + sqlite3_create_function (db, "AsKml", 1, SQLITE_ANY, cache, fnct_AsKml, 0, + 0); + sqlite3_create_function (db, "AsKml", 2, SQLITE_ANY, cache, fnct_AsKml, 0, + 0); + sqlite3_create_function (db, "AsKml", 3, SQLITE_ANY, cache, fnct_AsKml, 0, + 0); + sqlite3_create_function (db, "AsKml", 4, SQLITE_ANY, cache, fnct_AsKml, 0, + 0); #endif /* end including PROJ.4 */ sqlite3_create_function (db, "AsGml", 1, SQLITE_ANY, 0, fnct_AsGml, 0, 0); sqlite3_create_function (db, "AsGml", 2, SQLITE_ANY, 0, fnct_AsGml, 0, 0); sqlite3_create_function (db, "AsGml", 3, SQLITE_ANY, 0, fnct_AsGml, 0, 0); - sqlite3_create_function (db, "GeomFromGml", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "GeomFromGml", 1, SQLITE_ANY, cache, fnct_FromGml, 0, 0); - sqlite3_create_function (db, "AsGeoJSON", 1, SQLITE_ANY, 0, fnct_AsGeoJSON, - 0, 0); - sqlite3_create_function (db, "AsGeoJSON", 2, SQLITE_ANY, 0, fnct_AsGeoJSON, - 0, 0); - sqlite3_create_function (db, "AsGeoJSON", 3, SQLITE_ANY, 0, fnct_AsGeoJSON, - 0, 0); + sqlite3_create_function (db, "AsGeoJSON", 1, SQLITE_ANY, 0, + fnct_AsGeoJSON, 0, 0); + sqlite3_create_function (db, "AsGeoJSON", 2, SQLITE_ANY, 0, + fnct_AsGeoJSON, 0, 0); + sqlite3_create_function (db, "AsGeoJSON", 3, SQLITE_ANY, 0, + fnct_AsGeoJSON, 0, 0); sqlite3_create_function (db, "GeomFromGeoJSON", 1, SQLITE_ANY, 0, fnct_FromGeoJSON, 0, 0); sqlite3_create_function (db, "GeomFromKml", 1, SQLITE_ANY, 0, @@ -21395,10 +28442,10 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "AsEWKT", 1, SQLITE_ANY, 0, fnct_ToEWKT, 0, 0); sqlite3_create_function (db, "GeomFromEWKT", 1, SQLITE_ANY, 0, fnct_FromEWKT, 0, 0); - sqlite3_create_function (db, "AsBinary", 1, SQLITE_ANY, 0, fnct_AsBinary, 0, - 0); - sqlite3_create_function (db, "ST_AsBinary", 1, SQLITE_ANY, 0, fnct_AsBinary, + sqlite3_create_function (db, "AsBinary", 1, SQLITE_ANY, 0, fnct_AsBinary, 0, 0); + sqlite3_create_function (db, "ST_AsBinary", 1, SQLITE_ANY, 0, + fnct_AsBinary, 0, 0); sqlite3_create_function (db, "GeomFromText", 1, SQLITE_ANY, 0, fnct_GeomFromText1, 0, 0); sqlite3_create_function (db, "GeomFromText", 2, SQLITE_ANY, 0, @@ -21411,10 +28458,10 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "GeomCollFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); - sqlite3_create_function (db, "GeometryCollectionFromText", 1, SQLITE_ANY, 0, - fnct_GeomCollFromText1, 0, 0); - sqlite3_create_function (db, "GeometryCollectionFromText", 2, SQLITE_ANY, 0, - fnct_GeomCollFromText2, 0, 0); + sqlite3_create_function (db, "GeometryCollectionFromText", 1, SQLITE_ANY, + 0, fnct_GeomCollFromText1, 0, 0); + sqlite3_create_function (db, "GeometryCollectionFromText", 2, SQLITE_ANY, + 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "PointFromText", 1, SQLITE_ANY, 0, fnct_PointFromText1, 0, 0); sqlite3_create_function (db, "PointFromText", 2, SQLITE_ANY, 0, @@ -21533,10 +28580,10 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "ST_GeomCollFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); - sqlite3_create_function (db, "ST_GeometryCollectionFromText", 1, SQLITE_ANY, - 0, fnct_GeomCollFromText1, 0, 0); - sqlite3_create_function (db, "ST_GeometryCollectionFromText", 2, SQLITE_ANY, - 0, fnct_GeomCollFromText2, 0, 0); + sqlite3_create_function (db, "ST_GeometryCollectionFromText", 1, + SQLITE_ANY, 0, fnct_GeomCollFromText1, 0, 0); + sqlite3_create_function (db, "ST_GeometryCollectionFromText", 2, + SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "ST_PointFromText", 1, SQLITE_ANY, 0, fnct_PointFromText1, 0, 0); sqlite3_create_function (db, "ST_PointFromText", 2, SQLITE_ANY, 0, @@ -21569,10 +28616,10 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_MLineFromText1, 0, 0); sqlite3_create_function (db, "ST_MLineFromText", 2, SQLITE_ANY, 0, fnct_MLineFromText2, 0, 0); - sqlite3_create_function (db, "ST_MultiLineStringFromText", 1, SQLITE_ANY, 0, - fnct_MLineFromText1, 0, 0); - sqlite3_create_function (db, "ST_MultiLineStringFromText", 2, SQLITE_ANY, 0, - fnct_MLineFromText2, 0, 0); + sqlite3_create_function (db, "ST_MultiLineStringFromText", 1, SQLITE_ANY, + 0, fnct_MLineFromText1, 0, 0); + sqlite3_create_function (db, "ST_MultiLineStringFromText", 2, SQLITE_ANY, + 0, fnct_MLineFromText2, 0, 0); sqlite3_create_function (db, "ST_MPolyFromText", 1, SQLITE_ANY, 0, fnct_MPolyFromText1, 0, 0); sqlite3_create_function (db, "ST_MPolyFromText", 2, SQLITE_ANY, 0, @@ -21653,6 +28700,27 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_UncompressGeometry, 0, 0); sqlite3_create_function (db, "SanitizeGeometry", 1, SQLITE_ANY, 0, fnct_SanitizeGeometry, 0, 0); + sqlite3_create_function (db, "CastToInteger", 1, SQLITE_ANY, 0, + fnct_CastToInteger, 0, 0); + sqlite3_create_function (db, "CastToDouble", 1, SQLITE_ANY, 0, + fnct_CastToDouble, 0, 0); + sqlite3_create_function (db, "CastToText", 1, SQLITE_ANY, 0, + fnct_CastToText, 0, 0); + sqlite3_create_function (db, "CastToText", 2, SQLITE_ANY, 0, + fnct_CastToText, 0, 0); + sqlite3_create_function (db, "CastToBlob", 1, SQLITE_ANY, 0, + fnct_CastToBlob, 0, 0); + sqlite3_create_function (db, "CastToBlob", 2, SQLITE_ANY, 0, + fnct_CastToBlob, 0, 0); + sqlite3_create_function (db, "ForceAsNull", 2, SQLITE_ANY, 0, + fnct_ForceAsNull, 0, 0); + sqlite3_create_function (db, "CreateUUID", 0, SQLITE_ANY, 0, + fnct_CreateUUID, 0, 0); + sqlite3_create_function (db, "MD5Checksum", 1, SQLITE_ANY, 0, + fnct_MD5Checksum, 0, 0); + sqlite3_create_function (db, "MD5TotalChecksum", 1, SQLITE_ANY, 0, 0, + fnct_MD5TotalChecksum_step, + fnct_MD5TotalChecksum_final); sqlite3_create_function (db, "CastToPoint", 1, SQLITE_ANY, 0, fnct_CastToPoint, 0, 0); sqlite3_create_function (db, "CastToLinestring", 1, SQLITE_ANY, 0, @@ -21669,12 +28737,12 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_CastToGeometryCollection, 0, 0); sqlite3_create_function (db, "CastToMulti", 1, SQLITE_ANY, 0, fnct_CastToMulti, 0, 0); - sqlite3_create_function (db, "ST_Multi", 1, SQLITE_ANY, 0, fnct_CastToMulti, - 0, 0); + sqlite3_create_function (db, "ST_Multi", 1, SQLITE_ANY, 0, + fnct_CastToMulti, 0, 0); sqlite3_create_function (db, "CastToSingle", 1, SQLITE_ANY, 0, fnct_CastToSingle, 0, 0); - sqlite3_create_function (db, "CastToXY", 1, SQLITE_ANY, 0, fnct_CastToXY, 0, - 0); + sqlite3_create_function (db, "CastToXY", 1, SQLITE_ANY, 0, fnct_CastToXY, + 0, 0); sqlite3_create_function (db, "CastToXYZ", 1, SQLITE_ANY, 0, fnct_CastToXYZ, 0, 0); sqlite3_create_function (db, "CastToXYM", 1, SQLITE_ANY, 0, fnct_CastToXYM, @@ -21687,8 +28755,8 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_ExtractMultiLinestring, 0, 0); sqlite3_create_function (db, "ExtractMultiPolygon", 1, SQLITE_ANY, 0, fnct_ExtractMultiPolygon, 0, 0); - sqlite3_create_function (db, "ST_Reverse", 1, SQLITE_ANY, 0, - fnct_Reverse, 0, 0); + sqlite3_create_function (db, "ST_Reverse", 1, SQLITE_ANY, 0, fnct_Reverse, + 0, 0); sqlite3_create_function (db, "ST_ForceLHR", 1, SQLITE_ANY, 0, fnct_ForceLHR, 0, 0); sqlite3_create_function (db, "Dimension", 1, SQLITE_ANY, 0, fnct_Dimension, @@ -21697,8 +28765,8 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_Dimension, 0, 0); sqlite3_create_function (db, "CoordDimension", 1, SQLITE_ANY, 0, fnct_CoordDimension, 0, 0); - sqlite3_create_function (db, "ST_NDims", 1, SQLITE_ANY, 0, - fnct_NDims, 0, 0); + sqlite3_create_function (db, "ST_NDims", 1, SQLITE_ANY, 0, fnct_NDims, 0, + 0); sqlite3_create_function (db, "GeometryType", 1, SQLITE_ANY, 0, fnct_GeometryType, 0, 0); sqlite3_create_function (db, "ST_GeometryType", 1, SQLITE_ANY, 0, @@ -21718,12 +28786,12 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "ST_Is3D", 1, SQLITE_ANY, 0, fnct_Is3D, 0, 0); sqlite3_create_function (db, "ST_IsMeasured", 1, SQLITE_ANY, 0, fnct_IsMeasured, 0, 0); - sqlite3_create_function (db, "Envelope", 1, SQLITE_ANY, 0, fnct_Envelope, 0, - 0); - sqlite3_create_function (db, "ST_Envelope", 1, SQLITE_ANY, 0, fnct_Envelope, + sqlite3_create_function (db, "Envelope", 1, SQLITE_ANY, 0, fnct_Envelope, + 0, 0); + sqlite3_create_function (db, "ST_Envelope", 1, SQLITE_ANY, 0, + fnct_Envelope, 0, 0); + sqlite3_create_function (db, "ST_Expand", 2, SQLITE_ANY, 0, fnct_Expand, 0, 0); - sqlite3_create_function (db, "ST_Expand", 2, SQLITE_ANY, 0, fnct_Expand, 0, - 0); sqlite3_create_function (db, "X", 1, SQLITE_ANY, 0, fnct_X, 0, 0); sqlite3_create_function (db, "Y", 1, SQLITE_ANY, 0, fnct_Y, 0, 0); sqlite3_create_function (db, "Z", 1, SQLITE_ANY, 0, fnct_Z, 0, 0); @@ -21757,8 +28825,8 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "ST_EndPoint", 1, SQLITE_ANY, 0, fnct_EndPoint, 0, 0); sqlite3_create_function (db, "PointN", 2, SQLITE_ANY, 0, fnct_PointN, 0, 0); - sqlite3_create_function (db, "ST_PointN", 2, SQLITE_ANY, 0, fnct_PointN, - 0, 0); + sqlite3_create_function (db, "ST_PointN", 2, SQLITE_ANY, 0, fnct_PointN, 0, + 0); sqlite3_create_function (db, "ExteriorRing", 1, SQLITE_ANY, 0, fnct_ExteriorRing, 0, 0); sqlite3_create_function (db, "ST_ExteriorRing", 1, SQLITE_ANY, 0, @@ -21777,8 +28845,8 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_NumGeometries, 0, 0); sqlite3_create_function (db, "ST_NumGeometries", 1, SQLITE_ANY, 0, fnct_NumGeometries, 0, 0); - sqlite3_create_function (db, "GeometryN", 2, SQLITE_ANY, 0, - fnct_GeometryN, 0, 0); + sqlite3_create_function (db, "GeometryN", 2, SQLITE_ANY, 0, fnct_GeometryN, + 0, 0); sqlite3_create_function (db, "ST_GeometryN", 2, SQLITE_ANY, 0, fnct_GeometryN, 0, 0); sqlite3_create_function (db, "MBRContains", 2, SQLITE_ANY, 0, @@ -21851,10 +28919,12 @@ register_spatialite_sql_functions (sqlite3 * db) 0); sqlite3_create_function (db, "MbrMaxY", 1, SQLITE_ANY, 0, fnct_MbrMaxY, 0, 0); - sqlite3_create_function (db, "MakePoint", 2, SQLITE_ANY, 0, fnct_MakePoint1, - 0, 0); - sqlite3_create_function (db, "MakePoint", 3, SQLITE_ANY, 0, fnct_MakePoint2, + sqlite3_create_function (db, "ST_Point", 2, SQLITE_ANY, 0, fnct_MakePoint1, 0, 0); + sqlite3_create_function (db, "MakePoint", 2, SQLITE_ANY, 0, + fnct_MakePoint1, 0, 0); + sqlite3_create_function (db, "MakePoint", 3, SQLITE_ANY, 0, + fnct_MakePoint2, 0, 0); sqlite3_create_function (db, "MakePointZ", 3, SQLITE_ANY, 0, fnct_MakePointZ1, 0, 0); sqlite3_create_function (db, "MakePointZ", 4, SQLITE_ANY, 0, @@ -21869,16 +28939,58 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_MakePointZM2, 0, 0); sqlite3_create_function (db, "MakeLine", 1, SQLITE_ANY, 0, 0, fnct_MakeLine_step, fnct_MakeLine_final); - sqlite3_create_function (db, "MakeLine", 2, SQLITE_ANY, 0, fnct_MakeLine, 0, + sqlite3_create_function (db, "MakeLine", 2, SQLITE_ANY, 0, fnct_MakeLine, + 0, 0); + sqlite3_create_function (db, "MakeCircle", 3, SQLITE_ANY, 0, + fnct_MakeCircle, 0, 0); + sqlite3_create_function (db, "MakeCircle", 4, SQLITE_ANY, 0, + fnct_MakeCircle, 0, 0); + sqlite3_create_function (db, "MakeCircle", 5, SQLITE_ANY, 0, + fnct_MakeCircle, 0, 0); + sqlite3_create_function (db, "MakeEllipse", 4, SQLITE_ANY, 0, + fnct_MakeEllipse, 0, 0); + sqlite3_create_function (db, "MakeEllipse", 5, SQLITE_ANY, 0, + fnct_MakeEllipse, 0, 0); + sqlite3_create_function (db, "MakeEllipse", 6, SQLITE_ANY, 0, + fnct_MakeEllipse, 0, 0); + sqlite3_create_function (db, "MakeArc", 5, SQLITE_ANY, 0, fnct_MakeArc, 0, 0); - sqlite3_create_function (db, "Collect", 1, SQLITE_ANY, 0, 0, - fnct_Collect_step, fnct_Collect_final); - sqlite3_create_function (db, "Collect", 2, SQLITE_ANY, 0, fnct_Collect, 0, + sqlite3_create_function (db, "MakeArc", 6, SQLITE_ANY, 0, fnct_MakeArc, 0, 0); - sqlite3_create_function (db, "ST_Collect", 1, SQLITE_ANY, 0, 0, + sqlite3_create_function (db, "MakeArc", 7, SQLITE_ANY, 0, fnct_MakeArc, 0, + 0); + sqlite3_create_function (db, "MakeEllipticArc", 6, SQLITE_ANY, 0, + fnct_MakeEllipticArc, 0, 0); + sqlite3_create_function (db, "MakeEllipticArc", 7, SQLITE_ANY, 0, + fnct_MakeEllipticArc, 0, 0); + sqlite3_create_function (db, "MakeEllipticArc", 8, SQLITE_ANY, 0, + fnct_MakeEllipticArc, 0, 0); + sqlite3_create_function (db, "MakeCircularSector", 5, SQLITE_ANY, 0, + fnct_MakeCircularSector, 0, 0); + sqlite3_create_function (db, "MakeCircularSector", 6, SQLITE_ANY, 0, + fnct_MakeCircularSector, 0, 0); + sqlite3_create_function (db, "MakeCircularSector", 7, SQLITE_ANY, 0, + fnct_MakeCircularSector, 0, 0); + sqlite3_create_function (db, "MakeCircularStripe", 6, SQLITE_ANY, 0, + fnct_MakeCircularStripe, 0, 0); + sqlite3_create_function (db, "MakeCircularStripe", 7, SQLITE_ANY, 0, + fnct_MakeCircularStripe, 0, 0); + sqlite3_create_function (db, "MakeCircularStripe", 8, SQLITE_ANY, 0, + fnct_MakeCircularStripe, 0, 0); + sqlite3_create_function (db, "MakeEllipticSector", 6, SQLITE_ANY, 0, + fnct_MakeEllipticSector, 0, 0); + sqlite3_create_function (db, "MakeEllipticSector", 7, SQLITE_ANY, 0, + fnct_MakeEllipticSector, 0, 0); + sqlite3_create_function (db, "MakeEllipticSector", 8, SQLITE_ANY, 0, + fnct_MakeEllipticSector, 0, 0); + sqlite3_create_function (db, "Collect", 1, SQLITE_ANY, cache, 0, fnct_Collect_step, fnct_Collect_final); - sqlite3_create_function (db, "ST_Collect", 2, SQLITE_ANY, 0, fnct_Collect, + sqlite3_create_function (db, "Collect", 2, SQLITE_ANY, cache, fnct_Collect, 0, 0); + sqlite3_create_function (db, "ST_Collect", 1, SQLITE_ANY, cache, 0, + fnct_Collect_step, fnct_Collect_final); + sqlite3_create_function (db, "ST_Collect", 2, SQLITE_ANY, cache, + fnct_Collect, 0, 0); sqlite3_create_function (db, "BuildMbrFilter", 4, SQLITE_ANY, 0, fnct_BuildMbrFilter, 0, 0); sqlite3_create_function (db, "FilterMbrWithin", 4, SQLITE_ANY, 0, @@ -21918,15 +29030,39 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "ST_SnapToGrid", 6, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); + sqlite3_create_function (db, "AddPoint", 2, SQLITE_ANY, 0, fnct_AddPoint, + 0, 0); + sqlite3_create_function (db, "ST_AddPoint", 2, SQLITE_ANY, 0, + fnct_AddPoint, 0, 0); + sqlite3_create_function (db, "AddPoint", 3, SQLITE_ANY, 0, fnct_AddPoint, + 0, 0); + sqlite3_create_function (db, "ST_AddPoint", 3, SQLITE_ANY, 0, + fnct_AddPoint, 0, 0); + sqlite3_create_function (db, "RemovePoint", 2, SQLITE_ANY, 0, + fnct_RemovePoint, 0, 0); + sqlite3_create_function (db, "ST_RemovePoint", 2, SQLITE_ANY, 0, + fnct_RemovePoint, 0, 0); + sqlite3_create_function (db, "SetPoint", 3, SQLITE_ANY, 0, fnct_SetPoint, + 0, 0); + sqlite3_create_function (db, "ST_SetPoint", 3, SQLITE_ANY, 0, + fnct_SetPoint, 0, 0); + sqlite3_create_function (db, "MakePolygon", 1, SQLITE_ANY, 0, + fnct_MakePolygon, 0, 0); + sqlite3_create_function (db, "ST_MakePolygon", 1, SQLITE_ANY, 0, + fnct_MakePolygon, 0, 0); + sqlite3_create_function (db, "MakePolygon", 2, SQLITE_ANY, 0, + fnct_MakePolygon, 0, 0); + sqlite3_create_function (db, "ST_MakePolygon", 2, SQLITE_ANY, 0, + fnct_MakePolygon, 0, 0); #ifndef OMIT_GEOS /* including GEOS */ - sqlite3_create_function (db, "BuildArea", 1, SQLITE_ANY, 0, fnct_BuildArea, - 0, 0); - sqlite3_create_function (db, "ST_BuildArea", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "BuildArea", 1, SQLITE_ANY, cache, fnct_BuildArea, 0, 0); - sqlite3_create_function (db, "Polygonize", 1, SQLITE_ANY, 0, 0, + sqlite3_create_function (db, "ST_BuildArea", 1, SQLITE_ANY, cache, + fnct_BuildArea, 0, 0); + sqlite3_create_function (db, "Polygonize", 1, SQLITE_ANY, cache, 0, fnct_Polygonize_step, fnct_Polygonize_final); - sqlite3_create_function (db, "ST_Polygonize", 1, SQLITE_ANY, 0, 0, + sqlite3_create_function (db, "ST_Polygonize", 1, SQLITE_ANY, cache, 0, fnct_Polygonize_step, fnct_Polygonize_final); #endif /* end including GEOS */ @@ -21946,15 +29082,15 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_LocateBetweenMeasures, 0, 0); sqlite3_create_function (db, "ST_LocateAlong", 2, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); - sqlite3_create_function (db, "ST_Locate_Between_Measures", 3, SQLITE_ANY, 0, - fnct_LocateBetweenMeasures, 0, 0); + sqlite3_create_function (db, "ST_Locate_Between_Measures", 3, SQLITE_ANY, + 0, fnct_LocateBetweenMeasures, 0, 0); sqlite3_create_function (db, "ST_LocateBetween", 3, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ sqlite3_rtree_geometry_callback (db, "RTreeWithin", fnct_RTreeIntersects, 0); - sqlite3_rtree_geometry_callback (db, "RTreeContains", fnct_RTreeIntersects, - 0); + sqlite3_rtree_geometry_callback (db, "RTreeContains", + fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeIntersects", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeDistWithin", @@ -21984,21 +29120,28 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_IsWebPBlob, 0, 0); sqlite3_create_function (db, "GeomFromExifGpsBlob", 1, SQLITE_ANY, 0, fnct_GeomFromExifGpsBlob, 0, 0); + sqlite3_create_function (db, "GetMimeType", 1, SQLITE_ANY, 0, + fnct_GetMimeType, 0, 0); + sqlite3_create_function (db, "CountUnsafeTriggers", 0, SQLITE_ANY, 0, + fnct_CountUnsafeTriggers, 0, 0); /* -// enabling BlobFromFile and BlobToFile +// enabling BlobFromFile, BlobToFile and XB_LoadXML, XB_StoreXML, ExportDXF // -// this two functions could potentially introduce serious security issues, +// these functions could potentially introduce serious security issues, // most notably when invoked from within some Trigger // - BlobToFile: some arbitrary code, possibly harmfull (e.g. virus or // trojan) could be installed on the local file-system, the user being // completely unaware of this // - BlobFromFile: some file could be maliciously "stolen" from the local // file system and then inseted into the DB +// - the same is for XB_LoadXML and XB_StoreXML +// - ExportDXF could potentially flood the local file-system by +// outputting a huge size of data // -// so by default both functions are disabled. -// if for any good/legitimate reason the user really wants to enable both -// them the following environment variable has to be explicitly declared: +// so by default such functions are disabled. +// if for any good/legitimate reason the user really wants to enable them +// the following environment variable has to be explicitly declared: // // SPATIALITE_SECURITY=relaxed // @@ -22012,6 +29155,22 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_BlobFromFile, 0, 0); sqlite3_create_function (db, "BlobToFile", 2, SQLITE_ANY, 0, fnct_BlobToFile, 0, 0); + sqlite3_create_function (db, "ExportDXF", 9, SQLITE_ANY, 0, + fnct_ExportDXF, 0, 0); + sqlite3_create_function (db, "ExportDXF", 10, SQLITE_ANY, 0, + fnct_ExportDXF, 0, 0); + +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ + + sqlite3_create_function (db, "XB_LoadXML", 1, SQLITE_ANY, cache, + fnct_XB_LoadXML, 0, 0); + sqlite3_create_function (db, "XB_StoreXML", 2, SQLITE_ANY, 0, + fnct_XB_StoreXML, 0, 0); + sqlite3_create_function (db, "XB_StoreXML", 3, SQLITE_ANY, 0, + fnct_XB_StoreXML, 0, 0); + +#endif /* end including LIBXML2 */ + } /* some Geodesic functions */ @@ -22102,6 +29261,14 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "CvtFromIndCh", 1, SQLITE_ANY, 0, fnct_cvtFromIndCh, 0, 0); +/* DMS (Degrees/Minutes/Seconds) to DD (decimal degrees) */ + sqlite3_create_function (db, "LongitudeFromDMS", 1, SQLITE_ANY, 0, + fnct_longFromDMS, 0, 0); + sqlite3_create_function (db, "LatitudeFromDMS", 1, SQLITE_ANY, 0, + fnct_latFromDMS, 0, 0); + sqlite3_create_function (db, "LongLatToDMS", 2, SQLITE_ANY, 0, fnct_toDMS, + 0, 0); + #ifndef OMIT_MATHSQL /* supporting SQL math functions */ /* some extra math functions */ @@ -22136,8 +29303,6 @@ register_spatialite_sql_functions (sqlite3 * db) 0); sqlite3_create_function (db, "radians", 1, SQLITE_ANY, 0, fnct_math_radians, 0, 0); - sqlite3_create_function (db, "round", 1, SQLITE_ANY, 0, fnct_math_round, - 0, 0); sqlite3_create_function (db, "sign", 1, SQLITE_ANY, 0, fnct_math_sign, 0, 0); sqlite3_create_function (db, "sin", 1, SQLITE_ANY, 0, fnct_math_sin, 0, 0); @@ -22158,270 +29323,299 @@ register_spatialite_sql_functions (sqlite3 * db) #ifndef OMIT_PROJ /* including PROJ.4 */ - sqlite3_create_function (db, "Transform", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Transform", 2, SQLITE_ANY, cache, fnct_Transform, 0, 0); - sqlite3_create_function (db, "ST_Transform", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Transform", 2, SQLITE_ANY, cache, fnct_Transform, 0, 0); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ - sqlite3_create_function (db, "Boundary", 1, SQLITE_ANY, 0, fnct_Boundary, - 0, 0); - sqlite3_create_function (db, "ST_Boundary", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "GEOS_GetLastErrorMsg", 0, SQLITE_ANY, + cache, fnct_GEOS_GetLastErrorMsg, 0, 0); + sqlite3_create_function (db, "GEOS_GetLastWarningMsg", 0, SQLITE_ANY, + cache, fnct_GEOS_GetLastWarningMsg, 0, 0); + sqlite3_create_function (db, "GEOS_GetLastAuxErrorMsg", 0, SQLITE_ANY, + cache, fnct_GEOS_GetLastAuxErrorMsg, 0, 0); + sqlite3_create_function (db, "GEOS_GetCriticalPointFromMsg", 0, SQLITE_ANY, + cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0); + sqlite3_create_function (db, "GEOS_GetCriticalPointFromMsg", 1, SQLITE_ANY, + cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0); + sqlite3_create_function (db, "IsValidReason", 1, SQLITE_ANY, + cache, fnct_IsValidReason, 0, 0); + sqlite3_create_function (db, "ST_IsValidReason", 1, SQLITE_ANY, + cache, fnct_IsValidReason, 0, 0); + sqlite3_create_function (db, "IsValidDetail", 1, SQLITE_ANY, + cache, fnct_IsValidDetail, 0, 0); + sqlite3_create_function (db, "ST_IsValidDetail", 1, SQLITE_ANY, + cache, fnct_IsValidDetail, 0, 0); + + sqlite3_create_function (db, "Boundary", 1, SQLITE_ANY, cache, fnct_Boundary, 0, 0); - sqlite3_create_function (db, "IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, - 0, 0); - sqlite3_create_function (db, "ST_IsClosed", 1, SQLITE_ANY, 0, - fnct_IsClosed, 0, 0); - sqlite3_create_function (db, "IsSimple", 1, SQLITE_ANY, 0, fnct_IsSimple, + sqlite3_create_function (db, "ST_Boundary", 1, SQLITE_ANY, cache, + fnct_Boundary, 0, 0); + sqlite3_create_function (db, "IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, 0, + 0); + sqlite3_create_function (db, "ST_IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, 0, 0); - sqlite3_create_function (db, "ST_IsSimple", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "IsSimple", 1, SQLITE_ANY, cache, fnct_IsSimple, 0, 0); - sqlite3_create_function (db, "IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, 0, 0); - sqlite3_create_function (db, "ST_IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, - 0, 0); - sqlite3_create_function (db, "IsValid", 1, SQLITE_ANY, 0, fnct_IsValid, 0, + sqlite3_create_function (db, "ST_IsSimple", 1, SQLITE_ANY, cache, + fnct_IsSimple, 0, 0); + sqlite3_create_function (db, "IsRing", 1, SQLITE_ANY, cache, fnct_IsRing, 0, 0); - sqlite3_create_function (db, "ST_IsValid", 1, SQLITE_ANY, 0, fnct_IsValid, + sqlite3_create_function (db, "ST_IsRing", 1, SQLITE_ANY, cache, fnct_IsRing, 0, 0); - sqlite3_create_function (db, "GLength", 1, SQLITE_ANY, 0, fnct_Length, 0, - 0); - sqlite3_create_function (db, "GLength", 2, SQLITE_ANY, 0, fnct_Length, 0, - 0); - sqlite3_create_function (db, "ST_Length", 1, SQLITE_ANY, 0, fnct_Length, + sqlite3_create_function (db, "IsValid", 1, SQLITE_ANY, cache, fnct_IsValid, + 0, 0); + sqlite3_create_function (db, "ST_IsValid", 1, SQLITE_ANY, cache, + fnct_IsValid, 0, 0); + sqlite3_create_function (db, "GLength", 1, SQLITE_ANY, cache, fnct_Length, 0, 0); - sqlite3_create_function (db, "ST_Length", 2, SQLITE_ANY, 0, fnct_Length, + sqlite3_create_function (db, "GLength", 2, SQLITE_ANY, cache, fnct_Length, 0, 0); - sqlite3_create_function (db, "Perimeter", 1, SQLITE_ANY, 0, fnct_Perimeter, + sqlite3_create_function (db, "ST_Length", 1, SQLITE_ANY, cache, fnct_Length, 0, 0); - sqlite3_create_function (db, "Perimeter", 2, SQLITE_ANY, 0, fnct_Perimeter, + sqlite3_create_function (db, "ST_Length", 2, SQLITE_ANY, cache, fnct_Length, 0, 0); - sqlite3_create_function (db, "ST_Perimeter", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "Perimeter", 1, SQLITE_ANY, cache, fnct_Perimeter, 0, 0); - sqlite3_create_function (db, "ST_Perimeter", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Perimeter", 2, SQLITE_ANY, cache, fnct_Perimeter, 0, 0); - sqlite3_create_function (db, "Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0); - sqlite3_create_function (db, "ST_Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0); - sqlite3_create_function (db, "Centroid", 1, SQLITE_ANY, 0, fnct_Centroid, - 0, 0); - sqlite3_create_function (db, "ST_Centroid", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Perimeter", 1, SQLITE_ANY, cache, + fnct_Perimeter, 0, 0); + sqlite3_create_function (db, "ST_Perimeter", 2, SQLITE_ANY, cache, + fnct_Perimeter, 0, 0); + sqlite3_create_function (db, "Area", 1, SQLITE_ANY, cache, fnct_Area, 0, 0); + sqlite3_create_function (db, "ST_Area", 1, SQLITE_ANY, cache, fnct_Area, 0, + 0); + sqlite3_create_function (db, "ST_Centroid", 1, SQLITE_ANY, cache, fnct_Centroid, 0, 0); - sqlite3_create_function (db, "PointOnSurface", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "Centroid", 1, SQLITE_ANY, cache, + fnct_Centroid, 0, 0); + sqlite3_create_function (db, "PointOnSurface", 1, SQLITE_ANY, cache, fnct_PointOnSurface, 0, 0); - sqlite3_create_function (db, "ST_PointOnSurface", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_PointOnSurface", 1, SQLITE_ANY, cache, fnct_PointOnSurface, 0, 0); - sqlite3_create_function (db, "Simplify", 2, SQLITE_ANY, 0, fnct_Simplify, - 0, 0); - sqlite3_create_function (db, "ST_Generalize", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Simplify", 2, SQLITE_ANY, cache, fnct_Simplify, 0, 0); - sqlite3_create_function (db, "SimplifyPreserveTopology", 2, SQLITE_ANY, 0, - fnct_SimplifyPreserveTopology, 0, 0); - sqlite3_create_function (db, "ConvexHull", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Simplify", 2, SQLITE_ANY, cache, + fnct_Simplify, 0, 0); + sqlite3_create_function (db, "ST_Generalize", 2, SQLITE_ANY, cache, + fnct_Simplify, 0, 0); + sqlite3_create_function (db, "SimplifyPreserveTopology", 2, SQLITE_ANY, + cache, fnct_SimplifyPreserveTopology, 0, 0); + sqlite3_create_function (db, "ST_SimplifyPreserveTopology", 2, SQLITE_ANY, + cache, fnct_SimplifyPreserveTopology, 0, 0); + sqlite3_create_function (db, "ConvexHull", 1, SQLITE_ANY, cache, fnct_ConvexHull, 0, 0); - sqlite3_create_function (db, "ST_ConvexHull", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ConvexHull", 1, SQLITE_ANY, cache, fnct_ConvexHull, 0, 0); - sqlite3_create_function (db, "Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, 0, 0); - sqlite3_create_function (db, "ST_Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, + sqlite3_create_function (db, "Buffer", 2, SQLITE_ANY, cache, fnct_Buffer, 0, + 0); + sqlite3_create_function (db, "ST_Buffer", 2, SQLITE_ANY, cache, fnct_Buffer, 0, 0); - sqlite3_create_function (db, "Intersection", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Intersection", 2, SQLITE_ANY, cache, fnct_Intersection, 0, 0); - sqlite3_create_function (db, "ST_Intersection", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Intersection", 2, SQLITE_ANY, cache, fnct_Intersection, 0, 0); - sqlite3_create_function (db, "GUnion", 1, SQLITE_ANY, 0, 0, - fnct_Union_step, fnct_Union_final); - sqlite3_create_function (db, "GUnion", 2, SQLITE_ANY, 0, fnct_Union, 0, 0); - sqlite3_create_function (db, "ST_Union", 1, SQLITE_ANY, 0, 0, + sqlite3_create_function (db, "GUnion", 1, SQLITE_ANY, cache, 0, fnct_Union_step, fnct_Union_final); - sqlite3_create_function (db, "ST_Union", 2, SQLITE_ANY, 0, fnct_Union, 0, + sqlite3_create_function (db, "GUnion", 2, SQLITE_ANY, cache, fnct_Union, 0, 0); - sqlite3_create_function (db, "Difference", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Union", 1, SQLITE_ANY, cache, 0, + fnct_Union_step, fnct_Union_final); + sqlite3_create_function (db, "ST_Union", 2, SQLITE_ANY, cache, fnct_Union, + 0, 0); + sqlite3_create_function (db, "Difference", 2, SQLITE_ANY, cache, fnct_Difference, 0, 0); - sqlite3_create_function (db, "ST_Difference", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Difference", 2, SQLITE_ANY, cache, fnct_Difference, 0, 0); - sqlite3_create_function (db, "SymDifference", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "SymDifference", 2, SQLITE_ANY, cache, fnct_SymDifference, 0, 0); - sqlite3_create_function (db, "ST_SymDifference", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SymDifference", 2, SQLITE_ANY, cache, fnct_SymDifference, 0, 0); - sqlite3_create_function (db, "Equals", 2, SQLITE_ANY, 0, fnct_Equals, 0, 0); - sqlite3_create_function (db, "ST_Equals", 2, SQLITE_ANY, 0, fnct_Equals, + sqlite3_create_function (db, "Equals", 2, SQLITE_ANY, cache, fnct_Equals, 0, + 0); + sqlite3_create_function (db, "ST_Equals", 2, SQLITE_ANY, cache, fnct_Equals, 0, 0); - sqlite3_create_function (db, "Intersects", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Intersects", 2, SQLITE_ANY, cache, fnct_Intersects, 0, 0); - sqlite3_create_function (db, "ST_Intersects", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Intersects", 2, SQLITE_ANY, cache, fnct_Intersects, 0, 0); - sqlite3_create_function (db, "Disjoint", 2, SQLITE_ANY, 0, fnct_Disjoint, - 0, 0); - sqlite3_create_function (db, "ST_Disjoint", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Disjoint", 2, SQLITE_ANY, cache, fnct_Disjoint, 0, 0); - sqlite3_create_function (db, "Overlaps", 2, SQLITE_ANY, 0, fnct_Overlaps, - 0, 0); - sqlite3_create_function (db, "ST_Overlaps", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Disjoint", 2, SQLITE_ANY, cache, + fnct_Disjoint, 0, 0); + sqlite3_create_function (db, "Overlaps", 2, SQLITE_ANY, cache, fnct_Overlaps, 0, 0); - sqlite3_create_function (db, "Crosses", 2, SQLITE_ANY, 0, fnct_Crosses, 0, - 0); - sqlite3_create_function (db, "ST_Crosses", 2, SQLITE_ANY, 0, fnct_Crosses, - 0, 0); - sqlite3_create_function (db, "Touches", 2, SQLITE_ANY, 0, fnct_Touches, 0, - 0); - sqlite3_create_function (db, "ST_Touches", 2, SQLITE_ANY, 0, fnct_Touches, + sqlite3_create_function (db, "ST_Overlaps", 2, SQLITE_ANY, cache, + fnct_Overlaps, 0, 0); + sqlite3_create_function (db, "Crosses", 2, SQLITE_ANY, cache, fnct_Crosses, 0, 0); - sqlite3_create_function (db, "Within", 2, SQLITE_ANY, 0, fnct_Within, 0, 0); - sqlite3_create_function (db, "ST_Within", 2, SQLITE_ANY, 0, fnct_Within, + sqlite3_create_function (db, "ST_Crosses", 2, SQLITE_ANY, cache, + fnct_Crosses, 0, 0); + sqlite3_create_function (db, "Touches", 2, SQLITE_ANY, cache, fnct_Touches, 0, 0); - sqlite3_create_function (db, "Contains", 2, SQLITE_ANY, 0, fnct_Contains, + sqlite3_create_function (db, "ST_Touches", 2, SQLITE_ANY, cache, + fnct_Touches, 0, 0); + sqlite3_create_function (db, "Within", 2, SQLITE_ANY, cache, fnct_Within, 0, + 0); + sqlite3_create_function (db, "ST_Within", 2, SQLITE_ANY, cache, fnct_Within, 0, 0); - sqlite3_create_function (db, "ST_Contains", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Contains", 2, SQLITE_ANY, cache, fnct_Contains, 0, 0); - sqlite3_create_function (db, "Relate", 3, SQLITE_ANY, 0, fnct_Relate, 0, 0); - sqlite3_create_function (db, "ST_Relate", 3, SQLITE_ANY, 0, fnct_Relate, - 0, 0); - sqlite3_create_function (db, "Distance", 2, SQLITE_ANY, 0, fnct_Distance, - 0, 0); - sqlite3_create_function (db, "Distance", 3, SQLITE_ANY, 0, fnct_Distance, + sqlite3_create_function (db, "ST_Contains", 2, SQLITE_ANY, cache, + fnct_Contains, 0, 0); + sqlite3_create_function (db, "Relate", 3, SQLITE_ANY, cache, fnct_Relate, 0, + 0); + sqlite3_create_function (db, "ST_Relate", 3, SQLITE_ANY, cache, fnct_Relate, 0, 0); - sqlite3_create_function (db, "ST_Distance", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Distance", 2, SQLITE_ANY, cache, + fnct_Distance, 0, 0); + sqlite3_create_function (db, "Distance", 3, SQLITE_ANY, cache, fnct_Distance, 0, 0); - sqlite3_create_function (db, "ST_Distance", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Distance", 2, SQLITE_ANY, cache, fnct_Distance, 0, 0); - sqlite3_create_function (db, "PtDistWithin", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Distance", 3, SQLITE_ANY, cache, + fnct_Distance, 0, 0); + sqlite3_create_function (db, "PtDistWithin", 3, SQLITE_ANY, cache, fnct_PtDistWithin, 0, 0); - sqlite3_create_function (db, "PtDistWithin", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "PtDistWithin", 4, SQLITE_ANY, cache, fnct_PtDistWithin, 0, 0); - sqlite3_create_function (db, "BdPolyFromText", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdPolyFromText", 1, SQLITE_ANY, cache, fnct_BdPolyFromText1, 0, 0); - sqlite3_create_function (db, "BdPolyFromText", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdPolyFromText", 2, SQLITE_ANY, cache, fnct_BdPolyFromText2, 0, 0); - sqlite3_create_function (db, "BdMPolyFromText", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdMPolyFromText", 1, SQLITE_ANY, cache, fnct_BdMPolyFromText1, 0, 0); - sqlite3_create_function (db, "BdMPolyFromText", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdMPolyFromText", 2, SQLITE_ANY, cache, fnct_BdMPolyFromText2, 0, 0); - sqlite3_create_function (db, "BdPolyFromWKB", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdPolyFromWKB", 1, SQLITE_ANY, cache, fnct_BdPolyFromWKB1, 0, 0); - sqlite3_create_function (db, "BdPolyFromWKB", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdPolyFromWKB", 2, SQLITE_ANY, cache, fnct_BdPolyFromWKB2, 0, 0); - sqlite3_create_function (db, "BdMPolyFromWKB", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdMPolyFromWKB", 1, SQLITE_ANY, cache, fnct_BdMPolyFromWKB1, 0, 0); - sqlite3_create_function (db, "BdMPolyFromWKB", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "BdMPolyFromWKB", 2, SQLITE_ANY, cache, fnct_BdMPolyFromWKB2, 0, 0); - sqlite3_create_function (db, "ST_BdPolyFromText", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdPolyFromText", 1, SQLITE_ANY, cache, fnct_BdPolyFromText1, 0, 0); - sqlite3_create_function (db, "ST_BdPolyFromText", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdPolyFromText", 2, SQLITE_ANY, cache, fnct_BdPolyFromText2, 0, 0); - sqlite3_create_function (db, "ST_BdMPolyFromText", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdMPolyFromText", 1, SQLITE_ANY, cache, fnct_BdMPolyFromText1, 0, 0); - sqlite3_create_function (db, "ST_BdMPolyFromText", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdMPolyFromText", 2, SQLITE_ANY, cache, fnct_BdMPolyFromText2, 0, 0); - sqlite3_create_function (db, "ST_BdPolyFromWKB", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdPolyFromWKB", 1, SQLITE_ANY, cache, fnct_BdPolyFromWKB1, 0, 0); - sqlite3_create_function (db, "ST_BdPolyFromWKB", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdPolyFromWKB", 2, SQLITE_ANY, cache, fnct_BdPolyFromWKB2, 0, 0); - sqlite3_create_function (db, "ST_BdMPolyFromWKB", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdMPolyFromWKB", 1, SQLITE_ANY, cache, fnct_BdMPolyFromWKB1, 0, 0); - sqlite3_create_function (db, "ST_BdMPolyFromWKB", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_BdMPolyFromWKB", 2, SQLITE_ANY, cache, fnct_BdMPolyFromWKB2, 0, 0); - -#ifdef GEOS_ADVANCED /* GEOS advanced features */ - sqlite3_create_function (db, "CreateTopologyTables", 2, SQLITE_ANY, 0, fnct_CreateTopologyTables, 0, 0); sqlite3_create_function (db, "CreateTopologyTables", 3, SQLITE_ANY, 0, fnct_CreateTopologyTables, 0, 0); - sqlite3_create_function (db, "OffsetCurve", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "OffsetCurve", 3, SQLITE_ANY, cache, fnct_OffsetCurve, 0, 0); - sqlite3_create_function (db, "ST_OffsetCurve", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_OffsetCurve", 3, SQLITE_ANY, cache, fnct_OffsetCurve, 0, 0); - sqlite3_create_function (db, "SingleSidedBuffer", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "SingleSidedBuffer", 3, SQLITE_ANY, cache, fnct_SingleSidedBuffer, 0, 0); - sqlite3_create_function (db, "ST_SingleSidedBuffer", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SingleSidedBuffer", 3, SQLITE_ANY, cache, fnct_SingleSidedBuffer, 0, 0); - sqlite3_create_function (db, "HausdorffDistance", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "HausdorffDistance", 2, SQLITE_ANY, cache, fnct_HausdorffDistance, 0, 0); - sqlite3_create_function (db, "ST_HausdorffDistance", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_HausdorffDistance", 2, SQLITE_ANY, cache, fnct_HausdorffDistance, 0, 0); - sqlite3_create_function (db, "SharedPaths", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "SharedPaths", 2, SQLITE_ANY, cache, fnct_SharedPaths, 0, 0); - sqlite3_create_function (db, "ST_SharedPaths", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SharedPaths", 2, SQLITE_ANY, cache, fnct_SharedPaths, 0, 0); - sqlite3_create_function (db, "Covers", 2, SQLITE_ANY, 0, fnct_Covers, 0, 0); - sqlite3_create_function (db, "ST_Covers", 2, SQLITE_ANY, 0, fnct_Covers, 0, - 0); - sqlite3_create_function (db, "CoveredBy", 2, SQLITE_ANY, 0, fnct_CoveredBy, + sqlite3_create_function (db, "Covers", 2, SQLITE_ANY, cache, fnct_Covers, 0, 0); - sqlite3_create_function (db, "ST_CoveredBy", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Covers", 2, SQLITE_ANY, cache, + fnct_Covers, 0, 0); + sqlite3_create_function (db, "CoveredBy", 2, SQLITE_ANY, cache, fnct_CoveredBy, 0, 0); - sqlite3_create_function (db, "Line_Interpolate_Point", 2, SQLITE_ANY, 0, - fnct_LineInterpolatePoint, 0, 0); - sqlite3_create_function (db, "ST_Line_Interpolate_Point", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_CoveredBy", 2, SQLITE_ANY, cache, + fnct_CoveredBy, 0, 0); + sqlite3_create_function (db, "Line_Interpolate_Point", 2, SQLITE_ANY, cache, fnct_LineInterpolatePoint, 0, 0); + sqlite3_create_function (db, "ST_Line_Interpolate_Point", 2, SQLITE_ANY, + cache, fnct_LineInterpolatePoint, 0, 0); sqlite3_create_function (db, "Line_Interpolate_Equidistant_Points", 2, - SQLITE_ANY, 0, + SQLITE_ANY, cache, fnct_LineInterpolateEquidistantPoints, 0, 0); sqlite3_create_function (db, "ST_Line_Interpolate_Equidistant_Points", 2, - SQLITE_ANY, 0, + SQLITE_ANY, cache, fnct_LineInterpolateEquidistantPoints, 0, 0); - sqlite3_create_function (db, "Line_Locate_Point", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "Line_Locate_Point", 2, SQLITE_ANY, cache, fnct_LineLocatePoint, 0, 0); - sqlite3_create_function (db, "ST_Line_Locate_Point", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Line_Locate_Point", 2, SQLITE_ANY, cache, fnct_LineLocatePoint, 0, 0); - sqlite3_create_function (db, "Line_Substring", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "Line_Substring", 3, SQLITE_ANY, cache, fnct_LineSubstring, 0, 0); - sqlite3_create_function (db, "ST_Line_Substring", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_Line_Substring", 3, SQLITE_ANY, cache, fnct_LineSubstring, 0, 0); - sqlite3_create_function (db, "ClosestPoint", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ClosestPoint", 2, SQLITE_ANY, cache, fnct_ClosestPoint, 0, 0); - sqlite3_create_function (db, "ST_ClosestPoint", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ClosestPoint", 2, SQLITE_ANY, cache, fnct_ClosestPoint, 0, 0); - sqlite3_create_function (db, "ShortestLine", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ShortestLine", 2, SQLITE_ANY, cache, fnct_ShortestLine, 0, 0); - sqlite3_create_function (db, "ST_ShortestLine", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ShortestLine", 2, SQLITE_ANY, cache, fnct_ShortestLine, 0, 0); - sqlite3_create_function (db, "Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0); - sqlite3_create_function (db, "ST_Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0); - sqlite3_create_function (db, "LineMerge", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "Snap", 3, SQLITE_ANY, cache, fnct_Snap, 0, 0); + sqlite3_create_function (db, "ST_Snap", 3, SQLITE_ANY, cache, fnct_Snap, 0, + 0); + sqlite3_create_function (db, "LineMerge", 1, SQLITE_ANY, cache, fnct_LineMerge, 0, 0); - sqlite3_create_function (db, "ST_LineMerge", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_LineMerge", 1, SQLITE_ANY, cache, fnct_LineMerge, 0, 0); - sqlite3_create_function (db, "UnaryUnion", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "UnaryUnion", 1, SQLITE_ANY, cache, fnct_UnaryUnion, 0, 0); - sqlite3_create_function (db, "ST_UnaryUnion", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_UnaryUnion", 1, SQLITE_ANY, cache, fnct_UnaryUnion, 0, 0); - sqlite3_create_function (db, "SquareGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "SquareGrid", 2, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "SquareGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "SquareGrid", 3, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "SquareGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "SquareGrid", 4, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "ST_SquareGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SquareGrid", 2, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "ST_SquareGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SquareGrid", 3, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "ST_SquareGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_SquareGrid", 4, SQLITE_ANY, cache, fnct_SquareGrid, 0, 0); - sqlite3_create_function (db, "TriangularGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "TriangularGrid", 2, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "TriangularGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "TriangularGrid", 3, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "TriangularGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "TriangularGrid", 4, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "ST_TriangularGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_TriangularGrid", 2, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "ST_TriangularGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_TriangularGrid", 3, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "ST_TriangularGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_TriangularGrid", 4, SQLITE_ANY, cache, fnct_TriangularGrid, 0, 0); - sqlite3_create_function (db, "HexagonalGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "HexagonalGrid", 2, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); - sqlite3_create_function (db, "HexagonalGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "HexagonalGrid", 3, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); - sqlite3_create_function (db, "HexagonalGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "HexagonalGrid", 4, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); - sqlite3_create_function (db, "ST_HexagonalGrid", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_HexagonalGrid", 2, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); - sqlite3_create_function (db, "ST_HexagonalGrid", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_HexagonalGrid", 3, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); - sqlite3_create_function (db, "ST_HexagonalGrid", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_HexagonalGrid", 4, SQLITE_ANY, cache, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "LinesCutAtNodes", 2, SQLITE_ANY, 0, fnct_LinesCutAtNodes, 0, 0); @@ -22432,59 +29626,62 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "ST_RingsCutAtNodes", 1, SQLITE_ANY, 0, fnct_RingsCutAtNodes, 0, 0); -#endif /* end GEOS advanced features */ - -#ifdef GEOS_TRUNK /* GEOS experimental features */ +#ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ - sqlite3_create_function (db, "DelaunayTriangulation", 1, SQLITE_ANY, 0, - fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "DelaunayTriangulation", 2, SQLITE_ANY, 0, - fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "DelaunayTriangulation", 3, SQLITE_ANY, 0, - fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "ST_DelaunayTriangulation", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "DelaunayTriangulation", 1, SQLITE_ANY, cache, fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "ST_DelaunayTriangulation", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "DelaunayTriangulation", 2, SQLITE_ANY, cache, fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "ST_DelaunayTriangulation", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "DelaunayTriangulation", 3, SQLITE_ANY, cache, fnct_DelaunayTriangulation, 0, 0); - sqlite3_create_function (db, "VoronojDiagram", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_DelaunayTriangulation", 1, SQLITE_ANY, + cache, fnct_DelaunayTriangulation, 0, 0); + sqlite3_create_function (db, "ST_DelaunayTriangulation", 2, SQLITE_ANY, + cache, fnct_DelaunayTriangulation, 0, 0); + sqlite3_create_function (db, "ST_DelaunayTriangulation", 3, SQLITE_ANY, + cache, fnct_DelaunayTriangulation, 0, 0); + sqlite3_create_function (db, "VoronojDiagram", 1, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "VoronojDiagram", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "VoronojDiagram", 2, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "VoronojDiagram", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "VoronojDiagram", 3, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "VoronojDiagram", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "VoronojDiagram", 4, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "ST_VoronojDiagram", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_VoronojDiagram", 1, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "ST_VoronojDiagram", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_VoronojDiagram", 2, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "ST_VoronojDiagram", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_VoronojDiagram", 3, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "ST_VoronojDiagram", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_VoronojDiagram", 4, SQLITE_ANY, cache, fnct_VoronojDiagram, 0, 0); - sqlite3_create_function (db, "ConcaveHull", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ConcaveHull", 1, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ConcaveHull", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ConcaveHull", 2, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ConcaveHull", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ConcaveHull", 3, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ConcaveHull", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ConcaveHull", 4, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ST_ConcaveHull", 1, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ConcaveHull", 1, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ST_ConcaveHull", 2, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ConcaveHull", 2, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ST_ConcaveHull", 3, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ConcaveHull", 3, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); - sqlite3_create_function (db, "ST_ConcaveHull", 4, SQLITE_ANY, 0, + sqlite3_create_function (db, "ST_ConcaveHull", 4, SQLITE_ANY, cache, fnct_ConcaveHull, 0, 0); -#endif /* end GEOS experimental features */ +#endif /* end GEOS advanced features */ #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ + sqlite3_create_function (db, "LWGEOM_GetLastErrorMsg", 0, SQLITE_ANY, + 0, fnct_LWGEOM_GetLastErrorMsg, 0, 0); + sqlite3_create_function (db, "LWGEOM_GetLastWarningMsg", 0, SQLITE_ANY, + 0, fnct_LWGEOM_GetLastWarningMsg, 0, 0); + sqlite3_create_function (db, "MakeValid", 1, SQLITE_ANY, 0, fnct_MakeValid, 0, 0); sqlite3_create_function (db, "ST_MakeValid", 1, SQLITE_ANY, 0, @@ -22493,6 +29690,8 @@ register_spatialite_sql_functions (sqlite3 * db) fnct_MakeValidDiscarded, 0, 0); sqlite3_create_function (db, "ST_MakeValidDiscarded", 1, SQLITE_ANY, 0, fnct_MakeValidDiscarded, 0, 0); + sqlite3_create_function (db, "Area", 2, SQLITE_ANY, 0, fnct_Area, 0, 0); + sqlite3_create_function (db, "ST_Area", 2, SQLITE_ANY, 0, fnct_Area, 0, 0); sqlite3_create_function (db, "Segmentize", 2, SQLITE_ANY, 0, fnct_Segmentize, 0, 0); sqlite3_create_function (db, "ST_Segmentize", 2, SQLITE_ANY, 0, @@ -22501,6 +29700,10 @@ register_spatialite_sql_functions (sqlite3 * db) 0); sqlite3_create_function (db, "ST_Azimuth", 2, SQLITE_ANY, 0, fnct_Azimuth, 0, 0); + sqlite3_create_function (db, "Project", 3, SQLITE_ANY, 0, fnct_Project, 0, + 0); + sqlite3_create_function (db, "ST_Project", 3, SQLITE_ANY, 0, fnct_Project, + 0, 0); sqlite3_create_function (db, "GeoHash", 1, SQLITE_ANY, 0, fnct_GeoHash, 0, 0); sqlite3_create_function (db, "GeoHash", 2, SQLITE_ANY, 0, fnct_GeoHash, 0, @@ -22532,23 +29735,207 @@ register_spatialite_sql_functions (sqlite3 * db) sqlite3_create_function (db, "Split", 2, SQLITE_ANY, 0, fnct_Split, 0, 0); sqlite3_create_function (db, "ST_Split", 2, SQLITE_ANY, 0, fnct_Split, 0, 0); - sqlite3_create_function (db, "SplitLeft", 2, SQLITE_ANY, 0, fnct_SplitLeft, - 0, 0); + sqlite3_create_function (db, "SplitLeft", 2, SQLITE_ANY, 0, + fnct_SplitLeft, 0, 0); sqlite3_create_function (db, "ST_SplitLeft", 2, SQLITE_ANY, 0, fnct_SplitLeft, 0, 0); sqlite3_create_function (db, "SplitRight", 2, SQLITE_ANY, 0, fnct_SplitRight, 0, 0); sqlite3_create_function (db, "ST_SplitRight", 2, SQLITE_ANY, 0, fnct_SplitRight, 0, 0); + sqlite3_create_function (db, "ST_Node", 1, SQLITE_ANY, 0, fnct_Node, 0, 0); + sqlite3_create_function (db, "SelfIntersections", 1, SQLITE_ANY, 0, + fnct_SelfIntersections, 0, 0); + sqlite3_create_function (db, "ST_SelfIntersections", 1, SQLITE_ANY, 0, + fnct_SelfIntersections, 0, 0); #endif /* end LWGEOM support */ #endif /* end including GEOS */ + +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ + + sqlite3_create_function (db, "CreateStylingTables", 0, SQLITE_ANY, 0, + fnct_CreateStylingTables, 0, 0); + sqlite3_create_function (db, "CreateStylingTables", 1, SQLITE_ANY, 0, + fnct_CreateStylingTables, 0, 0); + sqlite3_create_function (db, "RegisterExternalGraphic", 2, SQLITE_ANY, 0, + fnct_RegisterExternalGraphic, 0, 0); + sqlite3_create_function (db, "RegisterExternalGraphic", 5, SQLITE_ANY, 0, + fnct_RegisterExternalGraphic, 0, 0); + sqlite3_create_function (db, "RegisterVectorStyledLayer", 3, SQLITE_ANY, + 0, fnct_RegisterVectorStyledLayer, 0, 0); + sqlite3_create_function (db, "RegisterVectorStyledLayer", 4, SQLITE_ANY, + 0, fnct_RegisterVectorStyledLayer, 0, 0); + sqlite3_create_function (db, "RegisterRasterStyledLayer", 2, SQLITE_ANY, + 0, fnct_RegisterRasterStyledLayer, 0, 0); + sqlite3_create_function (db, "RegisterRasterStyledLayer", 3, SQLITE_ANY, + 0, fnct_RegisterRasterStyledLayer, 0, 0); + sqlite3_create_function (db, "RegisterStyledGroup", 2, SQLITE_ANY, 0, + fnct_RegisterStyledGroup, 0, 0); + sqlite3_create_function (db, "RegisterStyledGroup", 3, SQLITE_ANY, 0, + fnct_RegisterStyledGroup, 0, 0); + sqlite3_create_function (db, "RegisterStyledGroup", 4, SQLITE_ANY, 0, + fnct_RegisterStyledGroup, 0, 0); + sqlite3_create_function (db, "SetStyledGroupInfos", 3, SQLITE_ANY, 0, + fnct_SetStyledGroupInfos, 0, 0); + sqlite3_create_function (db, "RegisterGroupStyle", 2, SQLITE_ANY, + 0, fnct_RegisterGroupStyle, 0, 0); + sqlite3_create_function (db, "RegisterGroupStyle", 3, SQLITE_ANY, + 0, fnct_RegisterGroupStyle, 0, 0); + sqlite3_create_function (db, "CreateIsoMetadataTables", 0, SQLITE_ANY, 0, + fnct_CreateIsoMetadataTables, 0, 0); + sqlite3_create_function (db, "CreateIsoMetadataTables", 1, SQLITE_ANY, 0, + fnct_CreateIsoMetadataTables, 0, 0); + sqlite3_create_function (db, "GetIsoMetadataId", 1, SQLITE_ANY, 0, + fnct_GetIsoMetadataId, 0, 0); + sqlite3_create_function (db, "RegisterIsoMetadata", 2, SQLITE_ANY, 0, + fnct_RegisterIsoMetadata, 0, 0); + sqlite3_create_function (db, "RegisterIsoMetadata", 3, SQLITE_ANY, 0, + fnct_RegisterIsoMetadata, 0, 0); + sqlite3_create_function (db, "XB_Create", 1, SQLITE_ANY, cache, + fnct_XB_Create, 0, 0); + sqlite3_create_function (db, "XB_Create", 2, SQLITE_ANY, cache, + fnct_XB_Create, 0, 0); + sqlite3_create_function (db, "XB_Create", 3, SQLITE_ANY, cache, + fnct_XB_Create, 0, 0); + sqlite3_create_function (db, "XB_GetPayload", 1, SQLITE_ANY, 0, + fnct_XB_GetPayload, 0, 0); + sqlite3_create_function (db, "XB_GetPayload", 2, SQLITE_ANY, 0, + fnct_XB_GetPayload, 0, 0); + sqlite3_create_function (db, "XB_GetDocument", 1, SQLITE_ANY, 0, + fnct_XB_GetDocument, 0, 0); + sqlite3_create_function (db, "XB_GetDocument", 2, SQLITE_ANY, 0, + fnct_XB_GetDocument, 0, 0); + sqlite3_create_function (db, "XB_SchemaValidate", 2, SQLITE_ANY, cache, + fnct_XB_SchemaValidate, 0, 0); + sqlite3_create_function (db, "XB_Compress", 1, SQLITE_ANY, 0, + fnct_XB_Compress, 0, 0); + sqlite3_create_function (db, "XB_Uncompress", 1, SQLITE_ANY, 0, + fnct_XB_Uncompress, 0, 0); + sqlite3_create_function (db, "XB_IsValid", 1, SQLITE_ANY, 0, + fnct_XB_IsValid, 0, 0); + sqlite3_create_function (db, "XB_IsSchemaValidated", 1, SQLITE_ANY, 0, + fnct_XB_IsSchemaValidated, 0, 0); + sqlite3_create_function (db, "XB_IsCompressed", 1, SQLITE_ANY, 0, + fnct_XB_IsCompressed, 0, 0); + sqlite3_create_function (db, "XB_IsIsoMetadata", 1, SQLITE_ANY, 0, + fnct_XB_IsIsoMetadata, 0, 0); + sqlite3_create_function (db, "XB_IsSldSeVectorStyle", 1, SQLITE_ANY, 0, + fnct_XB_IsSldSeVectorStyle, 0, 0); + sqlite3_create_function (db, "XB_IsSldSeRasterStyle", 1, SQLITE_ANY, 0, + fnct_XB_IsSldSeRasterStyle, 0, 0); + sqlite3_create_function (db, "XB_IsSldStyle", 1, SQLITE_ANY, 0, + fnct_XB_IsSldStyle, 0, 0); + sqlite3_create_function (db, "XB_IsSvg", 1, SQLITE_ANY, 0, fnct_XB_IsSvg, + 0, 0); + sqlite3_create_function (db, "XB_GetSchemaURI", 1, SQLITE_ANY, 0, + fnct_XB_GetSchemaURI, 0, 0); + sqlite3_create_function (db, "XB_GetInternalSchemaURI", 1, SQLITE_ANY, + cache, fnct_XB_GetInternalSchemaURI, 0, 0); + sqlite3_create_function (db, "XB_GetFileId", 1, SQLITE_ANY, 0, + fnct_XB_GetFileId, 0, 0); + sqlite3_create_function (db, "XB_GetParentId", 1, SQLITE_ANY, 0, + fnct_XB_GetParentId, 0, 0); + sqlite3_create_function (db, "XB_SetFileId", 2, SQLITE_ANY, cache, + fnct_XB_SetFileId, 0, 0); + sqlite3_create_function (db, "XB_SetParentId", 2, SQLITE_ANY, cache, + fnct_XB_SetParentId, 0, 0); + sqlite3_create_function (db, "XB_AddFileId", 6, SQLITE_ANY, cache, + fnct_XB_AddFileId, 0, 0); + sqlite3_create_function (db, "XB_AddParentId", 6, SQLITE_ANY, cache, + fnct_XB_AddParentId, 0, 0); + sqlite3_create_function (db, "XB_GetName", 1, SQLITE_ANY, 0, + fnct_XB_GetName, 0, 0); + sqlite3_create_function (db, "XB_GetTitle", 1, SQLITE_ANY, 0, + fnct_XB_GetTitle, 0, 0); + sqlite3_create_function (db, "XB_GetAbstract", 1, SQLITE_ANY, 0, + fnct_XB_GetAbstract, 0, 0); + sqlite3_create_function (db, "XB_GetGeometry", 1, SQLITE_ANY, 0, + fnct_XB_GetGeometry, 0, 0); + sqlite3_create_function (db, "XB_GetDocumentSize", 1, SQLITE_ANY, 0, + fnct_XB_GetDocumentSize, 0, 0); + sqlite3_create_function (db, "XB_GetEncoding", 1, SQLITE_ANY, 0, + fnct_XB_GetEncoding, 0, 0); + sqlite3_create_function (db, "XB_GetLastParseError", 0, SQLITE_ANY, cache, + fnct_XB_GetLastParseError, 0, 0); + sqlite3_create_function (db, "XB_GetLastValidateError", 0, SQLITE_ANY, + cache, fnct_XB_GetLastValidateError, 0, 0); + sqlite3_create_function (db, "XB_IsValidXPathExpression", 1, SQLITE_ANY, + cache, fnct_XB_IsValidXPathExpression, 0, 0); + sqlite3_create_function (db, "XB_GetLastXPathError", 0, SQLITE_ANY, cache, + fnct_XB_GetLastXPathError, 0, 0); + sqlite3_create_function (db, "XB_CacheFlush", 0, SQLITE_ANY, cache, + fnct_XB_CacheFlush, 0, 0); + +#endif /* end including LIBXML2 */ + +#ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ + + sqlite3_create_function (db, "AutoGPKGStart", 0, SQLITE_ANY, 0, + fnct_AutoGPKGStart, 0, 0); + sqlite3_create_function (db, "AutoGPKGStop", 0, SQLITE_ANY, 0, + fnct_AutoGPKGStop, 0, 0); + + /* not yet finalised geopackage raster functions, plus some convenience API */ + sqlite3_create_function (db, "gpkgCreateBaseTables", 0, SQLITE_ANY, 0, + fnct_gpkgCreateBaseTables, 0, 0); + sqlite3_create_function (db, "gpkgInsertEpsgSRID", 1, SQLITE_ANY, 0, + fnct_gpkgInsertEpsgSRID, 0, 0); + sqlite3_create_function (db, "gpkgCreateTilesTable", 6, SQLITE_ANY, 0, + fnct_gpkgCreateTilesTable, 0, 0); + sqlite3_create_function (db, "gpkgCreateTilesZoomLevel", 4, SQLITE_ANY, 0, + fnct_gpkgCreateTilesZoomLevel, 0, 0); + sqlite3_create_function (db, "gpkgAddTileTriggers", 1, SQLITE_ANY, 0, + fnct_gpkgAddTileTriggers, 0, 0); + sqlite3_create_function (db, "gpkgGetNormalZoom", 2, SQLITE_ANY, 0, + fnct_gpkgGetNormalZoom, 0, 0); + sqlite3_create_function (db, "gpkgGetNormalRow", 3, SQLITE_ANY, 0, + fnct_gpkgGetNormalRow, 0, 0); + sqlite3_create_function (db, "gpkgGetImageType", 1, SQLITE_ANY, 0, + fnct_gpkgGetImageType, 0, 0); + sqlite3_create_function (db, "gpkgAddGeometryColumn", 6, SQLITE_ANY, 0, + fnct_gpkgAddGeometryColumn, 0, 0); + sqlite3_create_function (db, "gpkgAddGeometryTriggers", 2, SQLITE_ANY, 0, + fnct_gpkgAddGeometryTriggers, 0, 0); + sqlite3_create_function (db, "gpkgAddSpatialIndex", 2, SQLITE_ANY, 0, + fnct_gpkgAddSpatialIndex, 0, 0); + sqlite3_create_function (db, "gpkgMakePoint", 2, SQLITE_ANY, 0, + fnct_gpkgMakePoint, 0, 0); + sqlite3_create_function (db, "gpkgMakePoint", 3, SQLITE_ANY, 0, + fnct_gpkgMakePointWithSRID, 0, 0); + sqlite3_create_function (db, "gpkgMakePointZ", 3, SQLITE_ANY, 0, + fnct_gpkgMakePointZ, 0, 0); + sqlite3_create_function (db, "gpkgMakePointZ", 4, SQLITE_ANY, 0, + fnct_gpkgMakePointZWithSRID, 0, 0); + sqlite3_create_function (db, "gpkgMakePointM", 3, SQLITE_ANY, 0, + fnct_gpkgMakePointM, 0, 0); + sqlite3_create_function (db, "gpkgMakePointM", 4, SQLITE_ANY, 0, + fnct_gpkgMakePointMWithSRID, 0, 0); + sqlite3_create_function (db, "gpkgMakePointZM", 4, SQLITE_ANY, 0, + fnct_gpkgMakePointZM, 0, 0); + sqlite3_create_function (db, "gpkgMakePointZM", 5, SQLITE_ANY, 0, + fnct_gpkgMakePointZMWithSRID, 0, 0); + sqlite3_create_function (db, "AsGPB", 1, SQLITE_ANY, 0, fnct_ToGPB, 0, 0); + sqlite3_create_function (db, "GeomFromGPB", 1, SQLITE_ANY, 0, + fnct_GeomFromGPB, 0, 0); + sqlite3_create_function (db, "IsValidGPB", 1, SQLITE_ANY, 0, + fnct_IsValidGPB, 0, 0); + sqlite3_create_function (db, "GPKG_IsAssignable", 2, SQLITE_ANY, 0, + fnct_GPKG_IsAssignable, 0, 0); + sqlite3_create_function (db, "CastAutomagic", 1, SQLITE_ANY, 0, + fnct_CastAutomagic, 0, 0); + +#endif /* end enabling GeoPackage extensions */ + + return cache; } -static void -init_spatialite_virtualtables (sqlite3 * db) +SPATIALITE_PRIVATE void +init_spatialite_virtualtables (void *p_db, const void *p_cache) { + sqlite3 *db = (sqlite3 *) p_db; + #ifndef OMIT_ICONV /* when ICONV is disabled SHP/DBF/TXT cannot be supported */ /* initializing the VirtualShape extension */ virtualshape_extension_init (db); @@ -22556,6 +29943,7 @@ init_spatialite_virtualtables (sqlite3 * db) virtualdbf_extension_init (db); /* initializing the VirtualText extension */ virtualtext_extension_init (db); + #ifndef OMIT_FREEXL /* initializing the VirtualXL extension */ virtualXL_extension_init (db); @@ -22568,28 +29956,50 @@ init_spatialite_virtualtables (sqlite3 * db) mbrcache_extension_init (db); /* initializing the VirtualFDO extension */ virtualfdo_extension_init (db); +/* initializing the VirtualBBox extension */ + virtualbbox_extension_init (db, p_cache); /* initializing the VirtualSpatialIndex extension */ virtual_spatialindex_extension_init (db); + +#ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ +/* initializing the VirtualFDO extension */ + virtualgpkg_extension_init (db); +#endif /* end GEOPACKAGE conditional */ + +#ifdef ENABLE_LIBXML2 /* including LIBXML2 */ +/* initializing the VirtualXPath extension */ + virtual_xpath_extension_init (db, p_cache); +#endif /* LIBXML2 enabled/disable */ } -static int +#ifdef LOADABLE_EXTENSION /* loadable-extension only */ +SQLITE_EXTENSION_INIT1 static int init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { + void *p_cache = spatialite_alloc_connection (); + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; SQLITE_EXTENSION_INIT2 (pApi); + +#ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ + splite_lwgeom_init (); +#endif /* end POSTGIS_2_1 */ + /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); *pzErrMsg = NULL; - register_spatialite_sql_functions (db); + register_spatialite_sql_functions (db, cache); - init_spatialite_virtualtables (db); + init_spatialite_virtualtables (db, p_cache); /* setting a timeout handler */ sqlite3_busy_timeout (db, 5000); return 0; } +#endif SPATIALITE_DECLARE void spatialite_init_geos (void) @@ -22600,16 +30010,9 @@ spatialite_init_geos (void) #endif /* end GEOS */ } -SPATIALITE_DECLARE void -spatialite_init (int verbose) +SPATIALITE_PRIVATE void +spatialite_splash_screen (int verbose) { -/* used when SQLite initializes SpatiaLite via statically linked lib */ - -#ifndef OMIT_GEOS /* initializing GEOS */ - initGEOS (geos_warning, geos_error); -#endif /* end GEOS */ - - sqlite3_auto_extension ((void (*)(void)) init_spatialite_extension); if (isatty (1)) { /* printing "hello" message only when stdout is on console */ @@ -22634,8 +30037,20 @@ spatialite_init (int verbose) ("\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n"); spatialite_i ("\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n"); + +#ifdef ENABLE_LIBXML2 /* VirtualXPath is supported */ + spatialite_i + ("\t- 'VirtualXPath'\t[XML Path Language - XPath]\n"); +#endif /* end including LIBXML2 */ + spatialite_i ("\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n"); + +#ifdef ENABLE_GEOPACKAGE /* VirtualGPKG is supported */ + spatialite_i + ("\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n"); +#endif + spatialite_i ("\t- 'VirtualBBox'\t\t[BoundingBox tables]\n"); spatialite_i ("\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n"); } #ifndef OMIT_PROJ /* PROJ.4 version */ @@ -22651,34 +30066,76 @@ spatialite_init (int verbose) spatialite_i ("LWGEOM version ......: %s\n", splite_lwgeom_version ()); #endif /* end LWGEOM version */ + if (verbose) + spatialite_i ("TARGET CPU ..........: %s\n", + spatialite_target_cpu ()); + } +} + +#ifndef LOADABLE_EXTENSION +SPATIALITE_DECLARE void +spatialite_init_ex (sqlite3 * db_handle, const void *p_cache, int verbose) +{ +/* used when SQLite initializes as an ordinary lib */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + if (p_cache == NULL) + { + spatialite_e + ("ERROR unable to initialize the SpatiaLite extension: NULL cache !!!\n"); + return; } + +/* setting the POSIX locale for numeric */ + setlocale (LC_NUMERIC, "POSIX"); + +#ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ + splite_lwgeom_init (); +#endif /* end POSTGIS_2_1 */ + + register_spatialite_sql_functions (db_handle, cache); + + init_spatialite_virtualtables (db_handle, p_cache); + spatialite_splash_screen (verbose); + +/* setting a timeout handler */ + sqlite3_busy_timeout (db_handle, 5000); } SPATIALITE_DECLARE void -spatialite_cleanup () +spatialite_cleanup_ex (const void *ptr) { -#ifndef OMIT_GEOS - finishGEOS (); + struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; + + if (cache == NULL) + return; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return; + +#ifdef ENABLE_LWGEOM + gaiaResetLwGeomMsg (); #endif + + free_internal_cache (cache); sqlite3_reset_auto_extension (); } +#endif /* not built as loadable-extension only */ -#if !(defined _WIN32) || defined(__MINGW__) +#ifdef LOADABLE_EXTENSION /* loadable-extension only */ +#if !(defined _WIN32) || defined(__MINGW32__) /* MSVC is unable to understand this declaration */ __attribute__ ((visibility ("default"))) #endif SPATIALITE_DECLARE int - sqlite3_extension_init (sqlite3 * db, char **pzErrMsg, - const sqlite3_api_routines * pApi) + sqlite3_modspatialite_init (sqlite3 * db, char **pzErrMsg, + const sqlite3_api_routines * pApi) { /* SQLite invokes this routine once when it dynamically loads the extension. */ - -#ifndef OMIT_GEOS /* initializing GEOS */ - initGEOS (geos_warning, geos_error); -#endif /* end GEOS */ - + spatialite_initialize (); return init_spatialite_extension (db, pzErrMsg, pApi); } +#endif SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value) diff --git a/src/spatialite/src/spatialite/spatialite_init.c b/src/spatialite/src/spatialite/spatialite_init.c new file mode 100644 index 0000000..befbc68 --- /dev/null +++ b/src/spatialite/src/spatialite/spatialite_init.c @@ -0,0 +1,141 @@ +/* + + spatialite_init.c -- SQLite3 spatial extension + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Pepijn Van Eeckhoudt +(implementing Android support) + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +/* + +CREDITS: + +this module has been partly funded by: +Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale +(exposing liblwgeom APIs as SpatiaLite own SQL functions) + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include + +#include +#include +#include + +#ifndef OMIT_GEOS /* including GEOS */ +#include +#endif + +#ifndef LOADABLE_EXTENSION /* ordinary library, not loadable-extension */ + +static int +init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const void *pApi) +{ + if (pApi == NULL) + pApi = NULL; /* suppressing stupid compiler warnings */ + +/* setting the POSIX locale for numeric */ + setlocale (LC_NUMERIC, "POSIX"); + *pzErrMsg = NULL; + + register_spatialite_sql_functions (db, NULL); + + init_spatialite_virtualtables (db, NULL); + +/* setting a timeout handler */ + sqlite3_busy_timeout (db, 5000); + + return 0; +} + +SPATIALITE_DECLARE void +spatialite_init (int verbose) +{ +/* used when SQLite initializes as an ordinary lib + + OBSOLETE - strongly discouraged !!!!! + always using spatialite_init_ex() as a replacement + is warmly reccomended +*/ + spatialite_initialize (); + +#ifndef OMIT_GEOS /* initializing GEOS */ + initGEOS (geos_warning, geos_error); +#endif /* end GEOS */ + +#ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ + splite_lwgeom_init (); +#endif /* end POSTGIS_2_1 */ + + sqlite3_auto_extension ((void (*)(void)) init_spatialite_extension); + spatialite_splash_screen (verbose); +} + +SPATIALITE_DECLARE void +spatialite_cleanup () +{ +/* OBSOLETE - strongly discouraged !!!!! + always using spatialite_cleanup_ex() as a replacement + is warmly reccomended +*/ + +#ifndef OMIT_GEOS + finishGEOS (); +#endif + +#ifdef ENABLE_LWGEOM + gaiaResetLwGeomMsg (); +#endif + + sqlite3_reset_auto_extension (); +} +#endif diff --git a/src/spatialite/src/spatialite/statistics.c b/src/spatialite/src/spatialite/statistics.c index a0af454..e6652b2 100644 --- a/src/spatialite/src/spatialite/statistics.c +++ b/src/spatialite/src/spatialite/statistics.c @@ -2,7 +2,7 @@ statistics.c -- helper functions updating internal statistics - version 4.0, 2012 August 8 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1411,7 +1411,6 @@ genuine_layer_statistics_v4 (sqlite3 * sqlite, const char *table, return 1; } - static int genuine_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) @@ -1719,10 +1718,12 @@ struct drop_params }; static int -do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) +do_drop_table (sqlite3 * sqlite, const char *prefix, const char *table, + struct drop_params *aux) { /* performing the actual work */ char *sql; + char *q_prefix; char *q_name; int i; @@ -1730,7 +1731,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* dropping a View */ q_name = gaiaDoubleQuotedSql (table); - sql = sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\"", q_name); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\".\"%s\"", q_prefix, + q_name); + free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); @@ -1739,7 +1744,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* dropping a Table */ q_name = gaiaDoubleQuotedSql (table); - sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix, + q_name); + free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); @@ -1749,7 +1758,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* dropping any R*Tree */ q_name = gaiaDoubleQuotedSql (*(aux->rtrees + i)); - sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix, + q_name); + free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); @@ -1758,152 +1771,206 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) if (aux->ok_layer_params) { /* deleting from LAYER_PARAMS */ - sql = sqlite3_mprintf ("DELETE FROM layer_params " - "WHERE lower(table_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_params " + "WHERE lower(table_name) = lower(%Q)", + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_sub_classes) { /* deleting from LAYER_SUB_CLASSES */ - sql = sqlite3_mprintf ("DELETE FROM layer_sub_classes " - "WHERE lower(table_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_sub_classes " + "WHERE lower(table_name) = lower(%Q)", + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_table_layout) { /* deleting from LAYER_TABLE_LAYOUT */ - sql = sqlite3_mprintf ("DELETE FROM layer_table_layout " - "WHERE lower(table_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_table_layout " + "WHERE lower(table_name) = lower(%Q)", + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_auth) { /* deleting from GEOMETRY_COLUMNS_AUTH */ - sql = sqlite3_mprintf ("DELETE FROM geometry_columns_auth " + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_auth " "WHERE lower(f_table_name) = lower(%Q)", - table); + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_field_infos) { /* deleting from GEOMETRY_COLUMNS_FIELD_INFOS */ - sql = sqlite3_mprintf ("DELETE FROM geometry_columns_fiels_infos " - "WHERE lower(f_table_name) = lower(%Q)", - table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf + ("DELETE FROM \"%s\".geometry_columns_fiels_infos " + "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_statistics) { /* deleting from GEOMETRY_COLUMNS_STATISTICS */ - sql = sqlite3_mprintf ("DELETE FROM geometry_columns_statistics " - "WHERE lower(f_table_name) = lower(%Q)", - table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_statistics " + "WHERE lower(f_table_name) = lower(%Q)", + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_auth) { /* deleting from VIEWS_GEOMETRY_COLUMNS_AUTH */ - sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns_auth " - "WHERE lower(view_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns_auth " + "WHERE lower(view_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_field_infos) { /* deleting from VIEWS_GEOMETRY_COLUMNS_FIELD_INFOS */ + q_prefix = gaiaDoubleQuotedSql (prefix); sql = - sqlite3_mprintf ("DELETE FROM views_geometry_columns_fiels_infos " - "WHERE view_name = %Q", table); + sqlite3_mprintf + ("DELETE FROM \"%s\".views_geometry_columns_fiels_infos " + "WHERE view_name = %Q", q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_statistics) { /* deleting from VIEWS_GEOMETRY_COLUMNS_STATISTICS */ + q_prefix = gaiaDoubleQuotedSql (prefix); sql = - sqlite3_mprintf ("DELETE FROM views_geometry_columns_statistics " - "WHERE lower(view_name) = lower(%Q)", table); + sqlite3_mprintf + ("DELETE FROM \"%s\".views_geometry_columns_statistics " + "WHERE lower(view_name) = lower(%Q)", q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_auth) { /* deleting from VIRTS_GEOMETRY_COLUMNS_AUTH */ - sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_auth " - "WHERE lower(virt_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns_auth " + "WHERE lower(virt_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_field_infos) { /* deleting from VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS */ + q_prefix = gaiaDoubleQuotedSql (prefix); sql = - sqlite3_mprintf ("DELETE FROM virts_geometry_columns_fiels_infos " - "WHERE lower(virt_name) = lower(%Q)", table); + sqlite3_mprintf + ("DELETE FROM \"%s\".virts_geometry_columns_fiels_infos " + "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_statistics) { /* deleting from VIRTS_GEOMETRY_COLUMNS_STATISTICS */ + q_prefix = gaiaDoubleQuotedSql (prefix); sql = - sqlite3_mprintf ("DELETE FROM virts_geometry_columns_statistics " - "WHERE lower(virt_name) = lower(%Q)", table); + sqlite3_mprintf + ("DELETE FROM \"%s\".virts_geometry_columns_statistics " + "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_statistics) { /* deleting from LAYER_STATISTICS */ - sql = sqlite3_mprintf ("DELETE FROM layer_statistics " - "WHERE lower(table_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_statistics " + "WHERE lower(table_name) = lower(%Q)", + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_layer_statistics) { /* deleting from VIEWS_LAYER_STATISTICS */ - sql = sqlite3_mprintf ("DELETE FROM views_layer_statistics " - "WHERE lower(view_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_layer_statistics " + "WHERE lower(view_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_layer_statistics) { /* deleting from VIRTS_LAYER_STATISTICS */ - sql = sqlite3_mprintf ("DELETE FROM virts_layer_statistics " - "WHERE lower(virt_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_layer_statistics " + "WHERE lower(virt_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns) { /* deleting from GEOMETRY_COLUMNS */ - sql = sqlite3_mprintf ("DELETE FROM geometry_columns " + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns " "WHERE lower(f_table_name) = lower(%Q)", - table); + q_prefix, table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ - sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns " - "WHERE lower(view_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns " + "WHERE lower(view_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ - sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns " - "WHERE lower(virt_name) = lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns " + "WHERE lower(virt_name) = lower(%Q)", q_prefix, + table); + free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } @@ -1912,7 +1979,8 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) } static int -do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) +do_drop_sub_view (sqlite3 * sqlite, const char *prefix, const char *table, + struct drop_params *aux) { /* dropping any depending View */ int ret; @@ -1921,6 +1989,7 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) int rows; int columns; char *sql; + char *q_prefix; struct drop_params aux2; /* initializing the aux params */ @@ -1955,8 +2024,12 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) return 1; /* identifying any View depending on the target */ - sql = sqlite3_mprintf ("SELECT view_name FROM views_geometry_columns " - "WHERE Lower(f_table_name) = Lower(%Q)", table); + q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf ("SELECT view_name FROM \"%s\".views_geometry_columns " + "WHERE Lower(f_table_name) = Lower(%Q)", q_prefix, + table); + free (q_prefix); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) @@ -1969,7 +2042,7 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) { const char *name = results[(i * columns) + 0]; /* dropping the view itself */ - if (!do_drop_table (sqlite, name, &aux2)) + if (!do_drop_table (sqlite, prefix, name, &aux2)) return 0; } } @@ -1978,7 +2051,8 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) } static int -check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux) +check_drop_layout (sqlite3 * sqlite, const char *prefix, const char *table, + struct drop_params *aux) { /* checking the actual DB configuration */ int i; @@ -1987,9 +2061,16 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux) int columns; char jolly = '%'; char *x_name; - char *sql = - "SELECT type, name FROM sqlite_master WHERE type = 'table' or type = 'view'"; - int ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + int ret; + char *sql; + char *q_prefix = gaiaDoubleQuotedSql (prefix); + sql = + sqlite3_mprintf + ("SELECT type, name FROM \"%s\".sqlite_master WHERE type = 'table' or type = 'view'", + q_prefix); + free (q_prefix); + ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); + sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) @@ -2061,11 +2142,14 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux) return 0; /* identifying any possible R*Tree supporting the main target */ + q_prefix = gaiaDoubleQuotedSql (prefix); x_name = sqlite3_mprintf ("idx_%s_%c", table, jolly); sql = - sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " - "AND name LIKE(%Q) AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')", - x_name, jolly, jolly, jolly, jolly); + sqlite3_mprintf + ("SELECT name FROM \"%s\".sqlite_master WHERE type = 'table' " + "AND name LIKE(%Q) AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')", + q_prefix, x_name, jolly, jolly, jolly, jolly); + free (q_prefix); sqlite3_free (x_name); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); @@ -2092,6 +2176,12 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux) SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table) +{ + return gaiaDropTableEx (sqlite, "main", table); +} + +SPATIALITE_DECLARE int +gaiaDropTableEx (sqlite3 * sqlite, const char *prefix, const char *table) { /* dropping a Spatial Table and any other related stuff */ int ret; @@ -2119,6 +2209,8 @@ gaiaDropTable (sqlite3 * sqlite, const char *table) aux.ok_layer_params = 0; aux.ok_layer_sub_classes = 0; aux.ok_layer_table_layout = 0; + if (prefix == NULL) + return 0; if (table == NULL) return 0; /* the whole operation is a single transaction */ @@ -2126,12 +2218,12 @@ gaiaDropTable (sqlite3 * sqlite, const char *table) if (ret != SQLITE_OK) return 0; /* checking the actual DB configuration */ - if (!check_drop_layout (sqlite, table, &aux)) + if (!check_drop_layout (sqlite, prefix, table, &aux)) goto rollback; /* recursively dropping any depending View */ - if (!do_drop_sub_view (sqlite, table, &aux)) + if (!do_drop_sub_view (sqlite, prefix, table, &aux)) goto rollback; - if (!do_drop_table (sqlite, table, &aux)) + if (!do_drop_table (sqlite, prefix, table, &aux)) goto rollback; /* committing the still pending transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); diff --git a/src/spatialite/src/spatialite/virtualXL.c b/src/spatialite/src/spatialite/virtualXL.c index 531c0d2..9bde0f4 100644 --- a/src/spatialite/src/spatialite/virtualXL.c +++ b/src/spatialite/src/spatialite/virtualXL.c @@ -2,7 +2,7 @@ virtualXLc -- SQLite3 extension [VIRTUAL TABLE accessing .XLS] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -900,8 +900,8 @@ vXL_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualXLInit (sqlite3 * db) +static int +spliteVirtualXLInit (sqlite3 * db) { int rc = SQLITE_OK; my_XL_module.iVersion = 1; @@ -927,10 +927,11 @@ sqlite3VirtualXLInit (sqlite3 * db) return rc; } -int -virtualXL_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualXL_extension_init (void *xdb) { - return sqlite3VirtualXLInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualXLInit (db); } #endif /* FreeXL enabled/disabled */ diff --git a/src/spatialite/src/spatialite/virtualbbox.c b/src/spatialite/src/spatialite/virtualbbox.c new file mode 100644 index 0000000..f70fce2 --- /dev/null +++ b/src/spatialite/src/spatialite/virtualbbox.c @@ -0,0 +1,984 @@ +/* + + virtualbbox.c -- SQLite3 extension [VIRTUAL TABLE accessing BoundingBox tables] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include + +#ifdef _WIN32 +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#endif /* not WIN32 */ + +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + +#if defined(_WIN32) && !defined(__MINGW32__) +#define LONG64_MAX _I64_MAX +#define LONG64_MIN _I64_MIN +#else +#define LONG64_MAX 9223372036854775807LL +#define LONG64_MIN (-LONG64_MAX + 1) +#endif + +static struct sqlite3_module my_bbox_module; + +typedef struct SqliteValue +{ +/* a multitype storing a column value */ + int Type; + sqlite3_int64 IntValue; + double DoubleValue; + char *Text; + unsigned char *Blob; + int Size; +} SqliteValue; +typedef SqliteValue *SqliteValuePtr; + +typedef struct VirtualBBoxStruct +{ +/* extends the sqlite3_vtab struct */ + const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ + int nRef; /* # references: USED INTERNALLY BY SQLITE */ + char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ + sqlite3 *db; /* the sqlite db holding the virtual table */ + char *table; /* the real-table name */ + int nColumns; /* the # columns into the table */ + char **Column; /* the name for each column */ + char **Type; /* the type for each column */ + char *Visible; /* true / false */ + SqliteValuePtr *Value; /* the current-row value for each column */ + const void *p_cache; /* pointer to the internal cache */ + int Srid; /* the SRID for each Geometry column */ + char *ColSrid; /* the column containing a SRID definition */ + int ForceWGS84; /* always force WGS84 long-lat */ + char *MinX; /* name of the MinX input column */ + char *MinY; /* name of the MinY input column */ + char *MaxX; /* name of the MaxX input column */ + char *MaxY; /* name of the MaxY input column */ + gaiaGeomCollPtr BBoxGeom; /* current BBOX geometry */ +} VirtualBBox; +typedef VirtualBBox *VirtualBBoxPtr; + +typedef struct VirtualBBoxCursorStruct +{ +/* extends the sqlite3_vtab_cursor struct */ + VirtualBBoxPtr pVtab; /* Virtual table of this cursor */ + sqlite3_stmt *stmt; + sqlite3_int64 current_row; /* the current row ID */ + int eof; /* the EOF marker */ +} VirtualBBoxCursor; +typedef VirtualBBoxCursor *VirtualBBoxCursorPtr; + +static SqliteValuePtr +value_alloc (void) +{ +/* allocates and initialites a Value multitype */ + SqliteValuePtr p = malloc (sizeof (SqliteValue)); + p->Type = SQLITE_NULL; + p->Text = NULL; + p->Blob = NULL; + return p; +} + +static void +value_free (SqliteValuePtr p) +{ +/* freeing a Value multitype */ + if (!p) + return; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + free (p); +} + +static void +value_set_null (SqliteValuePtr p) +{ +/* setting a NULL value to the multitype */ + if (!p) + return; + p->Type = SQLITE_NULL; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; +} + +static void +value_set_int (SqliteValuePtr p, sqlite3_int64 value) +{ +/* setting an INT value to the multitype */ + if (!p) + return; + p->Type = SQLITE_INTEGER; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; + p->IntValue = value; +} + +static void +value_set_double (SqliteValuePtr p, double value) +{ +/* setting a DOUBLE value to the multitype */ + if (!p) + return; + p->Type = SQLITE_FLOAT; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; + p->DoubleValue = value; +} + +static void +value_set_text (SqliteValuePtr p, const char *value, int size) +{ +/* setting a TEXT value to the multitype */ + if (!p) + return; + p->Type = SQLITE_TEXT; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Blob = NULL; + p->Text = malloc (size); + memcpy (p->Text, value, size); + p->Size = size; +} + +static void +value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) +{ +/* setting a BLOB value to the multitype */ + if (!p) + return; + p->Type = SQLITE_BLOB; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = malloc (size); + memcpy (p->Blob, value, size); + p->Size = size; +} + +static void +free_table (VirtualBBoxPtr p_vt) +{ +/* memory cleanup; freeing the virtual table struct */ + int i; + if (!p_vt) + return; + if (p_vt->table) + sqlite3_free (p_vt->table); + if (p_vt->Column) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Column + i)) + sqlite3_free (*(p_vt->Column + i)); + } + sqlite3_free (p_vt->Column); + } + if (p_vt->Type) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Type + i)) + sqlite3_free (*(p_vt->Type + i)); + } + sqlite3_free (p_vt->Type); + } + if (p_vt->Visible) + sqlite3_free (p_vt->Visible); + if (p_vt->Value) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Value + i)) + value_free (*(p_vt->Value + i)); + } + sqlite3_free (p_vt->Value); + } + if (p_vt->MinX) + sqlite3_free (p_vt->MinX); + if (p_vt->MinY) + sqlite3_free (p_vt->MinY); + if (p_vt->MaxX) + sqlite3_free (p_vt->MaxX); + if (p_vt->MaxY) + sqlite3_free (p_vt->MaxY); + if (p_vt->ColSrid) + sqlite3_free (p_vt->ColSrid); + if (p_vt->BBoxGeom) + gaiaFreeGeomColl (p_vt->BBoxGeom); + sqlite3_free (p_vt); +} + +static void +vbbox_read_row (VirtualBBoxCursorPtr cursor) +{ +/* trying to read a row from the BoundingBox real-table */ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) cursor->pVtab->p_cache; + sqlite3_stmt *stmt; + int ret; + int ic; + int icx; + const char *text; + const unsigned char *blob; + int size; + sqlite3_int64 pk; + double minx; + double miny; + double maxx; + double maxy; + int srid; + char ok_minx = 'N'; + char ok_miny = 'N'; + char ok_maxx = 'N'; + char ok_maxy = 'N'; + char ok_srid = 'N'; + stmt = cursor->stmt; + sqlite3_bind_int64 (stmt, 1, cursor->current_row); + ret = sqlite3_step (stmt); + if (ret == SQLITE_ROW) + { + pk = sqlite3_column_int64 (stmt, 0); + if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) + { + minx = sqlite3_column_double (stmt, 1); + ok_minx = 'Y'; + } + if (sqlite3_column_type (stmt, 2) == SQLITE_FLOAT) + { + miny = sqlite3_column_double (stmt, 2); + ok_miny = 'Y'; + } + if (sqlite3_column_type (stmt, 3) == SQLITE_FLOAT) + { + maxx = sqlite3_column_double (stmt, 3); + ok_maxx = 'Y'; + } + if (sqlite3_column_type (stmt, 4) == SQLITE_FLOAT) + { + maxy = sqlite3_column_double (stmt, 4); + ok_maxy = 'Y'; + } + if (sqlite3_column_type (stmt, 5) == SQLITE_INTEGER) + { + srid = sqlite3_column_int (stmt, 5); + ok_srid = 'Y'; + } + if (cursor->pVtab->BBoxGeom) + gaiaFreeGeomColl (cursor->pVtab->BBoxGeom); + cursor->pVtab->BBoxGeom = NULL; + if (ok_minx == 'Y' && ok_miny == 'Y' && ok_maxx == 'Y' + && ok_maxy == 'Y') + { + gaiaGeomCollPtr geom = gaiaAllocGeomColl (); + gaiaPolygonPtr pg = gaiaAddPolygonToGeomColl (geom, 5, 0); + gaiaRingPtr rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, minx, miny); + gaiaSetPoint (rng->Coords, 1, maxx, miny); + gaiaSetPoint (rng->Coords, 2, maxx, maxy); + gaiaSetPoint (rng->Coords, 3, minx, maxy); + gaiaSetPoint (rng->Coords, 4, minx, miny); + if (ok_srid == 'Y') + { + if (cursor->pVtab->ForceWGS84) + { + /* converting to WGS84 long-lat */ + gaiaGeomCollPtr geom2 = NULL; + char *proj_from = NULL; + char *proj_to = NULL; + geom->Srid = srid; + getProjParams (cursor->pVtab->db, srid, &proj_from); + getProjParams (cursor->pVtab->db, 4326, &proj_to); + if (proj_to == NULL || proj_from == NULL) + geom2 = NULL; + else +#ifndef OMIT_PROJ /* including PROJ.4 */ + if (cache != NULL) + geom2 = + gaiaTransform_r (cache, geom, proj_from, + proj_to); + else + geom2 = + gaiaTransform (geom, proj_from, proj_to); +#endif /* end including PROJ.4 */ + geom2 = NULL; + if (geom2 != NULL) + geom2->Srid = 4326; + cursor->pVtab->BBoxGeom = geom2; + gaiaFreeGeomColl (geom); + if (proj_from) + free (proj_from); + if (proj_to) + free (proj_to); + } + else + { + geom->Srid = srid; + cursor->pVtab->BBoxGeom = geom; + } + } + else + { + geom->Srid = cursor->pVtab->Srid; + cursor->pVtab->BBoxGeom = geom; + } + } + icx = 5; + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + { + if (*(cursor->pVtab->Visible + ic) != 'Y') + continue; + icx++; + switch (sqlite3_column_type (stmt, icx)) + { + case SQLITE_INTEGER: + value_set_int (*(cursor->pVtab->Value + ic), + sqlite3_column_int64 (stmt, icx)); + break; + case SQLITE_FLOAT: + value_set_double (*(cursor->pVtab->Value + ic), + sqlite3_column_double (stmt, icx)); + break; + case SQLITE_TEXT: + text = (char *) sqlite3_column_text (stmt, icx); + size = sqlite3_column_bytes (stmt, icx); + value_set_text (*(cursor->pVtab->Value + ic), text, size); + break; + case SQLITE_BLOB: + blob = sqlite3_column_blob (stmt, icx); + size = sqlite3_column_bytes (stmt, icx); + value_set_blob (*(cursor->pVtab->Value + ic), blob, size); + break; + case SQLITE_NULL: + default: + value_set_null (*(cursor->pVtab->Value + ic)); + break; + }; + } + } + else + { + /* an error occurred */ + cursor->eof = 1; + return; + } + cursor->eof = 0; + cursor->current_row = pk; +} + +static int +vbbox_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* creates the virtual table connected to some BoundingBox table */ + char *vtable = NULL; + char *table = NULL; + char *col_minx = NULL; + char *col_miny = NULL; + char *col_maxx = NULL; + char *col_maxy = NULL; + char *col_srid = NULL; + char *x_force_wgs84 = NULL; + int ret; + int i; + int i2; + int len; + int n_rows; + int n_columns; + const char *col_name; + const char *col_type; + int force_wgs84; + char **results; + char *sql; + char *xname; + gaiaOutBuffer sql_statement; + VirtualBBoxPtr p_vt = NULL; + if (pAux) + pAux = pAux; /* unused arg warning suppression */ + gaiaOutBufferInitialize (&sql_statement); +/* checking for table_name */ + if (argc >= 10) + { + vtable = gaiaDequotedSql ((char *) argv[2]); + table = gaiaDequotedSql ((char *) argv[3]); + col_minx = gaiaDequotedSql ((char *) argv[4]); + col_miny = gaiaDequotedSql ((char *) argv[5]); + col_maxx = gaiaDequotedSql ((char *) argv[6]); + col_maxy = gaiaDequotedSql ((char *) argv[7]); + col_srid = gaiaDequotedSql ((char *) argv[8]); + x_force_wgs84 = gaiaDequotedSql ((char *) argv[9]); + } + else + { + *pzErr = + sqlite3_mprintf + ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n"); + goto error; + } + if (strcmp (x_force_wgs84, "0") == 0) + force_wgs84 = 0; + else if (strcmp (x_force_wgs84, "1") == 0) + force_wgs84 = 1; + else + { + *pzErr = + sqlite3_mprintf + ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n"); + goto error; + } +/* retrieving the base table columns */ + xname = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto illegal; + if (n_rows >= 1) + { + p_vt = (VirtualBBoxPtr) sqlite3_malloc (sizeof (VirtualBBox)); + if (!p_vt) + return SQLITE_NOMEM; + p_vt->db = db; + p_vt->p_cache = pAux; + p_vt->nRef = 0; + p_vt->zErrMsg = NULL; + len = strlen (table); + p_vt->table = sqlite3_malloc (len + 1); + strcpy (p_vt->table, table); + p_vt->nColumns = n_rows; + p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); + p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); + p_vt->Visible = sqlite3_malloc (sizeof (char *) * n_rows); + memset (p_vt->Visible, 'N', n_rows); + p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); + p_vt->Srid = atoi (col_srid); + p_vt->ForceWGS84 = force_wgs84; +#ifndef OMIT_PROJ /* including PROJ.4 */ + if (p_vt->ForceWGS84) + spatialite_e + ("VirtualBBOX WARNING - WGS84 is requested, but PROJ4 support is currently disabled\n"); +#endif /* end including PROJ.4 */ + p_vt->ColSrid = NULL; + p_vt->MinX = NULL; + p_vt->MinY = NULL; + p_vt->MaxX = NULL; + p_vt->MaxY = NULL; + p_vt->BBoxGeom = NULL; + for (i = 0; i < n_rows; i++) + { + *(p_vt->Column + i) = NULL; + *(p_vt->Type + i) = NULL; + *(p_vt->Value + i) = value_alloc (); + } + for (i = 1; i <= n_rows; i++) + { + col_name = results[(i * n_columns) + 1]; + col_type = results[(i * n_columns) + 2]; + len = strlen (col_name); + if (strcasecmp (col_name, col_minx) == 0) + { + p_vt->MinX = sqlite3_malloc (len + 1); + strcpy (p_vt->MinX, col_name); + } + if (strcasecmp (col_name, col_miny) == 0) + { + p_vt->MinY = sqlite3_malloc (len + 1); + strcpy (p_vt->MinY, col_name); + } + if (strcasecmp (col_name, col_maxx) == 0) + { + p_vt->MaxX = sqlite3_malloc (len + 1); + strcpy (p_vt->MaxX, col_name); + } + if (strcasecmp (col_name, col_maxy) == 0) + { + p_vt->MaxY = sqlite3_malloc (len + 1); + strcpy (p_vt->MaxY, col_name); + } + if (strcasecmp (col_name, col_srid) == 0) + { + p_vt->ColSrid = sqlite3_malloc (len + 1); + strcpy (p_vt->ColSrid, col_name); + } + *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); + strcpy (*(p_vt->Column + (i - 1)), col_name); + len = strlen (col_type); + *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); + strcpy (*(p_vt->Type + (i - 1)), col_type); + for (i2 = 10; i2 < argc; i2++) + { + char *extra_col = gaiaDequotedSql ((char *) argv[i2]); + if (strcasecmp (extra_col, col_name) == 0) + *(p_vt->Visible + (i - 1)) = 'Y'; + free (extra_col); + } + } + sqlite3_free_table (results); + } + else + { + sqlite3_free_table (results); + goto illegal; + } + if (p_vt->MinX == NULL || p_vt->MinY == NULL || p_vt->MaxX == NULL + || p_vt->MaxY == NULL) + goto illegal; +/* preparing the COLUMNs for this VIRTUAL TABLE */ + xname = gaiaDoubleQuotedSql (vtable); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Geometry Polygon", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Visible + i) != 'Y') + continue; + xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); + sql = sqlite3_mprintf (", \"%s\" %s", xname, *(p_vt->Type + i)); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + gaiaAppendToOutBuffer (&sql_statement, ")"); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + { + if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) + { + *pzErr = + sqlite3_mprintf + ("[VirtualBBox module] CREATE VIRTUAL: invalid SQL statement \"%s\"", + sql); + goto error; + } + gaiaOutBufferReset (&sql_statement); + } + else + goto error; + *ppVTab = (sqlite3_vtab *) p_vt; + free (vtable); + free (table); + free (col_minx); + free (col_miny); + free (col_maxx); + free (col_maxy); + free (col_srid); + free (x_force_wgs84); + return SQLITE_OK; + illegal: +/* something is going the wrong way */ + gaiaOutBufferReset (&sql_statement); + if (p_vt) + free_table (p_vt); + *pzErr = + sqlite3_mprintf + ("[VirtualBBox module] '%s' isn't a valid BoundingBox table\n", table); + error: + if (vtable) + free (vtable); + if (table) + free (table); + if (col_minx) + free (col_minx); + if (col_miny) + free (col_miny); + if (col_maxx) + free (col_maxx); + if (col_maxy) + free (col_maxy); + if (col_srid) + free (col_srid); + if (x_force_wgs84) + free (x_force_wgs84); + gaiaOutBufferReset (&sql_statement); + return SQLITE_ERROR; +} + +static int +vbbox_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* connects the virtual table to some shapefile - simply aliases vbbox_create() */ + return vbbox_create (db, pAux, argc, argv, ppVTab, pzErr); +} + +static int +vbbox_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) +{ +/* best index selection */ + if (pVTab || pIndex) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vbbox_disconnect (sqlite3_vtab * pVTab) +{ +/* disconnects the virtual table */ + VirtualBBoxPtr p_vt = (VirtualBBoxPtr) pVTab; + free_table (p_vt); + return SQLITE_OK; +} + +static int +vbbox_destroy (sqlite3_vtab * pVTab) +{ +/* destroys the virtual table - simply aliases vbbox_disconnect() */ + return vbbox_disconnect (pVTab); +} + +static int +vbbox_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) +{ +/* opening a new cursor */ + sqlite3_stmt *stmt; + gaiaOutBuffer sql_statement; + int ret; + char *sql; + int ic; + char *xname; + VirtualBBoxCursorPtr cursor = + (VirtualBBoxCursorPtr) sqlite3_malloc (sizeof (VirtualBBoxCursor)); + if (cursor == NULL) + return SQLITE_ERROR; + cursor->pVtab = (VirtualBBoxPtr) pVTab; + gaiaOutBufferInitialize (&sql_statement); + gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); + xname = gaiaDoubleQuotedSql (cursor->pVtab->MinX); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + xname = gaiaDoubleQuotedSql (cursor->pVtab->MinY); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxX); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxY); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + if (cursor->pVtab->ColSrid == NULL) + gaiaAppendToOutBuffer (&sql_statement, ",NULL"); + else + { + xname = gaiaDoubleQuotedSql (cursor->pVtab->ColSrid); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + { + value_set_null (*(cursor->pVtab->Value + ic)); + if (*(cursor->pVtab->Visible + ic) != 'Y') + continue; + xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + xname = gaiaDoubleQuotedSql (cursor->pVtab->table); + sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + ret = + sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, + strlen (sql_statement.Buffer), &stmt, NULL); + else + ret = SQLITE_ERROR; + gaiaOutBufferReset (&sql_statement); + if (ret != SQLITE_OK) + { + /* an error occurred */ + cursor->eof = 1; + return SQLITE_ERROR; + } + cursor->stmt = stmt; + cursor->current_row = LONG64_MIN; + cursor->eof = 0; + *ppCursor = (sqlite3_vtab_cursor *) cursor; + vbbox_read_row (cursor); + return SQLITE_OK; +} + +static int +vbbox_close (sqlite3_vtab_cursor * pCursor) +{ +/* closing the cursor */ + int ic; + VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + value_set_null (*(cursor->pVtab->Value + ic)); + if (cursor->stmt) + sqlite3_finalize (cursor->stmt); + sqlite3_free (pCursor); + return SQLITE_OK; +} + +static int +vbbox_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, + int argc, sqlite3_value ** argv) +{ +/* setting up a cursor filter */ + if (pCursor || idxNum || idxStr || argc || argv) + pCursor = pCursor; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vbbox_next (sqlite3_vtab_cursor * pCursor) +{ +/* fetching next row from cursor */ + VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; + (cursor->current_row)++; + vbbox_read_row (cursor); + return SQLITE_OK; +} + +static int +vbbox_eof (sqlite3_vtab_cursor * pCursor) +{ +/* cursor EOF */ + VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; + return cursor->eof; +} + +static int +vbbox_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, + int column) +{ +/* fetching value for the Nth column */ + VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; + SqliteValuePtr value; + int icol = 0; + int icol_ok = 0; + if (column == 0) + { + /* the BBox Geometry */ + if (cursor->pVtab->BBoxGeom == NULL) + sqlite3_result_null (pContext); + else + { + unsigned char *blob; + int size; + gaiaToSpatiaLiteBlobWkb (cursor->pVtab->BBoxGeom, &blob, &size); + sqlite3_result_blob (pContext, blob, size, free); + } + return SQLITE_OK; + } + while (icol < cursor->pVtab->nColumns) + { + if (*(cursor->pVtab->Visible + icol) != 'Y') + { + icol++; + continue; + } + icol_ok++; + if (icol_ok == column) + { + value = *(cursor->pVtab->Value + icol); + switch (value->Type) + { + case SQLITE_INTEGER: + sqlite3_result_int64 (pContext, value->IntValue); + break; + case SQLITE_FLOAT: + sqlite3_result_double (pContext, value->DoubleValue); + break; + case SQLITE_TEXT: + sqlite3_result_text (pContext, value->Text, value->Size, + SQLITE_STATIC); + break; + case SQLITE_BLOB: + sqlite3_result_blob (pContext, value->Blob, value->Size, + SQLITE_STATIC); + break; + default: + sqlite3_result_null (pContext); + break; + }; + return SQLITE_OK; + } + icol++; + } + sqlite3_result_null (pContext); + return SQLITE_OK; +} + +static int +vbbox_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) +{ +/* fetching the ROWID */ + VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; + *pRowid = cursor->current_row; + return SQLITE_OK; +} + +static int +vbbox_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, + sqlite_int64 * pRowid) +{ +/* generic update [INSERT / UPDATE / DELETE */ + if (pVTab || argc || argv || pRowid) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_READONLY; +} + +static int +vbbox_begin (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vbbox_sync (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vbbox_commit (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vbbox_rollback (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +spliteVirtualBBoxInit (sqlite3 * db, void *p_cache) +{ + int rc = SQLITE_OK; + my_bbox_module.iVersion = 1; + my_bbox_module.xCreate = &vbbox_create; + my_bbox_module.xConnect = &vbbox_connect; + my_bbox_module.xBestIndex = &vbbox_best_index; + my_bbox_module.xDisconnect = &vbbox_disconnect; + my_bbox_module.xDestroy = &vbbox_destroy; + my_bbox_module.xOpen = &vbbox_open; + my_bbox_module.xClose = &vbbox_close; + my_bbox_module.xFilter = &vbbox_filter; + my_bbox_module.xNext = &vbbox_next; + my_bbox_module.xEof = &vbbox_eof; + my_bbox_module.xColumn = &vbbox_column; + my_bbox_module.xRowid = &vbbox_rowid; + my_bbox_module.xUpdate = &vbbox_update; + my_bbox_module.xBegin = &vbbox_begin; + my_bbox_module.xSync = &vbbox_sync; + my_bbox_module.xCommit = &vbbox_commit; + my_bbox_module.xRollback = &vbbox_rollback; + my_bbox_module.xFindFunction = NULL; + sqlite3_create_module_v2 (db, "VirtualBBox", &my_bbox_module, p_cache, 0); + return rc; +} + +SPATIALITE_PRIVATE int +virtualbbox_extension_init (void *xdb, const void *p_cache) +{ + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualBBoxInit (db, (void *) p_cache); +} diff --git a/src/spatialite/src/spatialite/virtualdbf.c b/src/spatialite/src/spatialite/virtualdbf.c index fa0effb..44bfcb1 100644 --- a/src/spatialite/src/spatialite/virtualdbf.c +++ b/src/spatialite/src/spatialite/virtualdbf.c @@ -2,7 +2,7 @@ virtualdbf.c -- SQLite3 extension [VIRTUAL TABLE accessing DBF] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -870,8 +870,8 @@ vdbf_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualDbfInit (sqlite3 * db) +static int +spliteVirtualDbfInit (sqlite3 * db) { int rc = SQLITE_OK; my_dbf_module.iVersion = 1; @@ -897,10 +897,11 @@ sqlite3VirtualDbfInit (sqlite3 * db) return rc; } -int -virtualdbf_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualdbf_extension_init (void *xdb) { - return sqlite3VirtualDbfInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualDbfInit (db); } #endif /* ICONV enabled/disabled */ diff --git a/src/spatialite/src/spatialite/virtualfdo.c b/src/spatialite/src/spatialite/virtualfdo.c index dc7cdf2..d08d335 100644 --- a/src/spatialite/src/spatialite/virtualfdo.c +++ b/src/spatialite/src/spatialite/virtualfdo.c @@ -2,7 +2,7 @@ virtualfdo.c -- SQLite3 extension [VIRTUAL TABLE accessing FDO-OGR tables] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -73,6 +73,13 @@ the terms of any one of the MPL, the GPL or the LGPL. #define strncasecmp _strnicmp #endif /* not WIN32 */ +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN @@ -121,6 +128,7 @@ typedef struct VirtualFDOCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualFDOPtr pVtab; /* Virtual table of this cursor */ + sqlite3_stmt *stmt; sqlite3_int64 current_row; /* the current row ID */ int eof; /* the EOF marker */ } VirtualFDOCursor; @@ -947,8 +955,7 @@ vfdo_insert_row (VirtualFDOPtr p_vt, sqlite3_int64 * rowid, int argc, { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, - out_buf. - WriteOffset, + out_buf.WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); @@ -1127,12 +1134,7 @@ vfdo_update_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid, int argc, gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT: M$ rutime doesn't supports %lld for 64 bits */ - sprintf (buf, " WHERE ROWID = %I64d", rowid); -#else - sprintf (buf, " WHERE ROWID = %lld", rowid); -#endif + sprintf (buf, " WHERE ROWID = " FRMT64, rowid); gaiaAppendToOutBuffer (&sql_statement, buf); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = @@ -1187,8 +1189,7 @@ vfdo_update_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid, int argc, { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, - out_buf. - WriteOffset, + out_buf.WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); @@ -1325,12 +1326,7 @@ vfdo_delete_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid) int ret; char *xname; xname = gaiaDoubleQuotedSql (p_vt->table); -#if defined(_WIN32) || defined(__MINGW32__) -/* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ - sprintf (dummy, "%I64d", rowid); -#else - sprintf (dummy, "%lld", rowid); -#endif + sprintf (dummy, FRMT64, rowid); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy); free (xname); @@ -1460,8 +1456,6 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) /* trying to read a row from FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; - char *sql; - char buf[256]; int ic; int ig; unsigned char *wkt; @@ -1472,43 +1466,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) sqlite3_int64 pk; int geom_done; gaiaGeomCollPtr geom; - char *xname; - gaiaOutBuffer sql_statement; - gaiaOutBufferInitialize (&sql_statement); - gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); - for (ic = 0; ic < cursor->pVtab->nColumns; ic++) - { - value_set_null (*(cursor->pVtab->Value + ic)); - xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); - sql = sqlite3_mprintf (",\"%s\"", xname); - free (xname); - gaiaAppendToOutBuffer (&sql_statement, sql); - sqlite3_free (sql); - } - xname = gaiaDoubleQuotedSql (cursor->pVtab->table); -#if defined(_WIN32) || defined (__MINGW32__) -/* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ - sprintf (buf, "%I64d", cursor->current_row); -#else - sprintf (buf, "%lld", cursor->current_row); -#endif - sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= %s", xname, buf); - free (xname); - gaiaAppendToOutBuffer (&sql_statement, sql); - sqlite3_free (sql); - if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) - ret = - sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, - strlen (sql_statement.Buffer), &stmt, NULL); - else - ret = SQLITE_ERROR; - gaiaOutBufferReset (&sql_statement); - if (ret != SQLITE_OK) - { - /* an error occurred */ - cursor->eof = 1; - return; - } + stmt = cursor->stmt; + sqlite3_bind_int64 (stmt, 1, cursor->current_row); ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { @@ -1544,8 +1503,10 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) if (wkt == NULL) { value_set_null (* - (cursor->pVtab->Value - + ic)); + (cursor-> + pVtab-> + Value + + ic)); continue; } delete_wkt = 1; @@ -1555,9 +1516,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) free ((void *) wkt); if (!geom) value_set_null (* - (cursor-> - pVtab->Value + - ic)); + (cursor->pVtab-> + Value + ic)); else { geom->Srid = @@ -1568,16 +1528,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) if (xblob) { value_set_blob (* - (cursor->pVtab->Value - + ic), - xblob, + (cursor-> + pVtab-> + Value + + ic), xblob, size); free (xblob); } else value_set_null (* - (cursor->pVtab->Value - + ic)); + (cursor-> + pVtab-> + Value + ic)); gaiaFreeGeomColl (geom); } } @@ -1598,9 +1560,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) geom = gaiaFromWkb (blob, size); if (!geom) value_set_null (* - (cursor-> - pVtab->Value + - ic)); + (cursor->pVtab-> + Value + ic)); else { geom->Srid = @@ -1611,16 +1572,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) if (xblob) { value_set_blob (* - (cursor->pVtab->Value - + ic), - xblob, + (cursor-> + pVtab-> + Value + + ic), xblob, size); free (xblob); } else value_set_null (* - (cursor->pVtab->Value - + ic)); + (cursor-> + pVtab-> + Value + ic)); gaiaFreeGeomColl (geom); } } @@ -1641,9 +1604,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) geom = gaiaFromFgf (blob, size); if (!geom) value_set_null (* - (cursor-> - pVtab->Value + - ic)); + (cursor->pVtab-> + Value + ic)); else { geom->Srid = @@ -1654,16 +1616,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) if (xblob) { value_set_blob (* - (cursor->pVtab->Value - + ic), - xblob, + (cursor-> + pVtab-> + Value + + ic), xblob, size); free (xblob); } else value_set_null (* - (cursor->pVtab->Value - + ic)); + (cursor-> + pVtab-> + Value + ic)); gaiaFreeGeomColl (geom); } } @@ -1729,16 +1693,13 @@ vfdo_read_row (VirtualFDOCursorPtr cursor) else { /* an error occurred */ - sqlite3_finalize (stmt); cursor->eof = 1; return; } - sqlite3_finalize (stmt); cursor->eof = 0; cursor->current_row = pk; } - static int vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) @@ -1766,6 +1727,7 @@ vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, VirtualFDOPtr p_vt = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ + gaiaOutBufferInitialize (&sql_statement); /* checking for table_name */ if (argc == 4) { @@ -1893,7 +1855,6 @@ vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, else goto illegal; /* preparing the COLUMNs for this VIRTUAL TABLE */ - gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname); free (xname); @@ -1991,11 +1952,47 @@ static int vfdo_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ + sqlite3_stmt *stmt; + gaiaOutBuffer sql_statement; + int ret; + char *sql; + int ic; + char *xname; VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) sqlite3_malloc (sizeof (VirtualFDOCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualFDOPtr) pVTab; + gaiaOutBufferInitialize (&sql_statement); + gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + { + value_set_null (*(cursor->pVtab->Value + ic)); + xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + xname = gaiaDoubleQuotedSql (cursor->pVtab->table); + sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + ret = + sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, + strlen (sql_statement.Buffer), &stmt, NULL); + else + ret = SQLITE_ERROR; + gaiaOutBufferReset (&sql_statement); + if (ret != SQLITE_OK) + { + /* an error occurred */ + cursor->eof = 1; + return SQLITE_ERROR; + } + cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; @@ -2011,6 +2008,8 @@ vfdo_close (sqlite3_vtab_cursor * pCursor) VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) value_set_null (*(cursor->pVtab->Value + ic)); + if (cursor->stmt) + sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } @@ -2162,8 +2161,8 @@ vfdo_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualFDOInit (sqlite3 * db) +static int +spliteVirtualFDOInit (sqlite3 * db) { int rc = SQLITE_OK; my_fdo_module.iVersion = 1; @@ -2189,8 +2188,9 @@ sqlite3VirtualFDOInit (sqlite3 * db) return rc; } -int -virtualfdo_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualfdo_extension_init (void *xdb) { - return sqlite3VirtualFDOInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualFDOInit (db); } diff --git a/src/spatialite/src/spatialite/virtualgpkg.c b/src/spatialite/src/spatialite/virtualgpkg.c new file mode 100644 index 0000000..d1cbe04 --- /dev/null +++ b/src/spatialite/src/spatialite/virtualgpkg.c @@ -0,0 +1,1077 @@ +/* + + virtualgpkg.c -- SQLite3 extension [VIRTUAL TABLE accessing GPKG tables] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include + +#include +#include +#include +#include + +/* 64 bit integer: portable format for printf() */ +#if defined(_WIN32) && !defined(__MINGW32__) +#define FRMT64 "%I64d" +#else +#define FRMT64 "%lld" +#endif + +#if defined(_WIN32) && !defined(__MINGW32__) +#define LONG64_MAX _I64_MAX +#define LONG64_MIN _I64_MIN +#else +#define LONG64_MAX 9223372036854775807LL +#define LONG64_MIN (-LONG64_MAX + 1) +#endif + +#ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ + +struct sqlite3_module my_gpkg_module; + +typedef struct SqliteValue +{ +/* a multitype storing a column value */ + int Type; + sqlite3_int64 IntValue; + double DoubleValue; + char *Text; + unsigned char *Blob; + int Size; +} SqliteValue; +typedef SqliteValue *SqliteValuePtr; + +typedef struct VirtualGPKGStruct +{ +/* extends the sqlite3_vtab struct */ + const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ + int nRef; /* # references: USED INTERNALLY BY SQLITE */ + char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ + sqlite3 *db; /* the sqlite db holding the virtual table */ + char *table; /* the real-table name */ + int nColumns; /* the # columns into the table */ + char **Column; /* the name for each column */ + char **Type; /* the type for each column */ + int *NotNull; /* NotNull clause for each column */ + SqliteValuePtr *Value; /* the current-row value for each column */ + char *GeoColumn; /* name of the Geometry column */ + int Srid; /* SRID of the Geometry column */ + int GeoType; /* Type of the Geometry column */ +} VirtualGPKG; +typedef VirtualGPKG *VirtualGPKGPtr; + +typedef struct VirtualGPKGCursorStruct +{ +/* extends the sqlite3_vtab_cursor struct */ + VirtualGPKGPtr pVtab; /* Virtual table of this cursor */ + sqlite3_stmt *stmt; + sqlite3_int64 current_row; /* the current row ID */ + int eof; /* the EOF marker */ +} VirtualGPKGCursor; +typedef VirtualGPKGCursor *VirtualGPKGCursorPtr; + +static SqliteValuePtr +value_alloc (void) +{ +/* allocates and initialites a Value multitype */ + SqliteValuePtr p = malloc (sizeof (SqliteValue)); + p->Type = SQLITE_NULL; + p->Text = NULL; + p->Blob = NULL; + return p; +} + +static void +value_free (SqliteValuePtr p) +{ +/* freeing a Value multitype */ + if (!p) + return; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + free (p); +} + +static void +value_set_null (SqliteValuePtr p) +{ +/* setting a NULL value to the multitype */ + if (!p) + return; + p->Type = SQLITE_NULL; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; +} + +static void +value_set_int (SqliteValuePtr p, sqlite3_int64 value) +{ +/* setting an INT value to the multitype */ + if (!p) + return; + p->Type = SQLITE_INTEGER; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; + p->IntValue = value; +} + +static void +value_set_double (SqliteValuePtr p, double value) +{ +/* setting a DOUBLE value to the multitype */ + if (!p) + return; + p->Type = SQLITE_FLOAT; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = NULL; + p->DoubleValue = value; +} + +static void +value_set_text (SqliteValuePtr p, const char *value, int size) +{ +/* setting a TEXT value to the multitype */ + if (!p) + return; + p->Type = SQLITE_TEXT; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Blob = NULL; + p->Text = malloc (size); + memcpy (p->Text, value, size); + p->Size = size; +} + +static void +value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) +{ +/* setting a BLOB value to the multitype */ + if (!p) + return; + p->Type = SQLITE_BLOB; + if (p->Text) + free (p->Text); + if (p->Blob) + free (p->Blob); + p->Text = NULL; + p->Blob = malloc (size); + memcpy (p->Blob, value, size); + p->Size = size; +} + +static void +vgpkg_read_row (VirtualGPKGCursorPtr cursor) +{ +/* trying to read a row from GPKG real-table */ + sqlite3_stmt *stmt; + int ret; + int ic; + const char *text; + const unsigned char *blob; + int size; + sqlite3_int64 pk; + stmt = cursor->stmt; + sqlite3_bind_int64 (stmt, 1, cursor->current_row); + ret = sqlite3_step (stmt); + if (ret == SQLITE_ROW) + { + pk = sqlite3_column_int64 (stmt, 0); + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + { + /* fetching column values */ + switch (sqlite3_column_type (stmt, ic + 1)) + { + case SQLITE_INTEGER: + value_set_int (*(cursor->pVtab->Value + ic), + sqlite3_column_int64 (stmt, ic + 1)); + break; + case SQLITE_FLOAT: + value_set_double (*(cursor->pVtab->Value + ic), + sqlite3_column_double (stmt, ic + 1)); + break; + case SQLITE_TEXT: + text = (char *) sqlite3_column_text (stmt, ic + 1); + size = sqlite3_column_bytes (stmt, ic + 1); + value_set_text (*(cursor->pVtab->Value + ic), text, size); + break; + case SQLITE_BLOB: + blob = sqlite3_column_blob (stmt, ic + 1); + size = sqlite3_column_bytes (stmt, ic + 1); + value_set_blob (*(cursor->pVtab->Value + ic), blob, size); + break; + case SQLITE_NULL: + default: + value_set_null (*(cursor->pVtab->Value + ic)); + break; + }; + } + } + else + { + /* an error occurred */ + cursor->eof = 1; + return; + } + cursor->eof = 0; + cursor->current_row = pk; +} + +static int +vgpkg_insert_row (VirtualGPKGPtr p_vt, sqlite3_int64 * rowid, int argc, + sqlite3_value ** argv) +{ +/* trying to insert a row into GPKG real-table */ + sqlite3_stmt *stmt; + int ret; + int i; + int ic; + char prefix[16]; + const char *text; + const unsigned char *blob; + gaiaOutBuffer sql_statement; + int size; + char *sql; + char buf[256]; + char *xname; + gaiaOutBufferInitialize (&sql_statement); + xname = gaiaDoubleQuotedSql (p_vt->table); + sql = sqlite3_mprintf ("INSERT INTO \"%s\" ", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + for (ic = 0; ic < p_vt->nColumns; ic++) + { + if (ic == 0) + strcpy (prefix, "("); + else + strcpy (prefix, ", "); + xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); + sql = sqlite3_mprintf ("%s%s", prefix, xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + gaiaAppendToOutBuffer (&sql_statement, ") VALUES "); + for (ic = 0; ic < p_vt->nColumns; ic++) + { + if (ic == 0) + strcpy (prefix, "("); + else + strcpy (prefix, ", "); + if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0) + { + /* this is the geometry column */ + sql = sqlite3_mprintf ("%sAsGPB(?)", prefix); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + else + { + sprintf (buf, "%s?", prefix); + gaiaAppendToOutBuffer (&sql_statement, buf); + } + } + gaiaAppendToOutBuffer (&sql_statement, ")"); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + ret = + sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, + strlen (sql_statement.Buffer), &stmt, NULL); + else + ret = SQLITE_ERROR; + gaiaOutBufferReset (&sql_statement); + if (ret != SQLITE_OK) + return SQLITE_ERROR; + for (i = 2; i < argc; i++) + { + switch (sqlite3_value_type (argv[i])) + { + case SQLITE_INTEGER: + sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); + break; + case SQLITE_FLOAT: + sqlite3_bind_double (stmt, i - 1, + sqlite3_value_double (argv[i])); + break; + case SQLITE_TEXT: + text = (char *) sqlite3_value_text (argv[i]); + size = sqlite3_value_bytes (argv[i]); + sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); + break; + case SQLITE_BLOB: + blob = sqlite3_value_blob (argv[i]); + size = sqlite3_value_bytes (argv[i]); + sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); + break; + case SQLITE_NULL: + default: + sqlite3_bind_null (stmt, i - 1); + break; + }; + } + sqlite3_finalize (stmt); + *rowid = sqlite3_last_insert_rowid (p_vt->db); + return SQLITE_OK; +} + +static int +vgpkg_update_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid, int argc, + sqlite3_value ** argv) +{ +/* trying to update a row in GPKG real-table */ + sqlite3_stmt *stmt; + int ret; + int i; + int ic; + char prefix[16]; + const char *text; + const unsigned char *blob; + gaiaOutBuffer sql_statement; + int size; + char *sql; + char buf[256]; + char *xname; + gaiaOutBufferInitialize (&sql_statement); + xname = gaiaDoubleQuotedSql (p_vt->table); + sql = sqlite3_mprintf ("UPDATE \"%s\" SET", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + for (ic = 0; ic < p_vt->nColumns; ic++) + { + if (ic == 0) + strcpy (prefix, " "); + else + strcpy (prefix, ", "); + xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); + if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0) + { + /* this is the geometry column */ + sql = sqlite3_mprintf ("%s%s = AsGPB(?)", prefix, xname); + } + else + sql = sqlite3_mprintf ("%s%s = ?", prefix, xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + sprintf (buf, " WHERE ROWID = " FRMT64, rowid); + gaiaAppendToOutBuffer (&sql_statement, buf); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + ret = + sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, + strlen (sql_statement.Buffer), &stmt, NULL); + else + ret = SQLITE_ERROR; + gaiaOutBufferReset (&sql_statement); + if (ret != SQLITE_OK) + return SQLITE_ERROR; + for (i = 2; i < argc; i++) + { + switch (sqlite3_value_type (argv[i])) + { + case SQLITE_INTEGER: + sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); + break; + case SQLITE_FLOAT: + sqlite3_bind_double (stmt, i - 1, + sqlite3_value_double (argv[i])); + break; + case SQLITE_TEXT: + text = (char *) sqlite3_value_text (argv[i]); + size = sqlite3_value_bytes (argv[i]); + sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); + break; + case SQLITE_BLOB: + blob = sqlite3_value_blob (argv[i]); + size = sqlite3_value_bytes (argv[i]); + sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); + break; + case SQLITE_NULL: + default: + sqlite3_bind_null (stmt, i - 1); + break; + }; + } + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + ; + else + { + sqlite3_finalize (stmt); + return ret; + } + sqlite3_finalize (stmt); + return SQLITE_OK; +} + +static int +vgpkg_delete_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid) +{ +/* trying to delete a row from GPKG real-table */ + char *sql_statement; + char dummy[256]; + int ret; + char *xname; + xname = gaiaDoubleQuotedSql (p_vt->table); + sprintf (dummy, FRMT64, rowid); + sql_statement = + sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy); + free (xname); + ret = sqlite3_exec (p_vt->db, sql_statement, NULL, NULL, NULL); + sqlite3_free (sql_statement); + return ret; +} + +static void +free_table (VirtualGPKGPtr p_vt) +{ +/* memory cleanup; freeing the virtual table struct */ + int i; + if (!p_vt) + return; + if (p_vt->table) + sqlite3_free (p_vt->table); + if (p_vt->Column) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Column + i)) + sqlite3_free (*(p_vt->Column + i)); + } + sqlite3_free (p_vt->Column); + } + if (p_vt->Type) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Type + i)) + sqlite3_free (*(p_vt->Type + i)); + } + sqlite3_free (p_vt->Type); + } + if (p_vt->NotNull) + sqlite3_free (p_vt->NotNull); + if (p_vt->Value) + { + for (i = 0; i < p_vt->nColumns; i++) + { + if (*(p_vt->Value + i)) + value_free (*(p_vt->Value + i)); + } + sqlite3_free (p_vt->Value); + } + if (p_vt->GeoColumn) + sqlite3_free (p_vt->GeoColumn); + sqlite3_free (p_vt); +} + +static int +vgpkg_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* creates the virtual table connected to some GPKG table */ + char *vtable = NULL; + char *table = NULL; + int ret; + int i; + int len; + int n_rows; + int n_columns; + const char *col_name; + const char *col_type; + int not_null; + const char *type; + int has_z; + int has_m; + char **results; + char *sql; + char prefix[16]; + char *xname; + gaiaOutBuffer sql_statement; + VirtualGPKGPtr p_vt = NULL; + if (pAux) + pAux = pAux; /* unused arg warning suppression */ + gaiaOutBufferInitialize (&sql_statement); +/* checking for table_name */ + if (argc == 4) + { + vtable = gaiaDequotedSql ((char *) argv[2]); + table = gaiaDequotedSql ((char *) argv[3]); + } + else + { + *pzErr = + sqlite3_mprintf + ("[VirtualGPKG module] CREATE VIRTUAL: illegal arg list {table_name}\n"); + goto error; + } +/* retrieving the base table columns */ + xname = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto illegal; + if (n_rows >= 1) + { + p_vt = (VirtualGPKGPtr) sqlite3_malloc (sizeof (VirtualGPKG)); + if (!p_vt) + return SQLITE_NOMEM; + p_vt->db = db; + p_vt->nRef = 0; + p_vt->zErrMsg = NULL; + len = strlen (table); + p_vt->table = sqlite3_malloc (len + 1); + strcpy (p_vt->table, table); + p_vt->nColumns = n_rows; + p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); + p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); + p_vt->NotNull = sqlite3_malloc (sizeof (int) * n_rows); + p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); + for (i = 0; i < n_rows; i++) + { + *(p_vt->Column + i) = NULL; + *(p_vt->Type + i) = NULL; + *(p_vt->NotNull + i) = -1; + *(p_vt->Value + i) = value_alloc (); + } + p_vt->GeoColumn = NULL; + p_vt->Srid = -1; + p_vt->GeoType = GAIA_UNKNOWN; + for (i = 1; i <= n_rows; i++) + { + col_name = results[(i * n_columns) + 1]; + col_type = results[(i * n_columns) + 2]; + if (atoi (results[(i * n_columns) + 3]) == 0) + not_null = 0; + else + not_null = 1; + len = strlen (col_name); + *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); + strcpy (*(p_vt->Column + (i - 1)), col_name); + len = strlen (col_type); + *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); + strcpy (*(p_vt->Type + (i - 1)), col_type); + *(p_vt->NotNull + (i - 1)) = not_null; + } + sqlite3_free_table (results); + } + else + goto illegal; +/* retrieving the base table columns */ + sql = + sqlite3_mprintf + ("SELECT column_name, geometry_type_name, srs_id, z, m\n" + "FROM gpkg_geometry_columns WHERE Upper(table_name) = Upper(%Q)", + table); + ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + goto illegal; + if (n_rows >= 1) + { + col_name = results[n_columns + 0]; + type = results[n_columns + 1]; + p_vt->Srid = atoi (results[n_columns + 2]); + has_z = atoi (results[n_columns + 3]); + has_m = atoi (results[n_columns + 4]); + len = strlen (col_name); + p_vt->GeoColumn = sqlite3_malloc (len + 1); + strcpy (p_vt->GeoColumn, col_name); + if (strcasecmp (type, "POINT") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_POINTZM; + else if (has_z) + p_vt->GeoType = GAIA_POINTZ; + else if (has_m) + p_vt->GeoType = GAIA_POINTM; + else + p_vt->GeoType = GAIA_POINT; + } + if (strcasecmp (type, "LINESTRING") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_LINESTRINGZM; + else if (has_z) + p_vt->GeoType = GAIA_LINESTRINGZ; + else if (has_m) + p_vt->GeoType = GAIA_LINESTRINGM; + else + p_vt->GeoType = GAIA_LINESTRING; + } + if (strcasecmp (type, "POLYGON") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_POLYGONZM; + else if (has_z) + p_vt->GeoType = GAIA_POLYGONZ; + else if (has_m) + p_vt->GeoType = GAIA_POLYGONM; + else + p_vt->GeoType = GAIA_POLYGON; + } + if (strcasecmp (type, "MULTIPOINT") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_MULTIPOINTZM; + else if (has_z) + p_vt->GeoType = GAIA_MULTIPOINTZ; + else if (has_m) + p_vt->GeoType = GAIA_MULTIPOINTM; + else + p_vt->GeoType = GAIA_MULTIPOINT; + } + if (strcasecmp (type, "MULTILINESTRING") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_MULTILINESTRINGZM; + else if (has_z) + p_vt->GeoType = GAIA_MULTILINESTRINGZ; + else if (has_m) + p_vt->GeoType = GAIA_MULTILINESTRINGM; + else + p_vt->GeoType = GAIA_MULTILINESTRING; + } + if (strcasecmp (type, "MULTIPOLYGON") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_MULTIPOLYGONZM; + else if (has_z) + p_vt->GeoType = GAIA_MULTIPOLYGONZ; + else if (has_m) + p_vt->GeoType = GAIA_MULTIPOLYGONM; + else + p_vt->GeoType = GAIA_MULTIPOLYGON; + } + if (strcasecmp (type, "GEOMCOLLECTION") == 0) + { + if (has_z && has_m) + p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZM; + else if (has_z) + p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZ; + else if (has_m) + p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONM; + else + p_vt->GeoType = GAIA_GEOMETRYCOLLECTION; + } + sqlite3_free_table (results); + } + else + goto illegal; +/* preparing the COLUMNs for this VIRTUAL TABLE */ + xname = gaiaDoubleQuotedSql (vtable); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + for (i = 0; i < p_vt->nColumns; i++) + { + if (i == 0) + strcpy (prefix, "("); + else + strcpy (prefix, ", "); + xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); + if (*(p_vt->NotNull + i)) + sql = + sqlite3_mprintf ("%s%s %s NOT NULL", prefix, xname, + *(p_vt->Type + i)); + else + sql = + sqlite3_mprintf ("%s%s %s", prefix, xname, *(p_vt->Type + i)); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + gaiaAppendToOutBuffer (&sql_statement, ")"); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + { + if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) + { + *pzErr = + sqlite3_mprintf + ("[VirtualGPKG module] CREATE VIRTUAL: invalid SQL statement \"%s\"", + sql); + goto error; + } + gaiaOutBufferReset (&sql_statement); + } + else + goto error; + *ppVTab = (sqlite3_vtab *) p_vt; + free (vtable); + free (table); + return SQLITE_OK; + illegal: +/* something is going the wrong way */ + gaiaOutBufferReset (&sql_statement); + if (p_vt) + free_table (p_vt); + *pzErr = + sqlite3_mprintf + ("[VirtualGPKG module] '%s' isn't a valid GPKG Geometry table\n", + table); + error: + if (vtable) + free (vtable); + if (table) + free (table); + gaiaOutBufferReset (&sql_statement); + return SQLITE_ERROR; +} + +static int +vgpkg_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* connects the virtual table to some shapefile - simply aliases vgpkg_create() */ + return vgpkg_create (db, pAux, argc, argv, ppVTab, pzErr); +} + +static int +vgpkg_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) +{ +/* best index selection */ + if (pVTab || pIndex) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vgpkg_disconnect (sqlite3_vtab * pVTab) +{ +/* disconnects the virtual table */ + VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab; + free_table (p_vt); + return SQLITE_OK; +} + +static int +vgpkg_destroy (sqlite3_vtab * pVTab) +{ +/* destroys the virtual table - simply aliases vgpkg_disconnect() */ + return vgpkg_disconnect (pVTab); +} + +static int +vgpkg_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) +{ +/* opening a new cursor */ + sqlite3_stmt *stmt; + gaiaOutBuffer sql_statement; + int ret; + char *sql; + int ic; + char *xname; + VirtualGPKGCursorPtr cursor = + (VirtualGPKGCursorPtr) sqlite3_malloc (sizeof (VirtualGPKGCursor)); + if (cursor == NULL) + return SQLITE_ERROR; + cursor->pVtab = (VirtualGPKGPtr) pVTab; + gaiaOutBufferInitialize (&sql_statement); + gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + { + value_set_null (*(cursor->pVtab->Value + ic)); + xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); + if (strcasecmp + (*(cursor->pVtab->Column + ic), cursor->pVtab->GeoColumn) == 0) + { + /* this is the geometry column */ + sql = sqlite3_mprintf (",GeomFromGPB(\"%s\")", xname); + } + else + sql = sqlite3_mprintf (",\"%s\"", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + } + xname = gaiaDoubleQuotedSql (cursor->pVtab->table); + sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); + free (xname); + gaiaAppendToOutBuffer (&sql_statement, sql); + sqlite3_free (sql); + if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) + ret = + sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, + strlen (sql_statement.Buffer), &stmt, NULL); + else + ret = SQLITE_ERROR; + gaiaOutBufferReset (&sql_statement); + if (ret != SQLITE_OK) + { + /* an error occurred */ + cursor->eof = 1; + return SQLITE_ERROR; + } + cursor->stmt = stmt; + cursor->current_row = LONG64_MIN; + cursor->eof = 0; + *ppCursor = (sqlite3_vtab_cursor *) cursor; + vgpkg_read_row (cursor); + return SQLITE_OK; +} + +static int +vgpkg_close (sqlite3_vtab_cursor * pCursor) +{ +/* closing the cursor */ + int ic; + VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; + for (ic = 0; ic < cursor->pVtab->nColumns; ic++) + value_set_null (*(cursor->pVtab->Value + ic)); + if (cursor->stmt) + sqlite3_finalize (cursor->stmt); + sqlite3_free (pCursor); + return SQLITE_OK; +} + +static int +vgpkg_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, + int argc, sqlite3_value ** argv) +{ +/* setting up a cursor filter */ + if (pCursor || idxNum || idxStr || argc || argv) + pCursor = pCursor; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vgpkg_next (sqlite3_vtab_cursor * pCursor) +{ +/* fetching next row from cursor */ + VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; + (cursor->current_row)++; + vgpkg_read_row (cursor); + return SQLITE_OK; +} + +static int +vgpkg_eof (sqlite3_vtab_cursor * pCursor) +{ +/* cursor EOF */ + VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; + return cursor->eof; +} + +static int +vgpkg_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, + int column) +{ +/* fetching value for the Nth column */ + VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; + SqliteValuePtr value; + if (column >= 0 && column < cursor->pVtab->nColumns) + { + value = *(cursor->pVtab->Value + column); + switch (value->Type) + { + case SQLITE_INTEGER: + sqlite3_result_int64 (pContext, value->IntValue); + break; + case SQLITE_FLOAT: + sqlite3_result_double (pContext, value->DoubleValue); + break; + case SQLITE_TEXT: + sqlite3_result_text (pContext, value->Text, value->Size, + SQLITE_STATIC); + break; + case SQLITE_BLOB: + sqlite3_result_blob (pContext, value->Blob, value->Size, + SQLITE_STATIC); + break; + default: + sqlite3_result_null (pContext); + break; + }; + } + else + sqlite3_result_null (pContext); + return SQLITE_OK; +} + +static int +vgpkg_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) +{ +/* fetching the ROWID */ + VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; + *pRowid = cursor->current_row; + return SQLITE_OK; +} + +static int +vgpkg_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, + sqlite_int64 * pRowid) +{ +/* generic update [INSERT / UPDATE / DELETE */ + sqlite3_int64 rowid = 0; + int ret; + VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab; + if (argc == 1) + { + /* performing a DELETE */ + if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) + { + rowid = sqlite3_value_int64 (argv[0]); + ret = vgpkg_delete_row (p_vt, rowid); + } + else + ret = SQLITE_MISMATCH; + } + else + { + if (sqlite3_value_type (argv[0]) == SQLITE_NULL) + { + /* performing an INSERT */ + ret = vgpkg_insert_row (p_vt, &rowid, argc, argv); + if (ret == SQLITE_OK) + *pRowid = rowid; + } + else + { + /* performing an UPDATE */ + rowid = sqlite3_value_int64 (argv[0]); + ret = vgpkg_update_row (p_vt, rowid, argc, argv); + } + } + return ret; +} + +static int +vgpkg_begin (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vgpkg_sync (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vgpkg_commit (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vgpkg_rollback (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +spliteVirtualGPKGInit (sqlite3 * db) +{ + int rc = SQLITE_OK; + my_gpkg_module.iVersion = 1; + my_gpkg_module.xCreate = &vgpkg_create; + my_gpkg_module.xConnect = &vgpkg_connect; + my_gpkg_module.xBestIndex = &vgpkg_best_index; + my_gpkg_module.xDisconnect = &vgpkg_disconnect; + my_gpkg_module.xDestroy = &vgpkg_destroy; + my_gpkg_module.xOpen = &vgpkg_open; + my_gpkg_module.xClose = &vgpkg_close; + my_gpkg_module.xFilter = &vgpkg_filter; + my_gpkg_module.xNext = &vgpkg_next; + my_gpkg_module.xEof = &vgpkg_eof; + my_gpkg_module.xColumn = &vgpkg_column; + my_gpkg_module.xRowid = &vgpkg_rowid; + my_gpkg_module.xUpdate = &vgpkg_update; + my_gpkg_module.xBegin = &vgpkg_begin; + my_gpkg_module.xSync = &vgpkg_sync; + my_gpkg_module.xCommit = &vgpkg_commit; + my_gpkg_module.xRollback = &vgpkg_rollback; + my_gpkg_module.xFindFunction = NULL; + sqlite3_create_module_v2 (db, "VirtualGPKG", &my_gpkg_module, NULL, 0); + return rc; +} + +SPATIALITE_PRIVATE int +virtualgpkg_extension_init (void *xdb) +{ + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualGPKGInit (db); +} + +#endif /* end GEOPACKAGE conditional */ diff --git a/src/spatialite/src/spatialite/virtualnetwork.c b/src/spatialite/src/spatialite/virtualnetwork.c index 8423ed7..5591e94 100644 --- a/src/spatialite/src/spatialite/virtualnetwork.c +++ b/src/spatialite/src/spatialite/virtualnetwork.c @@ -2,7 +2,7 @@ virtualnetwork.c -- SQLite3 extension [VIRTUAL TABLE Routing - shortest path] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1021,9 +1021,8 @@ build_solution (sqlite3 * handle, NetworkPtr graph, SolutionPtr solution, double x; double y; gaiaGetPoint - (geom-> - FirstLinestring->Coords, iv, - &x, &y); + (geom->FirstLinestring-> + Coords, iv, &x, &y); *(coords + ((iv * 2) + 0)) = x; *(coords + ((iv * 2) + 1)) = y; } @@ -1039,7 +1038,8 @@ build_solution (sqlite3 * handle, NetworkPtr graph, SolutionPtr solution, to_id, points, coords, - geom->Srid, + geom-> + Srid, name); } else @@ -2228,8 +2228,8 @@ vnet_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualNetworkInit (sqlite3 * db) +static int +spliteVirtualNetworkInit (sqlite3 * db) { int rc = SQLITE_OK; my_net_module.iVersion = 1; @@ -2255,8 +2255,9 @@ sqlite3VirtualNetworkInit (sqlite3 * db) return rc; } -int -virtualnetwork_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualnetwork_extension_init (void *xdb) { - return sqlite3VirtualNetworkInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualNetworkInit (db); } diff --git a/src/spatialite/src/spatialite/virtualshape.c b/src/spatialite/src/spatialite/virtualshape.c index d418059..04fd607 100644 --- a/src/spatialite/src/spatialite/virtualshape.c +++ b/src/spatialite/src/spatialite/virtualshape.c @@ -2,7 +2,7 @@ virtualshape.c -- SQLite3 extension [VIRTUAL TABLE accessing Shapefile] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -1157,8 +1157,8 @@ vshp_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualShapeInit (sqlite3 * db) +static int +spliteVirtualShapeInit (sqlite3 * db) { int rc = SQLITE_OK; my_shape_module.iVersion = 1; @@ -1184,10 +1184,11 @@ sqlite3VirtualShapeInit (sqlite3 * db) return rc; } -int -virtualshape_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualshape_extension_init (void *xdb) { - return sqlite3VirtualShapeInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualShapeInit (db); } #endif /* ICONV enabled/disabled */ diff --git a/src/spatialite/src/spatialite/virtualspatialindex.c b/src/spatialite/src/spatialite/virtualspatialindex.c index e12b029..604742d 100644 --- a/src/spatialite/src/spatialite/virtualspatialindex.c +++ b/src/spatialite/src/spatialite/virtualspatialindex.c @@ -2,7 +2,7 @@ virtualspatialindex.c -- SQLite3 extension [VIRTUAL TABLE RTree metahandler] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -173,6 +173,12 @@ vspidx_check_view_rtree (sqlite3 * sqlite, const char *table_name, sqlite3_finalize (stmt); if (count != 1) return 0; + if (!validateRowid (sqlite, table_name)) + { + free (rt); + free (rg); + return 0; + } *real_table = rt; *real_geom = rg; return 1; @@ -888,8 +894,8 @@ vspidx_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int -sqlite3VirtualSpatialIndexInit (sqlite3 * db) +static int +spliteVirtualSpatialIndexInit (sqlite3 * db) { int rc = SQLITE_OK; my_spidx_module.iVersion = 1; @@ -916,8 +922,9 @@ sqlite3VirtualSpatialIndexInit (sqlite3 * db) return rc; } -int -virtual_spatialindex_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtual_spatialindex_extension_init (void *xdb) { - return sqlite3VirtualSpatialIndexInit (db); + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualSpatialIndexInit (db); } diff --git a/src/spatialite/src/spatialite/virtualxpath.c b/src/spatialite/src/spatialite/virtualxpath.c new file mode 100644 index 0000000..5630643 --- /dev/null +++ b/src/spatialite/src/spatialite/virtualxpath.c @@ -0,0 +1,1148 @@ +/* + + virtualxpath.c -- SQLite3 extension [VIRTUAL XPath handler] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ + +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#define LONG64_MAX _I64_MAX +#define LONG64_MIN _I64_MIN +#else +#define LONG64_MAX 9223372036854775807LL +#define LONG64_MIN (-LONG64_MAX + 1) +#endif + +#include + +#include +#include +#include +#include + +#ifdef _WIN32 +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#endif /* not WIN32 */ + +static struct sqlite3_module my_xpath_module; + +/****************************************************************************** +/ +/ VirtualTable structs +/ +******************************************************************************/ + +typedef struct VirtualXPathStruct +{ +/* extends the sqlite3_vtab struct */ + const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ + int nRef; /* # references: USED INTERNALLY BY SQLITE */ + char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ + sqlite3 *db; /* the sqlite db holding the virtual table */ + const void *p_cache; /* pointer to the internal cache */ + char *table; /* the real-table name */ + char *column; /* the real-column name */ +} VirtualXPath; +typedef VirtualXPath *VirtualXPathPtr; + +typedef struct VirtualXPathCursorStruct +{ +/* extends the sqlite3_vtab_cursor struct */ + VirtualXPathPtr pVtab; /* Virtual table of this cursor */ + int eof; /* the EOF marker */ + sqlite3_stmt *stmt; + char *xpathExpr; + xmlDocPtr xmlDoc; + xmlXPathContextPtr xpathContext; + xmlXPathObjectPtr xpathObj; + int xpathIdx; + sqlite3_int64 current_row; + int keyOp1; + sqlite3_int64 keyVal1; + int keyOp2; + sqlite3_int64 keyVal2; +} VirtualXPathCursor; +typedef VirtualXPathCursor *VirtualXPathCursorPtr; + +static void +vxpath_free_ns (struct vxpath_ns *ns) +{ +/* memory cleanup - destroying a Namespace item */ + if (!ns) + return; + if (ns->Prefix) + free (ns->Prefix); + if (ns->Href) + free (ns->Href); + free (ns); +} + +SPATIALITE_PRIVATE void +vxpath_free_namespaces (struct vxpath_namespaces *ns_list) +{ +/* memory cleanup - destroying the Namespaces list */ + struct vxpath_ns *ns; + struct vxpath_ns *nns; + if (!ns_list) + return; + + ns = ns_list->First; + while (ns) + { + nns = ns->Next; + vxpath_free_ns (ns); + ns = nns; + } + free (ns_list); +} + +static void +vxpath_add_ns (struct vxpath_namespaces *ns_list, const char *prefix, + const char *href) +{ +/* inserting a further Namespace into the list */ + int len; + struct vxpath_ns *ns = ns_list->First; + while (ns) + { + /* checking if it's already defined */ + if (ns->Prefix == NULL || prefix == NULL) + { + if (ns->Prefix == NULL && prefix == NULL + && strcmp (ns->Href, href) == 0) + { + /* ok, already defined (default Namespace) */ + return; + } + } + else + { + if (strcmp (ns->Prefix, prefix) == 0 + && strcmp (ns->Href, href) == 0) + { + /* ok, already defined */ + return; + } + } + ns = ns->Next; + } + +/* inserting a new Namespace */ + ns = malloc (sizeof (struct vxpath_ns)); + if (prefix == NULL) + ns->Prefix = NULL; + else + { + len = strlen (prefix); + ns->Prefix = malloc (len + 1); + strcpy (ns->Prefix, prefix); + } + len = strlen (href); + ns->Href = malloc (len + 1); + strcpy (ns->Href, href); + ns->Next = NULL; + if (ns_list->First == NULL) + ns_list->First = ns; + if (ns_list->Last != NULL) + ns_list->Last->Next = ns; + ns_list->Last = ns; +} + +static void +vxpath_feed_ns (struct vxpath_namespaces *ns_list, xmlNodePtr start) +{ +/* recursively searching for Namespaces */ + xmlNodePtr node = start; + while (node) + { + if (node->ns != NULL) + { + /* a Namespace is defined */ + vxpath_add_ns (ns_list, (const char *) (node->ns->prefix), + (const char *) (node->ns->href)); + } + if (node->properties != NULL) + { + /* exploring the Attribute list */ + struct _xmlAttr *attr = node->properties; + while (attr) + { + if (attr->type == XML_ATTRIBUTE_NODE) + { + if (attr->ns != NULL) + { + /* a Namespace is defined */ + vxpath_add_ns (ns_list, + (const char *) (attr->ns-> + prefix), + (const char *) (attr->ns-> + href)); + } + } + attr = attr->next; + } + } + vxpath_feed_ns (ns_list, node->children); + node = node->next; + } +} + +SPATIALITE_PRIVATE struct vxpath_namespaces * +vxpath_get_namespaces (void *p_xml_doc) +{ +/* creating and populating the Namespaces list */ + xmlDocPtr xml_doc = (xmlDocPtr) p_xml_doc; + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + struct vxpath_namespaces *ns_list; + ns_list = malloc (sizeof (struct vxpath_namespaces)); + ns_list->First = NULL; + ns_list->Last = NULL; + vxpath_feed_ns (ns_list, root); + return ns_list; +} + +static int +is_valid_cache (struct splite_internal_cache *cache) +{ +/* testing if the passed cache is a valid one */ + if (cache == NULL) + return 0; + if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 + || cache->magic2 != SPATIALITE_CACHE_MAGIC2) + return 0; + return 1; +} + +static void +vxpathError (void *ctx, const char *msg, ...) +{ +/* appending to the current XPath Error buffer */ + struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; + gaiaOutBufferPtr buf; + char out[65536]; + va_list args; + + if (ctx != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ + if (!is_valid_cache (cache)) + return; + buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); + + va_start (args, msg); + vsnprintf (out, 65536, msg, args); + gaiaAppendToOutBuffer (buf, out); + va_end (args); +} + +static void +vxpathResetXmlErrors (struct splite_internal_cache *cache) +{ +/* resetting the XPath Error buffer */ + gaiaOutBufferPtr buf; + if (!is_valid_cache (cache)) + return; + buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); + gaiaOutBufferReset (buf); +} + +GAIAGEO_DECLARE int +gaiaIsValidXPathExpression (const void *p_cache, const char *xpath_expr) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; + xmlXPathCompExprPtr result; + xmlGenericErrorFunc xpathError; + if (!is_valid_cache (cache)) + return 0; + xpathError = (xmlGenericErrorFunc) vxpathError; + + vxpathResetXmlErrors (cache); + xmlSetGenericErrorFunc (cache, xpathError); + +/* testing an XPath expression */ + result = xmlXPathCompile ((const xmlChar *) xpath_expr); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + if (result) + { + xmlXPathFreeCompExpr (result); + return 1; + } + return 0; +} + +SPATIALITE_PRIVATE int +vxpath_eval_expr (const void *p_cache, void *x_xml_doc, const char *xpath_expr, + void *x_xpathCtx, void *x_xpathObj) +{ + struct splite_internal_cache *cache = + (struct splite_internal_cache *) p_cache; +/* evaluating an XPath expression */ + xmlDocPtr xml_doc = (xmlDocPtr) x_xml_doc; + xmlXPathContextPtr *p_xpathCtx = (xmlXPathContextPtr *) x_xpathCtx; + xmlXPathObjectPtr *p_xpathObj = (xmlXPathObjectPtr *) x_xpathObj; + xmlXPathObjectPtr xpathObj; + xmlXPathContextPtr xpathCtx; + xmlGenericErrorFunc xpathError = (xmlGenericErrorFunc) vxpathError; + +/* attempting to identify all required Namespaces */ + struct vxpath_ns *ns; + struct vxpath_namespaces *ns_list = vxpath_get_namespaces (xml_doc); + + if (is_valid_cache (cache)) + { + vxpathResetXmlErrors (cache); + xmlSetGenericErrorFunc (cache, xpathError); + } + +/* creating an XPath context */ + xpathCtx = xmlXPathNewContext (xml_doc); + if (xpathCtx == NULL) + { + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; + } + +/* registering all Namespaces */ + if (xpathCtx != NULL && ns_list != NULL) + { + ns = ns_list->First; + while (ns) + { + if (ns->Prefix == NULL) + { + /* the default Namespace always is "dflt:xx" */ + xmlXPathRegisterNs (xpathCtx, (xmlChar *) "dflt", + (xmlChar *) ns->Href); + } + else + { + /* a fully qualified Namespace */ + xmlXPathRegisterNs (xpathCtx, (xmlChar *) ns->Prefix, + (xmlChar *) ns->Href); + } + ns = ns->Next; + } + } + vxpath_free_namespaces (ns_list); + +/* evaluating the XPath expression */ + xpathObj = xmlXPathEvalExpression ((const xmlChar *) xpath_expr, xpathCtx); + if (xpathObj != NULL) + { + xmlNodeSetPtr nodes = xpathObj->nodesetval; + int num_nodes = (nodes) ? nodes->nodeNr : 0; + if (num_nodes >= 1) + { + /* OK: match found */ + *p_xpathCtx = xpathCtx; + *p_xpathObj = xpathObj; + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 1; + } + /* invalid: empty nodeset */ + xmlXPathFreeObject (xpathObj); + } + xmlXPathFreeContext (xpathCtx); + + xmlSetGenericErrorFunc ((void *) stderr, NULL); + return 0; +} + +static void +vxpath_read_row (VirtualXPathCursorPtr cursor) +{ +/* trying to read a row from the real-table */ + sqlite3_stmt *stmt; + int ret; + sqlite3_int64 pk; + int eof; + if (cursor->stmt == NULL || cursor->xpathExpr == NULL) + return; + + if (cursor->xpathObj) + xmlXPathFreeObject (cursor->xpathObj); + if (cursor->xpathContext) + xmlXPathFreeContext (cursor->xpathContext); + if (cursor->xmlDoc) + xmlFreeDoc (cursor->xmlDoc); + cursor->xmlDoc = NULL; + cursor->xpathContext = NULL; + cursor->xpathObj = NULL; + + stmt = cursor->stmt; + sqlite3_bind_int64 (stmt, 1, cursor->current_row); + while (1) + { + ret = sqlite3_step (stmt); + if (ret == SQLITE_ROW) + { + pk = sqlite3_column_int64 (stmt, 0); + /* filtering the PK value */ + eof = 0; + switch (cursor->keyOp1) + { + case SQLITE_INDEX_CONSTRAINT_EQ: + if (pk > cursor->keyVal1) + eof = 1; + break; + case SQLITE_INDEX_CONSTRAINT_LT: + if (pk >= cursor->keyVal1) + eof = 1; + break; + case SQLITE_INDEX_CONSTRAINT_LE: + if (pk > cursor->keyVal1) + eof = 1; + break; + }; + switch (cursor->keyOp2) + { + case SQLITE_INDEX_CONSTRAINT_EQ: + if (pk > cursor->keyVal2) + eof = 1; + break; + case SQLITE_INDEX_CONSTRAINT_LT: + if (pk >= cursor->keyVal2) + eof = 1; + break; + case SQLITE_INDEX_CONSTRAINT_LE: + if (pk > cursor->keyVal2) + eof = 1; + break; + }; + if (eof) + { + cursor->eof = 1; + return; + } + + if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) + { + xmlDocPtr xml_doc; + int xml_len; + unsigned char *xml; + const unsigned char *blob = sqlite3_column_blob (stmt, 1); + int size = sqlite3_column_bytes (stmt, 1); + gaiaXmlFromBlob (blob, size, -1, &xml, &xml_len); + if (!xml) + continue; + xml_doc = + xmlReadMemory ((const char *) xml, xml_len, + "noname.xml", NULL, 0); + if (xml_doc != NULL) + { + xmlXPathContextPtr xpathCtx; + xmlXPathObjectPtr xpathObj; + if (vxpath_eval_expr + (cursor->pVtab->p_cache, xml_doc, + cursor->xpathExpr, &xpathCtx, &xpathObj)) + { + free (xml); + if (cursor->xpathObj) + xmlXPathFreeObject (cursor->xpathObj); + if (cursor->xpathContext) + xmlXPathFreeContext + (cursor->xpathContext); + if (cursor->xmlDoc) + xmlFreeDoc (cursor->xmlDoc); + cursor->xmlDoc = xml_doc; + cursor->xpathContext = xpathCtx; + cursor->xpathObj = xpathObj; + cursor->xpathIdx = 0; + break; + } + free (xml); + xmlFreeDoc (xml_doc); + } + } + } + else + { + /* an error occurred */ + cursor->eof = 1; + return; + } + } + cursor->eof = 0; + cursor->current_row = pk; +} + +static void +vxpath_check (sqlite3 * db, const char *table, const char *column, int *okTable, + int *okCol) +{ +/* checking if both Table and Column exist */ + char **results; + char *sql; + char *xname; + int ret; + int i; + int n_rows; + int n_columns; + xname = gaiaDoubleQuotedSql (table); + sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); + free (xname); + ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + return; + if (n_rows >= 1) + { + *okTable = 1; + for (i = 1; i <= n_rows; i++) + { + const char *col_name = results[(i * n_columns) + 1]; + if (strcasecmp (col_name, column) == 0) + *okCol = 1; + } + } + sqlite3_free_table (results); +} + +static int +vxpath_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* creates the virtual table for XPath */ + VirtualXPathPtr p_vt; + char *vtable = NULL; + char *table = NULL; + char *column = NULL; + char *xname; + char *sql; + int okTable = 0; + int okCol = 0; + if (argc == 5) + { + vtable = gaiaDequotedSql ((char *) argv[2]); + table = gaiaDequotedSql ((char *) argv[3]); + column = gaiaDequotedSql ((char *) argv[4]); + } + else + { + *pzErr = + sqlite3_mprintf + ("[VirtualXPath module] CREATE VIRTUAL: illegal arg list {void}\n"); + return SQLITE_ERROR; + } + vxpath_check (db, table, column, &okTable, &okCol); + if (!okTable || !okCol) + goto illegal; + xname = gaiaDoubleQuotedSql (vtable); + sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (pkid INTEGER, sub INTEGER, " + "parent TEXT, node TEXT, attribute TEXT, " + "value TEXT, xpath_expr TEXT)", xname); + free (xname); + if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) + { + sqlite3_free (sql); + *pzErr = + sqlite3_mprintf + ("[VirtualXPath module] CREATE VIRTUAL: invalid SQL statement \"%s\"", + sql); + goto error; + } + sqlite3_free (sql); + p_vt = (VirtualXPathPtr) sqlite3_malloc (sizeof (VirtualXPath)); + if (!p_vt) + return SQLITE_NOMEM; + p_vt->db = db; + p_vt->p_cache = pAux; + if (p_vt->p_cache == NULL) + spatialite_e ("VirtualXPath WARNING - no XML cache is available !!!\n"); + p_vt->nRef = 0; + p_vt->zErrMsg = NULL; + p_vt->table = table; + p_vt->column = column; + *ppVTab = (sqlite3_vtab *) p_vt; + free (vtable); + return SQLITE_OK; + illegal: +/* something is going the wrong way */ + if (!okTable == 0) + *pzErr = + sqlite3_mprintf + ("[VirtualXPath module] table \"%s\" doesn't exists\n", table); + else if (!okCol) + *pzErr = + sqlite3_mprintf + ("[VirtualXPath module] table \"%s\" exists, but has no \"%s\" column\n", + table, column); + error: + return SQLITE_ERROR; +} + +static int +vxpath_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, + sqlite3_vtab ** ppVTab, char **pzErr) +{ +/* connects the virtual table - simply aliases vxpath_create() */ + return vxpath_create (db, pAux, argc, argv, ppVTab, pzErr); +} + +static int +vxpath_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) +{ +/* best index selection */ + int i; + int errors = 0; + int err = 1; + int xpath = 0; + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + for (i = 0; i < pIdxInfo->nConstraint; i++) + { + /* verifying the constraints */ + struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); + if (p->usable) + { + if (p->iColumn == 0); + else if (p->iColumn == 6 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) + xpath++; + else + errors++; + } + } + if (xpath == 1 && errors == 0) + { + /* this one is a valid XPath query */ + pIdxInfo->idxNum = 1; + pIdxInfo->estimatedCost = 1.0; + pIdxInfo->idxStr = sqlite3_malloc (pIdxInfo->nConstraint * 2); + pIdxInfo->needToFreeIdxStr = 1; + for (i = 0; i < pIdxInfo->nConstraint; i++) + { + struct sqlite3_index_constraint *p = + &(pIdxInfo->aConstraint[i]); + if (p->usable) + { + char *pStr = pIdxInfo->idxStr + (i * 2); + if (p->iColumn == 6) + *pStr = 0; + else + *pStr = 1; + pStr++; + *pStr = p->op; + pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; + pIdxInfo->aConstraintUsage[i].omit = 1; + } + } + err = 0; + } + if (err) + { + /* illegal query */ + pIdxInfo->idxNum = 0; + } + return SQLITE_OK; +} + +static int +vxpath_disconnect (sqlite3_vtab * pVTab) +{ +/* disconnects the virtual table */ + VirtualXPathPtr p_vt = (VirtualXPathPtr) pVTab; + free (p_vt->column); + free (p_vt->table); + sqlite3_free (p_vt); + return SQLITE_OK; +} + +static int +vxpath_destroy (sqlite3_vtab * pVTab) +{ +/* destroys the virtual table - simply aliases vxpath_disconnect() */ + return vxpath_disconnect (pVTab); +} + +static int +vxpath_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) +{ +/* opening a new cursor */ + sqlite3_stmt *stmt; + int ret; + char *sql; + char *xname; + char *xcolumn; + VirtualXPathCursorPtr cursor = + (VirtualXPathCursorPtr) sqlite3_malloc (sizeof (VirtualXPathCursor)); + if (cursor == NULL) + return SQLITE_ERROR; + cursor->pVtab = (VirtualXPathPtr) pVTab; + cursor->xmlDoc = NULL; + cursor->xpathContext = NULL; + cursor->xpathObj = NULL; + cursor->xpathExpr = NULL; + cursor->stmt = NULL; + cursor->keyOp1 = 0; + cursor->keyVal1 = 0; + cursor->keyOp2 = 0; + cursor->keyVal2 = 0; + xcolumn = gaiaDoubleQuotedSql (cursor->pVtab->column); + xname = gaiaDoubleQuotedSql (cursor->pVtab->table); + sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"" + " WHERE ROWID >= ?", xcolumn, xname); + free (xname); + free (xcolumn); + ret = + sqlite3_prepare_v2 (cursor->pVtab->db, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + /* an error occurred */ + cursor->eof = 1; + return SQLITE_ERROR; + } + cursor->stmt = stmt; + cursor->current_row = LONG64_MIN; + cursor->eof = 0; + *ppCursor = (sqlite3_vtab_cursor *) cursor; + return SQLITE_OK; +} + +static int +vxpath_close (sqlite3_vtab_cursor * pCursor) +{ +/* closing the cursor */ + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + if (cursor->stmt) + sqlite3_finalize (cursor->stmt); + if (cursor->xpathObj) + xmlXPathFreeObject (cursor->xpathObj); + if (cursor->xpathContext) + xmlXPathFreeContext (cursor->xpathContext); + if (cursor->xmlDoc) + xmlFreeDoc (cursor->xmlDoc); + if (cursor->xpathExpr) + free (cursor->xpathExpr); + sqlite3_free (pCursor); + return SQLITE_OK; +} + +static int +vxpath_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, + int argc, sqlite3_value ** argv) +{ +/* setting up a cursor filter */ + int ok = 0; + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + if (idxStr) + idxStr = idxStr; /* unused arg warning suppression */ + cursor->eof = 1; + if (idxNum == 1) + { + int i; + cursor->keyOp1 = 0; + cursor->keyOp2 = 0; + for (i = 0; i < argc; i++) + { + const char *pStr = idxStr + (i * 2); + if (*pStr == 0) + { + /* retrieving the XPath expression param */ + if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) + { + char *exp = (char *) sqlite3_value_text (argv[i]); + if (exp != NULL) + { + int len = strlen (exp); + cursor->xpathExpr = malloc (len + 1); + strcpy (cursor->xpathExpr, exp); + } + ok = 1; + } + } + else + { + /* evaluating a ROWID contraint */ + pStr++; + if (cursor->keyOp1 == 0) + { + cursor->keyOp1 = *pStr; + cursor->keyVal1 = sqlite3_value_int64 (argv[i]); + } + else + { + cursor->keyOp2 = *pStr; + cursor->keyVal2 = sqlite3_value_int64 (argv[i]); + } + } + } + } + if (!ok) + { + cursor->eof = 1; + return SQLITE_OK; + } +/* attempting to set a reasonable ROWID */ + switch (cursor->keyOp1) + { + case SQLITE_INDEX_CONSTRAINT_EQ: + cursor->current_row = cursor->keyVal1; + break; + case SQLITE_INDEX_CONSTRAINT_GT: + cursor->current_row = cursor->keyVal1 + 1; + break; + case SQLITE_INDEX_CONSTRAINT_GE: + cursor->current_row = cursor->keyVal1; + break; + }; + switch (cursor->keyOp2) + { + case SQLITE_INDEX_CONSTRAINT_EQ: + cursor->current_row = cursor->keyVal2; + break; + case SQLITE_INDEX_CONSTRAINT_GT: + cursor->current_row = cursor->keyVal2 + 1; + break; + case SQLITE_INDEX_CONSTRAINT_GE: + cursor->current_row = cursor->keyVal2; + break; + }; + vxpath_read_row (cursor); + return SQLITE_OK; +} + +static int +vxpath_next (sqlite3_vtab_cursor * pCursor) +{ +/* fetching a next row from cursor */ + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + if (cursor->xpathObj != NULL) + { + /* we already have a current XPath node-set */ + xmlNodeSetPtr nodes = cursor->xpathObj->nodesetval; + int num_nodes = (nodes) ? nodes->nodeNr : 0; + if ((cursor->xpathIdx + 1) < num_nodes) + { + /* ok, consuming the current XPath node from the node-set */ + cursor->xpathIdx += 1; + return SQLITE_OK; + } + } + (cursor->current_row)++; + vxpath_read_row (cursor); + return SQLITE_OK; +} + +static int +vxpath_eof (sqlite3_vtab_cursor * pCursor) +{ +/* cursor EOF */ + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + return cursor->eof; +} + +static int +vxpath_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, + int column) +{ +/* fetching value for the Nth column */ + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + xmlNodeSetPtr nodeset = cursor->xpathObj->nodesetval; + xmlNodePtr node = nodeset->nodeTab[cursor->xpathIdx]; + xmlNodePtr parent = node->parent; + char *xParent = NULL; + char *xNode = NULL; + char *xAttribute = NULL; + char *xValue = NULL; + char *prefix; + + if (node->type == XML_ELEMENT_NODE) + { + if (parent != NULL) + { + if (parent->ns != NULL && parent->name != NULL) + { + prefix = (char *) (parent->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xParent = sqlite3_mprintf ("%s:%s", prefix, parent->name); + } + else if (parent->name != NULL) + xParent = sqlite3_mprintf ("%s", parent->name); + } + if (node->ns != NULL && node->name != NULL) + { + prefix = (char *) (node->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xNode = sqlite3_mprintf ("%s:%s", prefix, node->name); + } + else if (node->name != NULL) + xNode = sqlite3_mprintf ("%s", node->name); + } + else if (node->type == XML_ATTRIBUTE_NODE) + { + if (parent != NULL) + { + xmlNodePtr granpa = parent->parent; + if (granpa != NULL) + { + if (granpa->ns != NULL && granpa->name != NULL) + { + prefix = (char *) (granpa->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xParent = + sqlite3_mprintf ("%s:%s", prefix, granpa->name); + } + else if (granpa->name != NULL) + xParent = sqlite3_mprintf ("%s", granpa->name); + } + if (parent->ns != NULL && parent->name != NULL) + { + prefix = (char *) (parent->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); + } + else if (parent->name != NULL) + xNode = sqlite3_mprintf ("%s", parent->name); + } + if (node->ns != NULL && node->name != NULL) + { + prefix = (char *) (node->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xAttribute = sqlite3_mprintf ("%s:%s", prefix, node->name); + } + else if (node->name != NULL) + xAttribute = sqlite3_mprintf ("%s", node->name); + if (node->children != NULL) + { + if (node->children->content != NULL) + xValue = sqlite3_mprintf ("%s", node->children->content); + } + } + else if (node->type == XML_TEXT_NODE) + { + if (parent != NULL) + { + xmlNodePtr granpa = parent->parent; + if (granpa != NULL) + { + if (granpa->ns != NULL && granpa->name != NULL) + { + prefix = (char *) (granpa->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xParent = + sqlite3_mprintf ("%s:%s", prefix, granpa->name); + } + else if (granpa->name != NULL) + xParent = sqlite3_mprintf ("%s", granpa->name); + } + if (parent->ns != NULL && parent->name != NULL) + { + prefix = (char *) (parent->ns->prefix); + if (prefix == NULL) + prefix = "dflt"; + xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); + } + else if (parent->name != NULL) + xNode = sqlite3_mprintf ("%s", parent->name); + } + if (node->content != NULL) + xValue = sqlite3_mprintf ("%s", node->content); + } + + if (column == 0) + sqlite3_result_int64 (pContext, cursor->current_row); + else if (column == 1) + sqlite3_result_int (pContext, cursor->xpathIdx); + else if (column == 2) + { + if (!xParent) + sqlite3_result_null (pContext); + else + sqlite3_result_text (pContext, xParent, + strlen (xParent), SQLITE_TRANSIENT); + } + else if (column == 3) + { + if (!xNode) + sqlite3_result_null (pContext); + else + sqlite3_result_text (pContext, xNode, + strlen (xNode), SQLITE_TRANSIENT); + } + else if (column == 4) + { + if (!xAttribute) + sqlite3_result_null (pContext); + else + sqlite3_result_text (pContext, xAttribute, + strlen (xAttribute), SQLITE_TRANSIENT); + } + else if (column == 5) + { + if (!xValue) + sqlite3_result_null (pContext); + else + sqlite3_result_text (pContext, xValue, + strlen (xValue), SQLITE_TRANSIENT); + } + else if (column == 6) + sqlite3_result_text (pContext, cursor->xpathExpr, + strlen (cursor->xpathExpr), SQLITE_STATIC); + else + sqlite3_result_null (pContext); + if (xParent) + sqlite3_free (xParent); + if (xNode) + sqlite3_free (xNode); + if (xAttribute) + sqlite3_free (xAttribute); + if (xValue) + sqlite3_free (xValue); + return SQLITE_OK; +} + +static int +vxpath_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) +{ +/* fetching the ROWID */ + VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; + *pRowid = cursor->current_row; + return SQLITE_OK; +} + +static int +vxpath_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, + sqlite_int64 * pRowid) +{ +/* generic update [INSERT / UPDATE / DELETE */ + if (pRowid || argc || argv || pVTab) + pRowid = pRowid; /* unused arg warning suppression */ +/* read only datasource */ + return SQLITE_READONLY; +} + +static int +vxpath_begin (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vxpath_sync (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vxpath_commit (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +vxpath_rollback (sqlite3_vtab * pVTab) +{ +/* BEGIN TRANSACTION */ + if (pVTab) + pVTab = pVTab; /* unused arg warning suppression */ + return SQLITE_OK; +} + +static int +spliteVirtualXPathInit (sqlite3 * db, void *p_cache) +{ + int rc = SQLITE_OK; + my_xpath_module.iVersion = 1; + my_xpath_module.xCreate = &vxpath_create; + my_xpath_module.xConnect = &vxpath_connect; + my_xpath_module.xBestIndex = &vxpath_best_index; + my_xpath_module.xDisconnect = &vxpath_disconnect; + my_xpath_module.xDestroy = &vxpath_destroy; + my_xpath_module.xOpen = &vxpath_open; + my_xpath_module.xClose = &vxpath_close; + my_xpath_module.xFilter = &vxpath_filter; + my_xpath_module.xNext = &vxpath_next; + my_xpath_module.xEof = &vxpath_eof; + my_xpath_module.xColumn = &vxpath_column; + my_xpath_module.xRowid = &vxpath_rowid; + my_xpath_module.xUpdate = &vxpath_update; + my_xpath_module.xBegin = &vxpath_begin; + my_xpath_module.xSync = &vxpath_sync; + my_xpath_module.xCommit = &vxpath_commit; + my_xpath_module.xRollback = &vxpath_rollback; + my_xpath_module.xFindFunction = NULL; + sqlite3_create_module_v2 (db, "VirtualXPath", &my_xpath_module, p_cache, 0); + return rc; +} + +SPATIALITE_PRIVATE int +virtual_xpath_extension_init (void *xdb, const void *p_cache) +{ + sqlite3 *db = (sqlite3 *) xdb; + return spliteVirtualXPathInit (db, (void *) p_cache); +} + +#endif /* end LIBXML2: supporting XML documents */ diff --git a/src/spatialite/src/srsinit/Makefile.am b/src/spatialite/src/srsinit/Makefile.am index 8c5d375..1ae233e 100644 --- a/src/spatialite/src/srsinit/Makefile.am +++ b/src/spatialite/src/srsinit/Makefile.am @@ -1,12 +1,12 @@ SUBDIRS = epsg_update -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libsrsinit.la +noinst_LTLIBRARIES = libsrsinit.la srsinit.la -libsrsinit_la_SOURCES = srs_init.c \ +SRSINIT_COMMON_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ @@ -48,13 +48,29 @@ libsrsinit_la_SOURCES = srs_init.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ + epsg_inlined_41.c \ + epsg_inlined_42.c \ + epsg_inlined_43.c \ + epsg_inlined_44.c \ + epsg_inlined_45.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c +libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) + libsrsinit_la_CFLAGS = -fvisibility=hidden +srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) + +srsinit_la_CPPFLAGS = @CFLAGS@ +srsinit_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +srsinit_la_CPPFLAGS += -DLOADABLE_EXTENSION +srsinit_la_CPPFLAGS += -fvisibility=hidden +srsinit_la_LDFLAGS = -module +srsinit_la_LIBTOOLFLAGS = --tag=disable-static + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/srsinit/Makefile.in b/src/spatialite/src/srsinit/Makefile.in index d777669..bbd2474 100644 --- a/src/spatialite/src/srsinit/Makefile.in +++ b/src/spatialite/src/srsinit/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -66,7 +94,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsrsinit_la_LIBADD = -am_libsrsinit_la_OBJECTS = libsrsinit_la-srs_init.lo \ +am__objects_1 = libsrsinit_la-srs_init.lo \ libsrsinit_la-epsg_inlined_00.lo \ libsrsinit_la-epsg_inlined_01.lo \ libsrsinit_la-epsg_inlined_02.lo \ @@ -108,36 +136,102 @@ am_libsrsinit_la_OBJECTS = libsrsinit_la-srs_init.lo \ libsrsinit_la-epsg_inlined_38.lo \ libsrsinit_la-epsg_inlined_39.lo \ libsrsinit_la-epsg_inlined_40.lo \ + libsrsinit_la-epsg_inlined_41.lo \ + libsrsinit_la-epsg_inlined_42.lo \ + libsrsinit_la-epsg_inlined_43.lo \ + libsrsinit_la-epsg_inlined_44.lo \ + libsrsinit_la-epsg_inlined_45.lo \ libsrsinit_la-epsg_inlined_wgs84_00.lo \ libsrsinit_la-epsg_inlined_wgs84_01.lo \ libsrsinit_la-epsg_inlined_prussian.lo \ libsrsinit_la-epsg_inlined_extra.lo +am_libsrsinit_la_OBJECTS = $(am__objects_1) libsrsinit_la_OBJECTS = $(am_libsrsinit_la_OBJECTS) -libsrsinit_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libsrsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsrsinit_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +srsinit_la_LIBADD = +am__objects_2 = srsinit_la-srs_init.lo srsinit_la-epsg_inlined_00.lo \ + srsinit_la-epsg_inlined_01.lo srsinit_la-epsg_inlined_02.lo \ + srsinit_la-epsg_inlined_03.lo srsinit_la-epsg_inlined_04.lo \ + srsinit_la-epsg_inlined_05.lo srsinit_la-epsg_inlined_06.lo \ + srsinit_la-epsg_inlined_07.lo srsinit_la-epsg_inlined_08.lo \ + srsinit_la-epsg_inlined_09.lo srsinit_la-epsg_inlined_10.lo \ + srsinit_la-epsg_inlined_11.lo srsinit_la-epsg_inlined_12.lo \ + srsinit_la-epsg_inlined_13.lo srsinit_la-epsg_inlined_14.lo \ + srsinit_la-epsg_inlined_15.lo srsinit_la-epsg_inlined_16.lo \ + srsinit_la-epsg_inlined_17.lo srsinit_la-epsg_inlined_18.lo \ + srsinit_la-epsg_inlined_19.lo srsinit_la-epsg_inlined_20.lo \ + srsinit_la-epsg_inlined_21.lo srsinit_la-epsg_inlined_22.lo \ + srsinit_la-epsg_inlined_23.lo srsinit_la-epsg_inlined_24.lo \ + srsinit_la-epsg_inlined_25.lo srsinit_la-epsg_inlined_26.lo \ + srsinit_la-epsg_inlined_27.lo srsinit_la-epsg_inlined_28.lo \ + srsinit_la-epsg_inlined_29.lo srsinit_la-epsg_inlined_30.lo \ + srsinit_la-epsg_inlined_31.lo srsinit_la-epsg_inlined_32.lo \ + srsinit_la-epsg_inlined_33.lo srsinit_la-epsg_inlined_34.lo \ + srsinit_la-epsg_inlined_35.lo srsinit_la-epsg_inlined_36.lo \ + srsinit_la-epsg_inlined_37.lo srsinit_la-epsg_inlined_38.lo \ + srsinit_la-epsg_inlined_39.lo srsinit_la-epsg_inlined_40.lo \ + srsinit_la-epsg_inlined_41.lo srsinit_la-epsg_inlined_42.lo \ + srsinit_la-epsg_inlined_43.lo srsinit_la-epsg_inlined_44.lo \ + srsinit_la-epsg_inlined_45.lo \ + srsinit_la-epsg_inlined_wgs84_00.lo \ + srsinit_la-epsg_inlined_wgs84_01.lo \ + srsinit_la-epsg_inlined_prussian.lo \ + srsinit_la-epsg_inlined_extra.lo +am_srsinit_la_OBJECTS = $(am__objects_2) +srsinit_la_OBJECTS = $(am_srsinit_la_OBJECTS) +srsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(srsinit_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libsrsinit_la_SOURCES) -DIST_SOURCES = $(libsrsinit_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES) +DIST_SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -145,9 +239,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -179,6 +293,7 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -220,6 +335,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -241,6 +358,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -301,9 +421,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = epsg_update -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libsrsinit.la -libsrsinit_la_SOURCES = srs_init.c \ +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libsrsinit.la srsinit.la +SRSINIT_COMMON_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ @@ -345,12 +465,23 @@ libsrsinit_la_SOURCES = srs_init.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ + epsg_inlined_41.c \ + epsg_inlined_42.c \ + epsg_inlined_43.c \ + epsg_inlined_44.c \ + epsg_inlined_45.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c +libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) libsrsinit_la_CFLAGS = -fvisibility=hidden +srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) +srsinit_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION -fvisibility=hidden +srsinit_la_LDFLAGS = -module +srsinit_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive @@ -389,14 +520,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libsrsinit.la: $(libsrsinit_la_OBJECTS) $(libsrsinit_la_DEPENDENCIES) $(EXTRA_libsrsinit_la_DEPENDENCIES) - $(libsrsinit_la_LINK) $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libsrsinit_la_LINK) $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS) + +srsinit.la: $(srsinit_la_OBJECTS) $(srsinit_la_DEPENDENCIES) $(EXTRA_srsinit_la_DEPENDENCIES) + $(AM_V_CCLD)$(srsinit_la_LINK) $(srsinit_la_OBJECTS) $(srsinit_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -445,354 +582,802 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-srs_init.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_00.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_01.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_02.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_03.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_04.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_05.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_06.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_07.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_08.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_09.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_10.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_11.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_12.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_13.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_14.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_15.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_16.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_17.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_18.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_19.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_20.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_21.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_22.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_23.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_24.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_25.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_26.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_27.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_28.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_29.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_30.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_31.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_33.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_34.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_35.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_36.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_37.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_38.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_39.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_40.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_41.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_42.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_43.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_44.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_45.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-srs_init.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libsrsinit_la-srs_init.lo: srs_init.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c libsrsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c libsrsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c libsrsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c libsrsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c libsrsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c libsrsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c libsrsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c libsrsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c libsrsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c libsrsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c libsrsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c libsrsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c libsrsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c libsrsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c libsrsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c libsrsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c libsrsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c libsrsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c libsrsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c libsrsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c libsrsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c libsrsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c libsrsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c libsrsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c libsrsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c libsrsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c libsrsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c libsrsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c libsrsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c libsrsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c libsrsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c libsrsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c libsrsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c libsrsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c libsrsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c libsrsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c libsrsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c libsrsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c libsrsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c libsrsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c libsrsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c + +libsrsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_41.c' object='libsrsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c + +libsrsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_42.c' object='libsrsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c + +libsrsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_43.c' object='libsrsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c + +libsrsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_44.c' object='libsrsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c + +libsrsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_45.c' object='libsrsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c libsrsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c libsrsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c libsrsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c libsrsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c + +srsinit_la-srs_init.lo: srs_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/srsinit_la-srs_init.Tpo -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-srs_init.Tpo $(DEPDIR)/srsinit_la-srs_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srs_init.c' object='srsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c + +srsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_00.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_00.c' object='srsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c + +srsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_01.c' object='srsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c + +srsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_02.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_02.c' object='srsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c + +srsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_03.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_03.c' object='srsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c + +srsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_04.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_04.c' object='srsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c + +srsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_05.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_05.c' object='srsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c + +srsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_06.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_06.c' object='srsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c + +srsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_07.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_07.c' object='srsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c + +srsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_08.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_08.c' object='srsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c + +srsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_09.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_09.c' object='srsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c + +srsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_10.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_10.c' object='srsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c + +srsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_11.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_11.c' object='srsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c + +srsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_12.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_12.c' object='srsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c + +srsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_13.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_13.c' object='srsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c + +srsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_14.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_14.c' object='srsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c + +srsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_15.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_15.c' object='srsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c + +srsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_16.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_16.c' object='srsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c + +srsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_17.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_17.c' object='srsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c + +srsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_18.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_18.c' object='srsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c + +srsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_19.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_19.c' object='srsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c + +srsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_20.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_20.c' object='srsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c + +srsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_21.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_21.c' object='srsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c + +srsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_22.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_22.c' object='srsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c + +srsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_23.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_23.c' object='srsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c + +srsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_24.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_24.c' object='srsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c + +srsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_25.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_25.c' object='srsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c + +srsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_26.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_26.c' object='srsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c + +srsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_27.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_27.c' object='srsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c + +srsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_28.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_28.c' object='srsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c + +srsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_29.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_29.c' object='srsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c + +srsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_30.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_30.c' object='srsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c + +srsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_31.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_31.c' object='srsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c + +srsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_32.c' object='srsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c + +srsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_33.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_33.c' object='srsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c + +srsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_34.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_34.c' object='srsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c + +srsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_35.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_35.c' object='srsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c + +srsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_36.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_36.c' object='srsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c + +srsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_37.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_37.c' object='srsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c + +srsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_38.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_38.c' object='srsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c + +srsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_39.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_39.c' object='srsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c + +srsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_40.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_40.c' object='srsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c + +srsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_41.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_41.c' object='srsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c + +srsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_42.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_42.c' object='srsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c + +srsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_43.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_43.c' object='srsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c + +srsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_44.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_44.c' object='srsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c + +srsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_45.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_45.c' object='srsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c + +srsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='srsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c + +srsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='srsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c + +srsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_prussian.c' object='srsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c + +srsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_extra.c' object='srsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c mostlyclean-libtool: -rm -f *.lo @@ -801,22 +1386,25 @@ clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -831,57 +1419,12 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -897,12 +1440,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -914,15 +1452,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -931,6 +1465,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1097,12 +1646,11 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -1112,8 +1660,8 @@ uninstall-am: install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/srsinit/epsg_inlined_00.c b/src/spatialite/src/srsinit/epsg_inlined_00.c index 624440f..0bc77ff 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_00.c +++ b/src/spatialite/src/srsinit/epsg_inlined_00.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -337,9 +337,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "CS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_1927_CG"); add_srs_wkt (p, 2, - "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); + "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390"); add_srs_wkt (p, 3, - "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); + "06,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "09\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, @@ -369,7 +369,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -401,7 +401,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -433,7 +433,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -465,7 +465,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -497,7 +497,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -529,7 +529,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -561,7 +561,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -593,7 +593,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "GQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHERO"); add_srs_wkt (p, 2, - "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); + "ID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIME"); add_srs_wkt (p, 4, @@ -625,7 +625,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, @@ -657,7 +657,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, @@ -689,7 +689,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -721,7 +721,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -753,7 +753,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -785,7 +785,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -817,7 +817,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -849,7 +849,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -881,7 +881,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -913,7 +913,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -943,7 +943,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -973,7 +973,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -1003,7 +1003,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -1033,7 +1033,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, @@ -1063,7 +1063,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1093,7 +1093,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1123,7 +1123,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1153,7 +1153,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1183,7 +1183,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1237,9 +1237,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "_northing\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); - add_srs_wkt (p, 13, - "ST],AUTHORITY[\"EPSG\",\"2036\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2036\"]]"); p = add_epsg_def (filter, first, last, 2037, "epsg", 2037, "NAD83(CSRS98) / UTM zone 19N (deprecated)"); add_proj4text (p, 0, @@ -1503,9 +1501,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"2044\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2044\"]]"); p = add_epsg_def (filter, first, last, 2045, "epsg", 2045, "Hanoi 1972 / Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -1537,9 +1533,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"2045\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2045\"]]"); p = add_epsg_def (filter, first, last, 2046, "epsg", 2046, "Hartebeesthoek94 / Lo15"); add_proj4text (p, 0, @@ -1903,21 +1897,21 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4150\"]],PROJECTION[\"Hotine_Oblique_Merc"); add_srs_wkt (p, 7, - "ator\"],PARAMETER[\"latitude_of_center\",46.952405555555"); + "ator_Azimuth_Center\"],PARAMETER[\"latitude_of_center\","); add_srs_wkt (p, 8, - "56],PARAMETER[\"longitude_of_center\",7.439583333333333]"); + "46.95240555555556],PARAMETER[\"longitude_of_center\",7.4"); add_srs_wkt (p, 9, - ",PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_an"); + "39583333333333],PARAMETER[\"azimuth\",90],PARAMETER[\"re"); add_srs_wkt (p, 10, - "gle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + "ctified_grid_angle\",90],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 11, - "e_easting\",2600000],PARAMETER[\"false_northing\",120000"); + "ARAMETER[\"false_easting\",2600000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "rthing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, - "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"2056\"]"); + "9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, - "]"); + "EPSG\",\"2056\"]]"); p = add_epsg_def (filter, first, last, 2057, "epsg", 2057, "Rassadiran / Nakhl e Taqi"); add_proj4text (p, 0, @@ -1945,23 +1939,23 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4153\"]],PROJECTION[\"Hotine_"); add_srs_wkt (p, 7, - "Oblique_Mercator\"],PARAMETER[\"latitude_of_center\",27."); + "Oblique_Mercator_Azimuth_Center\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, - "51882880555555],PARAMETER[\"longitude_of_center\",52.603"); + "of_center\",27.51882880555555],PARAMETER[\"longitude_of_"); add_srs_wkt (p, 9, - "53916666667],PARAMETER[\"azimuth\",0.5716611944444444],P"); + "center\",52.60353916666667],PARAMETER[\"azimuth\",0.5716"); add_srs_wkt (p, 10, - "ARAMETER[\"rectified_grid_angle\",0.5716611944444444],PA"); + "611944444444],PARAMETER[\"rectified_grid_angle\",0.57166"); add_srs_wkt (p, 11, - "RAMETER[\"scale_factor\",0.999895934],PARAMETER[\"false_"); + "11944444444],PARAMETER[\"scale_factor\",0.999895934],PAR"); add_srs_wkt (p, 12, - "easting\",658377.437],PARAMETER[\"false_northing\",30449"); + "AMETER[\"false_easting\",658377.437],PARAMETER[\"false_n"); add_srs_wkt (p, 13, - "69.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "orthing\",3044969.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 15, - "[\"EPSG\",\"2057\"]]"); + "ORTH],AUTHORITY[\"EPSG\",\"2057\"]]"); p = add_epsg_def (filter, first, last, 2058, "epsg", 2058, "ED50(ED77) / UTM zone 38N"); add_proj4text (p, 0, @@ -2097,7 +2091,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 1, " +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.1426695"); add_proj4text (p, 2, - "62 +pm=madrid +units=m +no_defs"); + "61 +pm=madrid +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Madrid 1870 (Madrid) / Spain\",GEOGCS[\"Madrid "); add_srs_wkt (p, 1, @@ -2135,7 +2129,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); + "rke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, @@ -2167,7 +2161,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); + "rke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, @@ -2241,7 +2235,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "lon\",DATUM[\"Mount_Dillon\",SPHEROID[\"Clarke 1858\",63"); add_srs_wkt (p, 2, - "78293.645208759,294.2606763692654,AUTHORITY[\"EPSG\",\"7"); + "78293.645208759,294.2606763692569,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "007\"]],AUTHORITY[\"EPSG\",\"6157\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, @@ -2755,9 +2749,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2081\"]]"); + "\",\"2081\"]]"); p = add_epsg_def (filter, first, last, 2082, "epsg", 2082, "Pampa del Castillo / Argentina 2"); add_proj4text (p, 0, @@ -2789,9 +2783,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2082\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2082\"]]"); p = add_epsg_def (filter, first, last, 2083, "epsg", 2083, "Hito XVIII 1963 / Argentina 2"); add_proj4text (p, 0, @@ -2823,9 +2815,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2083\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2083\"]]"); p = add_epsg_def (filter, first, last, 2084, "epsg", 2084, "Hito XVIII 1963 / UTM zone 19S"); add_proj4text (p, 0, @@ -2871,7 +2861,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "7\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, @@ -2889,9 +2879,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "R[\"false_northing\",280296.016],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"2085\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2085\"]]"); p = add_epsg_def (filter, first, last, 2086, "epsg", 2086, "NAD27 / Cuba Sur (deprecated)"); add_proj4text (p, 0, @@ -2905,7 +2893,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, @@ -2923,9 +2911,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",229126.939]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"2086\"]]"); + "Y[\"EPSG\",\"2086\"]]"); p = add_epsg_def (filter, first, last, 2087, "epsg", 2087, "ELD79 / TM 12 NE"); add_proj4text (p, 0, @@ -2971,7 +2959,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, - "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); + "93.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIMEM["); add_srs_wkt (p, 4, @@ -3087,9 +3075,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"2091\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2091\"]]"); p = add_epsg_def (filter, first, last, 2092, "epsg", 2092, "South Yemen / Gauss Kruger zone 9 (deprecated)"); add_proj4text (p, 0, @@ -3121,9 +3107,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"2092\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2092\"]]"); p = add_epsg_def (filter, first, last, 2093, "epsg", 2093, "Hanoi 1972 / GK 106 NE"); add_proj4text (p, 0, @@ -3155,9 +3139,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"2093\"]]"); + "]],AUTHORITY[\"EPSG\",\"2093\"]]"); p = add_epsg_def (filter, first, last, 2094, "epsg", 2094, "WGS 72BE / TM 106 NE"); add_proj4text (p, 0, @@ -3251,9 +3233,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2096\"]]"); + "\",\"2096\"]]"); p = add_epsg_def (filter, first, last, 2097, "epsg", 2097, "Korean 1985 / Central Belt"); add_proj4text (p, 0, @@ -3281,9 +3263,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2097\"]]"); + "PSG\",\"2097\"]]"); p = add_epsg_def (filter, first, last, 2098, "epsg", 2098, "Korean 1985 / West Belt"); add_proj4text (p, 0, @@ -3311,9 +3293,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2098\"]]"); + "\",\"2098\"]]"); p = add_epsg_def (filter, first, last, 2099, "epsg", 2099, "Qatar 1948 / Qatar Grid"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_01.c b/src/spatialite/src/srsinit/epsg_inlined_01.c index e0bc615..08a3cd2 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_01.c +++ b/src/spatialite/src/srsinit/epsg_inlined_01.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -219,11 +219,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_easting\",400000],PARAMETER[\"false_northing\",800"); add_srs_wkt (p, 11, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"2105\"]]"); + "ORITY[\"EPSG\",\"2105\"]]"); p = add_epsg_def (filter, first, last, 2106, "epsg", 2106, "NZGD2000 / Bay of Plenty 2000"); add_proj4text (p, 0, @@ -255,11 +253,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"2106\"]]"); + "RITY[\"EPSG\",\"2106\"]]"); p = add_epsg_def (filter, first, last, 2107, "epsg", 2107, "NZGD2000 / Poverty Bay 2000"); add_proj4text (p, 0, @@ -291,11 +287,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 13, - "\",\"2107\"]]"); + "Y[\"EPSG\",\"2107\"]]"); p = add_epsg_def (filter, first, last, 2108, "epsg", 2108, "NZGD2000 / Hawkes Bay 2000"); add_proj4text (p, 0, @@ -327,11 +321,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 12, - "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"2108\"]]"); + "[\"EPSG\",\"2108\"]]"); p = add_epsg_def (filter, first, last, 2109, "epsg", 2109, "NZGD2000 / Taranaki 2000"); add_proj4text (p, 0, @@ -363,11 +355,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2109\"]]"); + "EPSG\",\"2109\"]]"); p = add_epsg_def (filter, first, last, 2110, "epsg", 2110, "NZGD2000 / Tuhirangi 2000"); add_proj4text (p, 0, @@ -399,11 +389,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "400000],PARAMETER[\"false_northing\",800000],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NO"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "RTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2110\"]"); - add_srs_wkt (p, 13, - "]"); + "2110\"]]"); p = add_epsg_def (filter, first, last, 2111, "epsg", 2111, "NZGD2000 / Wanganui 2000"); add_proj4text (p, 0, @@ -435,11 +423,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2111\"]]"); + "EPSG\",\"2111\"]]"); p = add_epsg_def (filter, first, last, 2112, "epsg", 2112, "NZGD2000 / Wairarapa 2000"); add_proj4text (p, 0, @@ -471,11 +457,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 12, - "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"2112\"]]"); + "[\"EPSG\",\"2112\"]]"); p = add_epsg_def (filter, first, last, 2113, "epsg", 2113, "NZGD2000 / Wellington 2000"); add_proj4text (p, 0, @@ -507,11 +491,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "easting\",400000],PARAMETER[\"false_northing\",800000],U"); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 12, - "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"2113\"]]"); + "\"EPSG\",\"2113\"]]"); p = add_epsg_def (filter, first, last, 2114, "epsg", 2114, "NZGD2000 / Collingwood 2000"); add_proj4text (p, 0, @@ -543,11 +525,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 13, - "\",\"2114\"]]"); + "Y[\"EPSG\",\"2114\"]]"); p = add_epsg_def (filter, first, last, 2115, "epsg", 2115, "NZGD2000 / Nelson 2000"); add_proj4text (p, 0, @@ -579,11 +559,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "2115\"]]"); + "EPSG\",\"2115\"]]"); p = add_epsg_def (filter, first, last, 2116, "epsg", 2116, "NZGD2000 / Karamea 2000"); add_proj4text (p, 0, @@ -615,11 +593,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2116\"]]"); + "EPSG\",\"2116\"]]"); p = add_epsg_def (filter, first, last, 2117, "epsg", 2117, "NZGD2000 / Buller 2000"); add_proj4text (p, 0, @@ -651,11 +627,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "2117\"]]"); + "EPSG\",\"2117\"]]"); p = add_epsg_def (filter, first, last, 2118, "epsg", 2118, "NZGD2000 / Grey 2000"); add_proj4text (p, 0, @@ -687,11 +661,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2118"); - add_srs_wkt (p, 13, - "\"]]"); + "\",\"2118\"]]"); p = add_epsg_def (filter, first, last, 2119, "epsg", 2119, "NZGD2000 / Amuri 2000"); add_proj4text (p, 0, @@ -723,9 +695,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2119"); add_srs_wkt (p, 12, - "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2119\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2120, "epsg", 2120, "NZGD2000 / Marlborough 2000"); add_proj4text (p, 0, @@ -757,11 +729,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 13, - "\",\"2120\"]]"); + "Y[\"EPSG\",\"2120\"]]"); p = add_epsg_def (filter, first, last, 2121, "epsg", 2121, "NZGD2000 / Hokitika 2000"); add_proj4text (p, 0, @@ -793,11 +763,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2121\"]]"); + "EPSG\",\"2121\"]]"); p = add_epsg_def (filter, first, last, 2122, "epsg", 2122, "NZGD2000 / Okarito 2000"); add_proj4text (p, 0, @@ -829,9 +797,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2122\"]]"); + "22\"]]"); p = add_epsg_def (filter, first, last, 2123, "epsg", 2123, "NZGD2000 / Jacksons Bay 2000"); add_proj4text (p, 0, @@ -863,11 +831,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 13, - "\",\"2123\"]]"); + "Y[\"EPSG\",\"2123\"]]"); p = add_epsg_def (filter, first, last, 2124, "epsg", 2124, "NZGD2000 / Mount Pleasant 2000"); add_proj4text (p, 0, @@ -899,11 +865,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"2124\"]]"); + "RITY[\"EPSG\",\"2124\"]]"); p = add_epsg_def (filter, first, last, 2125, "epsg", 2125, "NZGD2000 / Gawler 2000"); add_proj4text (p, 0, @@ -935,11 +899,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "2125\"]]"); + "EPSG\",\"2125\"]]"); p = add_epsg_def (filter, first, last, 2126, "epsg", 2126, "NZGD2000 / Timaru 2000"); add_proj4text (p, 0, @@ -971,11 +933,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "2126\"]]"); + "EPSG\",\"2126\"]]"); p = add_epsg_def (filter, first, last, 2127, "epsg", 2127, "NZGD2000 / Lindis Peak 2000"); add_proj4text (p, 0, @@ -1007,9 +967,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2127\"]"); add_srs_wkt (p, 12, - "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2127\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2128, "epsg", 2128, "NZGD2000 / Mount Nicholas 2000"); add_proj4text (p, 0, @@ -1041,11 +1001,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"2128\"]]"); + "RITY[\"EPSG\",\"2128\"]]"); p = add_epsg_def (filter, first, last, 2129, "epsg", 2129, "NZGD2000 / Mount York 2000"); add_proj4text (p, 0, @@ -1077,11 +1035,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 12, - "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"2129\"]]"); + "[\"EPSG\",\"2129\"]]"); p = add_epsg_def (filter, first, last, 2130, "epsg", 2130, "NZGD2000 / Observation Point 2000"); add_proj4text (p, 0, @@ -1113,11 +1069,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_easting\",400000],PARAMETER[\"false_northing\",800"); add_srs_wkt (p, 11, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"2130\"]]"); + "ORITY[\"EPSG\",\"2130\"]]"); p = add_epsg_def (filter, first, last, 2131, "epsg", 2131, "NZGD2000 / North Taieri 2000"); add_proj4text (p, 0, @@ -1149,11 +1103,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2131\"]]"); + "EPSG\",\"2131\"]]"); p = add_epsg_def (filter, first, last, 2132, "epsg", 2132, "NZGD2000 / Bluff 2000"); add_proj4text (p, 0, @@ -1185,9 +1137,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2132\""); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2132\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2133, "epsg", 2133, "NZGD2000 / UTM zone 58S"); add_proj4text (p, 0, @@ -1363,7 +1315,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "CGQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHER"); add_srs_wkt (p, 2, - "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); + "OID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIM"); add_srs_wkt (p, 4, @@ -1965,7 +1917,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, - ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); + ".9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, @@ -2353,9 +2305,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 12, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2166\"]]"); + "66\"]]"); p = add_epsg_def (filter, first, last, 2167, "epsg", 2167, "Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)"); add_proj4text (p, 0, @@ -2387,9 +2339,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 12, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2167\"]]"); + "67\"]]"); p = add_epsg_def (filter, first, last, 2168, "epsg", 2168, "Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)"); add_proj4text (p, 0, @@ -2421,9 +2373,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 12, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2168\"]]"); + "68\"]]"); p = add_epsg_def (filter, first, last, 2169, "epsg", 2169, "Luxembourg 1930 / Gauss"); add_proj4text (p, 0, @@ -2459,9 +2411,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 13, - "],AUTHORITY[\"EPSG\",\"2169\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2169\"]]"); p = add_epsg_def (filter, first, last, 2170, "epsg", 2170, "MGI / Slovenia Grid (deprecated)"); add_proj4text (p, 0, @@ -2493,9 +2443,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2"); - add_srs_wkt (p, 13, - "170\"]]"); + "UTHORITY[\"EPSG\",\"2170\"]]"); p = add_epsg_def (filter, first, last, 2171, "epsg", 2171, "Pulkovo 1942(58) / Poland zone I (deprecated)"); add_proj4text (p, 0, @@ -2531,9 +2479,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",5647000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2171\""); add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"2171\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2172, "epsg", 2172, "Pulkovo 1942(58) / Poland zone II"); add_proj4text (p, 0, @@ -2569,9 +2517,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "AMETER[\"false_northing\",5806000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 13, - "AST],AUTHORITY[\"EPSG\",\"2172\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2172\"]]"); p = add_epsg_def (filter, first, last, 2173, "epsg", 2173, "Pulkovo 1942(58) / Poland zone III"); add_proj4text (p, 0, @@ -2607,9 +2553,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",5999000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2173\""); add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"2173\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2174, "epsg", 2174, "Pulkovo 1942(58) / Poland zone IV"); add_proj4text (p, 0, @@ -2645,9 +2591,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "AMETER[\"false_northing\",5627000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 13, - "AST],AUTHORITY[\"EPSG\",\"2174\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2174\"]]"); p = add_epsg_def (filter, first, last, 2175, "epsg", 2175, "Pulkovo 1942(58) / Poland zone V"); add_proj4text (p, 0, @@ -2681,9 +2625,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "thing\",-4700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"2175\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"2175\"]]"); p = add_epsg_def (filter, first, last, 2176, "epsg", 2176, "ETRS89 / Poland CS2000 zone 5"); add_proj4text (p, 0, @@ -2715,9 +2657,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2176"); add_srs_wkt (p, 12, - "y\",EAST],AUTHORITY[\"EPSG\",\"2176\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2177, "epsg", 2177, "ETRS89 / Poland CS2000 zone 6"); add_proj4text (p, 0, @@ -2749,9 +2691,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2177"); add_srs_wkt (p, 12, - "y\",EAST],AUTHORITY[\"EPSG\",\"2177\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2178, "epsg", 2178, "ETRS89 / Poland CS2000 zone 7"); add_proj4text (p, 0, @@ -2783,9 +2725,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2178"); add_srs_wkt (p, 12, - "y\",EAST],AUTHORITY[\"EPSG\",\"2178\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2179, "epsg", 2179, "ETRS89 / Poland CS2000 zone 8"); add_proj4text (p, 0, @@ -2817,9 +2759,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2179"); add_srs_wkt (p, 12, - "y\",EAST],AUTHORITY[\"EPSG\",\"2179\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2180, "epsg", 2180, "ETRS89 / Poland CS92"); add_proj4text (p, 0, @@ -2851,9 +2793,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "METER[\"false_northing\",-5300000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2180\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2180\"]]"); p = add_epsg_def (filter, first, last, 2188, "epsg", 2188, "Azores Occidental 1939 / UTM zone 25N"); add_proj4text (p, 0, @@ -2987,7 +2927,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "G\",\"2191\"]]"); p = add_epsg_def (filter, first, last, 2192, "epsg", 2192, - "ED50 / France EuroLambert"); + "ED50 / France EuroLambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.3372291666666"); add_proj4text (p, 1, @@ -2995,31 +2935,33 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "+towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / France EuroLambert\",GEOGCS[\"ED50\",DAT"); + "PROJCS[\"ED50 / France EuroLambert (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, - "UM[\"European_Datum_1950\",SPHEROID[\"International 1924"); + "[\"ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, - "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87"); + "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, - ",-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM["); + "],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"623"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Lambert_Confor"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.8],"); + "ambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",2.337229166666667],PARAME"); + "igin\",46.8],PARAMETER[\"central_meridian\",2.3372291666"); add_srs_wkt (p, 9, - "TER[\"scale_factor\",0.99987742],PARAMETER[\"false_easti"); + "66667],PARAMETER[\"scale_factor\",0.99987742],PARAMETER["); add_srs_wkt (p, 10, - "ng\",600000],PARAMETER[\"false_northing\",2200000],UNIT["); + "\"false_easting\",600000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 11, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + "200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2192\"]]"); + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); + add_srs_wkt (p, 13, + "192\"]]"); p = add_epsg_def (filter, first, last, 2193, "epsg", 2193, "NZGD2000 / New Zealand Transverse Mercator 2000"); add_proj4text (p, 0, @@ -3051,11 +2993,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",1600000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"2193\"]]"); + "EPSG\",\"2193\"]]"); p = add_epsg_def (filter, first, last, 2194, "epsg", 2194, "American Samoa 1962 / American Samoa Lambert (deprecated)"); add_proj4text (p, 0, @@ -3073,7 +3013,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, - ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); + ".9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, @@ -3255,11 +3195,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ER[\"false_easting\",4500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 10, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 11, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"219"); - add_srs_wkt (p, 12, - "9\"]]"); + "HORITY[\"EPSG\",\"2199\"]]"); p = add_epsg_def (filter, first, last, 2200, "epsg", 2200, "ATS77 / New Brunswick Stereographic (ATS77)"); add_proj4text (p, 0, @@ -3291,11 +3229,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",300000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2200\""); - add_srs_wkt (p, 13, - "]]"); + "\"2200\"]]"); p = add_epsg_def (filter, first, last, 2201, "epsg", 2201, "REGVEN / UTM zone 18N"); add_proj4text (p, 0, @@ -3405,7 +3341,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "rth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",63782"); add_srs_wkt (p, 2, - "06.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUT"); + "06.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, @@ -3495,9 +3431,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"2206\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"2206\"]]"); p = add_epsg_def (filter, first, last, 2207, "epsg", 2207, "ED50 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, @@ -3529,9 +3463,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2207\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2207\"]]"); p = add_epsg_def (filter, first, last, 2208, "epsg", 2208, "ED50 / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, @@ -3563,9 +3495,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2208\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2208\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_02.c b/src/spatialite/src/srsinit/epsg_inlined_02.c index 6d65a9f..fc9ac22 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_02.c +++ b/src/spatialite/src/srsinit/epsg_inlined_02.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -83,9 +83,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2209\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2209\"]]"); p = add_epsg_def (filter, first, last, 2210, "epsg", 2210, "ED50 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, @@ -117,9 +115,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2210\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2210\"]]"); p = add_epsg_def (filter, first, last, 2211, "epsg", 2211, "ED50 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -151,9 +147,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2211\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2211\"]]"); p = add_epsg_def (filter, first, last, 2212, "epsg", 2212, "ED50 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -185,9 +179,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"2212\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"2212\"]]"); p = add_epsg_def (filter, first, last, 2213, "epsg", 2213, "ETRS89 / TM 30 NE"); add_proj4text (p, 0, @@ -267,7 +259,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "62\",DATUM[\"Manoca_1962\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, - ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); + ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, @@ -3323,7 +3315,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1858\",6378293.645208759,294.2606763692654,AUTHORITY"); + "rke 1858\",6378293.645208759,294.2606763692569,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0"); add_srs_wkt (p, 4, @@ -3511,9 +3503,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2319\"]]"); + "PSG\",\"2319\"]]"); p = add_epsg_def (filter, first, last, 2320, "epsg", 2320, "ED50 / TM30"); add_proj4text (p, 0, @@ -3543,9 +3535,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2320\"]]"); + "PSG\",\"2320\"]]"); p = add_epsg_def (filter, first, last, 2321, "epsg", 2321, "ED50 / TM33"); add_proj4text (p, 0, @@ -3575,9 +3567,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2321\"]]"); + "PSG\",\"2321\"]]"); p = add_epsg_def (filter, first, last, 2322, "epsg", 2322, "ED50 / TM36"); add_proj4text (p, 0, @@ -3607,9 +3599,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2322\"]]"); + "PSG\",\"2322\"]]"); p = add_epsg_def (filter, first, last, 2323, "epsg", 2323, "ED50 / TM39"); add_proj4text (p, 0, @@ -3639,9 +3631,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2323\"]]"); + "PSG\",\"2323\"]]"); p = add_epsg_def (filter, first, last, 2324, "epsg", 2324, "ED50 / TM42"); add_proj4text (p, 0, @@ -3671,9 +3663,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2324\"]]"); + "PSG\",\"2324\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_03.c b/src/spatialite/src/srsinit/epsg_inlined_03.c index 217f758..5c19b68 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_03.c +++ b/src/spatialite/src/srsinit/epsg_inlined_03.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -81,9 +81,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2325\"]]"); + "PSG\",\"2325\"]]"); p = add_epsg_def (filter, first, last, 2326, "epsg", 2326, "Hong Kong 1980 Grid System"); add_proj4text (p, 0, @@ -119,9 +119,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "05],PARAMETER[\"false_northing\",819069.8],UNIT[\"metre\""); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 13, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2326\"]]"); + "26\"]]"); p = add_epsg_def (filter, first, last, 2327, "epsg", 2327, "Xian 1980 / Gauss-Kruger zone 13"); add_proj4text (p, 0, @@ -149,9 +149,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 11, - "ST],AUTHORITY[\"EPSG\",\"2327\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2327\"]]"); p = add_epsg_def (filter, first, last, 2328, "epsg", 2328, "Xian 1980 / Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -179,9 +177,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 11, - "ST],AUTHORITY[\"EPSG\",\"2328\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2328\"]]"); p = add_epsg_def (filter, first, last, 2329, "epsg", 2329, "Xian 1980 / Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -209,9 +205,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 11, - "ST],AUTHORITY[\"EPSG\",\"2329\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2329\"]]"); p = add_epsg_def (filter, first, last, 2330, "epsg", 2330, "Xian 1980 / Gauss-Kruger zone 16"); add_proj4text (p, 0, @@ -239,9 +233,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 11, - "ST],AUTHORITY[\"EPSG\",\"2330\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2330\"]]"); p = add_epsg_def (filter, first, last, 2331, "epsg", 2331, "Xian 1980 / Gauss-Kruger zone 17"); add_proj4text (p, 0, @@ -269,9 +261,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 11, - "ST],AUTHORITY[\"EPSG\",\"2331\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2331\"]]"); p = add_epsg_def (filter, first, last, 2332, "epsg", 2332, "Xian 1980 / Gauss-Kruger zone 18"); add_proj4text (p, 0, @@ -299,9 +289,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2332\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2332\"]]"); p = add_epsg_def (filter, first, last, 2333, "epsg", 2333, "Xian 1980 / Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -329,9 +317,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2333\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2333\"]]"); p = add_epsg_def (filter, first, last, 2334, "epsg", 2334, "Xian 1980 / Gauss-Kruger zone 20"); add_proj4text (p, 0, @@ -359,9 +345,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2334\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2334\"]]"); p = add_epsg_def (filter, first, last, 2335, "epsg", 2335, "Xian 1980 / Gauss-Kruger zone 21"); add_proj4text (p, 0, @@ -389,9 +373,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2335\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2335\"]]"); p = add_epsg_def (filter, first, last, 2336, "epsg", 2336, "Xian 1980 / Gauss-Kruger zone 22"); add_proj4text (p, 0, @@ -419,9 +401,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2336\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2336\"]]"); p = add_epsg_def (filter, first, last, 2337, "epsg", 2337, "Xian 1980 / Gauss-Kruger zone 23"); add_proj4text (p, 0, @@ -449,9 +429,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 11, - "AST],AUTHORITY[\"EPSG\",\"2337\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2337\"]]"); p = add_epsg_def (filter, first, last, 2338, "epsg", 2338, "Xian 1980 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -479,9 +457,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"2338\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2338\"]]"); p = add_epsg_def (filter, first, last, 2339, "epsg", 2339, "Xian 1980 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -509,9 +485,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"2339\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2339\"]]"); p = add_epsg_def (filter, first, last, 2340, "epsg", 2340, "Xian 1980 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -539,9 +513,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"2340\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2340\"]]"); p = add_epsg_def (filter, first, last, 2341, "epsg", 2341, "Xian 1980 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -569,9 +541,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"2341\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2341\"]]"); p = add_epsg_def (filter, first, last, 2342, "epsg", 2342, "Xian 1980 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -599,9 +569,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"2342\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2342\"]]"); p = add_epsg_def (filter, first, last, 2343, "epsg", 2343, "Xian 1980 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -629,9 +597,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2343\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2343\"]]"); p = add_epsg_def (filter, first, last, 2344, "epsg", 2344, "Xian 1980 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -659,9 +625,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2344\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2344\"]]"); p = add_epsg_def (filter, first, last, 2345, "epsg", 2345, "Xian 1980 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -689,9 +653,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2345\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2345\"]]"); p = add_epsg_def (filter, first, last, 2346, "epsg", 2346, "Xian 1980 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -719,9 +681,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2346\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2346\"]]"); p = add_epsg_def (filter, first, last, 2347, "epsg", 2347, "Xian 1980 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -749,9 +709,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2347\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2347\"]]"); p = add_epsg_def (filter, first, last, 2348, "epsg", 2348, "Xian 1980 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -779,9 +737,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"2348\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2348\"]]"); p = add_epsg_def (filter, first, last, 2349, "epsg", 2349, "Xian 1980 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -809,9 +765,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "25500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2349\"]]"); + "49\"]]"); p = add_epsg_def (filter, first, last, 2350, "epsg", 2350, "Xian 1980 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -839,9 +795,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "26500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2350\"]]"); + "50\"]]"); p = add_epsg_def (filter, first, last, 2351, "epsg", 2351, "Xian 1980 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -869,9 +825,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "27500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2351\"]]"); + "51\"]]"); p = add_epsg_def (filter, first, last, 2352, "epsg", 2352, "Xian 1980 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, @@ -899,9 +855,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "28500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2352\"]]"); + "52\"]]"); p = add_epsg_def (filter, first, last, 2353, "epsg", 2353, "Xian 1980 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -929,9 +885,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "29500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2353\"]]"); + "53\"]]"); p = add_epsg_def (filter, first, last, 2354, "epsg", 2354, "Xian 1980 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, @@ -959,9 +915,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "30500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2354\"]]"); + "54\"]]"); p = add_epsg_def (filter, first, last, 2355, "epsg", 2355, "Xian 1980 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -989,9 +945,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2355\"]]"); + "55\"]]"); p = add_epsg_def (filter, first, last, 2356, "epsg", 2356, "Xian 1980 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -1019,9 +975,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2356\"]]"); + "56\"]]"); p = add_epsg_def (filter, first, last, 2357, "epsg", 2357, "Xian 1980 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -1049,9 +1005,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "33500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2357\"]]"); + "57\"]]"); p = add_epsg_def (filter, first, last, 2358, "epsg", 2358, "Xian 1980 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, @@ -1079,9 +1035,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",34500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2358\"]]"); + "58\"]]"); p = add_epsg_def (filter, first, last, 2359, "epsg", 2359, "Xian 1980 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -1109,9 +1065,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",35500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2359\"]]"); + "59\"]]"); p = add_epsg_def (filter, first, last, 2360, "epsg", 2360, "Xian 1980 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -1139,9 +1095,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",36500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2360\"]]"); + "60\"]]"); p = add_epsg_def (filter, first, last, 2361, "epsg", 2361, "Xian 1980 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -1169,9 +1125,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",37500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2361\"]]"); + "61\"]]"); p = add_epsg_def (filter, first, last, 2362, "epsg", 2362, "Xian 1980 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -1199,9 +1155,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",38500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2362\"]]"); + "62\"]]"); p = add_epsg_def (filter, first, last, 2363, "epsg", 2363, "Xian 1980 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -1229,9 +1185,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",39500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2363\"]]"); + "63\"]]"); p = add_epsg_def (filter, first, last, 2364, "epsg", 2364, "Xian 1980 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -1259,9 +1215,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",40500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2364\"]]"); + "64\"]]"); p = add_epsg_def (filter, first, last, 2365, "epsg", 2365, "Xian 1980 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -1289,9 +1245,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",41500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2365\"]]"); + "65\"]]"); p = add_epsg_def (filter, first, last, 2366, "epsg", 2366, "Xian 1980 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, @@ -1319,9 +1275,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",42500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2366\"]]"); + "66\"]]"); p = add_epsg_def (filter, first, last, 2367, "epsg", 2367, "Xian 1980 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -1349,9 +1305,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",43500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2367\"]]"); + "67\"]]"); p = add_epsg_def (filter, first, last, 2368, "epsg", 2368, "Xian 1980 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -1379,9 +1335,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",44500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2368\"]]"); + "68\"]]"); p = add_epsg_def (filter, first, last, 2369, "epsg", 2369, "Xian 1980 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -1409,9 +1365,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",45500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 11, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2369\"]]"); + "69\"]]"); p = add_epsg_def (filter, first, last, 2370, "epsg", 2370, "Xian 1980 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -1439,9 +1395,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2370"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2370\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2371, "epsg", 2371, "Xian 1980 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -1469,9 +1425,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2371"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2371\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2372, "epsg", 2372, "Xian 1980 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -1499,9 +1455,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2372"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2372\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2373, "epsg", 2373, "Xian 1980 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -1529,9 +1485,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2373"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2373\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2374, "epsg", 2374, "Xian 1980 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -1559,9 +1515,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2374"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2374\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2375, "epsg", 2375, "Xian 1980 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -1589,9 +1545,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2375"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2375\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2376, "epsg", 2376, "Xian 1980 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -1619,9 +1575,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2376"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2376\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2377, "epsg", 2377, "Xian 1980 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -1649,9 +1605,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2377"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2377\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2378, "epsg", 2378, "Xian 1980 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -1679,9 +1635,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2378"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2378\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2379, "epsg", 2379, "Xian 1980 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -1709,9 +1665,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"237"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2379\"]]"); + "9\"]]"); p = add_epsg_def (filter, first, last, 2380, "epsg", 2380, "Xian 1980 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -1739,9 +1695,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2380\"]]"); + "0\"]]"); p = add_epsg_def (filter, first, last, 2381, "epsg", 2381, "Xian 1980 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -1769,9 +1725,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2381\"]]"); + "1\"]]"); p = add_epsg_def (filter, first, last, 2382, "epsg", 2382, "Xian 1980 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -1799,9 +1755,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2382\"]]"); + "2\"]]"); p = add_epsg_def (filter, first, last, 2383, "epsg", 2383, "Xian 1980 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -1829,9 +1785,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2383\"]]"); + "3\"]]"); p = add_epsg_def (filter, first, last, 2384, "epsg", 2384, "Xian 1980 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -1859,9 +1815,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2384\"]]"); + "4\"]]"); p = add_epsg_def (filter, first, last, 2385, "epsg", 2385, "Xian 1980 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -1889,9 +1845,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2385\"]]"); + "5\"]]"); p = add_epsg_def (filter, first, last, 2386, "epsg", 2386, "Xian 1980 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -1919,9 +1875,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2386\"]]"); + "6\"]]"); p = add_epsg_def (filter, first, last, 2387, "epsg", 2387, "Xian 1980 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -1949,9 +1905,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2387\"]]"); + "7\"]]"); p = add_epsg_def (filter, first, last, 2388, "epsg", 2388, "Xian 1980 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -1979,9 +1935,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2388\"]]"); + "8\"]]"); p = add_epsg_def (filter, first, last, 2389, "epsg", 2389, "Xian 1980 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, @@ -2009,9 +1965,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2389\"]]"); + "9\"]]"); p = add_epsg_def (filter, first, last, 2390, "epsg", 2390, "Xian 1980 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -2039,9 +1995,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"239"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2390\"]]"); + "0\"]]"); p = add_epsg_def (filter, first, last, 2391, "epsg", 2391, "KKJ / Finland zone 1"); add_proj4text (p, 0, @@ -2073,9 +2029,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",1500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2391\"]]"); + "\",\"2391\"]]"); p = add_epsg_def (filter, first, last, 2392, "epsg", 2392, "KKJ / Finland zone 2"); add_proj4text (p, 0, @@ -2107,9 +2063,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2392\"]]"); + "\",\"2392\"]]"); p = add_epsg_def (filter, first, last, 2393, "epsg", 2393, "KKJ / Finland Uniform Coordinate System"); add_proj4text (p, 0, @@ -2143,9 +2099,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"2393\"]]"); + "]],AUTHORITY[\"EPSG\",\"2393\"]]"); p = add_epsg_def (filter, first, last, 2394, "epsg", 2394, "KKJ / Finland zone 4"); add_proj4text (p, 0, @@ -2177,9 +2131,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2394\"]]"); + "\",\"2394\"]]"); p = add_epsg_def (filter, first, last, 2395, "epsg", 2395, "South Yemen / Gauss-Kruger zone 8"); add_proj4text (p, 0, @@ -2211,9 +2165,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); - add_srs_wkt (p, 12, - "G\",\"2395\"]]"); + "1\"]],AUTHORITY[\"EPSG\",\"2395\"]]"); p = add_epsg_def (filter, first, last, 2396, "epsg", 2396, "South Yemen / Gauss-Kruger zone 9"); add_proj4text (p, 0, @@ -2245,9 +2197,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); - add_srs_wkt (p, 12, - "G\",\"2396\"]]"); + "1\"]],AUTHORITY[\"EPSG\",\"2396\"]]"); p = add_epsg_def (filter, first, last, 2397, "epsg", 2397, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, @@ -2279,9 +2229,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2397\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2397\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2398, "epsg", 2398, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -2313,9 +2263,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2398\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2398\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2399, "epsg", 2399, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, @@ -2347,9 +2297,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2399\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2399\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2400, "epsg", 2400, "RT90 2.5 gon W (deprecated)"); add_proj4text (p, 0, @@ -2381,9 +2331,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2400\"]]"); + "Y[\"EPSG\",\"2400\"]]"); p = add_epsg_def (filter, first, last, 2401, "epsg", 2401, "Beijing 1954 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -2415,9 +2365,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2401\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2401\"]]"); p = add_epsg_def (filter, first, last, 2402, "epsg", 2402, "Beijing 1954 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -2449,9 +2397,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2402\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2402\"]]"); p = add_epsg_def (filter, first, last, 2403, "epsg", 2403, "Beijing 1954 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -2483,9 +2429,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2403\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2403\"]]"); p = add_epsg_def (filter, first, last, 2404, "epsg", 2404, "Beijing 1954 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, @@ -2517,9 +2461,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2404\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2404\"]]"); p = add_epsg_def (filter, first, last, 2405, "epsg", 2405, "Beijing 1954 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -2551,9 +2493,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2405\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2405\"]]"); p = add_epsg_def (filter, first, last, 2406, "epsg", 2406, "Beijing 1954 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, @@ -2585,9 +2525,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2406\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2406\"]]"); p = add_epsg_def (filter, first, last, 2407, "epsg", 2407, "Beijing 1954 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -2619,9 +2557,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2407\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2407\"]]"); p = add_epsg_def (filter, first, last, 2408, "epsg", 2408, "Beijing 1954 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -2653,9 +2589,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2408\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2408\"]]"); p = add_epsg_def (filter, first, last, 2409, "epsg", 2409, "Beijing 1954 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -2687,9 +2621,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2409\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2409\"]]"); p = add_epsg_def (filter, first, last, 2410, "epsg", 2410, "Beijing 1954 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, @@ -2721,9 +2653,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2410\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2410\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2411, "epsg", 2411, "Beijing 1954 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -2755,9 +2687,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2411\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2411\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2412, "epsg", 2412, "Beijing 1954 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -2789,9 +2721,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2412\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2412\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2413, "epsg", 2413, "Beijing 1954 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -2823,9 +2755,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2413\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2413\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2414, "epsg", 2414, "Beijing 1954 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -2857,9 +2789,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2414\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2414\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2415, "epsg", 2415, "Beijing 1954 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -2891,9 +2823,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2415\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2415\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2416, "epsg", 2416, "Beijing 1954 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -2925,9 +2857,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2416\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2416\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2417, "epsg", 2417, "Beijing 1954 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -2959,9 +2891,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2417\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2417\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2418, "epsg", 2418, "Beijing 1954 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, @@ -2993,9 +2925,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2418\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2418\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2419, "epsg", 2419, "Beijing 1954 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -3027,9 +2959,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2419\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2419\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2420, "epsg", 2420, "Beijing 1954 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -3061,9 +2993,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2420\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2420\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2421, "epsg", 2421, "Beijing 1954 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -3095,9 +3027,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2421\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2421\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2422, "epsg", 2422, "Beijing 1954 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -3129,9 +3061,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2422\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2422\"]]"); p = add_epsg_def (filter, first, last, 2423, "epsg", 2423, "Beijing 1954 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -3163,9 +3093,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2423\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2423\"]]"); p = add_epsg_def (filter, first, last, 2424, "epsg", 2424, "Beijing 1954 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -3197,9 +3125,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2424\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2424\"]]"); p = add_epsg_def (filter, first, last, 2425, "epsg", 2425, "Beijing 1954 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -3231,9 +3157,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2425\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2425\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_04.c b/src/spatialite/src/srsinit/epsg_inlined_04.c index f4f0967..e80e580 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_04.c +++ b/src/spatialite/src/srsinit/epsg_inlined_04.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -83,9 +83,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2426\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2426\"]]"); p = add_epsg_def (filter, first, last, 2427, "epsg", 2427, "Beijing 1954 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -117,9 +115,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2427\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2427\"]]"); p = add_epsg_def (filter, first, last, 2428, "epsg", 2428, "Beijing 1954 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -151,9 +147,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2428\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2428\"]]"); p = add_epsg_def (filter, first, last, 2429, "epsg", 2429, "Beijing 1954 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -185,9 +179,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2429\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2429\"]]"); p = add_epsg_def (filter, first, last, 2430, "epsg", 2430, "Beijing 1954 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -219,9 +211,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2430\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2430\"]]"); p = add_epsg_def (filter, first, last, 2431, "epsg", 2431, "Beijing 1954 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -253,9 +243,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2431\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2431\"]]"); p = add_epsg_def (filter, first, last, 2432, "epsg", 2432, "Beijing 1954 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -287,9 +275,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2432\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2432\"]]"); p = add_epsg_def (filter, first, last, 2433, "epsg", 2433, "Beijing 1954 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -321,9 +307,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2433\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2433\"]]"); p = add_epsg_def (filter, first, last, 2434, "epsg", 2434, "Beijing 1954 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -355,9 +339,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2434\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2434\"]]"); p = add_epsg_def (filter, first, last, 2435, "epsg", 2435, "Beijing 1954 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -389,9 +371,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2435\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2435\"]]"); p = add_epsg_def (filter, first, last, 2436, "epsg", 2436, "Beijing 1954 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -423,9 +403,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2436\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2436\"]]"); p = add_epsg_def (filter, first, last, 2437, "epsg", 2437, "Beijing 1954 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -457,9 +435,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2437\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2437\"]]"); p = add_epsg_def (filter, first, last, 2438, "epsg", 2438, "Beijing 1954 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -491,9 +467,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2438\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2438\"]]"); p = add_epsg_def (filter, first, last, 2439, "epsg", 2439, "Beijing 1954 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -525,9 +499,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2439\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2439\"]]"); p = add_epsg_def (filter, first, last, 2440, "epsg", 2440, "Beijing 1954 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -559,9 +531,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2440\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2440\"]]"); p = add_epsg_def (filter, first, last, 2441, "epsg", 2441, "Beijing 1954 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, @@ -593,9 +563,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2441\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2441\"]]"); p = add_epsg_def (filter, first, last, 2442, "epsg", 2442, "Beijing 1954 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -627,9 +595,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2442\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2442\"]]"); p = add_epsg_def (filter, first, last, 2443, "epsg", 2443, "JGD2000 / Japan Plane Rectangular CS I"); add_proj4text (p, 0, @@ -659,9 +625,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); - add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"2443\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2443\"]]"); p = add_epsg_def (filter, first, last, 2444, "epsg", 2444, "JGD2000 / Japan Plane Rectangular CS II"); add_proj4text (p, 0, @@ -691,9 +655,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2444\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2444\"]]"); p = add_epsg_def (filter, first, last, 2445, "epsg", 2445, "JGD2000 / Japan Plane Rectangular CS III"); add_proj4text (p, 0, @@ -725,9 +687,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2445\"]]"); + "2445\"]]"); p = add_epsg_def (filter, first, last, 2446, "epsg", 2446, "JGD2000 / Japan Plane Rectangular CS IV"); add_proj4text (p, 0, @@ -757,9 +719,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"2446\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2446\"]]"); p = add_epsg_def (filter, first, last, 2447, "epsg", 2447, "JGD2000 / Japan Plane Rectangular CS V"); add_proj4text (p, 0, @@ -791,9 +751,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2447\"]]"); + "2447\"]]"); p = add_epsg_def (filter, first, last, 2448, "epsg", 2448, "JGD2000 / Japan Plane Rectangular CS VI"); add_proj4text (p, 0, @@ -823,9 +783,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2448\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2448\"]]"); p = add_epsg_def (filter, first, last, 2449, "epsg", 2449, "JGD2000 / Japan Plane Rectangular CS VII"); add_proj4text (p, 0, @@ -857,9 +815,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2449\"]]"); + "2449\"]]"); p = add_epsg_def (filter, first, last, 2450, "epsg", 2450, "JGD2000 / Japan Plane Rectangular CS VIII"); add_proj4text (p, 0, @@ -889,9 +847,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2450\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2450\"]]"); p = add_epsg_def (filter, first, last, 2451, "epsg", 2451, "JGD2000 / Japan Plane Rectangular CS IX"); add_proj4text (p, 0, @@ -923,9 +879,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2451\"]]"); + "2451\"]]"); p = add_epsg_def (filter, first, last, 2452, "epsg", 2452, "JGD2000 / Japan Plane Rectangular CS X"); add_proj4text (p, 0, @@ -957,9 +913,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2452\"]]"); + "2452\"]]"); p = add_epsg_def (filter, first, last, 2453, "epsg", 2453, "JGD2000 / Japan Plane Rectangular CS XI"); add_proj4text (p, 0, @@ -991,9 +947,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"2453\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2453\"]]"); p = add_epsg_def (filter, first, last, 2454, "epsg", 2454, "JGD2000 / Japan Plane Rectangular CS XII"); add_proj4text (p, 0, @@ -1025,9 +979,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"2454\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2454\"]]"); p = add_epsg_def (filter, first, last, 2455, "epsg", 2455, "JGD2000 / Japan Plane Rectangular CS XIII"); add_proj4text (p, 0, @@ -1059,9 +1011,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"2455\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2455\"]]"); p = add_epsg_def (filter, first, last, 2456, "epsg", 2456, "JGD2000 / Japan Plane Rectangular CS XIV"); add_proj4text (p, 0, @@ -1091,9 +1041,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2456\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2456\"]]"); p = add_epsg_def (filter, first, last, 2457, "epsg", 2457, "JGD2000 / Japan Plane Rectangular CS XV"); add_proj4text (p, 0, @@ -1123,9 +1071,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"2457\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2457\"]]"); p = add_epsg_def (filter, first, last, 2458, "epsg", 2458, "JGD2000 / Japan Plane Rectangular CS XVI"); add_proj4text (p, 0, @@ -1155,9 +1101,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2458\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2458\"]]"); p = add_epsg_def (filter, first, last, 2459, "epsg", 2459, "JGD2000 / Japan Plane Rectangular CS XVII"); add_proj4text (p, 0, @@ -1187,9 +1131,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"2459\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2459\"]]"); p = add_epsg_def (filter, first, last, 2460, "epsg", 2460, "JGD2000 / Japan Plane Rectangular CS XVIII"); add_proj4text (p, 0, @@ -1219,9 +1161,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"2460\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2460\"]]"); p = add_epsg_def (filter, first, last, 2461, "epsg", 2461, "JGD2000 / Japan Plane Rectangular CS XIX"); add_proj4text (p, 0, @@ -1251,9 +1191,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2461\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2461\"]]"); p = add_epsg_def (filter, first, last, 2462, "epsg", 2462, "Albanian 1987 / Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -1281,9 +1219,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 10, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2462\"]]"); + ",\"2462\"]]"); p = add_epsg_def (filter, first, last, 2463, "epsg", 2463, "Pulkovo 1995 / Gauss-Kruger CM 21E"); add_proj4text (p, 0, @@ -1315,9 +1253,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2463\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2463\"]]"); p = add_epsg_def (filter, first, last, 2464, "epsg", 2464, "Pulkovo 1995 / Gauss-Kruger CM 27E"); add_proj4text (p, 0, @@ -1349,9 +1285,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2464\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2464\"]]"); p = add_epsg_def (filter, first, last, 2465, "epsg", 2465, "Pulkovo 1995 / Gauss-Kruger CM 33E"); add_proj4text (p, 0, @@ -1383,9 +1317,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2465\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2465\"]]"); p = add_epsg_def (filter, first, last, 2466, "epsg", 2466, "Pulkovo 1995 / Gauss-Kruger CM 39E"); add_proj4text (p, 0, @@ -1417,9 +1349,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2466\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2466\"]]"); p = add_epsg_def (filter, first, last, 2467, "epsg", 2467, "Pulkovo 1995 / Gauss-Kruger CM 45E"); add_proj4text (p, 0, @@ -1451,9 +1381,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2467\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2467\"]]"); p = add_epsg_def (filter, first, last, 2468, "epsg", 2468, "Pulkovo 1995 / Gauss-Kruger CM 51E"); add_proj4text (p, 0, @@ -1485,9 +1413,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2468\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2468\"]]"); p = add_epsg_def (filter, first, last, 2469, "epsg", 2469, "Pulkovo 1995 / Gauss-Kruger CM 57E"); add_proj4text (p, 0, @@ -1519,9 +1445,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2469\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2469\"]]"); p = add_epsg_def (filter, first, last, 2470, "epsg", 2470, "Pulkovo 1995 / Gauss-Kruger CM 63E"); add_proj4text (p, 0, @@ -1553,9 +1477,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2470\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2470\"]]"); p = add_epsg_def (filter, first, last, 2471, "epsg", 2471, "Pulkovo 1995 / Gauss-Kruger CM 69E"); add_proj4text (p, 0, @@ -1587,9 +1509,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2471\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2471\"]]"); p = add_epsg_def (filter, first, last, 2472, "epsg", 2472, "Pulkovo 1995 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -1621,9 +1541,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2472\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2472\"]]"); p = add_epsg_def (filter, first, last, 2473, "epsg", 2473, "Pulkovo 1995 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -1655,9 +1573,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2473\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2473\"]]"); p = add_epsg_def (filter, first, last, 2474, "epsg", 2474, "Pulkovo 1995 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -1689,9 +1605,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2474\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2474\"]]"); p = add_epsg_def (filter, first, last, 2475, "epsg", 2475, "Pulkovo 1995 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -1723,9 +1637,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2475\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2475\"]]"); p = add_epsg_def (filter, first, last, 2476, "epsg", 2476, "Pulkovo 1995 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -1757,9 +1669,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"2476\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2476\"]]"); p = add_epsg_def (filter, first, last, 2477, "epsg", 2477, "Pulkovo 1995 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -1791,9 +1701,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2477\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2477\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2478, "epsg", 2478, "Pulkovo 1995 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -1825,9 +1735,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2478\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2478\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2479, "epsg", 2479, "Pulkovo 1995 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -1859,9 +1769,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2479\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2479\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2480, "epsg", 2480, "Pulkovo 1995 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -1893,9 +1803,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2480\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2480\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2481, "epsg", 2481, "Pulkovo 1995 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -1927,9 +1837,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2481\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2481\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2482, "epsg", 2482, "Pulkovo 1995 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -1961,9 +1871,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2482\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2482\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2483, "epsg", 2483, "Pulkovo 1995 / Gauss-Kruger CM 141E"); add_proj4text (p, 0, @@ -1995,9 +1905,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2483\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2483\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2484, "epsg", 2484, "Pulkovo 1995 / Gauss-Kruger CM 147E"); add_proj4text (p, 0, @@ -2029,9 +1939,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2484\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2484\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2485, "epsg", 2485, "Pulkovo 1995 / Gauss-Kruger CM 153E"); add_proj4text (p, 0, @@ -2063,9 +1973,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2485\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2485\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2486, "epsg", 2486, "Pulkovo 1995 / Gauss-Kruger CM 159E"); add_proj4text (p, 0, @@ -2097,9 +2007,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2486\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2486\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2487, "epsg", 2487, "Pulkovo 1995 / Gauss-Kruger CM 165E"); add_proj4text (p, 0, @@ -2131,9 +2041,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2487\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2487\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2488, "epsg", 2488, "Pulkovo 1995 / Gauss-Kruger CM 171E"); add_proj4text (p, 0, @@ -2165,9 +2075,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2488\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2488\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2489, "epsg", 2489, "Pulkovo 1995 / Gauss-Kruger CM 177E"); add_proj4text (p, 0, @@ -2199,9 +2109,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2489\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2489\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2490, "epsg", 2490, "Pulkovo 1995 / Gauss-Kruger CM 177W"); add_proj4text (p, 0, @@ -2233,9 +2143,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2490\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2490\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2491, "epsg", 2491, "Pulkovo 1995 / Gauss-Kruger CM 171W"); add_proj4text (p, 0, @@ -2267,9 +2177,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2491\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2491\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2492, "epsg", 2492, "Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)"); add_proj4text (p, 0, @@ -2301,9 +2211,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2492\"]]"); + "\"2492\"]]"); p = add_epsg_def (filter, first, last, 2493, "epsg", 2493, "Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)"); add_proj4text (p, 0, @@ -2335,9 +2245,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2493\"]]"); + "\",\"2493\"]]"); p = add_epsg_def (filter, first, last, 2494, "epsg", 2494, "Pulkovo 1942 / Gauss-Kruger CM 21E"); add_proj4text (p, 0, @@ -2369,9 +2279,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2494\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2494\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2495, "epsg", 2495, "Pulkovo 1942 / Gauss-Kruger CM 27E"); add_proj4text (p, 0, @@ -2403,9 +2313,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2495\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2495\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2496, "epsg", 2496, "Pulkovo 1942 / Gauss-Kruger CM 33E"); add_proj4text (p, 0, @@ -2437,9 +2347,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2496\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2496\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2497, "epsg", 2497, "Pulkovo 1942 / Gauss-Kruger CM 39E"); add_proj4text (p, 0, @@ -2471,9 +2381,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2497\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2497\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2498, "epsg", 2498, "Pulkovo 1942 / Gauss-Kruger CM 45E"); add_proj4text (p, 0, @@ -2505,9 +2415,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2498\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2498\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2499, "epsg", 2499, "Pulkovo 1942 / Gauss-Kruger CM 51E"); add_proj4text (p, 0, @@ -2539,9 +2449,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2499\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2499\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2500, "epsg", 2500, "Pulkovo 1942 / Gauss-Kruger CM 57E"); add_proj4text (p, 0, @@ -2573,9 +2483,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2500\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2500\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2501, "epsg", 2501, "Pulkovo 1942 / Gauss-Kruger CM 63E"); add_proj4text (p, 0, @@ -2607,9 +2517,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2501\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2501\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2502, "epsg", 2502, "Pulkovo 1942 / Gauss-Kruger CM 69E"); add_proj4text (p, 0, @@ -2641,9 +2551,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2502\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2502\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2503, "epsg", 2503, "Pulkovo 1942 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -2675,9 +2585,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2503\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2503\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2504, "epsg", 2504, "Pulkovo 1942 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -2709,9 +2619,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2504\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2504\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2505, "epsg", 2505, "Pulkovo 1942 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -2743,9 +2653,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2505\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2505\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2506, "epsg", 2506, "Pulkovo 1942 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -2777,9 +2687,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2506\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2506\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2507, "epsg", 2507, "Pulkovo 1942 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -2811,9 +2721,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2507\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"2507\"]]"); + "]"); p = add_epsg_def (filter, first, last, 2508, "epsg", 2508, "Pulkovo 1942 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -2845,9 +2755,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2508\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2508\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2509, "epsg", 2509, "Pulkovo 1942 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -2879,9 +2789,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2509\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2509\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2510, "epsg", 2510, "Pulkovo 1942 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -2913,9 +2823,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2510\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2510\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2511, "epsg", 2511, "Pulkovo 1942 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -2947,9 +2857,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2511\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2511\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2512, "epsg", 2512, "Pulkovo 1942 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -2981,9 +2891,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2512\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2512\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2513, "epsg", 2513, "Pulkovo 1942 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -3015,9 +2925,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2513\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2513\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2514, "epsg", 2514, "Pulkovo 1942 / Gauss-Kruger CM 141E"); add_proj4text (p, 0, @@ -3049,9 +2959,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2514\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2514\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2515, "epsg", 2515, "Pulkovo 1942 / Gauss-Kruger CM 147E"); add_proj4text (p, 0, @@ -3083,9 +2993,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2515\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2515\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2516, "epsg", 2516, "Pulkovo 1942 / Gauss-Kruger CM 153E"); add_proj4text (p, 0, @@ -3117,9 +3027,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2516\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2516\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2517, "epsg", 2517, "Pulkovo 1942 / Gauss-Kruger CM 159E"); add_proj4text (p, 0, @@ -3151,9 +3061,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2517\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2517\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2518, "epsg", 2518, "Pulkovo 1942 / Gauss-Kruger CM 165E"); add_proj4text (p, 0, @@ -3185,9 +3095,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2518\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2518\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2519, "epsg", 2519, "Pulkovo 1942 / Gauss-Kruger CM 171E"); add_proj4text (p, 0, @@ -3219,9 +3129,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2519\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2519\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2520, "epsg", 2520, "Pulkovo 1942 / Gauss-Kruger CM 177E"); add_proj4text (p, 0, @@ -3253,9 +3163,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2520\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"2520\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 2521, "epsg", 2521, "Pulkovo 1942 / Gauss-Kruger CM 177W"); add_proj4text (p, 0, @@ -3287,9 +3197,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2521"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2521\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2522, "epsg", 2522, "Pulkovo 1942 / Gauss-Kruger CM 171W"); add_proj4text (p, 0, @@ -3321,9 +3231,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2522"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"2522\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 2523, "epsg", 2523, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, @@ -3355,9 +3265,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2523\"]]"); + "\"2523\"]]"); p = add_epsg_def (filter, first, last, 2524, "epsg", 2524, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, @@ -3389,9 +3299,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2524\"]]"); + "\"2524\"]]"); p = add_epsg_def (filter, first, last, 2525, "epsg", 2525, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, @@ -3423,9 +3333,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2525\"]]"); + "\"2525\"]]"); p = add_epsg_def (filter, first, last, 2526, "epsg", 2526, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, @@ -3457,9 +3367,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2526\"]]"); + ",\"2526\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_05.c b/src/spatialite/src/srsinit/epsg_inlined_05.c index 5cc4275..bc7c0f3 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_05.c +++ b/src/spatialite/src/srsinit/epsg_inlined_05.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -83,9 +83,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2527\"]]"); + ",\"2527\"]]"); p = add_epsg_def (filter, first, last, 2528, "epsg", 2528, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, @@ -117,9 +117,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2528\"]]"); + ",\"2528\"]]"); p = add_epsg_def (filter, first, last, 2529, "epsg", 2529, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, @@ -151,9 +151,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2529\"]]"); + ",\"2529\"]]"); p = add_epsg_def (filter, first, last, 2530, "epsg", 2530, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -185,9 +185,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2530\"]]"); + ",\"2530\"]]"); p = add_epsg_def (filter, first, last, 2531, "epsg", 2531, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -219,9 +219,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2531\"]]"); + ",\"2531\"]]"); p = add_epsg_def (filter, first, last, 2532, "epsg", 2532, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 16"); add_proj4text (p, 0, @@ -253,9 +253,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2532\"]]"); + ",\"2532\"]]"); p = add_epsg_def (filter, first, last, 2533, "epsg", 2533, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 17"); add_proj4text (p, 0, @@ -287,9 +287,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2533\"]]"); + ",\"2533\"]]"); p = add_epsg_def (filter, first, last, 2534, "epsg", 2534, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 18"); add_proj4text (p, 0, @@ -321,9 +321,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2534\"]]"); + ",\"2534\"]]"); p = add_epsg_def (filter, first, last, 2535, "epsg", 2535, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -355,9 +355,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2535\"]]"); + ",\"2535\"]]"); p = add_epsg_def (filter, first, last, 2536, "epsg", 2536, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 20"); add_proj4text (p, 0, @@ -389,9 +389,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2536\"]]"); + ",\"2536\"]]"); p = add_epsg_def (filter, first, last, 2537, "epsg", 2537, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 21"); add_proj4text (p, 0, @@ -423,9 +423,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2537\"]]"); + ",\"2537\"]]"); p = add_epsg_def (filter, first, last, 2538, "epsg", 2538, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 22"); add_proj4text (p, 0, @@ -457,9 +457,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2538\"]]"); + ",\"2538\"]]"); p = add_epsg_def (filter, first, last, 2539, "epsg", 2539, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 23"); add_proj4text (p, 0, @@ -491,9 +491,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2539\"]]"); + ",\"2539\"]]"); p = add_epsg_def (filter, first, last, 2540, "epsg", 2540, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 24"); add_proj4text (p, 0, @@ -525,9 +525,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2540\"]]"); + ",\"2540\"]]"); p = add_epsg_def (filter, first, last, 2541, "epsg", 2541, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -559,9 +559,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2541\"]]"); + ",\"2541\"]]"); p = add_epsg_def (filter, first, last, 2542, "epsg", 2542, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -593,9 +593,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2542\"]]"); + ",\"2542\"]]"); p = add_epsg_def (filter, first, last, 2543, "epsg", 2543, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -627,9 +627,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2543\"]]"); + ",\"2543\"]]"); p = add_epsg_def (filter, first, last, 2544, "epsg", 2544, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, @@ -661,9 +661,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2544\"]]"); + ",\"2544\"]]"); p = add_epsg_def (filter, first, last, 2545, "epsg", 2545, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -695,9 +695,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2545\"]]"); + ",\"2545\"]]"); p = add_epsg_def (filter, first, last, 2546, "epsg", 2546, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, @@ -729,9 +729,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2546\"]]"); + ",\"2546\"]]"); p = add_epsg_def (filter, first, last, 2547, "epsg", 2547, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -763,9 +763,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2547\"]]"); + ",\"2547\"]]"); p = add_epsg_def (filter, first, last, 2548, "epsg", 2548, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -797,9 +797,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2548\"]]"); + ",\"2548\"]]"); p = add_epsg_def (filter, first, last, 2549, "epsg", 2549, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -831,9 +831,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2549\"]]"); + ",\"2549\"]]"); p = add_epsg_def (filter, first, last, 2550, "epsg", 2550, "Samboja / UTM zone 50S (deprecated)"); add_proj4text (p, 0, @@ -897,9 +897,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2551\"]]"); + ",\"2551\"]]"); p = add_epsg_def (filter, first, last, 2552, "epsg", 2552, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -931,9 +931,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2552\"]]"); + ",\"2552\"]]"); p = add_epsg_def (filter, first, last, 2553, "epsg", 2553, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -965,9 +965,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2553\"]]"); + ",\"2553\"]]"); p = add_epsg_def (filter, first, last, 2554, "epsg", 2554, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -999,9 +999,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2554\"]]"); + ",\"2554\"]]"); p = add_epsg_def (filter, first, last, 2555, "epsg", 2555, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -1033,9 +1033,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2555\"]]"); + ",\"2555\"]]"); p = add_epsg_def (filter, first, last, 2556, "epsg", 2556, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -1067,9 +1067,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2556\"]]"); + ",\"2556\"]]"); p = add_epsg_def (filter, first, last, 2557, "epsg", 2557, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -1101,9 +1101,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2557\"]]"); + ",\"2557\"]]"); p = add_epsg_def (filter, first, last, 2558, "epsg", 2558, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -1135,9 +1135,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2558\"]]"); + ",\"2558\"]]"); p = add_epsg_def (filter, first, last, 2559, "epsg", 2559, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, @@ -1169,9 +1169,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2559\"]]"); + ",\"2559\"]]"); p = add_epsg_def (filter, first, last, 2560, "epsg", 2560, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -1203,9 +1203,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2560\"]]"); + ",\"2560\"]]"); p = add_epsg_def (filter, first, last, 2561, "epsg", 2561, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -1237,9 +1237,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2561\"]]"); + ",\"2561\"]]"); p = add_epsg_def (filter, first, last, 2562, "epsg", 2562, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -1271,9 +1271,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2562\"]]"); + ",\"2562\"]]"); p = add_epsg_def (filter, first, last, 2563, "epsg", 2563, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 46"); add_proj4text (p, 0, @@ -1305,9 +1305,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2563\"]]"); + ",\"2563\"]]"); p = add_epsg_def (filter, first, last, 2564, "epsg", 2564, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 47"); add_proj4text (p, 0, @@ -1339,9 +1339,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2564\"]]"); + ",\"2564\"]]"); p = add_epsg_def (filter, first, last, 2565, "epsg", 2565, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 48"); add_proj4text (p, 0, @@ -1373,9 +1373,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2565\"]]"); + ",\"2565\"]]"); p = add_epsg_def (filter, first, last, 2566, "epsg", 2566, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 49"); add_proj4text (p, 0, @@ -1407,9 +1407,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2566\"]]"); + ",\"2566\"]]"); p = add_epsg_def (filter, first, last, 2567, "epsg", 2567, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 50"); add_proj4text (p, 0, @@ -1441,9 +1441,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2567\"]]"); + ",\"2567\"]]"); p = add_epsg_def (filter, first, last, 2568, "epsg", 2568, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 51"); add_proj4text (p, 0, @@ -1475,9 +1475,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2568\"]]"); + ",\"2568\"]]"); p = add_epsg_def (filter, first, last, 2569, "epsg", 2569, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 52"); add_proj4text (p, 0, @@ -1509,9 +1509,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2569\"]]"); + ",\"2569\"]]"); p = add_epsg_def (filter, first, last, 2570, "epsg", 2570, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 53"); add_proj4text (p, 0, @@ -1543,9 +1543,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2570\"]]"); + ",\"2570\"]]"); p = add_epsg_def (filter, first, last, 2571, "epsg", 2571, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 54"); add_proj4text (p, 0, @@ -1577,9 +1577,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2571\"]]"); + ",\"2571\"]]"); p = add_epsg_def (filter, first, last, 2572, "epsg", 2572, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 55"); add_proj4text (p, 0, @@ -1611,9 +1611,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2572\"]]"); + ",\"2572\"]]"); p = add_epsg_def (filter, first, last, 2573, "epsg", 2573, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 56"); add_proj4text (p, 0, @@ -1645,9 +1645,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2573\"]]"); + ",\"2573\"]]"); p = add_epsg_def (filter, first, last, 2574, "epsg", 2574, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 57"); add_proj4text (p, 0, @@ -1679,9 +1679,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2574\"]]"); + ",\"2574\"]]"); p = add_epsg_def (filter, first, last, 2575, "epsg", 2575, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 58"); add_proj4text (p, 0, @@ -1713,9 +1713,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2575\"]]"); + ",\"2575\"]]"); p = add_epsg_def (filter, first, last, 2576, "epsg", 2576, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 59"); add_proj4text (p, 0, @@ -1747,9 +1747,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2576\"]]"); + ",\"2576\"]]"); p = add_epsg_def (filter, first, last, 2577, "epsg", 2577, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)"); add_proj4text (p, 0, @@ -1781,11 +1781,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "R[\"false_easting\",60000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"257"); - add_srs_wkt (p, 13, - "7\"]]"); + "HORITY[\"EPSG\",\"2577\"]]"); p = add_epsg_def (filter, first, last, 2578, "epsg", 2578, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 61"); add_proj4text (p, 0, @@ -1817,9 +1815,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2578\"]]"); + "\",\"2578\"]]"); p = add_epsg_def (filter, first, last, 2579, "epsg", 2579, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 62"); add_proj4text (p, 0, @@ -1851,9 +1849,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2579\"]]"); + "\",\"2579\"]]"); p = add_epsg_def (filter, first, last, 2580, "epsg", 2580, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 63"); add_proj4text (p, 0, @@ -1885,9 +1883,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2580\"]]"); + "\",\"2580\"]]"); p = add_epsg_def (filter, first, last, 2581, "epsg", 2581, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 64"); add_proj4text (p, 0, @@ -1919,9 +1917,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2581\"]]"); + "\",\"2581\"]]"); p = add_epsg_def (filter, first, last, 2582, "epsg", 2582, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E"); add_proj4text (p, 0, @@ -1953,9 +1951,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2582\"]]"); + "2582\"]]"); p = add_epsg_def (filter, first, last, 2583, "epsg", 2583, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E"); add_proj4text (p, 0, @@ -1987,9 +1985,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2583\"]]"); + "2583\"]]"); p = add_epsg_def (filter, first, last, 2584, "epsg", 2584, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E"); add_proj4text (p, 0, @@ -2021,9 +2019,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2584\"]]"); + "2584\"]]"); p = add_epsg_def (filter, first, last, 2585, "epsg", 2585, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E"); add_proj4text (p, 0, @@ -2055,9 +2053,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2585\"]]"); + "2585\"]]"); p = add_epsg_def (filter, first, last, 2586, "epsg", 2586, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E"); add_proj4text (p, 0, @@ -2089,9 +2087,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2586\"]]"); + "2586\"]]"); p = add_epsg_def (filter, first, last, 2587, "epsg", 2587, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E"); add_proj4text (p, 0, @@ -2123,9 +2121,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2587\"]]"); + "2587\"]]"); p = add_epsg_def (filter, first, last, 2588, "epsg", 2588, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E"); add_proj4text (p, 0, @@ -2157,9 +2155,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2588\"]]"); + "2588\"]]"); p = add_epsg_def (filter, first, last, 2589, "epsg", 2589, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E"); add_proj4text (p, 0, @@ -2191,9 +2189,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2589\"]]"); + "2589\"]]"); p = add_epsg_def (filter, first, last, 2590, "epsg", 2590, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E"); add_proj4text (p, 0, @@ -2225,9 +2223,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2590\"]]"); + "2590\"]]"); p = add_epsg_def (filter, first, last, 2591, "epsg", 2591, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E"); add_proj4text (p, 0, @@ -2259,9 +2257,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2591\"]]"); + "2591\"]]"); p = add_epsg_def (filter, first, last, 2592, "epsg", 2592, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E"); add_proj4text (p, 0, @@ -2293,9 +2291,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2592\"]]"); + "2592\"]]"); p = add_epsg_def (filter, first, last, 2593, "epsg", 2593, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E"); add_proj4text (p, 0, @@ -2327,9 +2325,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2593\"]]"); + "2593\"]]"); p = add_epsg_def (filter, first, last, 2594, "epsg", 2594, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E"); add_proj4text (p, 0, @@ -2361,9 +2359,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2594\"]]"); + "2594\"]]"); p = add_epsg_def (filter, first, last, 2595, "epsg", 2595, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E"); add_proj4text (p, 0, @@ -2395,9 +2393,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2595\"]]"); + "2595\"]]"); p = add_epsg_def (filter, first, last, 2596, "epsg", 2596, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E"); add_proj4text (p, 0, @@ -2429,9 +2427,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2596\"]]"); + "2596\"]]"); p = add_epsg_def (filter, first, last, 2597, "epsg", 2597, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E"); add_proj4text (p, 0, @@ -2463,9 +2461,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2597\"]]"); + "2597\"]]"); p = add_epsg_def (filter, first, last, 2598, "epsg", 2598, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E"); add_proj4text (p, 0, @@ -2497,9 +2495,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2598\"]]"); + "2598\"]]"); p = add_epsg_def (filter, first, last, 2599, "epsg", 2599, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E"); add_proj4text (p, 0, @@ -2531,9 +2529,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2599\"]]"); + "2599\"]]"); p = add_epsg_def (filter, first, last, 2600, "epsg", 2600, "Lietuvos Koordinoei Sistema 1994 (deprecated)"); add_proj4text (p, 0, @@ -2565,9 +2563,7 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"2600\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2600\"]]"); p = add_epsg_def (filter, first, last, 2601, "epsg", 2601, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -2599,9 +2595,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2601\"]]"); + "2601\"]]"); p = add_epsg_def (filter, first, last, 2602, "epsg", 2602, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -2633,9 +2629,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2602\"]]"); + "2602\"]]"); p = add_epsg_def (filter, first, last, 2603, "epsg", 2603, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -2667,9 +2663,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2603\"]]"); + "2603\"]]"); p = add_epsg_def (filter, first, last, 2604, "epsg", 2604, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -2701,9 +2697,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2604\"]]"); + "2604\"]]"); p = add_epsg_def (filter, first, last, 2605, "epsg", 2605, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -2735,9 +2731,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2605\"]]"); + "2605\"]]"); p = add_epsg_def (filter, first, last, 2606, "epsg", 2606, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -2769,9 +2765,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2606\"]]"); + "2606\"]]"); p = add_epsg_def (filter, first, last, 2607, "epsg", 2607, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -2803,9 +2799,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2607\"]]"); + "2607\"]]"); p = add_epsg_def (filter, first, last, 2608, "epsg", 2608, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -2837,9 +2833,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2608\"]]"); + "2608\"]]"); p = add_epsg_def (filter, first, last, 2609, "epsg", 2609, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -2871,9 +2867,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2609\"]]"); + "2609\"]]"); p = add_epsg_def (filter, first, last, 2610, "epsg", 2610, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -2905,9 +2901,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2610\"]]"); + "\"2610\"]]"); p = add_epsg_def (filter, first, last, 2611, "epsg", 2611, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -2939,9 +2935,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2611\"]]"); + "\"2611\"]]"); p = add_epsg_def (filter, first, last, 2612, "epsg", 2612, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -2973,9 +2969,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2612\"]]"); + "\"2612\"]]"); p = add_epsg_def (filter, first, last, 2613, "epsg", 2613, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -3007,9 +3003,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2613\"]]"); + "\"2613\"]]"); p = add_epsg_def (filter, first, last, 2614, "epsg", 2614, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -3041,9 +3037,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2614\"]]"); + "\"2614\"]]"); p = add_epsg_def (filter, first, last, 2615, "epsg", 2615, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -3075,9 +3071,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2615\"]]"); + "\"2615\"]]"); p = add_epsg_def (filter, first, last, 2616, "epsg", 2616, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -3109,9 +3105,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2616\"]]"); + "\"2616\"]]"); p = add_epsg_def (filter, first, last, 2617, "epsg", 2617, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -3143,9 +3139,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2617\"]]"); + "\"2617\"]]"); p = add_epsg_def (filter, first, last, 2618, "epsg", 2618, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -3177,9 +3173,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2618\"]]"); + "\"2618\"]]"); p = add_epsg_def (filter, first, last, 2619, "epsg", 2619, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -3211,9 +3207,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2619\"]]"); + "\"2619\"]]"); p = add_epsg_def (filter, first, last, 2620, "epsg", 2620, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, @@ -3245,9 +3241,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2620\"]]"); + "\"2620\"]]"); p = add_epsg_def (filter, first, last, 2621, "epsg", 2621, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -3279,9 +3275,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2621\"]]"); + "\"2621\"]]"); p = add_epsg_def (filter, first, last, 2622, "epsg", 2622, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E"); add_proj4text (p, 0, @@ -3313,9 +3309,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2622\"]]"); + "\"2622\"]]"); p = add_epsg_def (filter, first, last, 2623, "epsg", 2623, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E"); add_proj4text (p, 0, @@ -3347,9 +3343,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2623\"]]"); + "\"2623\"]]"); p = add_epsg_def (filter, first, last, 2624, "epsg", 2624, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E"); add_proj4text (p, 0, @@ -3381,9 +3377,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2624\"]]"); + "\"2624\"]]"); p = add_epsg_def (filter, first, last, 2625, "epsg", 2625, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E"); add_proj4text (p, 0, @@ -3415,9 +3411,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2625\"]]"); + "\"2625\"]]"); p = add_epsg_def (filter, first, last, 2626, "epsg", 2626, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E"); add_proj4text (p, 0, @@ -3449,9 +3445,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2626\"]]"); + "\"2626\"]]"); p = add_epsg_def (filter, first, last, 2627, "epsg", 2627, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E"); add_proj4text (p, 0, @@ -3483,9 +3479,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2627\"]]"); + "\"2627\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_06.c b/src/spatialite/src/srsinit/epsg_inlined_06.c index 0f5d3fa..43cd909 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_06.c +++ b/src/spatialite/src/srsinit/epsg_inlined_06.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -83,9 +83,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2628\"]]"); + "\"2628\"]]"); p = add_epsg_def (filter, first, last, 2629, "epsg", 2629, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E"); add_proj4text (p, 0, @@ -117,9 +117,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2629\"]]"); + "\"2629\"]]"); p = add_epsg_def (filter, first, last, 2630, "epsg", 2630, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E"); add_proj4text (p, 0, @@ -151,9 +151,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2630\"]]"); + "\"2630\"]]"); p = add_epsg_def (filter, first, last, 2631, "epsg", 2631, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E"); add_proj4text (p, 0, @@ -185,9 +185,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2631\"]]"); + "\"2631\"]]"); p = add_epsg_def (filter, first, last, 2632, "epsg", 2632, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E"); add_proj4text (p, 0, @@ -219,9 +219,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2632\"]]"); + "\"2632\"]]"); p = add_epsg_def (filter, first, last, 2633, "epsg", 2633, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E"); add_proj4text (p, 0, @@ -253,9 +253,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2633\"]]"); + "\"2633\"]]"); p = add_epsg_def (filter, first, last, 2634, "epsg", 2634, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E"); add_proj4text (p, 0, @@ -287,9 +287,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2634\"]]"); + "\"2634\"]]"); p = add_epsg_def (filter, first, last, 2635, "epsg", 2635, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E"); add_proj4text (p, 0, @@ -321,9 +321,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2635\"]]"); + "\"2635\"]]"); p = add_epsg_def (filter, first, last, 2636, "epsg", 2636, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E"); add_proj4text (p, 0, @@ -355,9 +355,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2636\"]]"); + "\"2636\"]]"); p = add_epsg_def (filter, first, last, 2637, "epsg", 2637, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W"); add_proj4text (p, 0, @@ -389,9 +389,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2637\"]]"); + ",\"2637\"]]"); p = add_epsg_def (filter, first, last, 2638, "epsg", 2638, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W"); add_proj4text (p, 0, @@ -423,9 +423,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2638\"]]"); + ",\"2638\"]]"); p = add_epsg_def (filter, first, last, 2639, "epsg", 2639, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W"); add_proj4text (p, 0, @@ -457,9 +457,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2639\"]]"); + ",\"2639\"]]"); p = add_epsg_def (filter, first, last, 2640, "epsg", 2640, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W"); add_proj4text (p, 0, @@ -491,9 +491,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2640\"]]"); + ",\"2640\"]]"); p = add_epsg_def (filter, first, last, 2641, "epsg", 2641, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, @@ -525,9 +525,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2641\"]]"); + "2641\"]]"); p = add_epsg_def (filter, first, last, 2642, "epsg", 2642, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, @@ -559,9 +559,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2642\"]]"); + "2642\"]]"); p = add_epsg_def (filter, first, last, 2643, "epsg", 2643, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, @@ -593,9 +593,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2643\"]]"); + "2643\"]]"); p = add_epsg_def (filter, first, last, 2644, "epsg", 2644, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, @@ -627,9 +627,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2644\"]]"); + ",\"2644\"]]"); p = add_epsg_def (filter, first, last, 2645, "epsg", 2645, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, @@ -661,9 +661,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2645\"]]"); + ",\"2645\"]]"); p = add_epsg_def (filter, first, last, 2646, "epsg", 2646, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, @@ -695,9 +695,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2646\"]]"); + ",\"2646\"]]"); p = add_epsg_def (filter, first, last, 2647, "epsg", 2647, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, @@ -729,9 +729,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2647\"]]"); + ",\"2647\"]]"); p = add_epsg_def (filter, first, last, 2648, "epsg", 2648, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -763,9 +763,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2648\"]]"); + ",\"2648\"]]"); p = add_epsg_def (filter, first, last, 2649, "epsg", 2649, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -797,9 +797,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2649\"]]"); + ",\"2649\"]]"); p = add_epsg_def (filter, first, last, 2650, "epsg", 2650, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 16"); add_proj4text (p, 0, @@ -831,9 +831,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2650\"]]"); + ",\"2650\"]]"); p = add_epsg_def (filter, first, last, 2651, "epsg", 2651, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 17"); add_proj4text (p, 0, @@ -865,9 +865,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2651\"]]"); + ",\"2651\"]]"); p = add_epsg_def (filter, first, last, 2652, "epsg", 2652, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 18"); add_proj4text (p, 0, @@ -899,9 +899,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2652\"]]"); + ",\"2652\"]]"); p = add_epsg_def (filter, first, last, 2653, "epsg", 2653, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -933,9 +933,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2653\"]]"); + ",\"2653\"]]"); p = add_epsg_def (filter, first, last, 2654, "epsg", 2654, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 20"); add_proj4text (p, 0, @@ -967,9 +967,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2654\"]]"); + ",\"2654\"]]"); p = add_epsg_def (filter, first, last, 2655, "epsg", 2655, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 21"); add_proj4text (p, 0, @@ -1001,9 +1001,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2655\"]]"); + ",\"2655\"]]"); p = add_epsg_def (filter, first, last, 2656, "epsg", 2656, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 22"); add_proj4text (p, 0, @@ -1035,9 +1035,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2656\"]]"); + ",\"2656\"]]"); p = add_epsg_def (filter, first, last, 2657, "epsg", 2657, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 23"); add_proj4text (p, 0, @@ -1069,9 +1069,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2657\"]]"); + ",\"2657\"]]"); p = add_epsg_def (filter, first, last, 2658, "epsg", 2658, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 24"); add_proj4text (p, 0, @@ -1103,9 +1103,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2658\"]]"); + ",\"2658\"]]"); p = add_epsg_def (filter, first, last, 2659, "epsg", 2659, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -1137,9 +1137,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2659\"]]"); + ",\"2659\"]]"); p = add_epsg_def (filter, first, last, 2660, "epsg", 2660, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -1171,9 +1171,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2660\"]]"); + ",\"2660\"]]"); p = add_epsg_def (filter, first, last, 2661, "epsg", 2661, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -1205,9 +1205,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2661\"]]"); + ",\"2661\"]]"); p = add_epsg_def (filter, first, last, 2662, "epsg", 2662, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, @@ -1239,9 +1239,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2662\"]]"); + ",\"2662\"]]"); p = add_epsg_def (filter, first, last, 2663, "epsg", 2663, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -1273,9 +1273,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2663\"]]"); + ",\"2663\"]]"); p = add_epsg_def (filter, first, last, 2664, "epsg", 2664, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, @@ -1307,9 +1307,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2664\"]]"); + ",\"2664\"]]"); p = add_epsg_def (filter, first, last, 2665, "epsg", 2665, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -1341,9 +1341,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2665\"]]"); + ",\"2665\"]]"); p = add_epsg_def (filter, first, last, 2666, "epsg", 2666, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -1375,9 +1375,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2666\"]]"); + ",\"2666\"]]"); p = add_epsg_def (filter, first, last, 2667, "epsg", 2667, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -1409,9 +1409,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2667\"]]"); + ",\"2667\"]]"); p = add_epsg_def (filter, first, last, 2668, "epsg", 2668, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, @@ -1443,9 +1443,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2668\"]]"); + ",\"2668\"]]"); p = add_epsg_def (filter, first, last, 2669, "epsg", 2669, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -1477,9 +1477,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2669\"]]"); + ",\"2669\"]]"); p = add_epsg_def (filter, first, last, 2670, "epsg", 2670, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -1511,9 +1511,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2670\"]]"); + ",\"2670\"]]"); p = add_epsg_def (filter, first, last, 2671, "epsg", 2671, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -1545,9 +1545,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2671\"]]"); + ",\"2671\"]]"); p = add_epsg_def (filter, first, last, 2672, "epsg", 2672, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -1579,9 +1579,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2672\"]]"); + ",\"2672\"]]"); p = add_epsg_def (filter, first, last, 2673, "epsg", 2673, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -1613,9 +1613,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2673\"]]"); + ",\"2673\"]]"); p = add_epsg_def (filter, first, last, 2674, "epsg", 2674, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -1647,9 +1647,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2674\"]]"); + ",\"2674\"]]"); p = add_epsg_def (filter, first, last, 2675, "epsg", 2675, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -1681,9 +1681,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2675\"]]"); + ",\"2675\"]]"); p = add_epsg_def (filter, first, last, 2676, "epsg", 2676, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, @@ -1715,9 +1715,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2676\"]]"); + ",\"2676\"]]"); p = add_epsg_def (filter, first, last, 2677, "epsg", 2677, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -1749,9 +1749,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2677\"]]"); + ",\"2677\"]]"); p = add_epsg_def (filter, first, last, 2678, "epsg", 2678, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -1783,9 +1783,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2678\"]]"); + ",\"2678\"]]"); p = add_epsg_def (filter, first, last, 2679, "epsg", 2679, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -1817,9 +1817,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2679\"]]"); + ",\"2679\"]]"); p = add_epsg_def (filter, first, last, 2680, "epsg", 2680, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 46"); add_proj4text (p, 0, @@ -1851,9 +1851,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2680\"]]"); + ",\"2680\"]]"); p = add_epsg_def (filter, first, last, 2681, "epsg", 2681, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 47"); add_proj4text (p, 0, @@ -1885,9 +1885,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2681\"]]"); + ",\"2681\"]]"); p = add_epsg_def (filter, first, last, 2682, "epsg", 2682, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 48"); add_proj4text (p, 0, @@ -1919,9 +1919,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2682\"]]"); + ",\"2682\"]]"); p = add_epsg_def (filter, first, last, 2683, "epsg", 2683, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 49"); add_proj4text (p, 0, @@ -1953,9 +1953,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2683\"]]"); + ",\"2683\"]]"); p = add_epsg_def (filter, first, last, 2684, "epsg", 2684, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 50"); add_proj4text (p, 0, @@ -1987,9 +1987,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2684\"]]"); + ",\"2684\"]]"); p = add_epsg_def (filter, first, last, 2685, "epsg", 2685, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 51"); add_proj4text (p, 0, @@ -2021,9 +2021,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2685\"]]"); + ",\"2685\"]]"); p = add_epsg_def (filter, first, last, 2686, "epsg", 2686, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 52"); add_proj4text (p, 0, @@ -2055,9 +2055,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2686\"]]"); + ",\"2686\"]]"); p = add_epsg_def (filter, first, last, 2687, "epsg", 2687, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 53"); add_proj4text (p, 0, @@ -2089,9 +2089,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2687\"]]"); + ",\"2687\"]]"); p = add_epsg_def (filter, first, last, 2688, "epsg", 2688, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 54"); add_proj4text (p, 0, @@ -2123,9 +2123,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2688\"]]"); + ",\"2688\"]]"); p = add_epsg_def (filter, first, last, 2689, "epsg", 2689, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 55"); add_proj4text (p, 0, @@ -2157,9 +2157,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2689\"]]"); + ",\"2689\"]]"); p = add_epsg_def (filter, first, last, 2690, "epsg", 2690, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 56"); add_proj4text (p, 0, @@ -2191,9 +2191,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2690\"]]"); + ",\"2690\"]]"); p = add_epsg_def (filter, first, last, 2691, "epsg", 2691, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 57"); add_proj4text (p, 0, @@ -2225,9 +2225,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2691\"]]"); + ",\"2691\"]]"); p = add_epsg_def (filter, first, last, 2692, "epsg", 2692, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 58"); add_proj4text (p, 0, @@ -2259,9 +2259,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2692\"]]"); + ",\"2692\"]]"); p = add_epsg_def (filter, first, last, 2693, "epsg", 2693, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 59"); add_proj4text (p, 0, @@ -2293,9 +2293,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2693\"]]"); + ",\"2693\"]]"); p = add_epsg_def (filter, first, last, 2694, "epsg", 2694, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)"); add_proj4text (p, 0, @@ -2327,11 +2327,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "R[\"false_easting\",60000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"269"); - add_srs_wkt (p, 13, - "4\"]]"); + "HORITY[\"EPSG\",\"2694\"]]"); p = add_epsg_def (filter, first, last, 2695, "epsg", 2695, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 61"); add_proj4text (p, 0, @@ -2363,9 +2361,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2695\"]]"); + "\",\"2695\"]]"); p = add_epsg_def (filter, first, last, 2696, "epsg", 2696, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 62"); add_proj4text (p, 0, @@ -2397,9 +2395,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2696\"]]"); + "\",\"2696\"]]"); p = add_epsg_def (filter, first, last, 2697, "epsg", 2697, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 63"); add_proj4text (p, 0, @@ -2431,9 +2429,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2697\"]]"); + "\",\"2697\"]]"); p = add_epsg_def (filter, first, last, 2698, "epsg", 2698, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 64"); add_proj4text (p, 0, @@ -2465,9 +2463,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2698\"]]"); + "\",\"2698\"]]"); p = add_epsg_def (filter, first, last, 2699, "epsg", 2699, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E"); add_proj4text (p, 0, @@ -2499,9 +2497,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2699\"]]"); + "2699\"]]"); p = add_epsg_def (filter, first, last, 2700, "epsg", 2700, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E"); add_proj4text (p, 0, @@ -2533,9 +2531,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2700\"]]"); + "2700\"]]"); p = add_epsg_def (filter, first, last, 2701, "epsg", 2701, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E"); add_proj4text (p, 0, @@ -2567,9 +2565,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2701\"]]"); + "2701\"]]"); p = add_epsg_def (filter, first, last, 2702, "epsg", 2702, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E"); add_proj4text (p, 0, @@ -2601,9 +2599,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2702\"]]"); + "2702\"]]"); p = add_epsg_def (filter, first, last, 2703, "epsg", 2703, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E"); add_proj4text (p, 0, @@ -2635,9 +2633,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2703\"]]"); + "2703\"]]"); p = add_epsg_def (filter, first, last, 2704, "epsg", 2704, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E"); add_proj4text (p, 0, @@ -2669,9 +2667,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2704\"]]"); + "2704\"]]"); p = add_epsg_def (filter, first, last, 2705, "epsg", 2705, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E"); add_proj4text (p, 0, @@ -2703,9 +2701,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2705\"]]"); + "2705\"]]"); p = add_epsg_def (filter, first, last, 2706, "epsg", 2706, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E"); add_proj4text (p, 0, @@ -2737,9 +2735,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2706\"]]"); + "2706\"]]"); p = add_epsg_def (filter, first, last, 2707, "epsg", 2707, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E"); add_proj4text (p, 0, @@ -2771,9 +2769,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2707\"]]"); + "2707\"]]"); p = add_epsg_def (filter, first, last, 2708, "epsg", 2708, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E"); add_proj4text (p, 0, @@ -2805,9 +2803,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2708\"]]"); + "2708\"]]"); p = add_epsg_def (filter, first, last, 2709, "epsg", 2709, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E"); add_proj4text (p, 0, @@ -2839,9 +2837,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2709\"]]"); + "2709\"]]"); p = add_epsg_def (filter, first, last, 2710, "epsg", 2710, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E"); add_proj4text (p, 0, @@ -2873,9 +2871,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2710\"]]"); + "2710\"]]"); p = add_epsg_def (filter, first, last, 2711, "epsg", 2711, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E"); add_proj4text (p, 0, @@ -2907,9 +2905,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2711\"]]"); + "2711\"]]"); p = add_epsg_def (filter, first, last, 2712, "epsg", 2712, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E"); add_proj4text (p, 0, @@ -2941,9 +2939,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2712\"]]"); + "2712\"]]"); p = add_epsg_def (filter, first, last, 2713, "epsg", 2713, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E"); add_proj4text (p, 0, @@ -2975,9 +2973,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2713\"]]"); + "2713\"]]"); p = add_epsg_def (filter, first, last, 2714, "epsg", 2714, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E"); add_proj4text (p, 0, @@ -3009,9 +3007,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2714\"]]"); + "2714\"]]"); p = add_epsg_def (filter, first, last, 2715, "epsg", 2715, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E"); add_proj4text (p, 0, @@ -3043,9 +3041,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2715\"]]"); + "2715\"]]"); p = add_epsg_def (filter, first, last, 2716, "epsg", 2716, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E"); add_proj4text (p, 0, @@ -3077,9 +3075,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2716\"]]"); + "2716\"]]"); p = add_epsg_def (filter, first, last, 2717, "epsg", 2717, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -3111,9 +3109,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2717\"]]"); + "2717\"]]"); p = add_epsg_def (filter, first, last, 2718, "epsg", 2718, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -3145,9 +3143,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2718\"]]"); + "2718\"]]"); p = add_epsg_def (filter, first, last, 2719, "epsg", 2719, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -3179,9 +3177,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2719\"]]"); + "2719\"]]"); p = add_epsg_def (filter, first, last, 2720, "epsg", 2720, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -3213,9 +3211,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2720\"]]"); + "2720\"]]"); p = add_epsg_def (filter, first, last, 2721, "epsg", 2721, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -3247,9 +3245,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2721\"]]"); + "2721\"]]"); p = add_epsg_def (filter, first, last, 2722, "epsg", 2722, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -3281,9 +3279,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2722\"]]"); + "2722\"]]"); p = add_epsg_def (filter, first, last, 2723, "epsg", 2723, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -3315,9 +3313,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2723\"]]"); + "2723\"]]"); p = add_epsg_def (filter, first, last, 2724, "epsg", 2724, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -3349,9 +3347,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2724\"]]"); + "2724\"]]"); p = add_epsg_def (filter, first, last, 2725, "epsg", 2725, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -3383,9 +3381,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2725\"]]"); + "2725\"]]"); p = add_epsg_def (filter, first, last, 2726, "epsg", 2726, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -3417,9 +3415,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2726\"]]"); + "\"2726\"]]"); p = add_epsg_def (filter, first, last, 2727, "epsg", 2727, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -3451,9 +3449,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2727\"]]"); + "\"2727\"]]"); p = add_epsg_def (filter, first, last, 2728, "epsg", 2728, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -3485,9 +3483,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2728\"]]"); + "\"2728\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_07.c b/src/spatialite/src/srsinit/epsg_inlined_07.c index 2347f74..e1cda86 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_07.c +++ b/src/spatialite/src/srsinit/epsg_inlined_07.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -83,9 +83,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2729\"]]"); + "\"2729\"]]"); p = add_epsg_def (filter, first, last, 2730, "epsg", 2730, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -117,9 +117,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2730\"]]"); + "\"2730\"]]"); p = add_epsg_def (filter, first, last, 2731, "epsg", 2731, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -151,9 +151,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2731\"]]"); + "\"2731\"]]"); p = add_epsg_def (filter, first, last, 2732, "epsg", 2732, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -185,9 +185,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2732\"]]"); + "\"2732\"]]"); p = add_epsg_def (filter, first, last, 2733, "epsg", 2733, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -219,9 +219,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2733\"]]"); + "\"2733\"]]"); p = add_epsg_def (filter, first, last, 2734, "epsg", 2734, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -253,9 +253,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2734\"]]"); + "\"2734\"]]"); p = add_epsg_def (filter, first, last, 2735, "epsg", 2735, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -287,77 +287,77 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2735\"]]"); + "\"2735\"]]"); p = add_epsg_def (filter, first, last, 2736, "epsg", 2736, "Tete / UTM zone 36S"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=219.315"); + "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=-73.472"); add_proj4text (p, 1, - ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n"); + ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def"); add_proj4text (p, 2, - "o_defs"); + "s"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 36S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, - "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); + "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390"); add_srs_wkt (p, 2, - "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975"); + "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,"); add_srs_wkt (p, 3, - ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\""); + "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, - ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); + "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]"); p = add_epsg_def (filter, first, last, 2737, "epsg", 2737, "Tete / UTM zone 37S"); add_proj4text (p, 0, - "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=219.315"); + "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=-73.472"); add_proj4text (p, 1, - ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n"); + ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def"); add_proj4text (p, 2, - "o_defs"); + "s"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 37S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, - "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); + "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390"); add_srs_wkt (p, 2, - "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975"); + "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,"); add_srs_wkt (p, 3, - ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\""); + "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, - ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); + "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]"); p = add_epsg_def (filter, first, last, 2738, "epsg", 2738, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, @@ -389,9 +389,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2738\"]]"); + "\"2738\"]]"); p = add_epsg_def (filter, first, last, 2739, "epsg", 2739, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -423,9 +423,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2739\"]]"); + "\"2739\"]]"); p = add_epsg_def (filter, first, last, 2740, "epsg", 2740, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E"); add_proj4text (p, 0, @@ -457,9 +457,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2740\"]]"); + "\"2740\"]]"); p = add_epsg_def (filter, first, last, 2741, "epsg", 2741, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E"); add_proj4text (p, 0, @@ -491,9 +491,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2741\"]]"); + "\"2741\"]]"); p = add_epsg_def (filter, first, last, 2742, "epsg", 2742, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E"); add_proj4text (p, 0, @@ -525,9 +525,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2742\"]]"); + "\"2742\"]]"); p = add_epsg_def (filter, first, last, 2743, "epsg", 2743, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E"); add_proj4text (p, 0, @@ -559,9 +559,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2743\"]]"); + "\"2743\"]]"); p = add_epsg_def (filter, first, last, 2744, "epsg", 2744, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E"); add_proj4text (p, 0, @@ -593,9 +593,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2744\"]]"); + "\"2744\"]]"); p = add_epsg_def (filter, first, last, 2745, "epsg", 2745, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E"); add_proj4text (p, 0, @@ -627,9 +627,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2745\"]]"); + "\"2745\"]]"); p = add_epsg_def (filter, first, last, 2746, "epsg", 2746, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E"); add_proj4text (p, 0, @@ -661,9 +661,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2746\"]]"); + "\"2746\"]]"); p = add_epsg_def (filter, first, last, 2747, "epsg", 2747, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E"); add_proj4text (p, 0, @@ -695,9 +695,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2747\"]]"); + "\"2747\"]]"); p = add_epsg_def (filter, first, last, 2748, "epsg", 2748, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E"); add_proj4text (p, 0, @@ -729,9 +729,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2748\"]]"); + "\"2748\"]]"); p = add_epsg_def (filter, first, last, 2749, "epsg", 2749, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E"); add_proj4text (p, 0, @@ -763,9 +763,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2749\"]]"); + "\"2749\"]]"); p = add_epsg_def (filter, first, last, 2750, "epsg", 2750, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E"); add_proj4text (p, 0, @@ -797,9 +797,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2750\"]]"); + "\"2750\"]]"); p = add_epsg_def (filter, first, last, 2751, "epsg", 2751, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E"); add_proj4text (p, 0, @@ -831,9 +831,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2751\"]]"); + "\"2751\"]]"); p = add_epsg_def (filter, first, last, 2752, "epsg", 2752, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E"); add_proj4text (p, 0, @@ -865,9 +865,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2752\"]]"); + "\"2752\"]]"); p = add_epsg_def (filter, first, last, 2753, "epsg", 2753, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E"); add_proj4text (p, 0, @@ -899,9 +899,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2753\"]]"); + "\"2753\"]]"); p = add_epsg_def (filter, first, last, 2754, "epsg", 2754, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E"); add_proj4text (p, 0, @@ -933,9 +933,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2754\"]]"); + "\"2754\"]]"); p = add_epsg_def (filter, first, last, 2755, "epsg", 2755, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W"); add_proj4text (p, 0, @@ -967,9 +967,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2755\"]]"); + ",\"2755\"]]"); p = add_epsg_def (filter, first, last, 2756, "epsg", 2756, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W"); add_proj4text (p, 0, @@ -1001,9 +1001,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2756\"]]"); + ",\"2756\"]]"); p = add_epsg_def (filter, first, last, 2757, "epsg", 2757, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W"); add_proj4text (p, 0, @@ -1035,9 +1035,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2757\"]]"); + ",\"2757\"]]"); p = add_epsg_def (filter, first, last, 2758, "epsg", 2758, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W"); add_proj4text (p, 0, @@ -1069,9 +1069,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2758\"]]"); + ",\"2758\"]]"); p = add_epsg_def (filter, first, last, 2759, "epsg", 2759, "NAD83(HARN) / Alabama East"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_08.c b/src/spatialite/src/srsinit/epsg_inlined_08.c index b0be7fe..431dc41 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_08.c +++ b/src/spatialite/src/srsinit/epsg_inlined_08.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it diff --git a/src/spatialite/src/srsinit/epsg_inlined_09.c b/src/spatialite/src/srsinit/epsg_inlined_09.c index b2e6f07..1a02152 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_09.c +++ b/src/spatialite/src/srsinit/epsg_inlined_09.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -65,7 +65,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"Beduaram\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, - "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); + "93.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "106,-87,188,0,0,0,0],AUTHORITY[\"EPSG\",\"6213\"]],PRIME"); add_srs_wkt (p, 4, @@ -221,11 +221,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",1300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); - add_srs_wkt (p, 13, - "5\"]]"); + "HORITY[\"EPSG\",\"2935\"]]"); p = add_epsg_def (filter, first, last, 2936, "epsg", 2936, "Pulkovo 1942 / CS63 zone A2"); add_proj4text (p, 0, @@ -257,11 +255,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",2300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); - add_srs_wkt (p, 13, - "6\"]]"); + "HORITY[\"EPSG\",\"2936\"]]"); p = add_epsg_def (filter, first, last, 2937, "epsg", 2937, "Pulkovo 1942 / CS63 zone A3"); add_proj4text (p, 0, @@ -293,11 +289,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",3300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); - add_srs_wkt (p, 13, - "7\"]]"); + "HORITY[\"EPSG\",\"2937\"]]"); p = add_epsg_def (filter, first, last, 2938, "epsg", 2938, "Pulkovo 1942 / CS63 zone A4"); add_proj4text (p, 0, @@ -329,11 +323,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",4300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); - add_srs_wkt (p, 13, - "8\"]]"); + "HORITY[\"EPSG\",\"2938\"]]"); p = add_epsg_def (filter, first, last, 2939, "epsg", 2939, "Pulkovo 1942 / CS63 zone K2"); add_proj4text (p, 0, @@ -365,11 +357,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",2300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); - add_srs_wkt (p, 13, - "9\"]]"); + "HORITY[\"EPSG\",\"2939\"]]"); p = add_epsg_def (filter, first, last, 2940, "epsg", 2940, "Pulkovo 1942 / CS63 zone K3"); add_proj4text (p, 0, @@ -401,11 +391,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",3300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294"); - add_srs_wkt (p, 13, - "0\"]]"); + "HORITY[\"EPSG\",\"2940\"]]"); p = add_epsg_def (filter, first, last, 2941, "epsg", 2941, "Pulkovo 1942 / CS63 zone K4"); add_proj4text (p, 0, @@ -437,11 +425,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",4300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294"); - add_srs_wkt (p, 13, - "1\"]]"); + "HORITY[\"EPSG\",\"2941\"]]"); p = add_epsg_def (filter, first, last, 2942, "epsg", 2942, "Porto Santo / UTM zone 28N"); add_proj4text (p, 0, @@ -845,9 +831,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"2953\"]]"); + "]],AUTHORITY[\"EPSG\",\"2953\"]]"); p = add_epsg_def (filter, first, last, 2954, "epsg", 2954, "NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)"); add_proj4text (p, 0, @@ -1151,7 +1135,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -1825,7 +1809,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 3, - "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); + "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 4, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 5, @@ -2479,9 +2463,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3006\"]]"); + "06\"]]"); p = add_epsg_def (filter, first, last, 3007, "epsg", 3007, "SWEREF99 12 00"); add_proj4text (p, 0, @@ -2509,9 +2493,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3007"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3007\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3008, "epsg", 3008, "SWEREF99 13 30"); add_proj4text (p, 0, @@ -2539,9 +2523,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"300"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3008\"]]"); + "8\"]]"); p = add_epsg_def (filter, first, last, 3009, "epsg", 3009, "SWEREF99 15 00"); add_proj4text (p, 0, @@ -2569,9 +2553,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3009"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3009\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3010, "epsg", 3010, "SWEREF99 16 30"); add_proj4text (p, 0, @@ -2599,9 +2583,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3010\"]]"); + "0\"]]"); p = add_epsg_def (filter, first, last, 3011, "epsg", 3011, "SWEREF99 18 00"); add_proj4text (p, 0, @@ -2629,9 +2613,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3011"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3011\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3012, "epsg", 3012, "SWEREF99 14 15"); add_proj4text (p, 0, @@ -2659,9 +2643,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3012\"]]"); + "12\"]]"); p = add_epsg_def (filter, first, last, 3013, "epsg", 3013, "SWEREF99 15 45"); add_proj4text (p, 0, @@ -2689,9 +2673,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3013\"]]"); + "13\"]]"); p = add_epsg_def (filter, first, last, 3014, "epsg", 3014, "SWEREF99 17 15"); add_proj4text (p, 0, @@ -2719,9 +2703,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3014\"]]"); + "14\"]]"); p = add_epsg_def (filter, first, last, 3015, "epsg", 3015, "SWEREF99 18 45"); add_proj4text (p, 0, @@ -2749,9 +2733,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3015\"]]"); + "15\"]]"); p = add_epsg_def (filter, first, last, 3016, "epsg", 3016, "SWEREF99 20 15"); add_proj4text (p, 0, @@ -2779,9 +2763,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3016\"]]"); + "16\"]]"); p = add_epsg_def (filter, first, last, 3017, "epsg", 3017, "SWEREF99 21 45"); add_proj4text (p, 0, @@ -2809,9 +2793,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3017\"]]"); + "17\"]]"); p = add_epsg_def (filter, first, last, 3018, "epsg", 3018, "SWEREF99 23 15"); add_proj4text (p, 0, @@ -2839,9 +2823,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30"); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3018\"]]"); + "18\"]]"); p = add_epsg_def (filter, first, last, 3019, "epsg", 3019, "RT90 7.5 gon V"); add_proj4text (p, 0, @@ -2873,9 +2857,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3019\"]]"); + "3019\"]]"); p = add_epsg_def (filter, first, last, 3020, "epsg", 3020, "RT90 5 gon V"); add_proj4text (p, 0, @@ -2907,9 +2891,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3020\"]]"); + "3020\"]]"); p = add_epsg_def (filter, first, last, 3021, "epsg", 3021, "RT90 2.5 gon V"); add_proj4text (p, 0, @@ -2941,9 +2925,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3021\"]]"); + "3021\"]]"); p = add_epsg_def (filter, first, last, 3022, "epsg", 3022, "RT90 0 gon"); add_proj4text (p, 0, @@ -2975,9 +2959,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"302"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3022\"]]"); + "2\"]]"); p = add_epsg_def (filter, first, last, 3023, "epsg", 3023, "RT90 2.5 gon O"); add_proj4text (p, 0, @@ -3009,9 +2993,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3023\"]]"); + "3023\"]]"); p = add_epsg_def (filter, first, last, 3024, "epsg", 3024, "RT90 5 gon O"); add_proj4text (p, 0, @@ -3043,9 +3027,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3024\"]]"); + "3024\"]]"); p = add_epsg_def (filter, first, last, 3025, "epsg", 3025, "RT38 7.5 gon V"); add_proj4text (p, 0, @@ -3073,9 +3057,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3025"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3025\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3026, "epsg", 3026, "RT38 5 gon V"); add_proj4text (p, 0, @@ -3103,9 +3087,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3026\""); add_srs_wkt (p, 11, - "\",EAST],AUTHORITY[\"EPSG\",\"3026\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3027, "epsg", 3027, "RT38 2.5 gon V"); add_proj4text (p, 0, @@ -3133,9 +3117,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3027"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3027\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3028, "epsg", 3028, "RT38 0 gon"); add_proj4text (p, 0, @@ -3163,9 +3147,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 11, - "EAST],AUTHORITY[\"EPSG\",\"3028\"]]"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3028\"]]"); p = add_epsg_def (filter, first, last, 3029, "epsg", 3029, "RT38 2.5 gon O"); add_proj4text (p, 0, @@ -3193,9 +3175,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3029"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3029\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3030, "epsg", 3030, "RT38 5 gon O"); add_proj4text (p, 0, @@ -3223,9 +3205,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3030\""); add_srs_wkt (p, 11, - "\",EAST],AUTHORITY[\"EPSG\",\"3030\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3031, "epsg", 3031, "WGS 84 / Antarctic Polar Stereographic"); add_proj4text (p, 0, @@ -3357,9 +3339,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "false_northing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); - add_srs_wkt (p, 13, - "\",EAST],AUTHORITY[\"EPSG\",\"3034\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3034\"]]"); p = add_epsg_def (filter, first, last, 3035, "epsg", 3035, "ETRS89 / LAEA Europe"); add_proj4text (p, 0, @@ -3389,9 +3369,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",3210000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"3035\"]]"); + "]],AUTHORITY[\"EPSG\",\"3035\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_10.c b/src/spatialite/src/srsinit/epsg_inlined_10.c index 6a15682..004d6cd 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_10.c +++ b/src/spatialite/src/srsinit/epsg_inlined_10.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -117,453 +117,425 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "\"EPSG\",\"3037\"]]"); p = add_epsg_def (filter, first, last, 3038, "epsg", 3038, - "ETRS89 / TM26"); + "ETRS89 / TM26 (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM26\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / TM26 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-27],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",-27],PARAMETER[\""); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3038\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3038\"]]"); p = add_epsg_def (filter, first, last, 3039, "epsg", 3039, - "ETRS89 / TM27"); + "ETRS89 / TM27 (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM27\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / TM27 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",-21],PARAMETER[\""); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3039\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3039\"]]"); p = add_epsg_def (filter, first, last, 3040, "epsg", 3040, - "ETRS89 / TM28"); + "ETRS89 / UTM zone 28N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM28\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 28N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\""); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3040\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3040\"]]"); p = add_epsg_def (filter, first, last, 3041, "epsg", 3041, - "ETRS89 / TM29"); + "ETRS89 / UTM zone 29N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM29\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 29N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3041\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3041\"]]"); p = add_epsg_def (filter, first, last, 3042, "epsg", 3042, - "ETRS89 / TM30"); + "ETRS89 / UTM zone 30N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM30\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 30N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-3],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",-3],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3042\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3042\"]]"); p = add_epsg_def (filter, first, last, 3043, "epsg", 3043, - "ETRS89 / TM31"); + "ETRS89 / UTM zone 31N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM31\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 31N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",3],PARAMETER[\"scale_factor\","); + "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3043\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3043\"]]"); p = add_epsg_def (filter, first, last, 3044, "epsg", 3044, - "ETRS89 / TM32"); + "ETRS89 / UTM zone 32N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM32\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 32N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",9],PARAMETER[\"scale_factor\","); + "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3044\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3044\"]]"); p = add_epsg_def (filter, first, last, 3045, "epsg", 3045, - "ETRS89 / TM33"); + "ETRS89 / UTM zone 33N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM33\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 33N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3045\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3045\"]]"); p = add_epsg_def (filter, first, last, 3046, "epsg", 3046, - "ETRS89 / TM34"); + "ETRS89 / UTM zone 34N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM34\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 34N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3046\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3046\"]]"); p = add_epsg_def (filter, first, last, 3047, "epsg", 3047, - "ETRS89 / TM35"); + "ETRS89 / UTM zone 35N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM35\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 35N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3047\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3047\"]]"); p = add_epsg_def (filter, first, last, 3048, "epsg", 3048, - "ETRS89 / TM36"); + "ETRS89 / UTM zone 36N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM36\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 36N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3048\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3048\"]]"); p = add_epsg_def (filter, first, last, 3049, "epsg", 3049, - "ETRS89 / TM37"); + "ETRS89 / UTM zone 37N (N-E)"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM37\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / UTM zone 37N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3049\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3049\"]]"); p = add_epsg_def (filter, first, last, 3050, "epsg", 3050, - "ETRS89 / TM38"); + "ETRS89 / TM38 (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM38\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / TM38 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3050\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3050\"]]"); p = add_epsg_def (filter, first, last, 3051, "epsg", 3051, - "ETRS89 / TM39"); + "ETRS89 / TM39 (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM39\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); + "PROJCS[\"ETRS89 / TM39 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, - "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); + "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, - "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); + "in\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"s"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3051\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3051\"]]"); p = add_epsg_def (filter, first, last, 3054, "epsg", 3054, "Hjorsey 1955 / UTM zone 26N"); add_proj4text (p, 0, @@ -727,9 +699,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ting\",50000],PARAMETER[\"false_northing\",-7800000],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"3058\"]]"); + "EPSG\",\"3058\"]]"); p = add_epsg_def (filter, first, last, 3059, "epsg", 3059, "LKS92 / Latvia TM"); add_proj4text (p, 0, @@ -759,9 +731,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",-6000000],"); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3059\"]]"); + "[\"EPSG\",\"3059\"]]"); p = add_epsg_def (filter, first, last, 3060, "epsg", 3060, "IGN72 Grande Terre / UTM zone 58S"); add_proj4text (p, 0, @@ -1057,9 +1029,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",10000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3068\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"3068\"]]"); + "]"); p = add_epsg_def (filter, first, last, 3069, "epsg", 3069, "NAD27 / Wisconsin Transverse Mercator"); add_proj4text (p, 0, @@ -1071,7 +1043,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\""); add_srs_wkt (p, 2, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, @@ -1369,9 +1341,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, - "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); + "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, - "mma=337.25556 +datum=NAD83 +units=m +no_defs"); + "_uoff +gamma=337.25556 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Oblique Mercator\",GEOGCS[\"NA"); add_srs_wkt (p, 1, @@ -1407,11 +1379,11 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, - "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); + "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, - "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); + "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, - "=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Oblique Mercator\",GEOGC"); add_srs_wkt (p, 1, @@ -1455,7 +1427,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -2223,9 +2195,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 2, - "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); + "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900"); add_srs_wkt (p, 3, - "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); + "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, @@ -2343,9 +2315,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, - "0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=283.7,7"); + "0=0 +a=6377276.345 +b=6356075.41314024 +towgs84=283.7,73"); add_proj4text (p, 2, - "35.9,261.1,0,0,0,0 +units=m +no_defs"); + "5.9,261.1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Gulshan 303 / Bangladesh Transverse Mercator\","); add_srs_wkt (p, 1, @@ -2661,9 +2633,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); - add_srs_wkt (p, 13, - "\",EAST],AUTHORITY[\"EPSG\",\"3114\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3114\"]]"); p = add_epsg_def (filter, first, last, 3115, "epsg", 3115, "MAGNA-SIRGAS / Colombia West zone"); add_proj4text (p, 0, @@ -2697,9 +2667,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 13, - "EAST],AUTHORITY[\"EPSG\",\"3115\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3115\"]]"); p = add_epsg_def (filter, first, last, 3116, "epsg", 3116, "MAGNA-SIRGAS / Colombia Bogota zone"); add_proj4text (p, 0, @@ -2733,9 +2701,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "alse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"3116\"]]"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3116\"]]"); p = add_epsg_def (filter, first, last, 3117, "epsg", 3117, "MAGNA-SIRGAS / Colombia East Central zone"); add_proj4text (p, 0, @@ -2769,9 +2735,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); - add_srs_wkt (p, 13, - "sting\",EAST],AUTHORITY[\"EPSG\",\"3117\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3117\"]]"); p = add_epsg_def (filter, first, last, 3118, "epsg", 3118, "MAGNA-SIRGAS / Colombia East zone"); add_proj4text (p, 0, @@ -2805,9 +2769,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 13, - "EAST],AUTHORITY[\"EPSG\",\"3118\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3118\"]]"); p = add_epsg_def (filter, first, last, 3119, "epsg", 3119, "Douala 1948 / AEF west"); add_proj4text (p, 0, @@ -2877,9 +2839,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "lse_northing\",5467000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); - add_srs_wkt (p, 13, - "ITY[\"EPSG\",\"3120\"]]"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"3120\"]]"); p = add_epsg_def (filter, first, last, 3121, "epsg", 3121, "PRS92 / Philippines zone 1"); add_proj4text (p, 0, @@ -2893,7 +2853,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, @@ -2929,7 +2889,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, @@ -2965,7 +2925,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, @@ -3001,7 +2961,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, @@ -3037,7 +2997,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, @@ -3089,9 +3049,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3126\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3126\"]]"); p = add_epsg_def (filter, first, last, 3127, "epsg", 3127, "ETRS89 / ETRS-GK20FIN"); add_proj4text (p, 0, @@ -3121,9 +3079,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3127\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3127\"]]"); p = add_epsg_def (filter, first, last, 3128, "epsg", 3128, "ETRS89 / ETRS-GK21FIN"); add_proj4text (p, 0, @@ -3153,9 +3109,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3128\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3128\"]]"); p = add_epsg_def (filter, first, last, 3129, "epsg", 3129, "ETRS89 / ETRS-GK22FIN"); add_proj4text (p, 0, @@ -3185,9 +3139,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3129\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3129\"]]"); p = add_epsg_def (filter, first, last, 3130, "epsg", 3130, "ETRS89 / ETRS-GK23FIN"); add_proj4text (p, 0, @@ -3217,9 +3169,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3130\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3130\"]]"); p = add_epsg_def (filter, first, last, 3131, "epsg", 3131, "ETRS89 / ETRS-GK24FIN"); add_proj4text (p, 0, @@ -3249,9 +3199,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3131\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3131\"]]"); p = add_epsg_def (filter, first, last, 3132, "epsg", 3132, "ETRS89 / ETRS-GK25FIN"); add_proj4text (p, 0, @@ -3281,9 +3229,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3132\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3132\"]]"); p = add_epsg_def (filter, first, last, 3133, "epsg", 3133, "ETRS89 / ETRS-GK26FIN"); add_proj4text (p, 0, @@ -3313,9 +3259,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3133\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3133\"]]"); p = add_epsg_def (filter, first, last, 3134, "epsg", 3134, "ETRS89 / ETRS-GK27FIN"); add_proj4text (p, 0, @@ -3345,9 +3289,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3134\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3134\"]]"); p = add_epsg_def (filter, first, last, 3135, "epsg", 3135, "ETRS89 / ETRS-GK28FIN"); add_proj4text (p, 0, @@ -3377,9 +3319,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3135\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3135\"]]"); p = add_epsg_def (filter, first, last, 3136, "epsg", 3136, "ETRS89 / ETRS-GK29FIN"); add_proj4text (p, 0, @@ -3409,9 +3349,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3136\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3136\"]]"); p = add_epsg_def (filter, first, last, 3137, "epsg", 3137, "ETRS89 / ETRS-GK30FIN"); add_proj4text (p, 0, @@ -3441,9 +3379,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3137\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3137\"]]"); p = add_epsg_def (filter, first, last, 3138, "epsg", 3138, "ETRS89 / ETRS-GK31FIN"); add_proj4text (p, 0, @@ -3473,9 +3409,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"3138\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3138\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_11.c b/src/spatialite/src/srsinit/epsg_inlined_11.c index 2498f16..c3ed588 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_11.c +++ b/src/spatialite/src/srsinit/epsg_inlined_11.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -67,7 +67,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "1880 (international foot)\",6378306.3696,293.46630765563"); add_srs_wkt (p, 3, - "61,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,"); + "49,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, @@ -83,9 +83,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",704000],UNIT[\"link\",0.201168,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9098\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"3140\"]]"); + "Y[\"EPSG\",\"9098\"]],AUTHORITY[\"EPSG\",\"3140\"]]"); p = add_epsg_def (filter, first, last, 3141, "epsg", 3141, "Fiji 1956 / UTM zone 60S"); add_proj4text (p, 0, @@ -187,7 +185,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3146, "epsg", 3146, - "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6"); + "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, @@ -195,33 +193,33 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6\",G"); + "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (de"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Y[\"EPSG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, - "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "l_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, - "ng\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "[\"false_easting\",6500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3146\"]]"); + "RITY[\"EPSG\",\"3146\"]]"); p = add_epsg_def (filter, first, last, 3147, "epsg", 3147, - "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E"); + "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, @@ -229,37 +227,37 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E\",G"); + "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (de"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Y[\"EPSG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, - "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "l_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3147\"]]"); + "ITY[\"EPSG\",\"3147\"]]"); p = add_epsg_def (filter, first, last, 3148, "epsg", 3148, "Indian 1960 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); + "owgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, @@ -289,9 +287,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 3149, "epsg", 3149, "Indian 1960 / UTM zone 49N"); add_proj4text (p, 0, - "+proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); + "owgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 49N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, @@ -319,7 +317,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3149\"]]"); p = add_epsg_def (filter, first, last, 3150, "epsg", 3150, - "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6"); + "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, @@ -327,33 +325,33 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6\",G"); + "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (de"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ".13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "[\"EPSG\",\"4200\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, - "g\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "\"false_easting\",6500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3150\"]]"); + "ITY[\"EPSG\",\"3150\"]]"); p = add_epsg_def (filter, first, last, 3151, "epsg", 3151, - "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E"); + "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, @@ -361,31 +359,31 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E\",G"); + "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (de"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ".13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "[\"EPSG\",\"4200\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORI"); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3151\"]]"); + "TY[\"EPSG\",\"3151\"]]"); p = add_epsg_def (filter, first, last, 3152, "epsg", 3152, "ST74"); add_proj4text (p, 0, @@ -415,11 +413,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ing\",100178.1808],PARAMETER[\"false_northing\",-6500614"); add_srs_wkt (p, 10, - ".7836],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + ".7836],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); add_srs_wkt (p, 11, - "IS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"31"); - add_srs_wkt (p, 12, - "52\"]]"); + "THORITY[\"EPSG\",\"3152\"]]"); p = add_epsg_def (filter, first, last, 3153, "epsg", 3153, "NAD83(CSRS) / BC Albers"); add_proj4text (p, 0, @@ -907,11 +903,11 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, - "0.99984 +x_0=40000 +y_0=0 +gamma=323.1301023611111 +a=63"); + "0.99984 +x_0=40000 +y_0=0 +no_uoff +gamma=323.1301023611"); add_proj4text (p, 2, - "77295.664 +b=6356094.667915204 +to_meter=20.116756 +no_d"); + "111 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116"); add_proj4text (p, 3, - "efs"); + "756 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (ch)\",GEOGCS[\"Kerta"); add_srs_wkt (p, 1, @@ -947,9 +943,11 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, - "0.99984 +x_0=804670.24 +y_0=0 +gamma=323.1301023611111 +"); + "0.99984 +x_0=804670.24 +y_0=0 +no_uoff +gamma=323.130102"); add_proj4text (p, 2, - "a=6377295.664 +b=6356094.667915204 +units=m +no_defs"); + "3611111 +a=6377295.664 +b=6356094.667915204 +units=m +no"); + add_proj4text (p, 3, + "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (m)\",GEOGCS[\"Kertau"); add_srs_wkt (p, 1, @@ -1193,9 +1191,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, - "_0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=198,88"); + "_0=0 +a=6377276.345 +b=6356075.41314024 +towgs84=198,881"); add_proj4text (p, 2, - "1,317,0,0,0,0 +units=m +no_defs"); + ",317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / TM 106 NE\",GEOGCS[\"Indian 1960\""); add_srs_wkt (p, 1, @@ -1985,29 +1983,29 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, - "gs84=-239.1,-170.02,397.5,0,0,0,0 +units=m +no_defs"); + "gs84=-241.54,-163.64,396.06,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FD58 / Iraq zone\",GEOGCS[\"FD58\",DATUM[\"Fina"); add_srs_wkt (p, 1, "l_Datum_1958\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, - "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-239.1,-"); + "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-241.54,"); add_srs_wkt (p, 3, - "170.02,397.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PRIM"); + "-163.64,396.06,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PR"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Con"); + "]],AUTHORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32."); + "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32"); add_srs_wkt (p, 8, - "5],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_"); + ".5],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "factor\",0.9987864078],PARAMETER[\"false_easting\",15000"); + "_factor\",0.9987864078],PARAMETER[\"false_easting\",1500"); add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",1166200],UNIT[\"metre\""); + "000],PARAMETER[\"false_northing\",1166200],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, diff --git a/src/spatialite/src/srsinit/epsg_inlined_12.c b/src/spatialite/src/srsinit/epsg_inlined_12.c index 099d8fc..cc08825 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_12.c +++ b/src/spatialite/src/srsinit/epsg_inlined_12.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -1955,9 +1955,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "orthing\",6375000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 14, - "EPSG\",\"3300\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"3300\"]]"); p = add_epsg_def (filter, first, last, 3301, "epsg", 3301, "Estonian Coordinate System of 1997"); add_proj4text (p, 0, @@ -1991,9 +1989,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",6375000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3301"); add_srs_wkt (p, 13, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3301\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3302, "epsg", 3302, "IGN63 Hiva Oa / UTM zone 7S"); add_proj4text (p, 0, @@ -2249,7 +2247,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, - "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); + "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, @@ -2417,7 +2415,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, @@ -2455,7 +2453,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUT"); add_srs_wkt (p, 4, @@ -2897,9 +2895,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "TER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 13, - ",AUTHORITY[\"EPSG\",\"3328\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3328\"]]"); p = add_epsg_def (filter, first, last, 3329, "epsg", 3329, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, @@ -2931,11 +2927,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",5500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"332"); - add_srs_wkt (p, 13, - "9\"]]"); + "HORITY[\"EPSG\",\"3329\"]]"); p = add_epsg_def (filter, first, last, 3330, "epsg", 3330, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, @@ -2967,11 +2961,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",6500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); - add_srs_wkt (p, 13, - "0\"]]"); + "HORITY[\"EPSG\",\"3330\"]]"); p = add_epsg_def (filter, first, last, 3331, "epsg", 3331, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, @@ -3003,11 +2995,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",7500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); - add_srs_wkt (p, 13, - "1\"]]"); + "HORITY[\"EPSG\",\"3331\"]]"); p = add_epsg_def (filter, first, last, 3332, "epsg", 3332, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, @@ -3039,11 +3029,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",8500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); - add_srs_wkt (p, 13, - "2\"]]"); + "HORITY[\"EPSG\",\"3332\"]]"); p = add_epsg_def (filter, first, last, 3333, "epsg", 3333, "Pulkovo 1942(58) / Gauss-Kruger zone 3"); add_proj4text (p, 0, @@ -3075,9 +3063,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "se_easting\",3500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3333\"]]"); + "EPSG\",\"3333\"]]"); p = add_epsg_def (filter, first, last, 3334, "epsg", 3334, "Pulkovo 1942(58) / Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -3109,9 +3097,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "se_easting\",4500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3334\"]]"); + "EPSG\",\"3334\"]]"); p = add_epsg_def (filter, first, last, 3335, "epsg", 3335, "Pulkovo 1942(58) / Gauss-Kruger zone 5"); add_proj4text (p, 0, @@ -3143,9 +3131,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "se_easting\",5500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3335\"]]"); + "EPSG\",\"3335\"]]"); p = add_epsg_def (filter, first, last, 3336, "epsg", 3336, "IGN 1962 Kerguelen / UTM zone 42S"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_13.c b/src/spatialite/src/srsinit/epsg_inlined_13.c index 06d5392..7bd32ce 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_13.c +++ b/src/spatialite/src/srsinit/epsg_inlined_13.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -81,11 +81,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 11, - "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3346\""); - add_srs_wkt (p, 12, - "]]"); + "RITY[\"EPSG\",\"3346\"]]"); p = add_epsg_def (filter, first, last, 3347, "epsg", 3347, "NAD83 / Statistics Canada Lambert"); add_proj4text (p, 0, @@ -221,9 +219,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); - add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"3350\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3350\"]]"); p = add_epsg_def (filter, first, last, 3351, "epsg", 3351, "Pulkovo 1942 / CS63 zone C1"); add_proj4text (p, 0, @@ -255,9 +251,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"3351\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3351\"]]"); p = add_epsg_def (filter, first, last, 3352, "epsg", 3352, "Pulkovo 1942 / CS63 zone C2"); add_proj4text (p, 0, @@ -289,9 +283,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); - add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"3352\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3352\"]]"); p = add_epsg_def (filter, first, last, 3353, "epsg", 3353, "Mhast (onshore) / UTM zone 32S"); add_proj4text (p, 0, @@ -389,71 +381,73 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "\"EPSG\",\"3355\"]]"); p = add_epsg_def (filter, first, last, 3356, "epsg", 3356, - "Grand Cayman 1959 / UTM zone 17N"); + "Grand Cayman 1959 / UTM zone 17N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138"); + "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3"); add_proj4text (p, 1, - ".8,0,0,0,0 +units=m +no_defs"); + "79,-27.584,-7.862,8.163,6.042,-13.925 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Grand Cayman 1959 / UTM zone 17N\",GEOGCS[\"Gra"); + "PROJCS[\"Grand Cayman 1959 / UTM zone 17N (deprecated)\""); add_srs_wkt (p, 1, - "nd Cayman 1959\",DATUM[\"Grand_Cayman_1959\",SPHEROID[\""); + ",GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1"); add_srs_wkt (p, 2, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "959\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390"); add_srs_wkt (p, 3, - "SG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHOR"); + "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.37"); add_srs_wkt (p, 4, - "ITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "9,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + ",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 7, - "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\"]],PROJECTI"); add_srs_wkt (p, 8, - "ude_of_origin\",0],PARAMETER[\"central_meridian\",-81],P"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, - "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); + "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3356\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, - "]]"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3356\"]]"); p = add_epsg_def (filter, first, last, 3357, "epsg", 3357, - "Little Cayman 1961 / UTM zone 17N"); + "Little Cayman 1961 / UTM zone 17N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=clrk66 +towgs84=42,124,147,0,0"); + "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "180.304,-0.393,-2.323,2.96,-24.081 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Little Cayman 1961 / UTM zone 17N\",GEOGCS[\"Li"); + "PROJCS[\"Little Cayman 1961 / UTM zone 17N (deprecated)\""); add_srs_wkt (p, 1, - "ttle Cayman 1961\",DATUM[\"Little_Cayman_1961\",SPHEROID"); + ",GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum"); add_srs_wkt (p, 2, - "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "_1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213"); add_srs_wkt (p, 3, - "EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0],AUTHORITY["); + "9006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644"); add_srs_wkt (p, 4, - "\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + ",180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]],"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]],PROJECTIO"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",-81],PARA"); + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); + "n\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"s"); add_srs_wkt (p, 10, - "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 13, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]"); p = add_epsg_def (filter, first, last, 3358, "epsg", 3358, "NAD83(HARN) / North Carolina"); add_proj4text (p, 0, @@ -777,7 +771,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "S[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\""); add_srs_wkt (p, 2, - "Clarke 1858\",6378293.645208759,294.2606763692654,AUTHOR"); + "Clarke 1858\",6378293.645208759,294.2606763692569,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PR"); add_srs_wkt (p, 4, @@ -795,9 +789,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",19069.93351512578],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3366\""); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3366\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3367, "epsg", 3367, "IGN Astro 1960 / UTM zone 28N"); add_proj4text (p, 0, @@ -897,7 +891,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -927,7 +921,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -1041,9 +1035,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.02579646666"); add_proj4text (p, 1, - "66 +k=0.99984 +x_0=804671 +y_0=0 +gamma=323.130102361111"); + "66 +k=0.99984 +x_0=804671 +y_0=0 +no_uoff +gamma=323.130"); add_proj4text (p, 2, - "1 +ellps=GRS80 +units=m +no_defs"); + "1023611111 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Peninsula RSO\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, @@ -1079,9 +1073,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, - "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80"); + "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el"); add_proj4text (p, 2, - " +units=m +no_defs"); + "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / East Malaysia BRSO\",GEOGCS[\"GDM2000"); add_srs_wkt (p, 1, @@ -1441,9 +1435,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3386\"]]"); + "\",\"3386\"]]"); p = add_epsg_def (filter, first, last, 3387, "epsg", 3387, "KKJ / Finland zone 5"); add_proj4text (p, 0, @@ -1475,9 +1469,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3387\"]]"); + "\",\"3387\"]]"); p = add_epsg_def (filter, first, last, 3388, "epsg", 3388, "Pulkovo 1942 / Caspian Sea Mercator"); add_proj4text (p, 0, @@ -1507,11 +1501,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"none"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "\",NORTH],AXIS[\"none\",EAST],AUTHORITY[\"EPSG\",\"3388\""); - add_srs_wkt (p, 12, - "]]"); + "EPSG\",\"3388\"]]"); p = add_epsg_def (filter, first, last, 3389, "epsg", 3389, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60"); add_proj4text (p, 0, @@ -1543,9 +1535,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3389\"]]"); + ",\"3389\"]]"); p = add_epsg_def (filter, first, last, 3390, "epsg", 3390, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60"); add_proj4text (p, 0, @@ -1577,9 +1569,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3390\"]]"); + ",\"3390\"]]"); p = add_epsg_def (filter, first, last, 3391, "epsg", 3391, "Karbala 1979 / UTM zone 37N"); add_proj4text (p, 0, @@ -1765,9 +1757,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "sting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3396\"]]"); + "\",\"3396\"]]"); p = add_epsg_def (filter, first, last, 3397, "epsg", 3397, "PD/83 / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -1795,9 +1787,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3397\"]]"); + "\",\"3397\"]]"); p = add_epsg_def (filter, first, last, 3398, "epsg", 3398, "RD/83 / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -1825,9 +1817,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3398\"]]"); + "\",\"3398\"]]"); p = add_epsg_def (filter, first, last, 3399, "epsg", 3399, "RD/83 / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, @@ -1855,9 +1847,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3399\"]]"); + "\",\"3399\"]]"); p = add_epsg_def (filter, first, last, 3400, "epsg", 3400, "NAD83 / Alberta 10-TM (Forest)"); add_proj4text (p, 0, @@ -2115,7 +2107,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, " 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\"Clarke 1858\""); add_srs_wkt (p, 2, - ",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\","); + ",6378293.645208759,294.2606763692569,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, @@ -2133,9 +2125,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "2565.96],UNIT[\"Clarke's foot\",0.3047972654,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9005\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"3407\"]]"); + "EPSG\",\"9005\"]],AUTHORITY[\"EPSG\",\"3407\"]]"); p = add_epsg_def (filter, first, last, 3408, "epsg", 3408, "NSIDC EASE-Grid North"); add_proj4text (p, 0, @@ -2251,7 +2241,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, - "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); + "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, @@ -2285,7 +2275,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, - "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); + "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, @@ -2365,11 +2355,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ng\",28001.642],PARAMETER[\"false_northing\",38744.572],"); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 11, - "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"3414\"]]"); + "[\"EPSG\",\"3414\"]]"); p = add_epsg_def (filter, first, last, 3415, "epsg", 3415, "WGS 72BE / South China Sea Lambert"); add_proj4text (p, 0, @@ -2439,11 +2427,11 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",400000],UNIT[\"met"); add_srs_wkt (p, 12, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3416\"]]"); + "\"3416\"]]"); p = add_epsg_def (filter, first, last, 3417, "epsg", 3417, - "NAD83 / Iowa North (ft US)"); + "NAD83 / Iowa North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, @@ -2451,37 +2439,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "99898402 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Iowa North (ft US)\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83 / Iowa North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.2"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.26"); add_srs_wkt (p, 8, - "6666666666667],PARAMETER[\"standard_parallel_2\",42.0666"); + "666666666667],PARAMETER[\"standard_parallel_2\",42.06666"); add_srs_wkt (p, 9, - "6666666667],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); + "666666667],PARAMETER[\"latitude_of_origin\",41.5],PARAME"); add_srs_wkt (p, 10, - "ETER[\"central_meridian\",-93.5],PARAMETER[\"false_easti"); + "TER[\"central_meridian\",-93.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, - "ng\",4921250],PARAMETER[\"false_northing\",3280833.33330"); + "g\",4921250],PARAMETER[\"false_northing\",3280833.333300"); add_srs_wkt (p, 12, - "0001],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); + "001],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT"); add_srs_wkt (p, 13, - "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); + "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, - "],AUTHORITY[\"EPSG\",\"3417\"]]"); + ",AUTHORITY[\"EPSG\",\"3417\"]]"); p = add_epsg_def (filter, first, last, 3418, "epsg", 3418, - "NAD83 / Iowa South (ft US)"); + "NAD83 / Iowa South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, @@ -2489,37 +2477,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Iowa South (ft US)\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83 / Iowa South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.78"); add_srs_wkt (p, 8, - "8333333333333],PARAMETER[\"standard_parallel_2\",40.6166"); + "333333333333],PARAMETER[\"standard_parallel_2\",40.61666"); add_srs_wkt (p, 9, - "6666666667],PARAMETER[\"latitude_of_origin\",40],PARAMET"); + "666666667],PARAMETER[\"latitude_of_origin\",40],PARAMETE"); add_srs_wkt (p, 10, - "ER[\"central_meridian\",-93.5],PARAMETER[\"false_easting"); + "R[\"central_meridian\",-93.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\""); + ",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 12, - "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); + " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, - "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, - "EPSG\",\"3418\"]]"); + "PSG\",\"3418\"]]"); p = add_epsg_def (filter, first, last, 3419, "epsg", 3419, - "NAD83 / Kansas North (ft US)"); + "NAD83 / Kansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, @@ -2527,37 +2515,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "8984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kansas North (ft US)\",GEOGCS[\"NAD83\""); + "PROJCS[\"NAD83 / Kansas North (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, - "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39"); + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.7"); add_srs_wkt (p, 8, - ".78333333333333],PARAMETER[\"standard_parallel_2\",38.71"); + "8333333333333],PARAMETER[\"standard_parallel_2\",38.7166"); add_srs_wkt (p, 9, - "666666666667],PARAMETER[\"latitude_of_origin\",38.333333"); + "6666666667],PARAMETER[\"latitude_of_origin\",38.33333333"); add_srs_wkt (p, 10, - "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER["); + "333334],PARAMETER[\"central_meridian\",-98],PARAMETER[\""); add_srs_wkt (p, 11, - "\"false_easting\",1312333.3333],PARAMETER[\"false_northi"); + "false_easting\",1312333.3333],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); + "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, - "TH],AUTHORITY[\"EPSG\",\"3419\"]]"); + "],AUTHORITY[\"EPSG\",\"3419\"]]"); p = add_epsg_def (filter, first, last, 3420, "epsg", 3420, - "NAD83 / Kansas South (ft US)"); + "NAD83 / Kansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, @@ -2567,37 +2555,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kansas South (ft US)\",GEOGCS[\"NAD83\""); + "PROJCS[\"NAD83 / Kansas South (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, - "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38"); + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.5"); add_srs_wkt (p, 8, - ".56666666666667],PARAMETER[\"standard_parallel_2\",37.26"); + "6666666666667],PARAMETER[\"standard_parallel_2\",37.2666"); add_srs_wkt (p, 9, - "666666666667],PARAMETER[\"latitude_of_origin\",36.666666"); + "6666666667],PARAMETER[\"latitude_of_origin\",36.66666666"); add_srs_wkt (p, 10, - "66666666],PARAMETER[\"central_meridian\",-98.5],PARAMETE"); + "666666],PARAMETER[\"central_meridian\",-98.5],PARAMETER["); add_srs_wkt (p, 11, - "R[\"false_easting\",1312333.3333],PARAMETER[\"false_nort"); + "\"false_easting\",1312333.3333],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, - "hing\",1312333.3333],UNIT[\"US survey foot\",0.304800609"); + "ng\",1312333.3333],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, - "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); + "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]"); p = add_epsg_def (filter, first, last, 3421, "epsg", 3421, - "NAD83 / Nevada East (ft US)"); + "NAD83 / Nevada East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2605,9 +2593,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada East (ft US)\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83 / Nevada East (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, @@ -2633,7 +2621,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"3421\"]]"); p = add_epsg_def (filter, first, last, 3422, "epsg", 3422, - "NAD83 / Nevada Central (ft US)"); + "NAD83 / Nevada Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, @@ -2641,35 +2629,35 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada Central (ft US)\",GEOGCS[\"NAD83"); + "PROJCS[\"NAD83 / Nevada Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); + ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); + "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PAR"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARA"); add_srs_wkt (p, 8, - "AMETER[\"central_meridian\",-116.6666666666667],PARAMETE"); + "METER[\"central_meridian\",-116.6666666666667],PARAMETER"); add_srs_wkt (p, 9, - "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",1"); + "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 10, - "640416.6667],PARAMETER[\"false_northing\",19685000],UNIT"); + "40416.6667],PARAMETER[\"false_northing\",19685000],UNIT["); add_srs_wkt (p, 11, - "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3422\"]]"); p = add_epsg_def (filter, first, last, 3423, "epsg", 3423, - "NAD83 / Nevada West (ft US)"); + "NAD83 / Nevada West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2677,9 +2665,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada West (ft US)\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83 / Nevada West (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, @@ -2705,7 +2693,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "TY[\"EPSG\",\"3423\"]]"); p = add_epsg_def (filter, first, last, 3424, "epsg", 3424, - "NAD83 / New Jersey (ft US)"); + "NAD83 / New Jersey (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, @@ -2713,35 +2701,35 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Jersey (ft US)\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83 / New Jersey (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",38.8333333333"); + "cator\"],PARAMETER[\"latitude_of_origin\",38.83333333333"); add_srs_wkt (p, 8, - "3334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\""); + "334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"s"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",49212"); + "cale_factor\",0.9999],PARAMETER[\"false_easting\",492125"); add_srs_wkt (p, 10, - "5],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); + "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 11, - "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 12, - "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424\"]"); add_srs_wkt (p, 13, - "\"]]"); + "]"); p = add_epsg_def (filter, first, last, 3425, "epsg", 3425, - "NAD83(HARN) / Iowa North (ft US)"); + "NAD83(HARN) / Iowa North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, @@ -2751,37 +2739,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Iowa North (ft US)\",GEOGCS[\"NAD"); + "PROJCS[\"NAD83(HARN) / Iowa North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); + "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, - "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "andard_parallel_1\",43.26666666666667],PARAMETER[\"stand"); + "ard_parallel_1\",43.26666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "ard_parallel_2\",42.06666666666667],PARAMETER[\"latitude"); + "_parallel_2\",42.06666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "_of_origin\",41.5],PARAMETER[\"central_meridian\",-93.5]"); + "_origin\",41.5],PARAMETER[\"central_meridian\",-93.5],PA"); add_srs_wkt (p, 11, - ",PARAMETER[\"false_easting\",4921250],PARAMETER[\"false_"); + "RAMETER[\"false_easting\",4921250],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "northing\",3280833.333300001],UNIT[\"US survey foot\",0."); + "thing\",3280833.333300001],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]"); + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]"); p = add_epsg_def (filter, first, last, 3426, "epsg", 3426, - "NAD83(HARN) / Iowa South (ft US)"); + "NAD83(HARN) / Iowa South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, @@ -2789,37 +2777,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Iowa South (ft US)\",GEOGCS[\"NAD"); + "PROJCS[\"NAD83(HARN) / Iowa South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); + "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, - "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "andard_parallel_1\",41.78333333333333],PARAMETER[\"stand"); + "ard_parallel_1\",41.78333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "ard_parallel_2\",40.61666666666667],PARAMETER[\"latitude"); + "_parallel_2\",40.61666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "_of_origin\",40],PARAMETER[\"central_meridian\",-93.5],P"); + "_origin\",40],PARAMETER[\"central_meridian\",-93.5],PARA"); add_srs_wkt (p, 11, - "ARAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fal"); + "METER[\"false_easting\",1640416.6667],PARAMETER[\"false_"); add_srs_wkt (p, 12, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3426\"]]"); + "\",NORTH],AUTHORITY[\"EPSG\",\"3426\"]]"); p = add_epsg_def (filter, first, last, 3427, "epsg", 3427, - "NAD83(HARN) / Kansas North (ft US)"); + "NAD83(HARN) / Kansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, @@ -2829,39 +2817,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Kansas North (ft US)\",GEOGCS[\"N"); + "PROJCS[\"NAD83(HARN) / Kansas North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); + "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, - "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); + "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); + "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, - "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); + "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, - "standard_parallel_1\",39.78333333333333],PARAMETER[\"sta"); + "andard_parallel_1\",39.78333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, - "ndard_parallel_2\",38.71666666666667],PARAMETER[\"latitu"); + "ard_parallel_2\",38.71666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 10, - "de_of_origin\",38.33333333333334],PARAMETER[\"central_me"); + "_of_origin\",38.33333333333334],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, - "ridian\",-98],PARAMETER[\"false_easting\",1312333.3333],"); + "dian\",-98],PARAMETER[\"false_easting\",1312333.3333],PA"); add_srs_wkt (p, 12, - "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); + "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, - "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]"); - add_srs_wkt (p, 15, - "]"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]]"); p = add_epsg_def (filter, first, last, 3428, "epsg", 3428, - "NAD83(HARN) / Kansas South (ft US)"); + "NAD83(HARN) / Kansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, @@ -2871,39 +2857,39 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Kansas South (ft US)\",GEOGCS[\"N"); + "PROJCS[\"NAD83(HARN) / Kansas South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); + "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, - "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); + "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); + "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, - "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); + "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, - "standard_parallel_1\",38.56666666666667],PARAMETER[\"sta"); + "andard_parallel_1\",38.56666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 9, - "ndard_parallel_2\",37.26666666666667],PARAMETER[\"latitu"); + "ard_parallel_2\",37.26666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 10, - "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); + "_of_origin\",36.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, - "ridian\",-98.5],PARAMETER[\"false_easting\",1312333.3333"); + "dian\",-98.5],PARAMETER[\"false_easting\",1312333.3333],"); add_srs_wkt (p, 12, - "],PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US s"); + "PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US sur"); add_srs_wkt (p, 13, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, - "G\",\"3428\"]]"); + ",\"3428\"]]"); p = add_epsg_def (filter, first, last, 3429, "epsg", 3429, - "NAD83(HARN) / Nevada East (ft US)"); + "NAD83(HARN) / Nevada East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2911,13 +2897,13 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Nevada East (ft US)\",GEOGCS[\"NA"); + "PROJCS[\"NAD83(HARN) / Nevada East (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); + "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, - "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); + "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, @@ -2939,7 +2925,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3429\"]]"); p = add_epsg_def (filter, first, last, 3430, "epsg", 3430, - "NAD83(HARN) / Nevada Central (ft US)"); + "NAD83(HARN) / Nevada Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, @@ -2947,7 +2933,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Nevada Central (ft US)\",GEOGCS[\""); + "PROJCS[\"NAD83(HARN) / Nevada Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, @@ -2975,7 +2961,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3430\"]]"); p = add_epsg_def (filter, first, last, 3431, "epsg", 3431, - "NAD83(HARN) / Nevada West (ft US)"); + "NAD83(HARN) / Nevada West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2983,13 +2969,13 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Nevada West (ft US)\",GEOGCS[\"NA"); + "PROJCS[\"NAD83(HARN) / Nevada West (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); + "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, - "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); + "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, @@ -3011,7 +2997,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3431\"]]"); p = add_epsg_def (filter, first, last, 3432, "epsg", 3432, - "NAD83(HARN) / New Jersey (ft US)"); + "NAD83(HARN) / New Jersey (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, @@ -3019,33 +3005,33 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / New Jersey (ft US)\",GEOGCS[\"NAD"); + "PROJCS[\"NAD83(HARN) / New Jersey (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); + "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, - "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); + "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, - "f_origin\",38.83333333333334],PARAMETER[\"central_meridi"); + "rigin\",38.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "an\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); + ",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); add_srs_wkt (p, 10, - "[\"false_easting\",492125],PARAMETER[\"false_northing\","); + "alse_easting\",492125],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"3432\"]]"); + "RITY[\"EPSG\",\"3432\"]]"); p = add_epsg_def (filter, first, last, 3433, "epsg", 3433, "NAD83 / Arkansas North (ftUS)"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_14.c b/src/spatialite/src/srsinit/epsg_inlined_14.c index 7cb8d11..25bbd15 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_14.c +++ b/src/spatialite/src/srsinit/epsg_inlined_14.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -587,7 +587,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, - ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); + ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, @@ -619,7 +619,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, - ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); + ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, @@ -819,11 +819,11 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, - "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga"); + "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); add_proj4text (p, 2, - "mma=323.1301023611111 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); + "_uoff +gamma=323.1301023611111 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, - "0 +units=m +no_defs"); + ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, @@ -3415,7 +3415,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3536\"]]"); p = add_epsg_def (filter, first, last, 3537, "epsg", 3537, - "NAD83(NSRS2007) / Iowa North (ft US)"); + "NAD83(NSRS2007) / Iowa North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, @@ -3425,7 +3425,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Iowa North (ft US)\",GEOGCS[\""); + "PROJCS[\"NAD83(NSRS2007) / Iowa North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, @@ -3495,7 +3495,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 14, "EPSG\",\"3538\"]]"); p = add_epsg_def (filter, first, last, 3539, "epsg", 3539, - "NAD83(NSRS2007) / Iowa South (ft US)"); + "NAD83(NSRS2007) / Iowa South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, @@ -3503,7 +3503,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Iowa South (ft US)\",GEOGCS[\""); + "PROJCS[\"NAD83(NSRS2007) / Iowa South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, @@ -3571,7 +3571,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3540\"]]"); p = add_epsg_def (filter, first, last, 3541, "epsg", 3541, - "NAD83(NSRS2007) / Kansas North (ft US)"); + "NAD83(NSRS2007) / Kansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, @@ -3581,21 +3581,21 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Kansas North (ft US)\",GEOGCS"); + "PROJCS[\"NAD83(NSRS2007) / Kansas North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); + "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); + "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, - "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); + ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, - "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",39.78333333333333],P"); add_srs_wkt (p, 9, @@ -3653,7 +3653,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3542\"]]"); p = add_epsg_def (filter, first, last, 3543, "epsg", 3543, - "NAD83(NSRS2007) / Kansas South (ft US)"); + "NAD83(NSRS2007) / Kansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, @@ -3663,21 +3663,21 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Kansas South (ft US)\",GEOGCS"); + "PROJCS[\"NAD83(NSRS2007) / Kansas South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); + "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); + "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, - "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); + ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, - "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",38.56666666666667],P"); add_srs_wkt (p, 9, diff --git a/src/spatialite/src/srsinit/epsg_inlined_15.c b/src/spatialite/src/srsinit/epsg_inlined_15.c index b31f967..93c9ea9 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_15.c +++ b/src/spatialite/src/srsinit/epsg_inlined_15.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -561,7 +561,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, @@ -599,7 +599,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, @@ -635,7 +635,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, @@ -671,7 +671,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, @@ -707,7 +707,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, @@ -1655,11 +1655,11 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, - "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); + "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, - "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); + "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, - "=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Oblique Mercator\",G"); add_srs_wkt (p, 1, @@ -2285,7 +2285,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "\"EPSG\",\"3607\"]]"); p = add_epsg_def (filter, first, last, 3608, "epsg", 3608, - "NAD83(NSRS2007) / Nevada Central (ft US)"); + "NAD83(NSRS2007) / Nevada Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, @@ -2293,15 +2293,15 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ft US)\",GEOG"); + "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); + "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); + "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, - "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); + ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, @@ -2359,7 +2359,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "EPSG\",\"3609\"]]"); p = add_epsg_def (filter, first, last, 3610, "epsg", 3610, - "NAD83(NSRS2007) / Nevada East (ft US)"); + "NAD83(NSRS2007) / Nevada East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2367,35 +2367,35 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Nevada East (ft US)\",GEOGCS["); + "PROJCS[\"NAD83(NSRS2007) / Nevada East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); + "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); + "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me"); + "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "ridian\",-115.5833333333333],PARAMETER[\"scale_factor\","); + "dian\",-115.5833333333333],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, - "0.9999],PARAMETER[\"false_easting\",656166.6667],PARAMET"); + "9999],PARAMETER[\"false_easting\",656166.6667],PARAMETER"); add_srs_wkt (p, 11, - "ER[\"false_northing\",26246666.66670001],UNIT[\"US surve"); + "[\"false_northing\",26246666.66670001],UNIT[\"US survey "); add_srs_wkt (p, 12, - "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, - "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, - "\"3610\"]]"); + "3610\"]]"); p = add_epsg_def (filter, first, last, 3611, "epsg", 3611, "NAD83(NSRS2007) / Nevada West"); add_proj4text (p, 0, @@ -2433,7 +2433,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "EPSG\",\"3611\"]]"); p = add_epsg_def (filter, first, last, 3612, "epsg", 3612, - "NAD83(NSRS2007) / Nevada West (ft US)"); + "NAD83(NSRS2007) / Nevada West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, @@ -2441,35 +2441,35 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Nevada West (ft US)\",GEOGCS["); + "PROJCS[\"NAD83(NSRS2007) / Nevada West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); + "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); + "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me"); + "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "ridian\",-118.5833333333333],PARAMETER[\"scale_factor\","); + "dian\",-118.5833333333333],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, - "0.9999],PARAMETER[\"false_easting\",2624666.6667],PARAME"); + "9999],PARAMETER[\"false_easting\",2624666.6667],PARAMETE"); add_srs_wkt (p, 11, - "TER[\"false_northing\",13123333.3333],UNIT[\"US survey f"); + "R[\"false_northing\",13123333.3333],UNIT[\"US survey foo"); add_srs_wkt (p, 12, - "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"361"); add_srs_wkt (p, 14, - "612\"]]"); + "2\"]]"); p = add_epsg_def (filter, first, last, 3613, "epsg", 3613, "NAD83(NSRS2007) / New Hampshire"); add_proj4text (p, 0, @@ -2581,7 +2581,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 13, "3615\"]]"); p = add_epsg_def (filter, first, last, 3616, "epsg", 3616, - "NAD83(NSRS2007) / New Jersey (ft US)"); + "NAD83(NSRS2007) / New Jersey (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, @@ -2589,7 +2589,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / New Jersey (ft US)\",GEOGCS[\""); + "PROJCS[\"NAD83(NSRS2007) / New Jersey (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, diff --git a/src/spatialite/src/srsinit/epsg_inlined_16.c b/src/spatialite/src/srsinit/epsg_inlined_16.c index eabb9d1..8a85c37 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_16.c +++ b/src/spatialite/src/srsinit/epsg_inlined_16.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it diff --git a/src/spatialite/src/srsinit/epsg_inlined_17.c b/src/spatialite/src/srsinit/epsg_inlined_17.c index 5c785a1..893b968 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_17.c +++ b/src/spatialite/src/srsinit/epsg_inlined_17.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -567,9 +567,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3764\"]]"); + "64\"]]"); p = add_epsg_def (filter, first, last, 3765, "epsg", 3765, "HTRS96 / Croatia TM"); add_proj4text (p, 0, @@ -715,7 +715,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "1957\",DATUM[\"Bermuda_1957\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-73,213,296,0,0,0,0],AUTHORITY[\"EPSG\",\"6216\""); add_srs_wkt (p, 4, @@ -781,7 +781,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, @@ -813,7 +813,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, @@ -845,7 +845,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, @@ -877,7 +877,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\""); add_srs_wkt (p, 2, - ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); + ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]"); add_srs_wkt (p, 4, @@ -1365,9 +1365,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3788\""); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3788\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3789, "epsg", 3789, "NZGD2000 / Campbell Island TM 2000"); add_proj4text (p, 0, @@ -1399,9 +1399,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3789\"]"); add_srs_wkt (p, 12, - "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3789\"]]"); + "]"); p = add_epsg_def (filter, first, last, 3790, "epsg", 3790, "NZGD2000 / Antipodes Islands TM 2000"); add_proj4text (p, 0, @@ -1433,9 +1433,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3790\""); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3790\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3791, "epsg", 3791, "NZGD2000 / Raoul Island TM 2000"); add_proj4text (p, 0, @@ -1467,9 +1467,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"3791\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3791\"]]"); p = add_epsg_def (filter, first, last, 3793, "epsg", 3793, "NZGD2000 / Chatham Islands TM 2000"); add_proj4text (p, 0, @@ -1501,9 +1499,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3793"); add_srs_wkt (p, 12, - "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3793\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3794, "epsg", 3794, "Slovenia 1996 / Slovene National Grid"); add_proj4text (p, 0, @@ -1551,7 +1549,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, @@ -1569,11 +1567,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",280296.01"); add_srs_wkt (p, 11, - "6],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "6],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 12, - "Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"3795\"]"); - add_srs_wkt (p, 13, - "]"); + "ITY[\"EPSG\",\"3795\"]]"); p = add_epsg_def (filter, first, last, 3796, "epsg", 3796, "NAD27 / Cuba Sur"); add_proj4text (p, 0, @@ -1587,7 +1583,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, - "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); + "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, @@ -1607,9 +1603,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",229126.939],UNIT[\"metre\""); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 13, - "\"X\",EAST],AUTHORITY[\"EPSG\",\"3796\"]]"); + "96\"]]"); p = add_epsg_def (filter, first, last, 3797, "epsg", 3797, "NAD27 / MTQ Lambert"); add_proj4text (p, 0, @@ -1621,7 +1617,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -1723,7 +1719,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, @@ -2225,9 +2221,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_easting\",2500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3833\"]]"); + "EPSG\",\"3833\"]]"); p = add_epsg_def (filter, first, last, 3834, "epsg", 3834, "Pulkovo 1942(83) / Gauss-Kruger zone 2"); add_proj4text (p, 0, @@ -2259,9 +2255,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); - add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"3834\"]]"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3834\"]]"); p = add_epsg_def (filter, first, last, 3835, "epsg", 3835, "Pulkovo 1942(83) / Gauss-Kruger zone 3"); add_proj4text (p, 0, @@ -2293,9 +2287,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"3835\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3835\"]]"); p = add_epsg_def (filter, first, last, 3836, "epsg", 3836, "Pulkovo 1942(83) / Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -2327,9 +2319,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"3836\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3836\"]]"); p = add_epsg_def (filter, first, last, 3837, "epsg", 3837, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, @@ -2361,11 +2351,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "R[\"false_easting\",3500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3837\""); - add_srs_wkt (p, 13, - "]]"); + "RITY[\"EPSG\",\"3837\"]]"); p = add_epsg_def (filter, first, last, 3838, "epsg", 3838, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, @@ -2397,11 +2385,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",4500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383"); - add_srs_wkt (p, 13, - "8\"]]"); + "HORITY[\"EPSG\",\"3838\"]]"); p = add_epsg_def (filter, first, last, 3839, "epsg", 3839, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, @@ -2433,11 +2419,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",9500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383"); - add_srs_wkt (p, 13, - "9\"]]"); + "HORITY[\"EPSG\",\"3839\"]]"); p = add_epsg_def (filter, first, last, 3840, "epsg", 3840, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, @@ -2469,11 +2453,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ER[\"false_easting\",10500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); add_srs_wkt (p, 12, - "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"38"); - add_srs_wkt (p, 13, - "40\"]]"); + "THORITY[\"EPSG\",\"3840\"]]"); p = add_epsg_def (filter, first, last, 3841, "epsg", 3841, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, @@ -2505,9 +2487,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3841\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"3841\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3842, "epsg", 3842, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)"); add_proj4text (p, 0, @@ -2539,9 +2521,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 12, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3842\"]]"); + "PSG\",\"3842\"]]"); p = add_epsg_def (filter, first, last, 3843, "epsg", 3843, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)"); add_proj4text (p, 0, @@ -2573,9 +2555,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 12, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3843\"]]"); + "PSG\",\"3843\"]]"); p = add_epsg_def (filter, first, last, 3844, "epsg", 3844, "Pulkovo 1942(58) / Stereo70"); add_proj4text (p, 0, @@ -2607,9 +2589,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",500000],"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); add_srs_wkt (p, 12, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3844\"]]"); + "[\"EPSG\",\"3844\"]]"); p = add_epsg_def (filter, first, last, 3845, "epsg", 3845, "SWEREF99 / RT90 7.5 gon V emulation"); add_proj4text (p, 0, @@ -2641,9 +2623,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "[\"false_northing\",-667.282],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"3845\"]]"); + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3845\"]]"); p = add_epsg_def (filter, first, last, 3846, "epsg", 3846, "SWEREF99 / RT90 5 gon V emulation"); add_proj4text (p, 0, @@ -2675,9 +2655,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",-667.13],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3846\"]"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"3846\"]]"); + "]"); p = add_epsg_def (filter, first, last, 3847, "epsg", 3847, "SWEREF99 / RT90 2.5 gon V emulation"); add_proj4text (p, 0, @@ -2709,9 +2689,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "274],PARAMETER[\"false_northing\",-667.711],UNIT[\"metre"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3847\"]]"); + "3847\"]]"); p = add_epsg_def (filter, first, last, 3848, "epsg", 3848, "SWEREF99 / RT90 0 gon emulation"); add_proj4text (p, 0, @@ -2743,9 +2723,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",-668.844],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); - add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"3848\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3848\"]]"); p = add_epsg_def (filter, first, last, 3849, "epsg", 3849, "SWEREF99 / RT90 2.5 gon O emulation"); add_proj4text (p, 0, @@ -2777,9 +2755,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",-670.706],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3849"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"3849\"]]"); + "\"]]"); p = add_epsg_def (filter, first, last, 3850, "epsg", 3850, "SWEREF99 / RT90 5 gon O emulation"); add_proj4text (p, 0, @@ -2811,9 +2789,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",-672.557],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3850\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"3850\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 3851, "epsg", 3851, "NZGD2000 / NZCS2000"); add_proj4text (p, 0, @@ -2847,9 +2825,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "false_northing\",7000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); - add_srs_wkt (p, 13, - "\",EAST],AUTHORITY[\"EPSG\",\"3851\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3851\"]]"); p = add_epsg_def (filter, first, last, 3852, "epsg", 3852, "RSRGD2000 / DGLC2000"); add_proj4text (p, 0, @@ -2883,11 +2859,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 13, - "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 14, - "852\"]]"); + "SG\",\"3852\"]]"); p = add_epsg_def (filter, first, last, 3854, "epsg", 3854, "County ST74"); add_proj4text (p, 0, @@ -2919,9 +2893,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "6500620.1207],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 12, - "\",\"3854\"]]"); + "\"]],AUTHORITY[\"EPSG\",\"3854\"]]"); p = add_epsg_def (filter, first, last, 3857, "epsg", 3857, "WGS 84 / Pseudo-Mercator"); add_proj4text (p, 0, @@ -2987,9 +2959,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3873\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3873\"]]"); p = add_epsg_def (filter, first, last, 3874, "epsg", 3874, "ETRS89 / GK20FIN"); add_proj4text (p, 0, @@ -3019,9 +2989,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3874\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3874\"]]"); p = add_epsg_def (filter, first, last, 3875, "epsg", 3875, "ETRS89 / GK21FIN"); add_proj4text (p, 0, @@ -3051,9 +3019,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3875\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3875\"]]"); p = add_epsg_def (filter, first, last, 3876, "epsg", 3876, "ETRS89 / GK22FIN"); add_proj4text (p, 0, @@ -3083,9 +3049,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3876\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3876\"]]"); p = add_epsg_def (filter, first, last, 3877, "epsg", 3877, "ETRS89 / GK23FIN"); add_proj4text (p, 0, @@ -3115,9 +3079,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3877\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3877\"]]"); p = add_epsg_def (filter, first, last, 3878, "epsg", 3878, "ETRS89 / GK24FIN"); add_proj4text (p, 0, @@ -3147,9 +3109,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3878\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3878\"]]"); p = add_epsg_def (filter, first, last, 3879, "epsg", 3879, "ETRS89 / GK25FIN"); add_proj4text (p, 0, @@ -3179,9 +3139,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3879\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3879\"]]"); p = add_epsg_def (filter, first, last, 3880, "epsg", 3880, "ETRS89 / GK26FIN"); add_proj4text (p, 0, @@ -3211,9 +3169,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3880\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3880\"]]"); p = add_epsg_def (filter, first, last, 3881, "epsg", 3881, "ETRS89 / GK27FIN"); add_proj4text (p, 0, @@ -3243,9 +3199,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3881\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3881\"]]"); p = add_epsg_def (filter, first, last, 3882, "epsg", 3882, "ETRS89 / GK28FIN"); add_proj4text (p, 0, @@ -3275,9 +3229,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3882\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3882\"]]"); p = add_epsg_def (filter, first, last, 3883, "epsg", 3883, "ETRS89 / GK29FIN"); add_proj4text (p, 0, @@ -3307,9 +3259,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3883\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3883\"]]"); p = add_epsg_def (filter, first, last, 3884, "epsg", 3884, "ETRS89 / GK30FIN"); add_proj4text (p, 0, @@ -3339,9 +3289,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3884\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3884\"]]"); p = add_epsg_def (filter, first, last, 3885, "epsg", 3885, "ETRS89 / GK31FIN"); add_proj4text (p, 0, @@ -3371,9 +3319,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"3885\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"3885\"]]"); p = add_epsg_def (filter, first, last, 3889, "epsg", 3889, "IGRS"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_18.c b/src/spatialite/src/srsinit/epsg_inlined_18.c index 38380d5..ddfffa7 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_18.c +++ b/src/spatialite/src/srsinit/epsg_inlined_18.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -231,9 +231,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 12, - "\",\"3907\"]]"); + "\"]],AUTHORITY[\"EPSG\",\"3907\"]]"); p = add_epsg_def (filter, first, last, 3908, "epsg", 3908, "MGI 1901 / Balkans zone 6"); add_proj4text (p, 0, @@ -265,9 +263,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 12, - "\",\"3908\"]]"); + "\"]],AUTHORITY[\"EPSG\",\"3908\"]]"); p = add_epsg_def (filter, first, last, 3909, "epsg", 3909, "MGI 1901 / Balkans zone 7"); add_proj4text (p, 0, @@ -299,9 +295,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 12, - "\",\"3909\"]]"); + "\"]],AUTHORITY[\"EPSG\",\"3909\"]]"); p = add_epsg_def (filter, first, last, 3910, "epsg", 3910, "MGI 1901 / Balkans zone 8"); add_proj4text (p, 0, @@ -333,9 +327,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 12, - "\",\"3910\"]]"); + "\"]],AUTHORITY[\"EPSG\",\"3910\"]]"); p = add_epsg_def (filter, first, last, 3911, "epsg", 3911, "MGI 1901 / Slovenia Grid"); add_proj4text (p, 0, @@ -367,9 +359,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"3911\"]]"); + "]],AUTHORITY[\"EPSG\",\"3911\"]]"); p = add_epsg_def (filter, first, last, 3912, "epsg", 3912, "MGI 1901 / Slovene National Grid"); add_proj4text (p, 0, @@ -415,7 +405,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "co\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TO"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TO"); add_srs_wkt (p, 3, "WGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],"); add_srs_wkt (p, 4, @@ -1067,7 +1057,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, @@ -1103,7 +1093,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, @@ -1137,7 +1127,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, @@ -1171,7 +1161,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, @@ -1205,7 +1195,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, @@ -1241,7 +1231,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "uerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, @@ -1281,7 +1271,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378206."); add_srs_wkt (p, 2, - "4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8"); + "4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8"); add_srs_wkt (p, 3, "4[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],PRIM"); add_srs_wkt (p, 4, @@ -1553,7 +1543,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1858\",6378293.645208759,294.2606"); add_srs_wkt (p, 3, - "763692654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG"); + "763692569,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6007\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, @@ -1569,9 +1559,9 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1866_ellipso"); add_srs_wkt (p, 2, - "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); + "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900"); add_srs_wkt (p, 3, - "2,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600"); + "6,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, @@ -1591,7 +1581,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "6_Michigan_ellipsoid\",SPHEROID[\"Clarke 1866 Michigan\""); add_srs_wkt (p, 3, - ",6378450.047548896,294.9786971646747,AUTHORITY[\"EPSG\","); + ",6378450.047548896,294.9786971646739,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"7009\"]],AUTHORITY[\"EPSG\",\"6009\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, @@ -1611,7 +1601,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "0_Benoit_ellipsoid\",SPHEROID[\"Clarke 1880 (Benoit)\",6"); add_srs_wkt (p, 3, - "378300.789,293.4663155389811,AUTHORITY[\"EPSG\",\"7010\""); + "378300.789,293.4663155389802,AUTHORITY[\"EPSG\",\"7010\""); add_srs_wkt (p, 4, "]],AUTHORITY[\"EPSG\",\"6010\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, @@ -1631,7 +1621,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "GN_ellipsoid\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 3, - "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT"); + "293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6011\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, @@ -1699,9 +1689,9 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4015, "epsg", 4015, "Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +no_de"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_def"); add_proj4text (p, 1, - "fs"); + "s"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1937"); add_srs_wkt (p, 1, @@ -1919,9 +1909,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4026\"]]"); + ",AUTHORITY[\"EPSG\",\"4026\"]]"); p = add_epsg_def (filter, first, last, 4027, "epsg", 4027, "Unknown datum based upon the Plessis 1817 ellipsoid"); add_proj4text (p, 0, @@ -1943,7 +1931,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4028, "epsg", 4028, "Unknown datum based upon the Struve 1860 ellipsoid"); add_proj4text (p, 0, - "+proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs"); + "+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Struve 1860 ellips"); add_srs_wkt (p, 1, @@ -2061,7 +2049,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1880\",6378249.144808011,293.4663"); add_srs_wkt (p, 3, - "076556303,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG"); + "076556349,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, @@ -2129,9 +2117,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"4037\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4037\"]]"); p = add_epsg_def (filter, first, last, 4038, "epsg", 4038, "WGS 84 / TMzn36N"); add_proj4text (p, 0, @@ -2157,9 +2143,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 11, - "T],AUTHORITY[\"EPSG\",\"4038\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4038\"]]"); p = add_epsg_def (filter, first, last, 4041, "epsg", 4041, "Unknown datum based upon the Average Terrestrial System 1977 ellipsoid"); add_proj4text (p, 0, @@ -2193,7 +2177,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "st_1830_Definition_ellipsoid\",SPHEROID[\"Everest (1830 "); add_srs_wkt (p, 3, - "Definition)\",6377299.36559538,300.8017255433612,AUTHORI"); + "Definition)\",6377299.36559538,300.8017255433552,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6042\"]],PRI"); add_srs_wkt (p, 5, @@ -2223,7 +2207,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4044, "epsg", 4044, "Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid"); add_proj4text (p, 0, - "+proj=longlat +a=6377301.243 +b=6356100.230165385 +no_de"); + "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, @@ -2487,7 +2471,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "ipsoid\",SPHEROID[\"Hughes 1980\",6378273,298.2794111230"); add_srs_wkt (p, 3, - "64,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60"); + "61,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60"); add_srs_wkt (p, 4, "54\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, diff --git a/src/spatialite/src/srsinit/epsg_inlined_19.c b/src/spatialite/src/srsinit/epsg_inlined_19.c index 02dfd01..260e4b4 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_19.c +++ b/src/spatialite/src/srsinit/epsg_inlined_19.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -507,23 +507,23 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4127, "epsg", 4127, "Tete"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk66 +towgs84=219.315,168.975,-16"); + "+proj=longlat +ellps=clrk66 +towgs84=-73.472,-51.66,-112"); add_proj4text (p, 1, - "6.145,0.198,5.926,-2.356,-57.104 +no_defs"); + ".482,0.953,4.6,-2.368,0.586 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tete\",DATUM[\"Tete\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 1, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 2, - "],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-5"); + "],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586"); add_srs_wkt (p, 3, - "7.104],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\""); + "],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4127\"]]"); + ",\"4127\"]]"); p = add_epsg_def (filter, first, last, 4128, "epsg", 4128, "Madzansua"); add_proj4text (p, 0, @@ -531,7 +531,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Madzansua\",DATUM[\"Madzansua\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6128\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, @@ -547,7 +547,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Observatario\",DATUM[\"Observatario\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6129\"]],PRIMEM[\""); add_srs_wkt (p, 3, @@ -577,9 +577,9 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4131, "epsg", 4131, "Indian 1960"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=198,881,317,0,0,0,0 +no_defs"); + "4=198,881,317,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1960\",DATUM[\"Indian_1960\",SPHEROID[\""); add_srs_wkt (p, 1, @@ -597,23 +597,23 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4132, "epsg", 4132, "FD58"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk80 +towgs84=-239.1,-170.02,397."); + "+proj=longlat +ellps=clrk80 +towgs84=-241.54,-163.64,396"); add_proj4text (p, 1, - "5,0,0,0,0 +no_defs"); + ".06,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"FD58\",DATUM[\"Final_Datum_1958\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, - ",\"7012\"]],TOWGS84[-239.1,-170.02,397.5,0,0,0,0],AUTHOR"); + ",\"7012\"]],TOWGS84[-241.54,-163.64,396.06,0,0,0,0],AUTH"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "ORITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4132\""); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"413"); add_srs_wkt (p, 6, - "]]"); + "2\"]]"); p = add_epsg_def (filter, first, last, 4133, "epsg", 4133, "EST92"); add_proj4text (p, 0, @@ -663,7 +663,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Old Hawaiian\",DATUM[\"Old_Hawaiian\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, @@ -679,7 +679,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"St. Lawrence Island\",DATUM[\"St_Lawrence_Islan"); add_srs_wkt (p, 1, - "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); + "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6136"); add_srs_wkt (p, 3, @@ -695,7 +695,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"St. Paul Island\",DATUM[\"St_Paul_Island\",SPHE"); add_srs_wkt (p, 1, - "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI"); + "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6137\"]],PRI"); add_srs_wkt (p, 3, @@ -711,7 +711,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"St. George Island\",DATUM[\"St_George_Island\","); add_srs_wkt (p, 1, - "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUT"); + "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6138\"]]"); add_srs_wkt (p, 3, @@ -729,7 +729,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Puerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7008\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, @@ -817,15 +817,15 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4144, "epsg", 4144, "Kalianpur 1937"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=282,726,254,0,0,0,0 +no_defs"); + "4=214,804,268,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1937\",DATUM[\"Kalianpur_1937\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8"); add_srs_wkt (p, 2, - "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,"); + "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, @@ -837,7 +837,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4145, "epsg", 4145, "Kalianpur 1962"); add_proj4text (p, 0, - "+proj=longlat +a=6377301.243 +b=6356100.230165385 +towgs"); + "+proj=longlat +a=6377301.243 +b=6356100.230165384 +towgs"); add_proj4text (p, 1, "84=283,682,231,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, @@ -1033,7 +1033,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Dabola 1981\",DATUM[\"Dabola_1981\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); + "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-83,37,124,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, @@ -1073,7 +1073,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Mount Dillon\",DATUM[\"Mount_Dillon\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1858\",6378293.645208759,294.2606763692654,AUTH"); + "\"Clarke 1858\",6378293.645208759,294.2606763692569,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6157\"]],"); add_srs_wkt (p, 3, @@ -1293,9 +1293,9 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 1, - "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); + "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900"); add_srs_wkt (p, 2, - "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); + "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, @@ -1687,7 +1687,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Manoca 1962\",DATUM[\"Manoca_1962\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); + "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0"); add_srs_wkt (p, 3, @@ -1925,7 +1925,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Agadez\",DATUM[\"Agadez\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, - "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6206\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, diff --git a/src/spatialite/src/srsinit/epsg_inlined_20.c b/src/spatialite/src/srsinit/epsg_inlined_20.c index 154ee86..25b7b47 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_20.c +++ b/src/spatialite/src/srsinit/epsg_inlined_20.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -61,7 +61,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Beduaram\",DATUM[\"Beduaram\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, - " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); + " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, @@ -113,7 +113,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Bermuda 1957\",DATUM[\"Bermuda_1957\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, @@ -251,7 +251,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Carthage\",DATUM[\"Carthage\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, - " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); + " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, @@ -305,7 +305,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Cote d'Ivoire\",DATUM[\"Cote_d_Ivoire\",SPHEROI"); add_srs_wkt (p, 1, - "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTH"); + "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6226\"]],"); add_srs_wkt (p, 3, @@ -323,7 +323,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Deir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); + "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,"); add_srs_wkt (p, 3, @@ -341,7 +341,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Douala\",DATUM[\"Douala\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, - "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, @@ -449,7 +449,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, - "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, @@ -535,9 +535,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4239, "epsg", 4239, "Indian 1954"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=217,823,299,0,0,0,0 +no_defs"); + "4=217,823,299,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1954\",DATUM[\"Indian_1954\",SPHEROID[\""); add_srs_wkt (p, 1, @@ -555,9 +555,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4240, "epsg", 4240, "Indian 1975"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=210,814,289,0,0,0,0 +no_defs"); + "4=210,814,289,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1975\",DATUM[\"Indian_1975\",SPHEROID[\""); add_srs_wkt (p, 1, @@ -581,7 +581,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Jamaica 1875\",DATUM[\"Jamaica_1875\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1880\",6378249.144808011,293.4663076556303,AUTH"); + "\"Clarke 1880\",6378249.144808011,293.4663076556349,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],"); add_srs_wkt (p, 3, @@ -599,7 +599,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"JAD69\",DATUM[\"Jamaica_1969\",SPHEROID[\"Clark"); add_srs_wkt (p, 1, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7008\"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, @@ -619,7 +619,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "OID[\"Everest (1830 Definition)\",6377299.36559538,300.8"); add_srs_wkt (p, 2, - "017255433612,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E"); + "017255433552,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6243\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, @@ -629,9 +629,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4244, "epsg", 4244, "Kandawala"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=-97,787,86,0,0,0,0 +no_defs"); + "4=-97,787,86,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kandawala\",DATUM[\"Kandawala\",SPHEROID[\"Ever"); add_srs_wkt (p, 1, @@ -781,7 +781,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Lome\",DATUM[\"Lome\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, - "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); + "GN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6252\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, @@ -799,7 +799,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Luzon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, - "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); + "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7008\"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, @@ -945,7 +945,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Merchich\",DATUM[\"Merchich\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, - " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); + " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, @@ -1037,7 +1037,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"M'poraloko\",DATUM[\"M_poraloko\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, - "arke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY["); + "arke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7011\"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, @@ -1055,7 +1055,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPH"); add_srs_wkt (p, 1, - "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); + "EROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PR"); add_srs_wkt (p, 3, @@ -1075,7 +1075,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869"); add_srs_wkt (p, 2, - "71646747,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); + "71646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, @@ -1101,21 +1101,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4270, "epsg", 4270, "Nahrwan 1967"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk80 +towgs84=-243,-192,477,0,0,0"); + "+proj=longlat +ellps=clrk80 +towgs84=-242.2,-144.9,370.3"); add_proj4text (p, 1, - ",0 +no_defs"); + ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nahrwan 1967\",DATUM[\"Nahrwan_1967\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, - "SG\",\"7012\"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY"); + "SG\",\"7012\"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUT"); add_srs_wkt (p, 3, - "[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "HORITY[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]]"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + add_srs_wkt (p, 6, + "70\"]]"); p = add_epsg_def (filter, first, last, 4271, "epsg", 4271, "Naparima 1972"); add_proj4text (p, 0, @@ -1201,7 +1203,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, - "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); + "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6275\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, @@ -1235,13 +1237,15 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, - "1\"]],TOWGS84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "1\"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-"); add_srs_wkt (p, 3, - "6277\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "20.489],AUTHORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4277\"]]"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4277\"]]"); p = add_epsg_def (filter, first, last, 4278, "epsg", 4278, "OSGB70"); add_proj4text (p, 0, @@ -1301,7 +1305,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "OID[\"Clarke 1880 (Benoit)\",6378300.789,293.46631553898"); add_srs_wkt (p, 2, - "11,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.782"); + "02,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.782"); add_srs_wkt (p, 3, "4,340.894,-8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, @@ -1321,7 +1325,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, - "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0"); + "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, @@ -1553,7 +1557,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Sudan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, - "(IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\""); + "(IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7011\"]],AUTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, @@ -1583,23 +1587,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4298, "epsg", 4298, "Timbalai 1948"); add_proj4text (p, 0, - "+proj=longlat +ellps=evrstSS +towgs84=-533.4,669.2,-52.5"); + "+proj=longlat +ellps=evrstSS +towgs84=-679,669,-48,0,0,0"); add_proj4text (p, 1, - ",0,0,4.28,9.4 +no_defs"); + ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Timbalai 1948\",DATUM[\"Timbalai_1948\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Everest 1830 (1967 Definition)\",6377298.556,300.801"); add_srs_wkt (p, 2, - "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52"); + "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0"); add_srs_wkt (p, 3, - ".5,0,0,4.28,9.4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\""); + ",0,0],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4298\"]]"); + "SG\",\"4298\"]]"); p = add_epsg_def (filter, first, last, 4299, "epsg", 4299, "TM65"); add_proj4text (p, 0, @@ -1665,7 +1669,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROI"); add_srs_wkt (p, 1, - "D[\"Clarke 1858\",6378293.645208759,294.2606763692654,AU"); + "D[\"Clarke 1858\",6378293.645208759,294.2606763692569,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472."); add_srs_wkt (p, 3, @@ -1701,7 +1705,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); + "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTH"); add_srs_wkt (p, 3, @@ -1731,23 +1735,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4307, "epsg", 4307, "Nord Sahara 1959"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,"); + "+proj=longlat +ellps=clrk80 +towgs84=-209.362,-87.8162,4"); add_proj4text (p, 1, - "0 +no_defs"); + "04.62,0.0046,3.4784,0.5805,-1.4547 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR"); add_srs_wkt (p, 2, - "ITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AU"); + "ITY[\"EPSG\",\"7012\"]],TOWGS84[-209.362,-87.8162,404.62"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + ",0.0046,3.4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "307\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]]"); p = add_epsg_def (filter, first, last, 4308, "epsg", 4308, "RT38"); add_proj4text (p, 0, @@ -1789,7 +1793,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Yoff\",DATUM[\"Yoff\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, - "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); + "GN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6310\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, @@ -1881,7 +1885,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHOR"); + "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTH"); add_srs_wkt (p, 3, diff --git a/src/spatialite/src/srsinit/epsg_inlined_21.c b/src/spatialite/src/srsinit/epsg_inlined_21.c index e822aaf..67291cb 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_21.c +++ b/src/spatialite/src/srsinit/epsg_inlined_21.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -177,7 +177,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -209,7 +209,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -241,7 +241,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -273,7 +273,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -305,7 +305,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -337,7 +337,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -369,7 +369,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -401,7 +401,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -433,7 +433,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -465,7 +465,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -497,7 +497,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, @@ -529,7 +529,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -561,7 +561,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -593,7 +593,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -625,7 +625,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -693,7 +693,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, @@ -747,9 +747,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"4417\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"4417\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 4418, "epsg", 4418, "NAD27 / BLM 18N (ftUS)"); add_proj4text (p, 0, @@ -761,7 +761,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -793,7 +793,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, @@ -1293,9 +1293,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"4434\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"4434\"]]"); + "]]"); p = add_epsg_def (filter, first, last, 4437, "epsg", 4437, "NAD83(NSRS2007) / Puerto Rico and Virgin Is."); add_proj4text (p, 0, @@ -1415,7 +1415,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, @@ -1453,7 +1453,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, @@ -1653,37 +1653,37 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"4471\"]]"); p = add_epsg_def (filter, first, last, 4474, "epsg", 4474, - "Cadastre 1997 / UTM zone 38S"); + "Cadastre 1997 / UTM zone 38S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,"); add_proj4text (p, 1, "-262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Combani"); + "PROJCS[\"Cadastre 1997 / UTM zone 38S (deprecated)\",GEO"); add_srs_wkt (p, 1, - " 1950\",DATUM[\"Combani_1950\",SPHEROID[\"International "); + "GCS[\"Combani 1950\",DATUM[\"Combani_1950\",SPHEROID[\"I"); add_srs_wkt (p, 2, - "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); + "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",\"6632\"]],PR"); + "2\"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "\"6632\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Transverse"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTIO"); add_srs_wkt (p, 7, - "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",0"); + "n\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"sc"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + ",PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]"); + "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]"); p = add_epsg_def (filter, first, last, 4475, "epsg", 4475, "Cadastre 1997"); add_proj4text (p, 0, @@ -1705,217 +1705,215 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "475\"]]"); p = add_epsg_def (filter, first, last, 4483, "epsg", 4483, - "Mexican Datum of 1993"); + "Mexico ITRF92"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, - "GEOGCS[\"Mexican Datum of 1993\",DATUM[\"Mexican_Datum_o"); + "GEOGCS[\"Mexico ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROI"); add_srs_wkt (p, 1, - "f_1993\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); + "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); + "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\""); - add_srs_wkt (p, 6, - "]]"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]]"); p = add_epsg_def (filter, first, last, 4484, "epsg", 4484, - "Mexican Datum of 1993 / UTM zone 11N"); + "Mexico ITRF92 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 11N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 11N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-117],PARAMETE"); + "entral_meridian\",-117],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4484\"]]"); + "THORITY[\"EPSG\",\"4484\"]]"); p = add_epsg_def (filter, first, last, 4485, "epsg", 4485, - "Mexican Datum of 1993 / UTM zone 12N"); + "Mexico ITRF92 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 12N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 12N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-111],PARAMETE"); + "entral_meridian\",-111],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4485\"]]"); + "THORITY[\"EPSG\",\"4485\"]]"); p = add_epsg_def (filter, first, last, 4486, "epsg", 4486, - "Mexican Datum of 1993 / UTM zone 13N"); + "Mexico ITRF92 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 13N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 13N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-105],PARAMETE"); + "entral_meridian\",-105],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4486\"]]"); + "THORITY[\"EPSG\",\"4486\"]]"); p = add_epsg_def (filter, first, last, 4487, "epsg", 4487, - "Mexican Datum of 1993 / UTM zone 14N"); + "Mexico ITRF92 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 14N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 14N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER"); + "entral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4487\"]]"); + "HORITY[\"EPSG\",\"4487\"]]"); p = add_epsg_def (filter, first, last, 4488, "epsg", 4488, - "Mexican Datum of 1993 / UTM zone 15N"); + "Mexico ITRF92 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 15N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 15N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-93],PARAMETER"); + "entral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4488\"]]"); + "HORITY[\"EPSG\",\"4488\"]]"); p = add_epsg_def (filter, first, last, 4489, "epsg", 4489, - "Mexican Datum of 1993 / UTM zone 16N"); + "Mexico ITRF92 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mexican Datum of 1993 / UTM zone 16N\",GEOGCS[\""); + "PROJCS[\"Mexico ITRF92 / UTM zone 16N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, - "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); + "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); + "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-87],PARAMETER"); + "entral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4489\"]]"); + "HORITY[\"EPSG\",\"4489\"]]"); p = add_epsg_def (filter, first, last, 4490, "epsg", 4490, "China Geodetic Coordinate System 2000"); add_proj4text (p, 0, @@ -1961,9 +1959,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4491\"]]"); + ",AUTHORITY[\"EPSG\",\"4491\"]]"); p = add_epsg_def (filter, first, last, 4492, "epsg", 4492, "CGCS2000 / Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -1993,9 +1989,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4492\"]]"); + ",AUTHORITY[\"EPSG\",\"4492\"]]"); p = add_epsg_def (filter, first, last, 4493, "epsg", 4493, "CGCS2000 / Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -2025,9 +2019,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4493\"]]"); + ",AUTHORITY[\"EPSG\",\"4493\"]]"); p = add_epsg_def (filter, first, last, 4494, "epsg", 4494, "CGCS2000 / Gauss-Kruger zone 16"); add_proj4text (p, 0, @@ -2057,9 +2049,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4494\"]]"); + ",AUTHORITY[\"EPSG\",\"4494\"]]"); p = add_epsg_def (filter, first, last, 4495, "epsg", 4495, "CGCS2000 / Gauss-Kruger zone 17"); add_proj4text (p, 0, @@ -2089,9 +2079,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4495\"]]"); + ",AUTHORITY[\"EPSG\",\"4495\"]]"); p = add_epsg_def (filter, first, last, 4496, "epsg", 4496, "CGCS2000 / Gauss-Kruger zone 18"); add_proj4text (p, 0, @@ -2121,9 +2109,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4496\"]]"); + "],AUTHORITY[\"EPSG\",\"4496\"]]"); p = add_epsg_def (filter, first, last, 4497, "epsg", 4497, "CGCS2000 / Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -2153,9 +2139,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4497\"]]"); + "],AUTHORITY[\"EPSG\",\"4497\"]]"); p = add_epsg_def (filter, first, last, 4498, "epsg", 4498, "CGCS2000 / Gauss-Kruger zone 20"); add_proj4text (p, 0, @@ -2185,9 +2169,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4498\"]]"); + "],AUTHORITY[\"EPSG\",\"4498\"]]"); p = add_epsg_def (filter, first, last, 4499, "epsg", 4499, "CGCS2000 / Gauss-Kruger zone 21"); add_proj4text (p, 0, @@ -2217,9 +2199,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4499\"]]"); + "],AUTHORITY[\"EPSG\",\"4499\"]]"); p = add_epsg_def (filter, first, last, 4500, "epsg", 4500, "CGCS2000 / Gauss-Kruger zone 22"); add_proj4text (p, 0, @@ -2249,9 +2229,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4500\"]]"); + "],AUTHORITY[\"EPSG\",\"4500\"]]"); p = add_epsg_def (filter, first, last, 4501, "epsg", 4501, "CGCS2000 / Gauss-Kruger zone 23"); add_proj4text (p, 0, @@ -2281,9 +2259,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 12, - "\"4501\"]]"); + "],AUTHORITY[\"EPSG\",\"4501\"]]"); p = add_epsg_def (filter, first, last, 4502, "epsg", 4502, "CGCS2000 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -2313,9 +2289,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); - add_srs_wkt (p, 12, - "502\"]]"); + "UTHORITY[\"EPSG\",\"4502\"]]"); p = add_epsg_def (filter, first, last, 4503, "epsg", 4503, "CGCS2000 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -2345,9 +2319,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); - add_srs_wkt (p, 12, - "503\"]]"); + "UTHORITY[\"EPSG\",\"4503\"]]"); p = add_epsg_def (filter, first, last, 4504, "epsg", 4504, "CGCS2000 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -2377,9 +2349,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); - add_srs_wkt (p, 12, - "504\"]]"); + "UTHORITY[\"EPSG\",\"4504\"]]"); p = add_epsg_def (filter, first, last, 4505, "epsg", 4505, "CGCS2000 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -2409,9 +2379,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); - add_srs_wkt (p, 12, - "505\"]]"); + "UTHORITY[\"EPSG\",\"4505\"]]"); p = add_epsg_def (filter, first, last, 4506, "epsg", 4506, "CGCS2000 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -2441,9 +2409,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); - add_srs_wkt (p, 12, - "506\"]]"); + "UTHORITY[\"EPSG\",\"4506\"]]"); p = add_epsg_def (filter, first, last, 4507, "epsg", 4507, "CGCS2000 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -2473,9 +2439,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4507\"]]"); + "AUTHORITY[\"EPSG\",\"4507\"]]"); p = add_epsg_def (filter, first, last, 4508, "epsg", 4508, "CGCS2000 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -2505,9 +2469,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4508\"]]"); + "AUTHORITY[\"EPSG\",\"4508\"]]"); p = add_epsg_def (filter, first, last, 4509, "epsg", 4509, "CGCS2000 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -2537,9 +2499,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4509\"]]"); + "AUTHORITY[\"EPSG\",\"4509\"]]"); p = add_epsg_def (filter, first, last, 4510, "epsg", 4510, "CGCS2000 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -2569,9 +2529,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4510\"]]"); + "AUTHORITY[\"EPSG\",\"4510\"]]"); p = add_epsg_def (filter, first, last, 4511, "epsg", 4511, "CGCS2000 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -2601,9 +2559,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4511\"]]"); + "AUTHORITY[\"EPSG\",\"4511\"]]"); p = add_epsg_def (filter, first, last, 4512, "epsg", 4512, "CGCS2000 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -2633,9 +2589,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "4512\"]]"); + "AUTHORITY[\"EPSG\",\"4512\"]]"); p = add_epsg_def (filter, first, last, 4513, "epsg", 4513, "CGCS2000 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -2665,9 +2619,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4513\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4513\"]]"); p = add_epsg_def (filter, first, last, 4514, "epsg", 4514, "CGCS2000 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -2697,9 +2649,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4514\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4514\"]]"); p = add_epsg_def (filter, first, last, 4515, "epsg", 4515, "CGCS2000 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -2729,9 +2679,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4515\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4515\"]]"); p = add_epsg_def (filter, first, last, 4516, "epsg", 4516, "CGCS2000 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, @@ -2761,9 +2709,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4516\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4516\"]]"); p = add_epsg_def (filter, first, last, 4517, "epsg", 4517, "CGCS2000 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -2793,9 +2739,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4517\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4517\"]]"); p = add_epsg_def (filter, first, last, 4518, "epsg", 4518, "CGCS2000 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, @@ -2825,9 +2769,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4518\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4518\"]]"); p = add_epsg_def (filter, first, last, 4519, "epsg", 4519, "CGCS2000 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -2857,9 +2799,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4519\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4519\"]]"); p = add_epsg_def (filter, first, last, 4520, "epsg", 4520, "CGCS2000 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -2889,9 +2829,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4520\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4520\"]]"); p = add_epsg_def (filter, first, last, 4521, "epsg", 4521, "CGCS2000 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -2921,9 +2859,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4521\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4521\"]]"); p = add_epsg_def (filter, first, last, 4522, "epsg", 4522, "CGCS2000 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, @@ -2953,9 +2889,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4522\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4522\"]]"); p = add_epsg_def (filter, first, last, 4523, "epsg", 4523, "CGCS2000 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -2985,9 +2919,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4523\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4523\"]]"); p = add_epsg_def (filter, first, last, 4524, "epsg", 4524, "CGCS2000 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -3017,9 +2949,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4524\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4524\"]]"); p = add_epsg_def (filter, first, last, 4525, "epsg", 4525, "CGCS2000 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -3049,9 +2979,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4525\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4525\"]]"); p = add_epsg_def (filter, first, last, 4526, "epsg", 4526, "CGCS2000 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -3081,9 +3009,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4526\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4526\"]]"); p = add_epsg_def (filter, first, last, 4527, "epsg", 4527, "CGCS2000 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -3113,9 +3039,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4527\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4527\"]]"); p = add_epsg_def (filter, first, last, 4528, "epsg", 4528, "CGCS2000 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -3145,9 +3069,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4528\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4528\"]]"); p = add_epsg_def (filter, first, last, 4529, "epsg", 4529, "CGCS2000 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -3177,9 +3099,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4529\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4529\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_22.c b/src/spatialite/src/srsinit/epsg_inlined_22.c index a133b1c..d6c4fac 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_22.c +++ b/src/spatialite/src/srsinit/epsg_inlined_22.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -81,9 +81,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4530\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4530\"]]"); p = add_epsg_def (filter, first, last, 4531, "epsg", 4531, "CGCS2000 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -113,9 +111,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4531\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4531\"]]"); p = add_epsg_def (filter, first, last, 4532, "epsg", 4532, "CGCS2000 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -145,9 +141,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4532\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4532\"]]"); p = add_epsg_def (filter, first, last, 4533, "epsg", 4533, "CGCS2000 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -177,9 +171,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"4533\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"4533\"]]"); p = add_epsg_def (filter, first, last, 4534, "epsg", 4534, "CGCS2000 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -209,9 +201,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4534\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4534\"]]"); p = add_epsg_def (filter, first, last, 4535, "epsg", 4535, "CGCS2000 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -241,9 +231,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4535\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4535\"]]"); p = add_epsg_def (filter, first, last, 4536, "epsg", 4536, "CGCS2000 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -273,9 +261,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4536\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4536\"]]"); p = add_epsg_def (filter, first, last, 4537, "epsg", 4537, "CGCS2000 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -305,9 +291,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4537\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4537\"]]"); p = add_epsg_def (filter, first, last, 4538, "epsg", 4538, "CGCS2000 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -337,9 +321,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4538\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4538\"]]"); p = add_epsg_def (filter, first, last, 4539, "epsg", 4539, "CGCS2000 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -369,9 +351,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4539\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4539\"]]"); p = add_epsg_def (filter, first, last, 4540, "epsg", 4540, "CGCS2000 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -401,9 +381,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4540\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4540\"]]"); p = add_epsg_def (filter, first, last, 4541, "epsg", 4541, "CGCS2000 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -433,9 +411,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4541\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4541\"]]"); p = add_epsg_def (filter, first, last, 4542, "epsg", 4542, "CGCS2000 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -465,9 +441,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"4542\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"4542\"]]"); p = add_epsg_def (filter, first, last, 4543, "epsg", 4543, "CGCS2000 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -497,9 +471,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4543\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4543\"]]"); p = add_epsg_def (filter, first, last, 4544, "epsg", 4544, "CGCS2000 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -529,9 +501,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4544\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4544\"]]"); p = add_epsg_def (filter, first, last, 4545, "epsg", 4545, "CGCS2000 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -561,9 +531,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4545\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4545\"]]"); p = add_epsg_def (filter, first, last, 4546, "epsg", 4546, "CGCS2000 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -593,9 +561,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4546\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4546\"]]"); p = add_epsg_def (filter, first, last, 4547, "epsg", 4547, "CGCS2000 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -625,9 +591,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4547\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4547\"]]"); p = add_epsg_def (filter, first, last, 4548, "epsg", 4548, "CGCS2000 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -657,9 +621,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4548\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4548\"]]"); p = add_epsg_def (filter, first, last, 4549, "epsg", 4549, "CGCS2000 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -689,9 +651,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4549\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4549\"]]"); p = add_epsg_def (filter, first, last, 4550, "epsg", 4550, "CGCS2000 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -721,9 +681,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4550\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4550\"]]"); p = add_epsg_def (filter, first, last, 4551, "epsg", 4551, "CGCS2000 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -753,9 +711,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4551\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4551\"]]"); p = add_epsg_def (filter, first, last, 4552, "epsg", 4552, "CGCS2000 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -785,9 +741,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4552\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4552\"]]"); p = add_epsg_def (filter, first, last, 4553, "epsg", 4553, "CGCS2000 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, @@ -817,9 +771,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4553\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4553\"]]"); p = add_epsg_def (filter, first, last, 4554, "epsg", 4554, "CGCS2000 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -849,9 +801,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"4554\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"4554\"]]"); p = add_epsg_def (filter, first, last, 4555, "epsg", 4555, "New Beijing"); add_proj4text (p, 0, @@ -947,9 +897,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4568\"]]"); + "4568\"]]"); p = add_epsg_def (filter, first, last, 4569, "epsg", 4569, "New Beijing / Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -977,9 +927,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4569\"]]"); + "4569\"]]"); p = add_epsg_def (filter, first, last, 4570, "epsg", 4570, "New Beijing / Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -1007,9 +957,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4570\"]]"); + "4570\"]]"); p = add_epsg_def (filter, first, last, 4571, "epsg", 4571, "New Beijing / Gauss-Kruger zone 16"); add_proj4text (p, 0, @@ -1037,9 +987,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4571\"]]"); + "4571\"]]"); p = add_epsg_def (filter, first, last, 4572, "epsg", 4572, "New Beijing / Gauss-Kruger zone 17"); add_proj4text (p, 0, @@ -1067,9 +1017,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4572\"]]"); + "4572\"]]"); p = add_epsg_def (filter, first, last, 4573, "epsg", 4573, "New Beijing / Gauss-Kruger zone 18"); add_proj4text (p, 0, @@ -1097,9 +1047,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4573\"]]"); + "\"4573\"]]"); p = add_epsg_def (filter, first, last, 4574, "epsg", 4574, "New Beijing / Gauss-Kruger zone 19"); add_proj4text (p, 0, @@ -1127,9 +1077,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4574\"]]"); + "\"4574\"]]"); p = add_epsg_def (filter, first, last, 4575, "epsg", 4575, "New Beijing / Gauss-Kruger zone 20"); add_proj4text (p, 0, @@ -1157,9 +1107,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4575\"]]"); + "\"4575\"]]"); p = add_epsg_def (filter, first, last, 4576, "epsg", 4576, "New Beijing / Gauss-Kruger zone 21"); add_proj4text (p, 0, @@ -1187,9 +1137,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4576\"]]"); + "\"4576\"]]"); p = add_epsg_def (filter, first, last, 4577, "epsg", 4577, "New Beijing / Gauss-Kruger zone 22"); add_proj4text (p, 0, @@ -1217,9 +1167,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4577\"]]"); + "\"4577\"]]"); p = add_epsg_def (filter, first, last, 4578, "epsg", 4578, "New Beijing / Gauss-Kruger zone 23"); add_proj4text (p, 0, @@ -1247,9 +1197,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4578\"]]"); + "\"4578\"]]"); p = add_epsg_def (filter, first, last, 4579, "epsg", 4579, "New Beijing / Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -1277,9 +1227,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"457"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"4579\"]]"); + "9\"]]"); p = add_epsg_def (filter, first, last, 4580, "epsg", 4580, "New Beijing / Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -1307,9 +1257,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"4580\"]]"); + "0\"]]"); p = add_epsg_def (filter, first, last, 4581, "epsg", 4581, "New Beijing / Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -1337,9 +1287,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"4581\"]]"); + "1\"]]"); p = add_epsg_def (filter, first, last, 4582, "epsg", 4582, "New Beijing / Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -1367,9 +1317,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"4582\"]]"); + "2\"]]"); p = add_epsg_def (filter, first, last, 4583, "epsg", 4583, "New Beijing / Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -1397,9 +1347,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458"); add_srs_wkt (p, 11, - "Y\",EAST],AUTHORITY[\"EPSG\",\"4583\"]]"); + "3\"]]"); p = add_epsg_def (filter, first, last, 4584, "epsg", 4584, "New Beijing / Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -1427,9 +1377,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4584\"]]"); + "4584\"]]"); p = add_epsg_def (filter, first, last, 4585, "epsg", 4585, "New Beijing / Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -1457,9 +1407,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4585\"]]"); + "4585\"]]"); p = add_epsg_def (filter, first, last, 4586, "epsg", 4586, "New Beijing / Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -1487,9 +1437,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4586\"]]"); + "4586\"]]"); p = add_epsg_def (filter, first, last, 4587, "epsg", 4587, "New Beijing / Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -1517,9 +1467,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4587\"]]"); + "4587\"]]"); p = add_epsg_def (filter, first, last, 4588, "epsg", 4588, "New Beijing / Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -1547,9 +1497,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4588\"]]"); + "4588\"]]"); p = add_epsg_def (filter, first, last, 4589, "epsg", 4589, "New Beijing / Gauss-Kruger CM 135E"); add_proj4text (p, 0, @@ -1577,9 +1527,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4589\"]]"); + "4589\"]]"); p = add_epsg_def (filter, first, last, 4600, "epsg", 4600, "Anguilla 1957"); add_proj4text (p, 0, @@ -1733,9 +1683,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"NAD27(76)\",DATUM[\"North_American_Datum_1927_1"); add_srs_wkt (p, 1, - "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); + "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390"); add_srs_wkt (p, 2, - "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); + "06,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 3, "08\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, @@ -1751,7 +1701,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "7_CGQ77\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982"); add_srs_wkt (p, 2, - "138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\","); + "139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6609\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, @@ -2287,7 +2237,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, - "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); + "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 3, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 4, @@ -2447,7 +2397,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4646\"]]"); p = add_epsg_def (filter, first, last, 4647, "epsg", 4647, - "ETRS89 / UTM zone N32"); + "ETRS89 / UTM zone 32N (zE-N)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y"); add_proj4text (p, 1, @@ -2455,31 +2405,31 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone N32\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"ETRS89 / UTM zone 32N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); + "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",32500000],PAR"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",3250000"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]"); p = add_epsg_def (filter, first, last, 4652, "epsg", 4652, "New Beijing / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, @@ -2507,9 +2457,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",25500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4652\"]]"); + "EPSG\",\"4652\"]]"); p = add_epsg_def (filter, first, last, 4653, "epsg", 4653, "New Beijing / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, @@ -2537,9 +2487,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",26500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4653\"]]"); + "EPSG\",\"4653\"]]"); p = add_epsg_def (filter, first, last, 4654, "epsg", 4654, "New Beijing / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, @@ -2567,9 +2517,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",27500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4654\"]]"); + "EPSG\",\"4654\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_23.c b/src/spatialite/src/srsinit/epsg_inlined_23.c index 128b5fe..fd248e3 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_23.c +++ b/src/spatialite/src/srsinit/epsg_inlined_23.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -79,9 +79,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",28500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4655\"]]"); + "EPSG\",\"4655\"]]"); p = add_epsg_def (filter, first, last, 4656, "epsg", 4656, "New Beijing / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, @@ -109,9 +109,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",29500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4656\"]]"); + "EPSG\",\"4656\"]]"); p = add_epsg_def (filter, first, last, 4657, "epsg", 4657, "Reykjavik 1900"); add_proj4text (p, 0, @@ -383,7 +383,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\""); add_srs_wkt (p, 1, - "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); + "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIM"); add_srs_wkt (p, 3, @@ -461,7 +461,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Guam 1963\",DATUM[\"Guam_1963\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, @@ -581,9 +581,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4682, "epsg", 4682, "Gulshan 303"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=283.7,735.9,261.1,0,0,0,0 +no_defs"); + "4=283.7,735.9,261.1,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\""); add_srs_wkt (p, 1, @@ -607,7 +607,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"PRS92\",DATUM[\"Philippine_Reference_System_199"); add_srs_wkt (p, 1, - "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); + "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-127.62,-67.24,-4"); add_srs_wkt (p, 3, @@ -837,7 +837,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID["); add_srs_wkt (p, 1, - "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,"); add_srs_wkt (p, 3, @@ -1243,7 +1243,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Cape Canaveral\",DATUM[\"Cape_Canaveral\",SPHER"); add_srs_wkt (p, 1, - "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); + "OID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7008\"]],TOWGS84[-2,151,181,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, @@ -1257,7 +1257,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4718, "epsg", 4718, "Solomon 1968"); add_proj4text (p, 0, - "+proj=longlat +ellps=intl +towgs84=252,-209,-751,0,0,0,0"); + "+proj=longlat +ellps=intl +towgs84=230,-199,-752,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, @@ -1265,7 +1265,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, - "7022\"]],TOWGS84[252,-209,-751,0,0,0,0],AUTHORITY[\"EPSG"); + "7022\"]],TOWGS84[230,-199,-752,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6718\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, @@ -1349,25 +1349,25 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "2\"]]"); p = add_epsg_def (filter, first, last, 4723, "epsg", 4723, - "Grand Cayman 1959"); + "GCGD59"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,"); + "+proj=longlat +ellps=clrk66 +towgs84=-179.483,-69.379,-2"); add_proj4text (p, 1, - "0,0,0 +no_defs"); + "7.584,-7.862,8.163,6.042,-13.925 +no_defs"); add_srs_wkt (p, 0, - "GEOGCS[\"Grand Cayman 1959\",DATUM[\"Grand_Cayman_1959\""); + "GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_19"); add_srs_wkt (p, 1, - ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); + "59\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900"); add_srs_wkt (p, 2, - "THORITY[\"EPSG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0"); + "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379"); add_srs_wkt (p, 3, - ",0,0],AUTHORITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\""); + ",-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "SG\",\"4723\"]]"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\"]]"); p = add_epsg_def (filter, first, last, 4724, "epsg", 4724, "Diego Garcia 1969"); add_proj4text (p, 0, @@ -1409,25 +1409,25 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "4725\"]]"); p = add_epsg_def (filter, first, last, 4726, "epsg", 4726, - "Little Cayman 1961"); + "SIGD61"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk66 +towgs84=42,124,147,0,0,0,0 "); + "+proj=longlat +ellps=clrk66 +towgs84=8.853,-52.644,180.3"); add_proj4text (p, 1, - "+no_defs"); + "04,-0.393,-2.323,2.96,-24.081 +no_defs"); add_srs_wkt (p, 0, - "GEOGCS[\"Little Cayman 1961\",DATUM[\"Little_Cayman_1961"); + "GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum_"); add_srs_wkt (p, 1, - "\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,"); + "1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139"); add_srs_wkt (p, 2, - "AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0"); + "006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,A"); + "180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - ",\"4726\"]]"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]]"); p = add_epsg_def (filter, first, last, 4727, "epsg", 4727, "Midway 1961"); add_proj4text (p, 0, @@ -1639,7 +1639,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHER"); add_srs_wkt (p, 1, - "OID[\"Clarke 1858\",6378293.645208759,294.2606763692654,"); + "OID[\"Clarke 1858\",6378293.645208759,294.2606763692569,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\""); add_srs_wkt (p, 3, @@ -1815,7 +1815,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (international foot)\",6378306.3696,"); add_srs_wkt (p, 2, - "293.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84["); + "293.4663076556349,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84["); add_srs_wkt (p, 3, "51,391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6748\"]],PRIMEM"); add_srs_wkt (p, 4, @@ -1891,7 +1891,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "OID[\"Clarke 1880 (international foot)\",6378306.3696,29"); add_srs_wkt (p, 2, - "3.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51"); + "3.4663076556349,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51"); add_srs_wkt (p, 3, ",391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\""); add_srs_wkt (p, 4, diff --git a/src/spatialite/src/srsinit/epsg_inlined_24.c b/src/spatialite/src/srsinit/epsg_inlined_24.c index 086d342..900347f 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_24.c +++ b/src/spatialite/src/srsinit/epsg_inlined_24.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -265,9 +265,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",30500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4766\"]]"); + "EPSG\",\"4766\"]]"); p = add_epsg_def (filter, first, last, 4767, "epsg", 4767, "New Beijing / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, @@ -295,9 +295,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",31500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4767\"]]"); + "EPSG\",\"4767\"]]"); p = add_epsg_def (filter, first, last, 4768, "epsg", 4768, "New Beijing / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, @@ -325,9 +325,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",32500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4768\"]]"); + "EPSG\",\"4768\"]]"); p = add_epsg_def (filter, first, last, 4769, "epsg", 4769, "New Beijing / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, @@ -355,9 +355,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "e_easting\",33500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4769\"]]"); + "EPSG\",\"4769\"]]"); p = add_epsg_def (filter, first, last, 4770, "epsg", 4770, "New Beijing / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, @@ -385,9 +385,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",34500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4770\"]]"); + "\"EPSG\",\"4770\"]]"); p = add_epsg_def (filter, first, last, 4771, "epsg", 4771, "New Beijing / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, @@ -415,9 +415,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",35500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4771\"]]"); + "\"EPSG\",\"4771\"]]"); p = add_epsg_def (filter, first, last, 4772, "epsg", 4772, "New Beijing / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, @@ -445,9 +445,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",36500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4772\"]]"); + "\"EPSG\",\"4772\"]]"); p = add_epsg_def (filter, first, last, 4773, "epsg", 4773, "New Beijing / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, @@ -475,9 +475,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",37500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4773\"]]"); + "\"EPSG\",\"4773\"]]"); p = add_epsg_def (filter, first, last, 4774, "epsg", 4774, "New Beijing / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, @@ -505,9 +505,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",38500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4774\"]]"); + "\"EPSG\",\"4774\"]]"); p = add_epsg_def (filter, first, last, 4775, "epsg", 4775, "New Beijing / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, @@ -535,9 +535,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",39500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4775\"]]"); + "\"EPSG\",\"4775\"]]"); p = add_epsg_def (filter, first, last, 4776, "epsg", 4776, "New Beijing / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, @@ -565,9 +565,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",40500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4776\"]]"); + "\"EPSG\",\"4776\"]]"); p = add_epsg_def (filter, first, last, 4777, "epsg", 4777, "New Beijing / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, @@ -595,9 +595,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",41500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4777\"]]"); + "\"EPSG\",\"4777\"]]"); p = add_epsg_def (filter, first, last, 4778, "epsg", 4778, "New Beijing / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, @@ -625,9 +625,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",42500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4778\"]]"); + "\"EPSG\",\"4778\"]]"); p = add_epsg_def (filter, first, last, 4779, "epsg", 4779, "New Beijing / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, @@ -655,9 +655,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",43500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4779\"]]"); + "\"EPSG\",\"4779\"]]"); p = add_epsg_def (filter, first, last, 4780, "epsg", 4780, "New Beijing / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, @@ -685,9 +685,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",44500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4780\"]]"); + "\"EPSG\",\"4780\"]]"); p = add_epsg_def (filter, first, last, 4781, "epsg", 4781, "New Beijing / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, @@ -715,9 +715,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",45500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4781\"]]"); + "\"EPSG\",\"4781\"]]"); p = add_epsg_def (filter, first, last, 4782, "epsg", 4782, "New Beijing / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, @@ -745,9 +745,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4782\"]]"); + "\",\"4782\"]]"); p = add_epsg_def (filter, first, last, 4783, "epsg", 4783, "New Beijing / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, @@ -775,9 +775,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4783\"]]"); + "\",\"4783\"]]"); p = add_epsg_def (filter, first, last, 4784, "epsg", 4784, "New Beijing / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, @@ -805,9 +805,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4784\"]]"); + "\",\"4784\"]]"); p = add_epsg_def (filter, first, last, 4785, "epsg", 4785, "New Beijing / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, @@ -835,9 +835,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4785\"]]"); + "\",\"4785\"]]"); p = add_epsg_def (filter, first, last, 4786, "epsg", 4786, "New Beijing / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, @@ -865,9 +865,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4786\"]]"); + "\",\"4786\"]]"); p = add_epsg_def (filter, first, last, 4787, "epsg", 4787, "New Beijing / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, @@ -895,9 +895,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4787\"]]"); + "\",\"4787\"]]"); p = add_epsg_def (filter, first, last, 4788, "epsg", 4788, "New Beijing / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, @@ -925,9 +925,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4788\"]]"); + "\",\"4788\"]]"); p = add_epsg_def (filter, first, last, 4789, "epsg", 4789, "New Beijing / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, @@ -955,9 +955,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4789\"]]"); + "\",\"4789\"]]"); p = add_epsg_def (filter, first, last, 4790, "epsg", 4790, "New Beijing / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, @@ -985,9 +985,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4790\"]]"); + "\",\"4790\"]]"); p = add_epsg_def (filter, first, last, 4791, "epsg", 4791, "New Beijing / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, @@ -1015,9 +1015,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4791\"]]"); + "EPSG\",\"4791\"]]"); p = add_epsg_def (filter, first, last, 4792, "epsg", 4792, "New Beijing / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, @@ -1045,9 +1045,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4792\"]]"); + "EPSG\",\"4792\"]]"); p = add_epsg_def (filter, first, last, 4793, "epsg", 4793, "New Beijing / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, @@ -1075,9 +1075,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4793\"]]"); + "EPSG\",\"4793\"]]"); p = add_epsg_def (filter, first, last, 4794, "epsg", 4794, "New Beijing / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, @@ -1105,9 +1105,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4794\"]]"); + "EPSG\",\"4794\"]]"); p = add_epsg_def (filter, first, last, 4795, "epsg", 4795, "New Beijing / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, @@ -1135,9 +1135,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4795\"]]"); + "EPSG\",\"4795\"]]"); p = add_epsg_def (filter, first, last, 4796, "epsg", 4796, "New Beijing / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, @@ -1165,9 +1165,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4796\"]]"); + "EPSG\",\"4796\"]]"); p = add_epsg_def (filter, first, last, 4797, "epsg", 4797, "New Beijing / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, @@ -1195,9 +1195,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4797\"]]"); + "EPSG\",\"4797\"]]"); p = add_epsg_def (filter, first, last, 4798, "epsg", 4798, "New Beijing / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, @@ -1225,9 +1225,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4798\"]]"); + "EPSG\",\"4798\"]]"); p = add_epsg_def (filter, first, last, 4799, "epsg", 4799, "New Beijing / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, @@ -1255,9 +1255,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4799\"]]"); + "EPSG\",\"4799\"]]"); p = add_epsg_def (filter, first, last, 4800, "epsg", 4800, "New Beijing / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, @@ -1285,9 +1285,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4800\"]]"); + "EPSG\",\"4800\"]]"); p = add_epsg_def (filter, first, last, 4801, "epsg", 4801, "Bern 1898 (Bern)"); add_proj4text (p, 0, @@ -1419,7 +1419,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "ancaise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, - ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); + ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[-168,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRI"); add_srs_wkt (p, 4, @@ -1491,7 +1491,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, - "36269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227"); + "36265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6811\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 4, @@ -1527,9 +1527,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4812\"]]"); + "EPSG\",\"4812\"]]"); p = add_epsg_def (filter, first, last, 4813, "epsg", 4813, "Batavia (Jakarta)"); add_proj4text (p, 0, @@ -1591,7 +1591,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Carthage (Paris)\",DATUM[\"Carthage_Paris\",SPH"); add_srs_wkt (p, 1, - "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,"); + "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0"); add_srs_wkt (p, 3, @@ -1647,23 +1647,25 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4819, "epsg", 4819, "Nord Sahara 1959 (Paris)"); add_proj4text (p, 0, - "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,"); + "+proj=longlat +ellps=clrk80 +towgs84=-209.362,-87.8162,4"); add_proj4text (p, 1, - "0 +pm=paris +no_defs"); + "04.62,0.0046,3.4784,0.5805,-1.4547 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959 (Paris)\",DATUM[\"Nord_Sahara_"); add_srs_wkt (p, 1, "1959_Paris\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, - "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,3"); + "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-209.362,-"); add_srs_wkt (p, 3, - "10,0,0,0,0],AUTHORITY[\"EPSG\",\"6819\"]],PRIMEM[\"Paris"); + "87.8162,404.62,0.0046,3.4784,0.5805,-1.4547],AUTHORITY[\""); add_srs_wkt (p, 4, - "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); + "EPSG\",\"6819\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY["); add_srs_wkt (p, 5, - ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); + "\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796326794897,AU"); add_srs_wkt (p, 6, - "RITY[\"EPSG\",\"4819\"]]"); + "THORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG\",\"4819\"]"); + add_srs_wkt (p, 7, + "]"); p = add_epsg_def (filter, first, last, 4820, "epsg", 4820, "Segara (Jakarta)"); add_proj4text (p, 0, @@ -1693,7 +1695,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, - "36269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\""); + "36265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6821\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, @@ -1727,9 +1729,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4822\"]]"); + "EPSG\",\"4822\"]]"); p = add_epsg_def (filter, first, last, 4823, "epsg", 4823, "Sao Tome"); add_proj4text (p, 0, @@ -1831,11 +1833,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 13, - "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 14, - ",\"4839\"]]"); + "\"EPSG\",\"4839\"]]"); p = add_epsg_def (filter, first, last, 4855, "epsg", 4855, "ETRS89 / NTM zone 5 (deprecated)"); add_proj4text (p, 0, @@ -1867,9 +1867,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4855\"]]"); + "55\"]]"); p = add_epsg_def (filter, first, last, 4856, "epsg", 4856, "ETRS89 / NTM zone 6 (deprecated)"); add_proj4text (p, 0, @@ -1901,9 +1901,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4856\"]]"); + "56\"]]"); p = add_epsg_def (filter, first, last, 4857, "epsg", 4857, "ETRS89 / NTM zone 7 (deprecated)"); add_proj4text (p, 0, @@ -1935,9 +1935,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4857\"]]"); + "57\"]]"); p = add_epsg_def (filter, first, last, 4858, "epsg", 4858, "ETRS89 / NTM zone 8 (deprecated)"); add_proj4text (p, 0, @@ -1969,9 +1969,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4858\"]]"); + "58\"]]"); p = add_epsg_def (filter, first, last, 4859, "epsg", 4859, "ETRS89 / NTM zone 9 (deprecated)"); add_proj4text (p, 0, @@ -2003,9 +2003,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4859\"]]"); + "59\"]]"); p = add_epsg_def (filter, first, last, 4860, "epsg", 4860, "ETRS89 / NTM zone 10 (deprecated)"); add_proj4text (p, 0, @@ -2037,9 +2037,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4860\"]]"); + "60\"]]"); p = add_epsg_def (filter, first, last, 4861, "epsg", 4861, "ETRS89 / NTM zone 11 (deprecated)"); add_proj4text (p, 0, @@ -2071,9 +2071,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4861\"]]"); + "61\"]]"); p = add_epsg_def (filter, first, last, 4862, "epsg", 4862, "ETRS89 / NTM zone 12 (deprecated)"); add_proj4text (p, 0, @@ -2105,9 +2105,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4862\"]]"); + "62\"]]"); p = add_epsg_def (filter, first, last, 4863, "epsg", 4863, "ETRS89 / NTM zone 13 (deprecated)"); add_proj4text (p, 0, @@ -2139,9 +2139,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4863\"]]"); + "63\"]]"); p = add_epsg_def (filter, first, last, 4864, "epsg", 4864, "ETRS89 / NTM zone 14 (deprecated)"); add_proj4text (p, 0, @@ -2173,9 +2173,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4864\"]]"); + "64\"]]"); p = add_epsg_def (filter, first, last, 4865, "epsg", 4865, "ETRS89 / NTM zone 15 (deprecated)"); add_proj4text (p, 0, @@ -2207,9 +2207,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4865\"]]"); + "65\"]]"); p = add_epsg_def (filter, first, last, 4866, "epsg", 4866, "ETRS89 / NTM zone 16 (deprecated)"); add_proj4text (p, 0, @@ -2241,9 +2241,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4866\"]]"); + "66\"]]"); p = add_epsg_def (filter, first, last, 4867, "epsg", 4867, "ETRS89 / NTM zone 17 (deprecated)"); add_proj4text (p, 0, @@ -2275,9 +2275,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4867\"]]"); + "67\"]]"); p = add_epsg_def (filter, first, last, 4868, "epsg", 4868, "ETRS89 / NTM zone 18 (deprecated)"); add_proj4text (p, 0, @@ -2309,9 +2309,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4868\"]]"); + "68\"]]"); p = add_epsg_def (filter, first, last, 4869, "epsg", 4869, "ETRS89 / NTM zone 19 (deprecated)"); add_proj4text (p, 0, @@ -2343,9 +2343,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4869\"]]"); + "69\"]]"); p = add_epsg_def (filter, first, last, 4870, "epsg", 4870, "ETRS89 / NTM zone 20 (deprecated)"); add_proj4text (p, 0, @@ -2377,9 +2377,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4870\"]]"); + "70\"]]"); p = add_epsg_def (filter, first, last, 4871, "epsg", 4871, "ETRS89 / NTM zone 21 (deprecated)"); add_proj4text (p, 0, @@ -2411,9 +2411,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4871\"]]"); + "71\"]]"); p = add_epsg_def (filter, first, last, 4872, "epsg", 4872, "ETRS89 / NTM zone 22 (deprecated)"); add_proj4text (p, 0, @@ -2445,9 +2445,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4872\"]]"); + "72\"]]"); p = add_epsg_def (filter, first, last, 4873, "epsg", 4873, "ETRS89 / NTM zone 23 (deprecated)"); add_proj4text (p, 0, @@ -2479,9 +2479,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4873\"]]"); + "73\"]]"); p = add_epsg_def (filter, first, last, 4874, "epsg", 4874, "ETRS89 / NTM zone 24 (deprecated)"); add_proj4text (p, 0, @@ -2513,9 +2513,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4874\"]]"); + "74\"]]"); p = add_epsg_def (filter, first, last, 4875, "epsg", 4875, "ETRS89 / NTM zone 25 (deprecated)"); add_proj4text (p, 0, @@ -2547,9 +2547,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4875\"]]"); + "75\"]]"); p = add_epsg_def (filter, first, last, 4876, "epsg", 4876, "ETRS89 / NTM zone 26 (deprecated)"); add_proj4text (p, 0, @@ -2581,9 +2581,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4876\"]]"); + "76\"]]"); p = add_epsg_def (filter, first, last, 4877, "epsg", 4877, "ETRS89 / NTM zone 27 (deprecated)"); add_proj4text (p, 0, @@ -2615,9 +2615,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4877\"]]"); + "77\"]]"); p = add_epsg_def (filter, first, last, 4878, "epsg", 4878, "ETRS89 / NTM zone 28 (deprecated)"); add_proj4text (p, 0, @@ -2649,9 +2649,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4878\"]]"); + "78\"]]"); p = add_epsg_def (filter, first, last, 4879, "epsg", 4879, "ETRS89 / NTM zone 29 (deprecated)"); add_proj4text (p, 0, @@ -2683,9 +2683,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4879\"]]"); + "79\"]]"); p = add_epsg_def (filter, first, last, 4880, "epsg", 4880, "ETRS89 / NTM zone 30 (deprecated)"); add_proj4text (p, 0, @@ -2717,9 +2717,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4880\"]]"); + "80\"]]"); p = add_epsg_def (filter, first, last, 4901, "epsg", 4901, "ATF (Paris)"); add_proj4text (p, 0, @@ -2759,7 +2759,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 4903, "epsg", 4903, "Madrid 1870 (Madrid)"); add_proj4text (p, 0, - "+proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madr"); + "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madr"); add_proj4text (p, 1, "id +no_defs"); add_srs_wkt (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_25.c b/src/spatialite/src/srsinit/epsg_inlined_25.c index ea2df26..de9cfd8 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_25.c +++ b/src/spatialite/src/srsinit/epsg_inlined_25.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -291,9 +291,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5048\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5048\"]]"); p = add_epsg_def (filter, first, last, 5069, "epsg", 5069, "NAD27 / Conus Albers"); add_proj4text (p, 0, @@ -305,7 +303,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -463,9 +461,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5105\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5105\"]]"); p = add_epsg_def (filter, first, last, 5106, "epsg", 5106, "ETRS89 / NTM zone 6"); add_proj4text (p, 0, @@ -497,9 +493,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5106\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5106\"]]"); p = add_epsg_def (filter, first, last, 5107, "epsg", 5107, "ETRS89 / NTM zone 7"); add_proj4text (p, 0, @@ -531,9 +525,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5107\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5107\"]]"); p = add_epsg_def (filter, first, last, 5108, "epsg", 5108, "ETRS89 / NTM zone 8"); add_proj4text (p, 0, @@ -565,9 +557,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5108\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5108\"]]"); p = add_epsg_def (filter, first, last, 5109, "epsg", 5109, "ETRS89 / NTM zone 9"); add_proj4text (p, 0, @@ -599,9 +589,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); - add_srs_wkt (p, 12, - "g\",EAST],AUTHORITY[\"EPSG\",\"5109\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5109\"]]"); p = add_epsg_def (filter, first, last, 5110, "epsg", 5110, "ETRS89 / NTM zone 10"); add_proj4text (p, 0, @@ -633,9 +621,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5110\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5110\"]]"); p = add_epsg_def (filter, first, last, 5111, "epsg", 5111, "ETRS89 / NTM zone 11"); add_proj4text (p, 0, @@ -667,9 +653,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5111\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5111\"]]"); p = add_epsg_def (filter, first, last, 5112, "epsg", 5112, "ETRS89 / NTM zone 12"); add_proj4text (p, 0, @@ -701,9 +685,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5112\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5112\"]]"); p = add_epsg_def (filter, first, last, 5113, "epsg", 5113, "ETRS89 / NTM zone 13"); add_proj4text (p, 0, @@ -735,9 +717,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5113\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5113\"]]"); p = add_epsg_def (filter, first, last, 5114, "epsg", 5114, "ETRS89 / NTM zone 14"); add_proj4text (p, 0, @@ -769,9 +749,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5114\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5114\"]]"); p = add_epsg_def (filter, first, last, 5115, "epsg", 5115, "ETRS89 / NTM zone 15"); add_proj4text (p, 0, @@ -803,9 +781,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5115\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5115\"]]"); p = add_epsg_def (filter, first, last, 5116, "epsg", 5116, "ETRS89 / NTM zone 16"); add_proj4text (p, 0, @@ -837,9 +813,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5116\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5116\"]]"); p = add_epsg_def (filter, first, last, 5117, "epsg", 5117, "ETRS89 / NTM zone 17"); add_proj4text (p, 0, @@ -871,9 +845,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5117\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5117\"]]"); p = add_epsg_def (filter, first, last, 5118, "epsg", 5118, "ETRS89 / NTM zone 18"); add_proj4text (p, 0, @@ -905,9 +877,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5118\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5118\"]]"); p = add_epsg_def (filter, first, last, 5119, "epsg", 5119, "ETRS89 / NTM zone 19"); add_proj4text (p, 0, @@ -939,9 +909,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5119\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5119\"]]"); p = add_epsg_def (filter, first, last, 5120, "epsg", 5120, "ETRS89 / NTM zone 20"); add_proj4text (p, 0, @@ -973,9 +941,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5120\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5120\"]]"); p = add_epsg_def (filter, first, last, 5121, "epsg", 5121, "ETRS89 / NTM zone 21"); add_proj4text (p, 0, @@ -1007,9 +973,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5121\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5121\"]]"); p = add_epsg_def (filter, first, last, 5122, "epsg", 5122, "ETRS89 / NTM zone 22"); add_proj4text (p, 0, @@ -1041,9 +1005,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5122\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5122\"]]"); p = add_epsg_def (filter, first, last, 5123, "epsg", 5123, "ETRS89 / NTM zone 23"); add_proj4text (p, 0, @@ -1075,9 +1037,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5123\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5123\"]]"); p = add_epsg_def (filter, first, last, 5124, "epsg", 5124, "ETRS89 / NTM zone 24"); add_proj4text (p, 0, @@ -1109,9 +1069,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5124\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5124\"]]"); p = add_epsg_def (filter, first, last, 5125, "epsg", 5125, "ETRS89 / NTM zone 25"); add_proj4text (p, 0, @@ -1143,9 +1101,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5125\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5125\"]]"); p = add_epsg_def (filter, first, last, 5126, "epsg", 5126, "ETRS89 / NTM zone 26"); add_proj4text (p, 0, @@ -1177,9 +1133,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5126\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5126\"]]"); p = add_epsg_def (filter, first, last, 5127, "epsg", 5127, "ETRS89 / NTM zone 27"); add_proj4text (p, 0, @@ -1211,9 +1165,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5127\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5127\"]]"); p = add_epsg_def (filter, first, last, 5128, "epsg", 5128, "ETRS89 / NTM zone 28"); add_proj4text (p, 0, @@ -1245,9 +1197,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5128\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5128\"]]"); p = add_epsg_def (filter, first, last, 5129, "epsg", 5129, "ETRS89 / NTM zone 29"); add_proj4text (p, 0, @@ -1279,9 +1229,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5129\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5129\"]]"); p = add_epsg_def (filter, first, last, 5130, "epsg", 5130, "ETRS89 / NTM zone 30"); add_proj4text (p, 0, @@ -1313,9 +1261,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); - add_srs_wkt (p, 12, - "asting\",EAST],AUTHORITY[\"EPSG\",\"5130\"]]"); + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5130\"]]"); p = add_epsg_def (filter, first, last, 5132, "epsg", 5132, "Tokyo 1892"); add_proj4text (p, 0, @@ -1359,9 +1305,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "easting\",200000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 10, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 11, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5167\"]]"); + "\"EPSG\",\"5167\"]]"); p = add_epsg_def (filter, first, last, 5168, "epsg", 5168, "Korean 1985 / Central Belt Jeju"); add_proj4text (p, 0, @@ -1389,11 +1335,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "lse_easting\",200000],PARAMETER[\"false_northing\",55000"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5168\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5168\"]]"); p = add_epsg_def (filter, first, last, 5169, "epsg", 5169, "Tokyo 1892 / Korea West Belt"); add_proj4text (p, 0, @@ -1421,9 +1365,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5169\"]]"); + "\"5169\"]]"); p = add_epsg_def (filter, first, last, 5170, "epsg", 5170, "Tokyo 1892 / Korea Central Belt"); add_proj4text (p, 0, @@ -1451,9 +1395,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ing\",200000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NOR"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "TH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5170\"]]"); + "SG\",\"5170\"]]"); p = add_epsg_def (filter, first, last, 5171, "epsg", 5171, "Tokyo 1892 / Korea East Belt"); add_proj4text (p, 0, @@ -1481,9 +1425,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5171\"]]"); + "\"5171\"]]"); p = add_epsg_def (filter, first, last, 5172, "epsg", 5172, "Tokyo 1892 / Korea East Sea Belt"); add_proj4text (p, 0, @@ -1511,9 +1455,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5172\"]]"); + "PSG\",\"5172\"]]"); p = add_epsg_def (filter, first, last, 5173, "epsg", 5173, "Korean 1985 / Modified West Belt"); add_proj4text (p, 0, @@ -1543,9 +1487,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"5173\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"5173\"]]"); p = add_epsg_def (filter, first, last, 5174, "epsg", 5174, "Korean 1985 / Modified Central Belt"); add_proj4text (p, 0, @@ -1575,9 +1517,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"5174\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5174\"]]"); p = add_epsg_def (filter, first, last, 5175, "epsg", 5175, "Korean 1985 / Modified Central Belt Jeju"); add_proj4text (p, 0, @@ -1607,9 +1547,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); - add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"5175\"]]"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5175\"]]"); p = add_epsg_def (filter, first, last, 5176, "epsg", 5176, "Korean 1985 / Modified East Belt"); add_proj4text (p, 0, @@ -1639,9 +1577,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"5176\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"5176\"]]"); p = add_epsg_def (filter, first, last, 5177, "epsg", 5177, "Korean 1985 / Modified East Sea Belt"); add_proj4text (p, 0, @@ -1671,9 +1607,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"5177\"]]"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5177\"]]"); p = add_epsg_def (filter, first, last, 5178, "epsg", 5178, "Korean 1985 / Unified CS"); add_proj4text (p, 0, @@ -1701,11 +1635,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "lse_easting\",1000000],PARAMETER[\"false_northing\",2000"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH"); add_srs_wkt (p, 11, - "[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5178"); - add_srs_wkt (p, 12, - "\"]]"); + "ORITY[\"EPSG\",\"5178\"]]"); p = add_epsg_def (filter, first, last, 5179, "epsg", 5179, "Korea 2000 / Unified CS"); add_proj4text (p, 0, @@ -1737,9 +1669,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); - add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"5179\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5179\"]]"); p = add_epsg_def (filter, first, last, 5180, "epsg", 5180, "Korea 2000 / West Belt"); add_proj4text (p, 0, @@ -1771,9 +1701,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"5180\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"5180\"]]"); p = add_epsg_def (filter, first, last, 5181, "epsg", 5181, "Korea 2000 / Central Belt"); add_proj4text (p, 0, @@ -1805,9 +1733,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "e_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"5181\"]]"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"5181\"]]"); p = add_epsg_def (filter, first, last, 5182, "epsg", 5182, "Korea 2000 / Central Belt Jeju"); add_proj4text (p, 0, @@ -1839,9 +1765,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); - add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"5182\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5182\"]]"); p = add_epsg_def (filter, first, last, 5183, "epsg", 5183, "Korea 2000 / East Belt"); add_proj4text (p, 0, @@ -1873,9 +1797,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"5183\"]]"); + "9001\"]],AUTHORITY[\"EPSG\",\"5183\"]]"); p = add_epsg_def (filter, first, last, 5184, "epsg", 5184, "Korea 2000 / East Sea Belt"); add_proj4text (p, 0, @@ -1907,9 +1829,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "lse_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"5184\"]]"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"5184\"]]"); p = add_epsg_def (filter, first, last, 5185, "epsg", 5185, "Korea 2000 / West Belt 2010"); add_proj4text (p, 0, @@ -1941,9 +1861,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); - add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"5185\"]]"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"5185\"]]"); p = add_epsg_def (filter, first, last, 5186, "epsg", 5186, "Korea 2000 / Central Belt 2010"); add_proj4text (p, 0, @@ -1975,9 +1893,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); - add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"5186\"]]"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5186\"]]"); p = add_epsg_def (filter, first, last, 5187, "epsg", 5187, "Korea 2000 / East Belt 2010"); add_proj4text (p, 0, @@ -2009,9 +1925,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); - add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"5187\"]]"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"5187\"]]"); p = add_epsg_def (filter, first, last, 5188, "epsg", 5188, "Korea 2000 / East Sea Belt 2010"); add_proj4text (p, 0, @@ -2043,9 +1957,45 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5188\"]]"); + p = add_epsg_def (filter, first, last, 5221, "epsg", 5221, + "S-JTSK (Ferro) / Krovak East North"); + add_proj4text (p, 0, + "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.288139722"); + add_proj4text (p, 1, + "22222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589"); + add_proj4text (p, 2, + ",76,480,0,0,0,0 +pm=ferro +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"S-JTSK (Ferro) / Krovak East North\",GEOGCS[\"S"); + add_srs_wkt (p, 1, + "-JTSK (Ferro)\",DATUM[\"System_Jednotne_Trigonometricke_"); + add_srs_wkt (p, 2, + "Site_Katastralni_Ferro\",SPHEROID[\"Bessel 1841\",637739"); + add_srs_wkt (p, 3, + "7.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84["); + add_srs_wkt (p, 4, + "589,76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6818\"]],PRIMEM"); + add_srs_wkt (p, 5, + "[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\""); + add_srs_wkt (p, 6, + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4818\"]],PROJECTION[\"K"); + add_srs_wkt (p, 8, + "rovak\"],PARAMETER[\"latitude_of_center\",49.5],PARAMETE"); + add_srs_wkt (p, 9, + "R[\"longitude_of_center\",42.5],PARAMETER[\"azimuth\",30"); + add_srs_wkt (p, 10, + ".28813972222222],PARAMETER[\"pseudo_standard_parallel_1\""); + add_srs_wkt (p, 11, + ",78.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"5188\"]]"); + "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); + add_srs_wkt (p, 13, + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 14, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5221\"]]"); p = add_epsg_def (filter, first, last, 5223, "epsg", 5223, "WGS 84 / Gabon TM"); add_proj4text (p, 0, @@ -2123,11 +2073,11 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 5233, "epsg", 5233, "SLD99"); add_proj4text (p, 0, - "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "84=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.0393"); + "4=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.03933"); add_proj4text (p, 2, - "38 +no_defs"); + "8 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SLD99\",DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID"); add_srs_wkt (p, 1, @@ -2149,9 +2099,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 1, "11112 +k=0.9999238418 +x_0=200000 +y_0=200000 +a=6377276"); add_proj4text (p, 2, - ".345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +u"); + ".345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +un"); add_proj4text (p, 3, - "nits=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kandawala / Sri Lanka Grid\",GEOGCS[\"Kandawala"); add_srs_wkt (p, 1, @@ -2187,9 +2137,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 1, "33334 +k=0.9999238418 +x_0=500000 +y_0=500000 +a=6377276"); add_proj4text (p, 2, - ".345 +b=6356075.413140239 +towgs84=-0.293,766.95,87.713,"); + ".345 +b=6356075.41314024 +towgs84=-0.293,766.95,87.713,0"); add_proj4text (p, 3, - "0.195704,1.69507,3.47302,-0.039338 +units=m +no_defs"); + ".195704,1.69507,3.47302,-0.039338 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SLD99 / Sri Lanka Grid 1999\",GEOGCS[\"SLD99\","); add_srs_wkt (p, 1, @@ -2261,27 +2211,31 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 5246, "epsg", 5246, "GDBD2009"); add_proj4text (p, 0, - "+proj=longlat +ellps=GRS80 +no_defs"); + "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); + add_proj4text (p, 1, + "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GDBD2009\",DATUM[\"Geocentric_Datum_Brunei_Daru"); add_srs_wkt (p, 1, "ssalam_2009\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 2, - "1,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"105"); + "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 3, - "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "UTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"5246\"]]"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "5246\"]]"); p = add_epsg_def (filter, first, last, 5247, "epsg", 5247, "GDBD2009 / Brunei BRSO"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, - "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80"); + "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el"); add_proj4text (p, 2, - " +units=m +no_defs"); + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDBD2009 / Brunei BRSO\",GEOGCS[\"GDBD2009\",DA"); add_srs_wkt (p, 1, @@ -2289,27 +2243,29 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "7019\"]],AUTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwic"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"105"); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "EPSG\",\"5246\"]],PROJECTION[\"Hotine_Oblique_Mercator\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"5246\"]],PROJECTION[\"H"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longit"); + "otine_Oblique_Mercator\"],PARAMETER[\"latitude_of_center"); add_srs_wkt (p, 8, - "ude_of_center\",115],PARAMETER[\"azimuth\",53.31580995],"); + "\",4],PARAMETER[\"longitude_of_center\",115],PARAMETER[\""); add_srs_wkt (p, 9, - "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); + "azimuth\",53.31580995],PARAMETER[\"rectified_grid_angle\""); add_srs_wkt (p, 10, - "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); + ",53.13010236111111],PARAMETER[\"scale_factor\",0.99984],"); add_srs_wkt (p, 11, - "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, - "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5247\"]]"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 14, + "\"EPSG\",\"5247\"]]"); p = add_epsg_def (filter, first, last, 5252, "epsg", 5252, "TUREF"); add_proj4text (p, 0, @@ -2355,11 +2311,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5253\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5253\"]]"); p = add_epsg_def (filter, first, last, 5254, "epsg", 5254, "TUREF / TM30"); add_proj4text (p, 0, @@ -2387,11 +2341,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5254\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5254\"]]"); p = add_epsg_def (filter, first, last, 5255, "epsg", 5255, "TUREF / TM33"); add_proj4text (p, 0, @@ -2419,11 +2371,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5255\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5255\"]]"); p = add_epsg_def (filter, first, last, 5256, "epsg", 5256, "TUREF / TM36"); add_proj4text (p, 0, @@ -2451,11 +2401,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5256\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5256\"]]"); p = add_epsg_def (filter, first, last, 5257, "epsg", 5257, "TUREF / TM39"); add_proj4text (p, 0, @@ -2483,11 +2431,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5257\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5257\"]]"); p = add_epsg_def (filter, first, last, 5258, "epsg", 5258, "TUREF / TM42"); add_proj4text (p, 0, @@ -2515,11 +2461,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5258\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5258\"]]"); p = add_epsg_def (filter, first, last, 5259, "epsg", 5259, "TUREF / TM45"); add_proj4text (p, 0, @@ -2547,11 +2491,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 11, - "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5259\"]"); - add_srs_wkt (p, 12, - "]"); + "ITY[\"EPSG\",\"5259\"]]"); p = add_epsg_def (filter, first, last, 5264, "epsg", 5264, "DRUKREF 03"); add_proj4text (p, 0, @@ -2631,9 +2573,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"5269\"]]"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5269\"]]"); p = add_epsg_def (filter, first, last, 5270, "epsg", 5270, "TUREF / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, @@ -2663,9 +2603,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5270\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5270\"]]"); p = add_epsg_def (filter, first, last, 5271, "epsg", 5271, "TUREF / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, @@ -2695,9 +2633,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5271\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5271\"]]"); p = add_epsg_def (filter, first, last, 5272, "epsg", 5272, "TUREF / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, @@ -2727,9 +2663,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5272\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5272\"]]"); p = add_epsg_def (filter, first, last, 5273, "epsg", 5273, "TUREF / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, @@ -2759,9 +2693,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5273\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5273\"]]"); p = add_epsg_def (filter, first, last, 5274, "epsg", 5274, "TUREF / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, @@ -2791,9 +2723,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5274\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5274\"]]"); p = add_epsg_def (filter, first, last, 5275, "epsg", 5275, "TUREF / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, @@ -2823,9 +2753,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5275\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5275\"]]"); p = add_epsg_def (filter, first, last, 5292, "epsg", 5292, "DRUKREF 03 / Bumthang TM"); add_proj4text (p, 0, @@ -3270,40 +3198,6 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5304\"]]"); - p = add_epsg_def (filter, first, last, 5305, "epsg", 5305, - "DRUKREF 03 / Thimphu TM"); - add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); - add_proj4text (p, 1, - "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); - add_proj4text (p, 2, - "o_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\""); - add_srs_wkt (p, 1, - ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); - add_srs_wkt (p, 2, - " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); - add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); - add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); - add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); - add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); - add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); - add_srs_wkt (p, 8, - "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact"); - add_srs_wkt (p, 9, - "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); - add_srs_wkt (p, 10, - "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); - add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); - add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"5305\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_26.c b/src/spatialite/src/srsinit/epsg_inlined_26.c index 6a124df..9fe42d9 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_26.c +++ b/src/spatialite/src/srsinit/epsg_inlined_26.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,6 +52,40 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 5305, "epsg", 5305, + "DRUKREF 03 / Thimphu TM"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); + add_proj4text (p, 1, + "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); + add_proj4text (p, 2, + "o_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\""); + add_srs_wkt (p, 1, + ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); + add_srs_wkt (p, 2, + " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + add_srs_wkt (p, 3, + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); + add_srs_wkt (p, 4, + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + add_srs_wkt (p, 5, + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + add_srs_wkt (p, 6, + "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); + add_srs_wkt (p, 7, + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + add_srs_wkt (p, 8, + "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact"); + add_srs_wkt (p, 9, + "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"5305\"]]"); p = add_epsg_def (filter, first, last, 5306, "epsg", 5306, "DRUKREF 03 / Trashigang TM"); add_proj4text (p, 0, @@ -599,9 +633,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5343\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5343\"]]"); p = add_epsg_def (filter, first, last, 5344, "epsg", 5344, "POSGAR 2007 / Argentina 2"); add_proj4text (p, 0, @@ -631,9 +663,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5344\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5344\"]]"); p = add_epsg_def (filter, first, last, 5345, "epsg", 5345, "POSGAR 2007 / Argentina 3"); add_proj4text (p, 0, @@ -663,9 +693,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5345\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5345\"]]"); p = add_epsg_def (filter, first, last, 5346, "epsg", 5346, "POSGAR 2007 / Argentina 4"); add_proj4text (p, 0, @@ -695,9 +723,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5346\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5346\"]]"); p = add_epsg_def (filter, first, last, 5347, "epsg", 5347, "POSGAR 2007 / Argentina 5"); add_proj4text (p, 0, @@ -727,9 +753,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5347\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5347\"]]"); p = add_epsg_def (filter, first, last, 5348, "epsg", 5348, "POSGAR 2007 / Argentina 6"); add_proj4text (p, 0, @@ -759,9 +783,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5348\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5348\"]]"); p = add_epsg_def (filter, first, last, 5349, "epsg", 5349, "POSGAR 2007 / Argentina 7"); add_proj4text (p, 0, @@ -791,9 +813,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"5349\"]]"); + "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5349\"]]"); p = add_epsg_def (filter, first, last, 5354, "epsg", 5354, "MARGEN"); add_proj4text (p, 0, @@ -1037,11 +1057,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 9, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5367\""); - add_srs_wkt (p, 12, - "]]"); + "\"5367\"]]"); p = add_epsg_def (filter, first, last, 5371, "epsg", 5371, "MACARIO SOLIS"); add_proj4text (p, 0, @@ -1195,37 +1213,37 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 12, "\",\"5387\"]]"); p = add_epsg_def (filter, first, last, 5388, "epsg", 5388, - "Peru96 / UTM zone 17S"); + "Peru96 / UTM zone 17S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM"); + "PROJCS[\"Peru96 / UTM zone 17S (deprecated)\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); + "eru96\",DATUM[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "\"EPSG\",\"5373\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, - "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); + "meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, - ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"538"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "8\"]]"); + "\"EPSG\",\"5388\"]]"); p = add_epsg_def (filter, first, last, 5389, "epsg", 5389, "Peru96 / UTM zone 19S"); add_proj4text (p, 0, @@ -1319,7 +1337,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPH"); add_srs_wkt (p, 1, - "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); + "EROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0"); add_srs_wkt (p, 3, @@ -1345,7 +1363,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "cotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, - "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); + "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, @@ -1381,7 +1399,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "tepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, @@ -1417,7 +1435,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, ",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SP"); add_srs_wkt (p, 2, - "HEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHO"); + "HEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],P"); add_srs_wkt (p, 4, @@ -1455,7 +1473,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, @@ -1493,7 +1511,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\""); add_srs_wkt (p, 2, - "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); + "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTH"); add_srs_wkt (p, 4, @@ -1531,7 +1549,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, @@ -1569,7 +1587,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, - "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); + "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, @@ -1635,7 +1653,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "PHEROID[\"Clarke 1858\",6378293.645208759,294.2606763692"); add_srs_wkt (p, 2, - "654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1"); + "569,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 3, "071\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, @@ -1643,7 +1661,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"5464\"]]"); p = add_epsg_def (filter, first, last, 5466, "epsg", 5466, - "Sibun Gorge 1922 / Colony Grid"); + "Sibun Gorge 1922 / Colony Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 "); add_proj4text (p, 1, @@ -1651,33 +1669,33 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun"); + "PROJCS[\"Sibun Gorge 1922 / Colony Grid (deprecated)\",G"); add_srs_wkt (p, 1, - " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar"); + "EOGCS[\"Sibun Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SP"); add_srs_wkt (p, 2, - "ke 1858\",6378293.645208759,294.2606763692654,AUTHORITY["); + "HEROID[\"Clarke 1858\",6378293.645208759,294.26067636925"); add_srs_wkt (p, 3, - "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM"); + "69,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"10"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "71\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Me"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",17.0612419444"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",1"); add_srs_wkt (p, 8, - "4444],PARAMETER[\"central_meridian\",-88.6318575],PARAME"); + "7.06124194444444],PARAMETER[\"central_meridian\",-88.631"); add_srs_wkt (p, 9, - "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",6622"); + "8575],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "0.02833082761],PARAMETER[\"false_northing\",135779.50998"); + "sting\",66220.02833082761],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "85299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "135779.5099885299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"54"); + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, - "66\"]]"); + "EPSG\",\"5466\"]]"); p = add_epsg_def (filter, first, last, 5467, "epsg", 5467, "Panama-Colon 1911"); add_proj4text (p, 0, @@ -1685,7 +1703,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 0, "GEOGCS[\"Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\""); add_srs_wkt (p, 1, - ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); + ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]"); add_srs_wkt (p, 3, @@ -1707,7 +1725,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "anama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID["); add_srs_wkt (p, 2, - "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, @@ -1741,7 +1759,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID"); add_srs_wkt (p, 2, - "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, @@ -1795,11 +1813,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "_easting\",7000000],PARAMETER[\"false_northing\",5000000"); add_srs_wkt (p, 12, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORI"); add_srs_wkt (p, 13, - "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); - add_srs_wkt (p, 14, - "G\",\"5479\"]]"); + "TY[\"EPSG\",\"5479\"]]"); p = add_epsg_def (filter, first, last, 5480, "epsg", 5480, "RSRGD2000 / BCLC2000"); add_proj4text (p, 0, @@ -1833,11 +1849,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "se_easting\",5000000],PARAMETER[\"false_northing\",30000"); add_srs_wkt (p, 12, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 13, - "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); - add_srs_wkt (p, 14, - "PSG\",\"5480\"]]"); + "RITY[\"EPSG\",\"5480\"]]"); p = add_epsg_def (filter, first, last, 5481, "epsg", 5481, "RSRGD2000 / PCLC2000"); add_proj4text (p, 0, @@ -1871,11 +1885,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "se_easting\",3000000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 12, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 13, - "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); - add_srs_wkt (p, 14, - "PSG\",\"5481\"]]"); + "RITY[\"EPSG\",\"5481\"]]"); p = add_epsg_def (filter, first, last, 5482, "epsg", 5482, "RSRGD2000 / RSPS2000"); add_proj4text (p, 0, @@ -1907,9 +1919,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "ETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"5482\"]]"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5482\"]]"); p = add_epsg_def (filter, first, last, 5489, "epsg", 5489, "RGAF09"); add_proj4text (p, 0, @@ -2000,6 +2010,44 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las "9001\"]],AXIS[\"X\",SOUTH],AXIS[\"Y\",WEST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"5513\"]]"); + p = add_epsg_def (filter, first, last, 5514, "epsg", 5514, + "S-JTSK / Krovak East North"); + add_proj4text (p, 0, + "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha"); + add_proj4text (p, 1, + "=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); + add_proj4text (p, 2, + " +towgs84=589,76,480,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"S-JTSK / Krovak East North\",GEOGCS[\"S-JTSK\","); + add_srs_wkt (p, 1, + "DATUM[\"System_Jednotne_Trigonometricke_Site_Katastralni"); + add_srs_wkt (p, 2, + "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH"); + add_srs_wkt (p, 3, + "ORITY[\"EPSG\",\"7004\"]],TOWGS84[589,76,480,0,0,0,0],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6156\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 5, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 6, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 7, + "156\"]],PROJECTION[\"Krovak\"],PARAMETER[\"latitude_of_c"); + add_srs_wkt (p, 8, + "enter\",49.5],PARAMETER[\"longitude_of_center\",24.83333"); + add_srs_wkt (p, 9, + "333333333],PARAMETER[\"azimuth\",30.28813972222222],PARA"); + add_srs_wkt (p, 10, + "METER[\"pseudo_standard_parallel_1\",78.5],PARAMETER[\"s"); + add_srs_wkt (p, 11, + "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); + add_srs_wkt (p, 12, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 14, + "UTHORITY[\"EPSG\",\"5514\"]]"); p = add_epsg_def (filter, first, last, 5518, "epsg", 5518, "CI1971 / Chatham Islands Map Grid"); add_proj4text (p, 0, @@ -2031,11 +2079,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "g\",350000],PARAMETER[\"false_northing\",650000],UNIT[\""); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5518"); - add_srs_wkt (p, 13, - "\"]]"); + "\",\"5518\"]]"); p = add_epsg_def (filter, first, last, 5519, "epsg", 5519, "CI1979 / Chatham Islands Map Grid"); add_proj4text (p, 0, @@ -2069,9 +2115,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ng\",650000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"5519\"]]"); + "]],AUTHORITY[\"EPSG\",\"5519\"]]"); p = add_epsg_def (filter, first, last, 5520, "epsg", 5520, "DHDN / 3-degree Gauss-Kruger zone 1"); add_proj4text (p, 0, @@ -2101,9 +2145,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 10, "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 12, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5520\"]]"); + "PSG\",\"5520\"]]"); p = add_epsg_def (filter, first, last, 5523, "epsg", 5523, "WGS 84 / Gabon TM 2011"); add_proj4text (p, 0, @@ -2153,25 +2197,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las p = add_epsg_def (filter, first, last, 5527, "epsg", 5527, "SAD69(96)"); add_proj4text (p, 0, - "+proj=longlat +ellps=aust_SA +no_defs"); + "+proj=longlat +ellps=aust_SA +towgs84=-67.35,3.88,-38.22"); + add_proj4text (p, 1, + ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69(96)\",DATUM[\"South_American_Datum_1969_9"); add_srs_wkt (p, 1, "6\",SPHEROID[\"GRS 1967 Modified\",6378160,298.25,AUTHOR"); add_srs_wkt (p, 2, - "ITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PR"); + "ITY[\"EPSG\",\"7050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0"); add_srs_wkt (p, 3, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + ",0],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, - "]],AUTHORITY[\"EPSG\",\"5527\"]]"); + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 6, + "\",\"5527\"]]"); p = add_epsg_def (filter, first, last, 5530, "epsg", 5530, "SAD69(96) / Brazil Polyconic"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, - "0 +ellps=aust_SA +units=m +no_defs"); + "0 +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +un"); + add_proj4text (p, 2, + "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / Brazil Polyconic\",GEOGCS[\"SAD69(9"); add_srs_wkt (p, 1, @@ -2179,29 +2229,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "RS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich"); + "050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "EPSG\",\"5527\"]],PROJECTION[\"Polyconic\"],PARAMETER[\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PR"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "OJECTION[\"Polyconic\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "54],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal"); + ",0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"fals"); add_srs_wkt (p, 9, - "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "e_easting\",5000000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, - "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"5530\"]]"); + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5530\""); + add_srs_wkt (p, 12, + "]]"); p = add_epsg_def (filter, first, last, 5531, "epsg", 5531, "SAD69(96) / UTM zone 21S"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_de"); + "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "fs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 21S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, @@ -2209,63 +2261,63 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "in\",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\""); add_srs_wkt (p, 9, - "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "EPSG\",\"5531\"]]"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5531\"]]"); p = add_epsg_def (filter, first, last, 5532, "epsg", 5532, - "SAD69(96) / UTM zone 22S"); + "SAD69(96) / UTM zone 22S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69\",DAT"); + "PROJCS[\"SAD69(96) / UTM zone 22S (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, - "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); + "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); add_srs_wkt (p, 2, - "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); + "GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR"); + "7050\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "6618\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION["); add_srs_wkt (p, 7, - "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); + ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]"); p = add_epsg_def (filter, first, last, 5533, "epsg", 5533, "SAD69(96) / UTM zone 23S"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_de"); + "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "fs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 23S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, @@ -2273,31 +2325,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "in\",0],PARAMETER[\"central_meridian\",-45],PARAMETER[\""); add_srs_wkt (p, 9, - "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "EPSG\",\"5533\"]]"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5533\"]]"); p = add_epsg_def (filter, first, last, 5534, "epsg", 5534, "SAD69(96) / UTM zone 24S"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_de"); + "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "fs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 24S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, @@ -2305,31 +2357,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "in\",0],PARAMETER[\"central_meridian\",-39],PARAMETER[\""); add_srs_wkt (p, 9, - "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "EPSG\",\"5534\"]]"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5534\"]]"); p = add_epsg_def (filter, first, last, 5535, "epsg", 5535, "SAD69(96) / UTM zone 25S"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_de"); + "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "fs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 25S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, @@ -2337,25 +2389,25 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "in\",0],PARAMETER[\"central_meridian\",-33],PARAMETER[\""); add_srs_wkt (p, 9, - "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "EPSG\",\"5535\"]]"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5535\"]]"); p = add_epsg_def (filter, first, last, 5536, "epsg", 5536, "Corrego Alegre 1961 / UTM zone 21S"); add_proj4text (p, 0, @@ -2607,7 +2659,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, - "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); + "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, @@ -2630,584 +2682,484 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5559\"]]"); - p = add_epsg_def (filter, first, last, 20004, "epsg", 20004, - "Pulkovo 1995 / Gauss-Kruger zone 4"); + p = add_epsg_def (filter, first, last, 5561, "epsg", 5561, + "UCS-2000"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); + "+proj=longlat +ellps=krass +towgs84=25,-141,-78.5,-0,0.3"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); - add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "5,0.736,0 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P"); + "GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Kr"); add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); + "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); + "SG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); - add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); - add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); - add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); - add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45000"); - add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); - add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20004\"]]"); - p = add_epsg_def (filter, first, last, 20005, "epsg", 20005, - "Pulkovo 1995 / Gauss-Kruger zone 5"); - add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); - add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); - add_proj4text (p, 2, - ".22 +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P"); - add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); - add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); - add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); - add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); - add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); - add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); - add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); - add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); - add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",55000"); - add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); - add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20005\"]]"); - p = add_epsg_def (filter, first, last, 20006, "epsg", 20006, - "Pulkovo 1995 / Gauss-Kruger zone 6"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561\"]]"); + p = add_epsg_def (filter, first, last, 5562, "epsg", 5562, + "UCS-2000 / Gauss-Kruger zone 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); - add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); - add_proj4text (p, 2, - ".22 +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P"); - add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); - add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); - add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); - add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); - add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); - add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); - add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); - add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); - add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",65000"); - add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); - add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20006\"]]"); - p = add_epsg_def (filter, first, last, 20007, "epsg", 20007, - "Pulkovo 1995 / Gauss-Kruger zone 7"); - add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P"); + "PROJCS[\"UCS-2000 / Gauss-Kruger zone 4\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); + "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000"); + "r\",1],PARAMETER[\"false_easting\",4500000],PARAMETER[\""); add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20007\"]]"); - p = add_epsg_def (filter, first, last, 20008, "epsg", 20008, - "Pulkovo 1995 / Gauss-Kruger zone 8"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5562\"]]"); + p = add_epsg_def (filter, first, last, 5563, "epsg", 5563, + "UCS-2000 / Gauss-Kruger zone 5"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P"); + "PROJCS[\"UCS-2000 / Gauss-Kruger zone 5\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET"); + "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000"); + "r\",1],PARAMETER[\"false_easting\",5500000],PARAMETER[\""); add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20008\"]]"); - p = add_epsg_def (filter, first, last, 20009, "epsg", 20009, - "Pulkovo 1995 / Gauss-Kruger zone 9"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5563\"]]"); + p = add_epsg_def (filter, first, last, 5564, "epsg", 5564, + "UCS-2000 / Gauss-Kruger zone 6"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P"); + "PROJCS[\"UCS-2000 / Gauss-Kruger zone 6\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET"); + "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000"); + "r\",1],PARAMETER[\"false_easting\",6500000],PARAMETER[\""); add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); - add_srs_wkt (p, 12, - "EAST],AUTHORITY[\"EPSG\",\"20009\"]]"); - p = add_epsg_def (filter, first, last, 20010, "epsg", 20010, - "Pulkovo 1995 / Gauss-Kruger zone 10"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5564\"]]"); + p = add_epsg_def (filter, first, last, 5565, "epsg", 5565, + "UCS-2000 / Gauss-Kruger zone 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / Gauss-Kruger zone 7\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM"); + "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",105"); + "r\",1],PARAMETER[\"false_easting\",7500000],PARAMETER[\""); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20010\"]]"); - p = add_epsg_def (filter, first, last, 20011, "epsg", 20011, - "Pulkovo 1995 / Gauss-Kruger zone 11"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"5565\"]]"); + p = add_epsg_def (filter, first, last, 5566, "epsg", 5566, + "UCS-2000 / Gauss-Kruger CM 21E"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / Gauss-Kruger CM 21E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM"); + "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",115"); + "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20011\"]]"); - p = add_epsg_def (filter, first, last, 20012, "epsg", 20012, - "Pulkovo 1995 / Gauss-Kruger zone 12"); + "9001\"]],AUTHORITY[\"EPSG\",\"5566\"]]"); + p = add_epsg_def (filter, first, last, 5567, "epsg", 5567, + "UCS-2000 / Gauss-Kruger CM 27E"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / Gauss-Kruger CM 27E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM"); + "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",125"); + "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20012\"]]"); - p = add_epsg_def (filter, first, last, 20013, "epsg", 20013, - "Pulkovo 1995 / Gauss-Kruger zone 13"); + "9001\"]],AUTHORITY[\"EPSG\",\"5567\"]]"); + p = add_epsg_def (filter, first, last, 5568, "epsg", 5568, + "UCS-2000 / Gauss-Kruger CM 33E"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / Gauss-Kruger CM 33E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM"); + "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135"); + "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20013\"]]"); - p = add_epsg_def (filter, first, last, 20014, "epsg", 20014, - "Pulkovo 1995 / Gauss-Kruger zone 14"); + "9001\"]],AUTHORITY[\"EPSG\",\"5568\"]]"); + p = add_epsg_def (filter, first, last, 5569, "epsg", 5569, + "UCS-2000 / Gauss-Kruger CM 39E"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / Gauss-Kruger CM 39E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM"); + "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145"); + "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20014\"]]"); - p = add_epsg_def (filter, first, last, 20015, "epsg", 20015, - "Pulkovo 1995 / Gauss-Kruger zone 15"); + "9001\"]],AUTHORITY[\"EPSG\",\"5569\"]]"); + p = add_epsg_def (filter, first, last, 5570, "epsg", 5570, + "UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + ",7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20015\"]]"); - p = add_epsg_def (filter, first, last, 20016, "epsg", 20016, - "Pulkovo 1995 / Gauss-Kruger zone 16"); + "70\"]]"); + p = add_epsg_def (filter, first, last, 5571, "epsg", 5571, + "UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",24],"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + ",8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20016\"]]"); - p = add_epsg_def (filter, first, last, 20017, "epsg", 20017, - "Pulkovo 1995 / Gauss-Kruger zone 17"); + "71\"]]"); + p = add_epsg_def (filter, first, last, 5572, "epsg", 5572, + "UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + ",9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"20017\"]]"); - p = add_epsg_def (filter, first, last, 20018, "epsg", 20018, - "Pulkovo 1995 / Gauss-Kruger zone 18"); + "72\"]]"); + p = add_epsg_def (filter, first, last, 5573, "epsg", 5573, + "UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 10 (depre"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",30],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",10500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20018\"]]"); - p = add_epsg_def (filter, first, last, 20019, "epsg", 20019, - "Pulkovo 1995 / Gauss-Kruger zone 19"); + "73\"]]"); + p = add_epsg_def (filter, first, last, 5574, "epsg", 5574, + "UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 11 (depre"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",11500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20019\"]]"); - p = add_epsg_def (filter, first, last, 20020, "epsg", 20020, - "Pulkovo 1995 / Gauss-Kruger zone 20"); + "74\"]]"); + p = add_epsg_def (filter, first, last, 5575, "epsg", 5575, + "UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 12 (depre"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",36],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",12500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20020\"]]"); + "75\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_27.c b/src/spatialite/src/srsinit/epsg_inlined_27.c index 7e28bf1..864c2a4 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_27.c +++ b/src/spatialite/src/srsinit/epsg_inlined_27.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3394 +52,3334 @@ initialize_epsg_27 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 20021, "epsg", 20021, - "Pulkovo 1995 / Gauss-Kruger zone 21"); + p = add_epsg_def (filter, first, last, 5576, "epsg", 5576, + "UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 13 (depre"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",13500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20021\"]]"); - p = add_epsg_def (filter, first, last, 20022, "epsg", 20022, - "Pulkovo 1995 / Gauss-Kruger zone 22"); + "76\"]]"); + p = add_epsg_def (filter, first, last, 5577, "epsg", 5577, + "UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20022\"]]"); - p = add_epsg_def (filter, first, last, 20023, "epsg", 20023, - "Pulkovo 1995 / Gauss-Kruger zone 23"); + "7\"]]"); + p = add_epsg_def (filter, first, last, 5578, "epsg", 5578, + "UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",24],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20023\"]]"); - p = add_epsg_def (filter, first, last, 20024, "epsg", 20024, - "Pulkovo 1995 / Gauss-Kruger zone 24"); + "8\"]]"); + p = add_epsg_def (filter, first, last, 5579, "epsg", 5579, + "UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20024\"]]"); - p = add_epsg_def (filter, first, last, 20025, "epsg", 20025, - "Pulkovo 1995 / Gauss-Kruger zone 25"); + "9\"]]"); + p = add_epsg_def (filter, first, last, 5580, "epsg", 5580, + "UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",30],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20025\"]]"); - p = add_epsg_def (filter, first, last, 20026, "epsg", 20026, - "Pulkovo 1995 / Gauss-Kruger zone 26"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 5581, "epsg", 5581, + "UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20026\"]]"); - p = add_epsg_def (filter, first, last, 20027, "epsg", 20027, - "Pulkovo 1995 / Gauss-Kruger zone 27"); + "1\"]]"); + p = add_epsg_def (filter, first, last, 5582, "epsg", 5582, + "UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",36],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20027\"]]"); - p = add_epsg_def (filter, first, last, 20028, "epsg", 20028, - "Pulkovo 1995 / Gauss-Kruger zone 28"); + "2\"]]"); + p = add_epsg_def (filter, first, last, 5583, "epsg", 5583, + "UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\""); + "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprec"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20028\"]]"); - p = add_epsg_def (filter, first, last, 20029, "epsg", 20029, - "Pulkovo 1995 / Gauss-Kruger zone 29"); + "3\"]]"); + p = add_epsg_def (filter, first, last, 5588, "epsg", 5588, + "NAD27 / New Brunswick Stereographic (NAD27)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); + "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=3"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); - add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "04800 +y_0=304800 +datum=NAD27 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\""); + "PROJCS[\"NAD27 / New Brunswick Stereographic (NAD27)\",G"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "EOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHE"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRI"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "],AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Oblique_Ste"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "reographic\"],PARAMETER[\"latitude_of_origin\",46.5],PAR"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA"); + "AMETER[\"central_meridian\",-66.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29"); + "tor\",0.999912],PARAMETER[\"false_easting\",1000000],PAR"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "AMETER[\"false_northing\",1000000],UNIT[\"foot\",0.3048,"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "AUTHORITY[\"EPSG\",\"9002\"]],AUTHORITY[\"EPSG\",\"5588\""); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20029\"]]"); - p = add_epsg_def (filter, first, last, 20030, "epsg", 20030, - "Pulkovo 1995 / Gauss-Kruger zone 30"); + "]]"); + p = add_epsg_def (filter, first, last, 5589, "epsg", 5589, + "Sibun Gorge 1922 / Colony Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); + "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 "); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + "+k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=63"); add_proj4text (p, 2, - "-0.22 +units=m +no_defs"); + "78293.645208759 +b=6356617.987679838 +to_meter=0.3047972"); + add_proj4text (p, 3, + "654 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\""); + "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "ke 1858\",6378293.645208759,294.2606763692569,AUTHORITY["); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "rcator\"],PARAMETER[\"latitude_of_origin\",17.0612419444"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA"); + "4444],PARAMETER[\"central_meridian\",-88.6318575],PARAME"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30"); + "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2172"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "59.26],PARAMETER[\"false_northing\",445474.83],UNIT[\"Cl"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "arke's foot\",0.3047972654,AUTHORITY[\"EPSG\",\"9005\"]]"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20030\"]]"); - p = add_epsg_def (filter, first, last, 20031, "epsg", 20031, - "Pulkovo 1995 / Gauss-Kruger zone 31"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"5589\"]]"); + p = add_epsg_def (filter, first, last, 5593, "epsg", 5593, + "FEH2010"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); + "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, - "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); - add_proj4text (p, 2, - ",-0.22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\""); + "GEOGCS[\"FEH2010\",DATUM[\"Fehmarnbelt_Datum_2010\",SPHE"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "\"1078\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); - add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); - add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); - add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR"); - add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); - add_srs_wkt (p, 10, - "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); - add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20031\"]]"); - p = add_epsg_def (filter, first, last, 20032, "epsg", 20032, - "Pulkovo 1995 / Gauss-Kruger zone 32"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5593\"]]"); + p = add_epsg_def (filter, first, last, 5596, "epsg", 5596, + "FEH2010 / Fehmarnbelt TM"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); + "+proj=tmerc +lat_0=0 +lon_0=11.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, - "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); + "1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, - ",-0.22 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\""); + "PROJCS[\"FEH2010 / Fehmarnbelt TM\",GEOGCS[\"FEH2010\",D"); add_srs_wkt (p, 1, - "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); + "ATUM[\"Fehmarnbelt_Datum_2010\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1078\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); + "HORITY[\"EPSG\",\"5593\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR"); + "entral_meridian\",11.33333333333333],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); + "actor\",1],PARAMETER[\"false_easting\",1000000],PARAMETE"); add_srs_wkt (p, 10, - "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"20032\"]]"); - p = add_epsg_def (filter, first, last, 20064, "epsg", 20064, - "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)"); + "NORTH],AUTHORITY[\"EPSG\",\"5596\"]]"); + p = add_epsg_def (filter, first, last, 5623, "epsg", 5623, + "NAD27 / Michigan East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "99942857 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G"); + "PROJCS[\"NAD27 / Michigan East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "[\"latitude_of_origin\",41.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); + "an\",-83.66666666666667],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "9942857],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20064\"]]"); - p = add_epsg_def (filter, first, last, 20065, "epsg", 20065, - "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5623\"]]"); + p = add_epsg_def (filter, first, last, 5624, "epsg", 5624, + "NAD27 / Michigan Old Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no"); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G"); + "PROJCS[\"NAD27 / Michigan Old Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "RAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"central"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27"); + "_meridian\",-85.75],PARAMETER[\"scale_factor\",0.9999090"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "91],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20065\"]]"); - p = add_epsg_def (filter, first, last, 20066, "epsg", 20066, - "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"5624\"]]"); + p = add_epsg_def (filter, first, last, 5625, "epsg", 5625, + "NAD27 / Michigan West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no"); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G"); + "PROJCS[\"NAD27 / Michigan West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "[\"latitude_of_origin\",41.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33"); + "an\",-88.75],PARAMETER[\"scale_factor\",0.999909091],PAR"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20066\"]]"); - p = add_epsg_def (filter, first, last, 20067, "epsg", 20067, - "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)"); + "RTH],AUTHORITY[\"EPSG\",\"5625\"]]"); + p = add_epsg_def (filter, first, last, 5627, "epsg", 5627, + "ED50 / TM 6 NE"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G"); + "PROJCS[\"ED50 / TM 6 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39"); + "ridian\",6],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20067\"]]"); - p = add_epsg_def (filter, first, last, 20068, "epsg", 20068, - "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)"); + "G\",\"5627\"]]"); + p = add_epsg_def (filter, first, last, 5629, "epsg", 5629, + "Moznet / UTM zone 38S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=utm +zone=38 +south +ellps=WGS84 +towgs84=0,0,0,-0"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); - add_proj4text (p, 2, - "22 +units=m +no_defs"); + ",-0,-0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G"); + "PROJCS[\"Moznet / UTM zone 38S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,-0,-0,-"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + "0,0],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "G\",\"4130\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45"); + "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20068\"]]"); - p = add_epsg_def (filter, first, last, 20069, "epsg", 20069, - "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)"); + "\"EPSG\",\"5629\"]]"); + p = add_epsg_def (filter, first, last, 5631, "epsg", 5631, + "Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G"); + "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)\","); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); + "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, - "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "Y[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, - "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + "l_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "\"false_easting\",2500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20069\"]]"); - p = add_epsg_def (filter, first, last, 20070, "epsg", 20070, - "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"5631\"]]"); + p = add_epsg_def (filter, first, last, 5632, "epsg", 5632, + "PTRA08 / LCC Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\","); + "PROJCS[\"PTRA08 / LCC Europe\",GEOGCS[\"PTRA08\",DATUM[\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],PRI"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); + "],PARAMETER[\"standard_parallel_2\",65],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "tude_of_origin\",52],PARAMETER[\"central_meridian\",10],"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "PARAMETER[\"false_easting\",4000000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "orthing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20070\"]]"); - p = add_epsg_def (filter, first, last, 20071, "epsg", 20071, - "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)"); + "9001\"]],AUTHORITY[\"EPSG\",\"5632\"]]"); + p = add_epsg_def (filter, first, last, 5633, "epsg", 5633, + "PTRA08 / LAEA Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); - add_proj4text (p, 2, - "22 +units=m +no_defs"); + " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\","); + "PROJCS[\"PTRA08 / LAEA Europe\",GEOGCS[\"PTRA08\",DATUM["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],P"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"]],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); + ",52],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"f"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "alse_easting\",4321000],PARAMETER[\"false_northing\",321"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); - add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20071\"]]"); - p = add_epsg_def (filter, first, last, 20072, "epsg", 20072, - "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)"); + "HORITY[\"EPSG\",\"5633\"]]"); + p = add_epsg_def (filter, first, last, 5634, "epsg", 5634, + "REGCAN95 / LCC Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\","); + "PROJCS[\"REGCAN95 / LCC Europe\",GEOGCS[\"REGCAN95\",DAT"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "UM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PRI"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); + "],PARAMETER[\"standard_parallel_2\",65],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "tude_of_origin\",52],PARAMETER[\"central_meridian\",10],"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "PARAMETER[\"false_easting\",4000000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "orthing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20072\"]]"); - p = add_epsg_def (filter, first, last, 20073, "epsg", 20073, - "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)"); + "9001\"]],AUTHORITY[\"EPSG\",\"5634\"]]"); + p = add_epsg_def (filter, first, last, 5635, "epsg", 5635, + "REGCAN95 / LAEA Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); - add_proj4text (p, 2, - "22 +units=m +no_defs"); + " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\","); + "PROJCS[\"REGCAN95 / LAEA Europe\",GEOGCS[\"REGCAN95\",DA"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "TUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PR"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "]],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Az"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "imuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\",5"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); + "2],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"fal"); add_srs_wkt (p, 9, - "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "se_easting\",4321000],PARAMETER[\"false_northing\",32100"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); - add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20073\"]]"); - p = add_epsg_def (filter, first, last, 20074, "epsg", 20074, - "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)"); + "RITY[\"EPSG\",\"5635\"]]"); + p = add_epsg_def (filter, first, last, 5636, "epsg", 5636, + "TUREF / LAEA Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); - add_proj4text (p, 2, - "22 +units=m +no_defs"); + " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\","); + "PROJCS[\"TUREF / LAEA Europe\",GEOGCS[\"TUREF\",DATUM[\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "Turkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Azimu"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "thal_Equal_Area\"],PARAMETER[\"latitude_of_center\",52],"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); + "PARAMETER[\"longitude_of_center\",10],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "easting\",4321000],PARAMETER[\"false_northing\",3210000]"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); - add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20074\"]]"); - p = add_epsg_def (filter, first, last, 20075, "epsg", 20075, - "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)"); + "Y[\"EPSG\",\"5636\"]]"); + p = add_epsg_def (filter, first, last, 5637, "epsg", 5637, + "TUREF / LCC Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\","); + "PROJCS[\"TUREF / LCC Europe\",GEOGCS[\"TUREF\",DATUM[\"T"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "urkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM["); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35],P"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); + "ARAMETER[\"standard_parallel_2\",65],PARAMETER[\"latitud"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "e_of_origin\",52],PARAMETER[\"central_meridian\",10],PAR"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "AMETER[\"false_easting\",4000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "hing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20075\"]]"); - p = add_epsg_def (filter, first, last, 20076, "epsg", 20076, - "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)"); + "01\"]],AUTHORITY[\"EPSG\",\"5637\"]]"); + p = add_epsg_def (filter, first, last, 5638, "epsg", 5638, + "ISN2004 / LAEA Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); - add_proj4text (p, 2, - "22 +units=m +no_defs"); + " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\","); + "PROJCS[\"ISN2004 / LAEA Europe\",GEOGCS[\"ISN2004\",DATU"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "M[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + ",0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"5324\"]],PROJECTION[\"Lambert_Azimuthal_Equal_A"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "rea\"],PARAMETER[\"latitude_of_center\",52],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); + "longitude_of_center\",10],PARAMETER[\"false_easting\",43"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "21000],PARAMETER[\"false_northing\",3210000],UNIT[\"metr"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); - add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20076\"]]"); - p = add_epsg_def (filter, first, last, 20077, "epsg", 20077, - "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)"); + "5638\"]]"); + p = add_epsg_def (filter, first, last, 5639, "epsg", 5639, + "ISN2004 / LCC Europe"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, - "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - "22 +units=m +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\","); + "PROJCS[\"ISN2004 / LCC Europe\",GEOGCS[\"ISN2004\",DATUM"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "SG\",\"5324\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"],PARAMETER[\"standard_parallel_1\",35],PARAMETER[\"st"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); + "andard_parallel_2\",65],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, - "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + ",52],PARAMETER[\"central_meridian\",10],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "e_easting\",4000000],PARAMETER[\"false_northing\",280000"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20077\"]]"); - p = add_epsg_def (filter, first, last, 20078, "epsg", 20078, - "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)"); + "ITY[\"EPSG\",\"5639\"]]"); + p = add_epsg_def (filter, first, last, 5641, "epsg", 5641, + "SIRGAS 2000 / Brazil Mercator"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); + "+proj=merc +lon_0=-43 +lat_ts=-2 +x_0=5000000 +y_0=10000"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\","); + "PROJCS[\"SIRGAS 2000 / Brazil Mercator\",GEOGCS[\"SIRGAS"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + " 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_l"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "as_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\",\"4674\"]],PROJECTION[\"Mercator_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "tandard_parallel_1\",-2],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, - "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "-43],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20078\"]]"); - p = add_epsg_def (filter, first, last, 20079, "epsg", 20079, - "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)"); + "RITY[\"EPSG\",\"5641\"]]"); + p = add_epsg_def (filter, first, last, 5643, "epsg", 5643, + "ED50 / SPBA LCC"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=52.66666666666666 +lat_2=54.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "334 +lat_0=48 +lon_0=10 +x_0=815000 +y_0=0 +ellps=intl +"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\","); + "PROJCS[\"ED50 / SPBA LCC\",GEOGCS[\"ED50\",DATUM[\"Europ"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "ean_Datum_1950\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"4230\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "SP\"],PARAMETER[\"standard_parallel_1\",52.6666666666666"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "6],PARAMETER[\"standard_parallel_2\",54.33333333333334],"); add_srs_wkt (p, 9, - "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "PARAMETER[\"latitude_of_origin\",48],PARAMETER[\"central"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "_meridian\",10],PARAMETER[\"false_easting\",815000],PARA"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20079\"]]"); - p = add_epsg_def (filter, first, last, 20080, "epsg", 20080, - "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 13, + "\",NORTH],AUTHORITY[\"EPSG\",\"5643\"]]"); + p = add_epsg_def (filter, first, last, 5644, "epsg", 5644, + "RGR92 / UTM zone 39S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=39 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); - add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\","); + "PROJCS[\"RGR92 / UTM zone 39S\",GEOGCS[\"RGR92\",DATUM[\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "Reseau_Geodesique_de_la_Reunion_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6627\"]],PR"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "]],AUTHORITY[\"EPSG\",\"4627\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "ER[\"central_meridian\",51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20080\"]]"); - p = add_epsg_def (filter, first, last, 20081, "epsg", 20081, - "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"5644\"]]"); + p = add_epsg_def (filter, first, last, 5646, "epsg", 5646, + "NAD83 / Vermont (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "=500000.00001016 +y_0=0 +datum=NAD83 +units=us-ft +no_de"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\","); + "PROJCS[\"NAD83 / Vermont (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "or\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "central_meridian\",-72.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "99964286],PARAMETER[\"false_easting\",1640416.6667],PARA"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20081\"]]"); - p = add_epsg_def (filter, first, last, 20082, "epsg", 20082, - "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5646\"]]"); + p = add_epsg_def (filter, first, last, 5649, "epsg", 5649, + "ETRS89 / UTM zone 31N (zE-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 31N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",3150000"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20082\"]]"); - p = add_epsg_def (filter, first, last, 20083, "epsg", 20083, - "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5649\"]]"); + p = add_epsg_def (filter, first, last, 5650, "epsg", 5650, + "ETRS89 / UTM zone 33N (zE-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 33N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 9, - "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",335000"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20083\"]]"); - p = add_epsg_def (filter, first, last, 20084, "epsg", 20084, - "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5650\"]]"); + p = add_epsg_def (filter, first, last, 5651, "epsg", 5651, + "ETRS89 / UTM zone 31N (N-zE)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 31N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",3150000"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); - add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20084\"]]"); - p = add_epsg_def (filter, first, last, 20085, "epsg", 20085, - "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5651\"]]"); + p = add_epsg_def (filter, first, last, 5652, "epsg", 5652, + "ETRS89 / UTM zone 32N (N-zE)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 32N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",3250000"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); - add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20085\"]]"); - p = add_epsg_def (filter, first, last, 20086, "epsg", 20086, - "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5652\"]]"); + p = add_epsg_def (filter, first, last, 5653, "epsg", 5653, + "ETRS89 / UTM zone 33N (N-zE)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 33N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 9, - "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",335000"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); - add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20086\"]]"); - p = add_epsg_def (filter, first, last, 20087, "epsg", 20087, - "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5653\"]]"); + p = add_epsg_def (filter, first, last, 5654, "epsg", 5654, + "NAD83(HARN) / Vermont (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\","); + "PROJCS[\"NAD83(HARN) / Vermont (ftUS)\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "igin\",42.5],PARAMETER[\"central_meridian\",-72.5],PARAM"); add_srs_wkt (p, 9, - "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ETER[\"scale_factor\",0.999964286],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "ting\",1640416.6667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20087\"]]"); - p = add_epsg_def (filter, first, last, 20088, "epsg", 20088, - "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"5654\"]]"); + p = add_epsg_def (filter, first, last, 5655, "epsg", 5655, + "NAD83(NSRS2007) / Vermont (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\","); + "PROJCS[\"NAD83(NSRS2007) / Vermont (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "latitude_of_origin\",42.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",-72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETE"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "R[\"false_easting\",1640416.6667],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20088\"]]"); - p = add_epsg_def (filter, first, last, 20089, "epsg", 20089, - "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)"); + "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"5655\"]]"); + p = add_epsg_def (filter, first, last, 5659, "epsg", 5659, + "Monte Mario / TM Emilia-Romagna"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=500053 +y_0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "=-3999820 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-"); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "2.917,0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\","); + "PROJCS[\"Monte Mario / TM Emilia-Romagna\",GEOGCS[\"Mont"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "e Mario\",DATUM[\"Monte_Mario\",SPHEROID[\"International"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "4[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"EPSG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4265\"]]"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 9, - "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + ",500053],PARAMETER[\"false_northing\",-3999820],UNIT[\"m"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20089\"]]"); - p = add_epsg_def (filter, first, last, 20090, "epsg", 20090, - "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)"); + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5659\"]]"); + p = add_epsg_def (filter, first, last, 5663, "epsg", 5663, + "Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, - "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, - ".22 +units=m +no_defs"); + "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\","); + "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)\","); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Y[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, - "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "l_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "[\"false_easting\",3500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20090\"]]"); - p = add_epsg_def (filter, first, last, 20091, "epsg", 20091, - "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)"); + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"5663\"]]"); + p = add_epsg_def (filter, first, last, 5664, "epsg", 5664, + "Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\","); + "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)\","); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PR"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "f_origin\",0],PARAMETER[\"central_meridian\",9],PARAMETE"); add_srs_wkt (p, 9, - "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",250000"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20091\"]]"); - p = add_epsg_def (filter, first, last, 20092, "epsg", 20092, - "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5664\"]]"); + p = add_epsg_def (filter, first, last, 5665, "epsg", 5665, + "Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, - " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, - "0.22 +units=m +no_defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\","); + "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)\","); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); + "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); + "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PR"); add_srs_wkt (p, 7, - "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "f_origin\",0],PARAMETER[\"central_meridian\",15],PARAMET"); add_srs_wkt (p, 9, - "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",35000"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20092\"]]"); - p = add_epsg_def (filter, first, last, 20135, "epsg", 20135, - "Adindan / UTM zone 35N"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5665\"]]"); + p = add_epsg_def (filter, first, last, 5666, "epsg", 5666, + "PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT"); + "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)\",GE"); add_srs_wkt (p, 1, - "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); + "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, - "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); + "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); + "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); + "EPSG\",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, - "ral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PA"); + "ridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "lse_easting\",3500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"20135\"]]"); - p = add_epsg_def (filter, first, last, 20136, "epsg", 20136, - "Adindan / UTM zone 36N"); + ",\"5666\"]]"); + p = add_epsg_def (filter, first, last, 5667, "epsg", 5667, + "PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT"); + "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE"); add_srs_wkt (p, 1, - "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); + "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, - "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); + "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); + "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); + "EPSG\",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, - "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA"); + "ridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "alse_easting\",4500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"20136\"]]"); - p = add_epsg_def (filter, first, last, 20137, "epsg", 20137, - "Adindan / UTM zone 37N"); + ",\"5667\"]]"); + p = add_epsg_def (filter, first, last, 5668, "epsg", 5668, + "RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT"); + "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE"); add_srs_wkt (p, 1, - "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); + "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 2, - "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); + "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, - ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); + "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); + "[\"EPSG\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, - "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA"); + "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "\"false_easting\",4500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"20137\"]]"); - p = add_epsg_def (filter, first, last, 20138, "epsg", 20138, - "Adindan / UTM zone 38N"); + "G\",\"5668\"]]"); + p = add_epsg_def (filter, first, last, 5669, "epsg", 5669, + "RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT"); + "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)\",GE"); add_srs_wkt (p, 1, - "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); + "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 2, - "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); + "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, - ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); + "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); + "[\"EPSG\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, - "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); + "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "\"false_easting\",5500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"20138\"]]"); - p = add_epsg_def (filter, first, last, 20248, "epsg", 20248, - "AGD66 / AMG zone 48"); + "G\",\"5669\"]]"); + p = add_epsg_def (filter, first, last, 5670, "epsg", 5670, + "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, - "defs"); + "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 48\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, - "meridian\",105],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "[\"central_meridian\",9],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "ARAMETER[\"false_easting\",3500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20248\"]]"); - p = add_epsg_def (filter, first, last, 20249, "epsg", 20249, - "AGD66 / AMG zone 49"); + "RITY[\"EPSG\",\"5670\"]]"); + p = add_epsg_def (filter, first, last, 5671, "epsg", 5671, + "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, - "defs"); + "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, - "meridian\",111],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "[\"central_meridian\",12],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "PARAMETER[\"false_easting\",4500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20249\"]]"); - p = add_epsg_def (filter, first, last, 20250, "epsg", 20250, - "AGD66 / AMG zone 50"); + "RITY[\"EPSG\",\"5671\"]]"); + p = add_epsg_def (filter, first, last, 5672, "epsg", 5672, + "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, - "defs"); + "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, - "meridian\",117],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20250\"]]"); - p = add_epsg_def (filter, first, last, 20251, "epsg", 20251, - "AGD66 / AMG zone 51"); + "RITY[\"EPSG\",\"5672\"]]"); + p = add_epsg_def (filter, first, last, 5673, "epsg", 5673, + "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",9]"); add_srs_wkt (p, 9, - "meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARAM"); + ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); - add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20251\"]]"); - p = add_epsg_def (filter, first, last, 20252, "epsg", 20252, - "AGD66 / AMG zone 52"); + "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5673\"]]"); + p = add_epsg_def (filter, first, last, 5674, "epsg", 5674, + "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, - "defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 9, - "meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "g\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5674\"]"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20252\"]]"); - p = add_epsg_def (filter, first, last, 20253, "epsg", 20253, - "AGD66 / AMG zone 53"); + "]"); + p = add_epsg_def (filter, first, last, 5675, "epsg", 5675, + "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, - "defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",15"); add_srs_wkt (p, 9, - "meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "g\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5675\"]"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20253\"]]"); - p = add_epsg_def (filter, first, last, 20254, "epsg", 20254, - "AGD66 / AMG zone 54"); + "]"); + p = add_epsg_def (filter, first, last, 5676, "epsg", 5676, + "DHDN / 3-degree Gauss-Kruger zone 2 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2 (E-N)\",GEO"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "false_easting\",2500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20254\"]]"); - p = add_epsg_def (filter, first, last, 20255, "epsg", 20255, - "AGD66 / AMG zone 55"); + "\",\"5676\"]]"); + p = add_epsg_def (filter, first, last, 5677, "epsg", 5677, + "DHDN / 3-degree Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3 (E-N)\",GEO"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "false_easting\",3500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20255\"]]"); - p = add_epsg_def (filter, first, last, 20256, "epsg", 20256, - "AGD66 / AMG zone 56"); + "\",\"5677\"]]"); + p = add_epsg_def (filter, first, last, 5678, "epsg", 5678, + "DHDN / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4 (E-N)\",GEO"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "\"false_easting\",4500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20256\"]]"); - p = add_epsg_def (filter, first, last, 20257, "epsg", 20257, - "AGD66 / AMG zone 57"); + "G\",\"5678\"]]"); + p = add_epsg_def (filter, first, last, 5679, "epsg", 5679, + "DHDN / 3-degree Gauss-Kruger zone 5 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5 (E-N)\",GEO"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "meridian\",159],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "\"false_easting\",5500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20257\"]]"); - p = add_epsg_def (filter, first, last, 20258, "epsg", 20258, - "AGD66 / AMG zone 58"); + "G\",\"5679\"]]"); + p = add_epsg_def (filter, first, last, 5680, "epsg", 5680, + "DHDN / 3-degree Gauss-Kruger zone 1 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8"); + "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, - "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\""); + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 1 (E-N)\",GEO"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, - "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, - "meridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"20258\"]]"); - p = add_epsg_def (filter, first, last, 20348, "epsg", 20348, - "AGD84 / AMG zone 48"); + "\",\"5680\"]]"); + p = add_epsg_def (filter, first, last, 5681, "epsg", 5681, + "DB_REF"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-"); - add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 48\",GEOGCS[\"AGD84\",DATUM[\""); + "GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "ORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); - add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); - add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); - add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); - add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); - add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); - add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); - add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20348\"]]"); - p = add_epsg_def (filter, first, last, 20349, "epsg", 20349, - "AGD84 / AMG zone 49"); + "2\"]],AUTHORITY[\"EPSG\",\"5681\"]]"); + p = add_epsg_def (filter, first, last, 5682, "epsg", 5682, + "DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)\",G"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); + "ER[\"central_meridian\",6],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + ",PARAMETER[\"false_easting\",2500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]"); - p = add_epsg_def (filter, first, last, 20350, "epsg", 20350, - "AGD84 / AMG zone 50"); + "HORITY[\"EPSG\",\"5682\"]]"); + p = add_epsg_def (filter, first, last, 5683, "epsg", 5683, + "DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)\",G"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\""); + "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + ",PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]"); - p = add_epsg_def (filter, first, last, 20351, "epsg", 20351, - "AGD84 / AMG zone 51"); + "HORITY[\"EPSG\",\"5683\"]]"); + p = add_epsg_def (filter, first, last, 5684, "epsg", 5684, + "DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)\",G"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\""); + "ER[\"central_meridian\",12],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "],PARAMETER[\"false_easting\",4500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]"); - p = add_epsg_def (filter, first, last, 20352, "epsg", 20352, - "AGD84 / AMG zone 52"); + "THORITY[\"EPSG\",\"5684\"]]"); + p = add_epsg_def (filter, first, last, 5685, "epsg", 5685, + "DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)\",G"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\""); + "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "],PARAMETER[\"false_easting\",5500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]"); - p = add_epsg_def (filter, first, last, 20353, "epsg", 20353, - "AGD84 / AMG zone 53"); + "THORITY[\"EPSG\",\"5685\"]]"); + p = add_epsg_def (filter, first, last, 5700, "epsg", 5700, + "NZGD2000 / UTM zone 1S"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=utm +zone=1 +south +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"NZGD2000 / UTM zone 1S\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); + "ETER[\"central_meridian\",-177],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]"); - p = add_epsg_def (filter, first, last, 20354, "epsg", 20354, - "AGD84 / AMG zone 54"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"5700\"]]"); + p = add_epsg_def (filter, first, last, 5825, "epsg", 5825, + "AGD66 / ACT Standard Grid"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=-35.31773627777778 +lon_0=149.0092948"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "305555 +k=1.000086 +x_0=200000 +y_0=600000 +ellps=aust_S"); + add_proj4text (p, 2, + "A +towgs84=-117.808,-51.536,137.784,0.303,0.446,0.234,-0"); + add_proj4text (p, 3, + ".29 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"AGD66 / ACT Standard Grid\",GEOGCS[\"AGD66\",DA"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "TUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\"Austra"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "lian National Spheroid\",6378160,298.25,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.4"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "46,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "ORITY[\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\""); + "or\"],PARAMETER[\"latitude_of_origin\",-35.3177362777777"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "8],PARAMETER[\"central_meridian\",149.0092948305555],PAR"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "AMETER[\"scale_factor\",1.000086],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "ing\",200000],PARAMETER[\"false_northing\",600000],UNIT["); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]"); - p = add_epsg_def (filter, first, last, 20355, "epsg", 20355, - "AGD84 / AMG zone 55"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 13, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5"); + add_srs_wkt (p, 14, + "825\"]]"); + p = add_epsg_def (filter, first, last, 5836, "epsg", 5836, + "Yemen NGN96 / UTM zone 37N"); add_proj4text (p, 0, - "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=utm +zone=37 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"Yemen NGN96 / UTM zone 37N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION["); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\""); + ",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]"); - p = add_epsg_def (filter, first, last, 20356, "epsg", 20356, - "AGD84 / AMG zone 56"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"5836\"]]"); + p = add_epsg_def (filter, first, last, 5837, "epsg", 5837, + "Yemen NGN96 / UTM zone 40N"); add_proj4text (p, 0, - "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=utm +zone=40 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"Yemen NGN96 / UTM zone 40N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION["); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\""); + ",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]"); - p = add_epsg_def (filter, first, last, 20357, "epsg", 20357, - "AGD84 / AMG zone 57"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"5837\"]]"); + p = add_epsg_def (filter, first, last, 5839, "epsg", 5839, + "Peru96 / UTM zone 17S"); add_proj4text (p, 0, - "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 57\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",159],PARAMETER[\""); + "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20357\"]]"); - p = add_epsg_def (filter, first, last, 20358, "epsg", 20358, - "AGD84 / AMG zone 58"); + "\",\"5839\"]]"); + p = add_epsg_def (filter, first, last, 5842, "epsg", 5842, + "WGS 84 / TM 12 SE"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, - "48,149,0,0,0,0 +units=m +no_defs"); + "0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"AGD84 / AMG zone 58\",GEOGCS[\"AGD84\",DATUM[\""); + "PROJCS[\"WGS 84 / TM 12 SE\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, - "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); + "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, - "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); + "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, - "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, - ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "METER[\"central_meridian\",12],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\""); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); - add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20358\"]]"); - p = add_epsg_def (filter, first, last, 20436, "epsg", 20436, - "Ain el Abd / UTM zone 36N"); + "\",NORTH],AUTHORITY[\"EPSG\",\"5842\"]]"); + p = add_epsg_def (filter, first, last, 5844, "epsg", 5844, + "RGRDC 2005 / Congo TM zone 30"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"RGRDC 2005 / Congo TM zone 30\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99"); + ",0],PARAMETER[\"central_meridian\",30],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20436\"]]"); - p = add_epsg_def (filter, first, last, 20437, "epsg", 20437, - "Ain el Abd / UTM zone 37N"); + "NORTH],AUTHORITY[\"EPSG\",\"5844\"]]"); + p = add_epsg_def (filter, first, last, 5858, "epsg", 5858, + "SAD69(96) / UTM zone 22S"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99"); + "in\",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\""); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20437\"]]"); - p = add_epsg_def (filter, first, last, 20438, "epsg", 20438, - "Ain el Abd / UTM zone 38N"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5858\"]]"); + p = add_epsg_def (filter, first, last, 5875, "epsg", 5875, + "SAD69(96) / UTM zone 18S"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"SAD69(96) / UTM zone 18S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); + "in\",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\""); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20438\"]]"); - p = add_epsg_def (filter, first, last, 20439, "epsg", 20439, - "Ain el Abd / UTM zone 39N"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5875\"]]"); + p = add_epsg_def (filter, first, last, 5876, "epsg", 5876, + "SAD69(96) / UTM zone 19S"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"SAD69(96) / UTM zone 19S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); + "in\",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\""); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20439\"]]"); - p = add_epsg_def (filter, first, last, 20440, "epsg", 20440, - "Ain el Abd / UTM zone 40N"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5876\"]]"); + p = add_epsg_def (filter, first, last, 5877, "epsg", 5877, + "SAD69(96) / UTM zone 20S"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"SAD69(96) / UTM zone 20S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\"central_meridian\",57],PARAMETER[\"scale_factor\",0.99"); + "in\",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\""); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20440\"]]"); - p = add_epsg_def (filter, first, last, 20499, "epsg", 20499, - "Ain el Abd / Bahrain Grid"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5877\"]]"); + p = add_epsg_def (filter, first, last, 5879, "epsg", 5879, + "Cadastre 1997 / UTM zone 38S"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); + "+proj=utm +zone=38 +south +ellps=intl +towgs84=-381.788,"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + "-57.501,-256.673,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd"); + "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Cadastr"); add_srs_wkt (p, 1, - "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); + "e 1997\",DATUM[\"Cadastre_1997\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, - "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); + "84[-381.788,-57.501,-256.673,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"1037\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4475\"]],PROJECTI"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); + "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s"); add_srs_wkt (p, 9, - "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"20499\"]]"); - p = add_epsg_def (filter, first, last, 20538, "epsg", 20538, - "Afgooye / UTM zone 38N"); + "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5879\"]]"); + p = add_epsg_def (filter, first, last, 5880, "epsg", 5880, + "SIRGAS 2000 / Brazil Polyconic"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0"); + "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT"); + "PROJCS[\"SIRGAS 2000 / Brazil Polyconic\",GEOGCS[\"SIRGA"); add_srs_wkt (p, 1, - "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); + "S 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_"); add_srs_wkt (p, 2, - "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); + "las_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, - "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); + "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "0,0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, - "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + "G\",\"4674\"]],PROJECTION[\"Polyconic\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-54]"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + ",PARAMETER[\"false_easting\",5000000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - ",\"20538\"]]"); - p = add_epsg_def (filter, first, last, 20539, "epsg", 20539, - "Afgooye / UTM zone 39N"); + "[\"EPSG\",\"5880\"]]"); + p = add_epsg_def (filter, first, last, 5886, "epsg", 5886, + "TGD2005"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT"); + "GEOGCS[\"TGD2005\",DATUM[\"Tonga_Geodetic_Datum_2005\",S"); add_srs_wkt (p, 1, - "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 2, - "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1095\"]],PRIMEM[\""); add_srs_wkt (p, 3, - "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); - add_srs_wkt (p, 6, - "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); - add_srs_wkt (p, 7, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); - add_srs_wkt (p, 8, - "ian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); - add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); - add_srs_wkt (p, 11, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"20539\"]]"); - p = add_epsg_def (filter, first, last, 20790, "epsg", 20790, - "Lisbon (Lisbon) / Portuguese National Grid"); + "HORITY[\"EPSG\",\"5886\"]]"); + p = add_epsg_def (filter, first, last, 5887, "epsg", 5887, + "TGD2005 / Tonga Map Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); + "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=1500000 "); add_proj4text (p, 1, - "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576"); - add_proj4text (p, 2, - ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs"); + "+y_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE"); + "PROJCS[\"TGD2005 / Tonga Map Grid\",GEOGCS[\"TGD2005\",D"); add_srs_wkt (p, 1, - "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP"); + "ATUM[\"Tonga_Geodetic_Datum_2005\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]"); + "HORITY[\"EPSG\",\"1095\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"58"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "86\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",39.66666666666666],"); + "77],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",1],PARAMETER[\"scale_fact"); + "_easting\",1500000],PARAMETER[\"false_northing\",5000000"); add_srs_wkt (p, 10, - "or\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\""); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"20790\"]]"); - p = add_epsg_def (filter, first, last, 20791, "epsg", 20791, - "Lisbon (Lisbon) / Portuguese Grid"); + "G\",\"5887\"]]"); + p = add_epsg_def (filter, first, last, 5890, "epsg", 5890, + "JAXA Snow Depth Polar Stereographic North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); + "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=90 +k=1 +x_0=0 +"); add_proj4text (p, 1, - "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,"); - add_proj4text (p, 2, - "0,0,0 +pm=lisbon +units=m +no_defs"); + "y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li"); + "PROJCS[\"JAXA Snow Depth Polar Stereographic North\",GEO"); add_srs_wkt (p, 1, - "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\""); + "GCS[\"Unspecified datum based upon the Hughes 1980 ellip"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "soid\",DATUM[\"Not_specified_based_on_Hughes_1980_ellips"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT"); + "oid\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,"); add_srs_wkt (p, 4, - "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111"); + "AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\""); add_srs_wkt (p, 5, - "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "SG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "9122\"]],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Pola"); add_srs_wkt (p, 8, - "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE"); + "r_Stereographic\"],PARAMETER[\"latitude_of_origin\",70],"); add_srs_wkt (p, 9, - "R[\"central_meridian\",1],PARAMETER[\"scale_factor\",1],"); + "PARAMETER[\"central_meridian\",90],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); + "tor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20"); + "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, - "791\"]]"); - p = add_epsg_def (filter, first, last, 20822, "epsg", 20822, - "Aratu / UTM zone 22S"); + "SG\",\"5890\"]]"); + p = add_epsg_def (filter, first, last, 5921, "epsg", 5921, + "WGS 84 / EPSG Arctic Regional zone A1"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2"); + "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, - "87.04,-147.45,0,0,0,0 +units=m +no_defs"); + "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\""); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A1\",GEOGCS["); add_srs_wkt (p, 1, - "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "standard_parallel_1\",85],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "METER[\"central_meridian\",-111],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"20822\"]]"); - p = add_epsg_def (filter, first, last, 20823, "epsg", 20823, - "Aratu / UTM zone 23S"); + "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5921\"]]"); + p = add_epsg_def (filter, first, last, 5922, "epsg", 5922, + "WGS 84 / EPSG Arctic Regional zone A2"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2"); + "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, - "87.04,-147.45,0,0,0,0 +units=m +no_defs"); + "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\""); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A2\",GEOGCS["); add_srs_wkt (p, 1, - "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "standard_parallel_1\",85],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "METER[\"central_meridian\",-39],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"20823\"]]"); - p = add_epsg_def (filter, first, last, 20824, "epsg", 20824, - "Aratu / UTM zone 24S"); + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5922\"]]"); + p = add_epsg_def (filter, first, last, 5923, "epsg", 5923, + "WGS 84 / EPSG Arctic Regional zone A3"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2"); + "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, - "87.04,-147.45,0,0,0,0 +units=m +no_defs"); + "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\""); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A3\",GEOGCS["); add_srs_wkt (p, 1, - "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "standard_parallel_1\",85],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "METER[\"central_meridian\",33],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"20824\"]]"); - p = add_epsg_def (filter, first, last, 20934, "epsg", 20934, - "Arc 1950 / UTM zone 34S"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5923\"]]"); + p = add_epsg_def (filter, first, last, 5924, "epsg", 5924, + "WGS 84 / EPSG Arctic Regional zone A4"); add_proj4text (p, 0, - "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, - "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); + "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A4\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "standard_parallel_1\",85],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0."); + "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "METER[\"central_meridian\",105],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"20934\"]]"); - p = add_epsg_def (filter, first, last, 20935, "epsg", 20935, - "Arc 1950 / UTM zone 35S"); + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5924\"]]"); + p = add_epsg_def (filter, first, last, 5925, "epsg", 5925, + "WGS 84 / EPSG Arctic Regional zone A5"); add_proj4text (p, 0, - "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, - "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); + "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A5\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "standard_parallel_1\",85],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",0."); + "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "METER[\"central_meridian\",177],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"20935\"]]"); - p = add_epsg_def (filter, first, last, 20936, "epsg", 20936, - "Arc 1950 / UTM zone 36S"); + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5925\"]]"); + p = add_epsg_def (filter, first, last, 5926, "epsg", 5926, + "WGS 84 / EPSG Arctic Regional zone B1"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, - "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); + "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B1\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "standard_parallel_1\",77],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "R[\"central_meridian\",33],PARAMETER[\"scale_factor\",0."); + "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "11],PARAMETER[\"central_meridian\",-111],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"20936\"]]"); - p = add_epsg_def (filter, first, last, 21035, "epsg", 21035, - "Arc 1960 / UTM zone 35S"); + "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5926"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 5927, "epsg", 5927, + "WGS 84 / EPSG Arctic Regional zone B2"); add_proj4text (p, 0, - "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6"); + "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, - ",-302,0,0,0,0 +units=m +no_defs"); + "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B2\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",77],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); + "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "11],PARAMETER[\"central_meridian\",-39],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"21035\"]]"); - p = add_epsg_def (filter, first, last, 21036, "epsg", 21036, - "Arc 1960 / UTM zone 36S"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5927\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5928, "epsg", 5928, + "WGS 84 / EPSG Arctic Regional zone B3"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6"); + "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, - ",-302,0,0,0,0 +units=m +no_defs"); + "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B3\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",77],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); + "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "11],PARAMETER[\"central_meridian\",33],PARAMETER[\"false"); add_srs_wkt (p, 10, - "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"21036\"]]"); - p = add_epsg_def (filter, first, last, 21037, "epsg", 21037, - "Arc 1960 / UTM zone 37S"); + "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5928\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5929, "epsg", 5929, + "WGS 84 / EPSG Arctic Regional zone B4"); add_proj4text (p, 0, - "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6"); + "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, - ",-302,0,0,0,0 +units=m +no_defs"); + "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B4\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",77],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); + "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "11],PARAMETER[\"central_meridian\",105],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"21037\"]]"); - p = add_epsg_def (filter, first, last, 21095, "epsg", 21095, - "Arc 1960 / UTM zone 35N"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5929\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5930, "epsg", 5930, + "WGS 84 / EPSG Arctic Regional zone B5"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0"); + "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B5\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",77],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); + "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "11],PARAMETER[\"central_meridian\",177],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21095\"]]"); - p = add_epsg_def (filter, first, last, 21096, "epsg", 21096, - "Arc 1960 / UTM zone 36N"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5930\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5931, "epsg", 5931, + "WGS 84 / EPSG Arctic Regional zone C1"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0"); + "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C1\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",69],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); + "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "88],PARAMETER[\"central_meridian\",-111],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21096\"]]"); - p = add_epsg_def (filter, first, last, 21097, "epsg", 21097, - "Arc 1960 / UTM zone 37N"); + "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5931"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 5932, "epsg", 5932, + "WGS 84 / EPSG Arctic Regional zone C2"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0"); + "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C2\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "standard_parallel_1\",69],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); + "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "88],PARAMETER[\"central_meridian\",-39],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21097\"]]"); - p = add_epsg_def (filter, first, last, 21100, "epsg", 21100, - "Batavia (Jakarta) / NEIEZ (deprecated)"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5932\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5933, "epsg", 5933, + "WGS 84 / EPSG Arctic Regional zone C3"); add_proj4text (p, 0, - "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); + "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, - "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta "); - add_proj4text (p, 2, - "+units=m +no_defs"); + "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C3\",GEOGCS["); add_srs_wkt (p, 1, - "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI"); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\",\"4813\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"c"); + "standard_parallel_1\",69],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "entral_meridian\",110],PARAMETER[\"scale_factor\",0.997]"); + "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",3900000],PARAMETER[\"false_"); + "88],PARAMETER[\"central_meridian\",33],PARAMETER[\"false"); add_srs_wkt (p, 10, - "northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, - "EPSG\",\"21100\"]]"); - p = add_epsg_def (filter, first, last, 21148, "epsg", 21148, - "Batavia / UTM zone 48S"); + "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5933\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5934, "epsg", 5934, + "WGS 84 / EPSG Arctic Regional zone C4"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68"); + "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, - "1,-50,0,0,0,0 +units=m +no_defs"); + "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C4\",GEOGCS["); add_srs_wkt (p, 1, - "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "standard_parallel_1\",69],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); + "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "88],PARAMETER[\"central_meridian\",105],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"21148\"]]"); - p = add_epsg_def (filter, first, last, 21149, "epsg", 21149, - "Batavia / UTM zone 49S"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5934\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5935, "epsg", 5935, + "WGS 84 / EPSG Arctic Regional zone C5"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68"); + "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, - "1,-50,0,0,0,0 +units=m +no_defs"); + "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT"); + "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C5\",GEOGCS["); add_srs_wkt (p, 1, - "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); + "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, - "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); + "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); + "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "standard_parallel_1\",69],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); + "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "88],PARAMETER[\"central_meridian\",177],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"21149\"]]"); - p = add_epsg_def (filter, first, last, 21150, "epsg", 21150, - "Batavia / UTM zone 50S"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5935\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 5936, "epsg", 5936, + "WGS 84 / EPSG Alaska Polar Stereographic"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68"); + "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-150 +k=0.994 +x"); add_proj4text (p, 1, - "1,-50,0,0,0,0 +units=m +no_defs"); + "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT"); + "PROJCS[\"WGS 84 / EPSG Alaska Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, - "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); + "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, - "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); + "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, - "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); + "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\""); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); + "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "ude_of_origin\",90],PARAMETER[\"central_meridian\",-150]"); add_srs_wkt (p, 8, - "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); + ",PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_eas"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ting\",2000000],PARAMETER[\"false_northing\",2000000],UN"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); - add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"21150\"]]"); - p = add_epsg_def (filter, first, last, 21291, "epsg", 21291, - "Barbados 1938 / British West Indies Grid"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5936\"]]"); + p = add_epsg_def (filter, first, last, 5937, "epsg", 5937, + "WGS 84 / EPSG Canada Polar Stereographic"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); + "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-100 +k=0.994 +x"); add_proj4text (p, 1, - "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419"); - add_proj4text (p, 2, - ".19,0,0,0,0 +units=m +no_defs"); + "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG"); + "PROJCS[\"WGS 84 / EPSG Canada Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, - "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\""); + "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, - "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); + "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, - "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO"); + "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212"); + "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ude_of_origin\",90],PARAMETER[\"central_meridian\",-100]"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-62]"); + ",PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_eas"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_ea"); + "ting\",2000000],PARAMETER[\"false_northing\",2000000],UN"); add_srs_wkt (p, 10, - "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2129"); - add_srs_wkt (p, 13, - "1\"]]"); - p = add_epsg_def (filter, first, last, 21292, "epsg", 21292, - "Barbados 1938 / Barbados National Grid"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5937\"]]"); + p = add_epsg_def (filter, first, last, 5938, "epsg", 5938, + "WGS 84 / EPSG Greenland Polar Stereographic"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222"); + "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-33 +k=0.994 +x_"); add_proj4text (p, 1, - "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 "); - add_proj4text (p, 2, - "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"); + "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS"); + "PROJCS[\"WGS 84 / EPSG Greenland Polar Stereographic\",G"); add_srs_wkt (p, 1, - "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl"); + "EOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\","); add_srs_wkt (p, 2, - "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); + "6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTH"); add_srs_wkt (p, 3, - ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI"); + "ORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, - "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, - "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"432"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212\""); + "6\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"la"); add_srs_wkt (p, 7, - "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); + "titude_of_origin\",90],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 8, - "ude_of_origin\",13.17638888888889],PARAMETER[\"central_m"); + "3],PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_e"); add_srs_wkt (p, 9, - "eridian\",-59.55972222222222],PARAMETER[\"scale_factor\""); + "asting\",2000000],PARAMETER[\"false_northing\",2000000],"); add_srs_wkt (p, 10, - ",0.9999986],PARAMETER[\"false_easting\",30000],PARAMETER"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, - "[\"false_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); - add_srs_wkt (p, 13, - "\",NORTH],AUTHORITY[\"EPSG\",\"21292\"]]"); - p = add_epsg_def (filter, first, last, 21413, "epsg", 21413, - "Beijing 1954 / Gauss-Kruger zone 13"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5938\"]]"); + p = add_epsg_def (filter, first, last, 5939, "epsg", 5939, + "WGS 84 / EPSG Norway Polar Stereographic"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); + "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=18 +k=0.994 +x_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\""); + "PROJCS[\"WGS 84 / EPSG Norway Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\""); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "ude_of_origin\",90],PARAMETER[\"central_meridian\",18],P"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_"); + "ARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_easti"); add_srs_wkt (p, 9, - "factor\",1],PARAMETER[\"false_easting\",13500000],PARAME"); + "ng\",2000000],PARAMETER[\"false_northing\",2000000],UNIT"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"21413\"]]"); - p = add_epsg_def (filter, first, last, 21414, "epsg", 21414, - "Beijing 1954 / Gauss-Kruger zone 14"); + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5939\"]]"); + p = add_epsg_def (filter, first, last, 5940, "epsg", 5940, + "WGS 84 / EPSG Russia Polar Stereographic"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); + "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=105 +k=0.994 +x_"); add_proj4text (p, 1, - " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\""); + "PROJCS[\"WGS 84 / EPSG Russia Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\""); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "ude_of_origin\",90],PARAMETER[\"central_meridian\",105],"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_"); + "PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_east"); add_srs_wkt (p, 9, - "factor\",1],PARAMETER[\"false_easting\",14500000],PARAME"); + "ing\",2000000],PARAMETER[\"false_northing\",2000000],UNI"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"21414\"]]"); - p = add_epsg_def (filter, first, last, 21415, "epsg", 21415, - "Beijing 1954 / Gauss-Kruger zone 15"); + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5940\"]]"); + p = add_epsg_def (filter, first, last, 6050, "epsg", 6050, + "GR96 / EPSG Arctic zone 1-25"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); + "3711833333333 +lon_0=-30 +x_0=25500000 +y_0=1500000 +ell"); add_proj4text (p, 2, - "m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 1-25\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",87],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_"); + "\"standard_parallel_2\",83.66666666666667],PARAMETER[\"l"); add_srs_wkt (p, 9, - "factor\",1],PARAMETER[\"false_easting\",15500000],PARAME"); + "atitude_of_origin\",85.43711833333333],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "al_meridian\",-30],PARAMETER[\"false_easting\",25500000]"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + ",PARAMETER[\"false_northing\",1500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"21415\"]]"); - p = add_epsg_def (filter, first, last, 21416, "epsg", 21416, - "Beijing 1954 / Gauss-Kruger zone 16"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6050\"]]"); + p = add_epsg_def (filter, first, last, 6051, "epsg", 6051, + "GR96 / EPSG Arctic zone 2-18"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); + "333 +lat_0=82.05842488888888 +lon_0=-52 +x_0=18500000 +y"); add_proj4text (p, 2, - "m +no_defs"); + "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 2-18\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",83.66666666666"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_"); + "667],PARAMETER[\"standard_parallel_2\",80.33333333333333"); add_srs_wkt (p, 9, - "factor\",1],PARAMETER[\"false_easting\",16500000],PARAME"); + "],PARAMETER[\"latitude_of_origin\",82.05842488888888],PA"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "RAMETER[\"central_meridian\",-52],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "ing\",18500000],PARAMETER[\"false_northing\",2500000],UN"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"21416\"]]"); - p = add_epsg_def (filter, first, last, 21417, "epsg", 21417, - "Beijing 1954 / Gauss-Kruger zone 17"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6051\"]]"); + p = add_epsg_def (filter, first, last, 6052, "epsg", 6052, + "GR96 / EPSG Arctic zone 2-20"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); + "333 +lat_0=82.05842488888888 +lon_0=-12 +x_0=20500000 +y"); add_proj4text (p, 2, - "m +no_defs"); + "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 2-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",83.66666666666"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_"); + "667],PARAMETER[\"standard_parallel_2\",80.33333333333333"); add_srs_wkt (p, 9, - "factor\",1],PARAMETER[\"false_easting\",17500000],PARAME"); + "],PARAMETER[\"latitude_of_origin\",82.05842488888888],PA"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "RAMETER[\"central_meridian\",-12],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "ing\",20500000],PARAMETER[\"false_northing\",2500000],UN"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"21417\"]]"); - p = add_epsg_def (filter, first, last, 21418, "epsg", 21418, - "Beijing 1954 / Gauss-Kruger zone 18"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6052\"]]"); + p = add_epsg_def (filter, first, last, 6053, "epsg", 6053, + "GR96 / EPSG Arctic zone 3-29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 3-29\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); + "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",18500000],PARAM"); + "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-69],PARAMETER[\"false_easting\",29500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21418\"]]"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6053\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_28.c b/src/spatialite/src/srsinit/epsg_inlined_28.c index 4e0d99d..fb6b23a 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_28.c +++ b/src/spatialite/src/srsinit/epsg_inlined_28.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3408 +52,3542 @@ initialize_epsg_28 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 21419, "epsg", 21419, - "Beijing 1954 / Gauss-Kruger zone 19"); + p = add_epsg_def (filter, first, last, 6054, "epsg", 6054, + "GR96 / EPSG Arctic zone 3-31"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "0733752777778 +lon_0=-39 +x_0=31500000 +y_0=3500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 3-31\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); + "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",19500000],PARAM"); + "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-39],PARAMETER[\"false_easting\",31500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21419\"]]"); - p = add_epsg_def (filter, first, last, 21420, "epsg", 21420, - "Beijing 1954 / Gauss-Kruger zone 20"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6054\"]]"); + p = add_epsg_def (filter, first, last, 6055, "epsg", 6055, + "GR96 / EPSG Arctic zone 3-33"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "0733752777778 +lon_0=-10 +x_0=33500000 +y_0=3500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 3-33\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); + "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",20500000],PARAM"); + "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-10],PARAMETER[\"false_easting\",33500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21420\"]]"); - p = add_epsg_def (filter, first, last, 21421, "epsg", 21421, - "Beijing 1954 / Gauss-Kruger zone 21"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6055\"]]"); + p = add_epsg_def (filter, first, last, 6056, "epsg", 6056, + "GR96 / EPSG Arctic zone 4-20"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "6440330555556 +lon_0=-64 +x_0=20500000 +y_0=4500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 4-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); + "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",21500000],PARAM"); + "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-64],PARAMETER[\"false_easting\",20500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21421\"]]"); - p = add_epsg_def (filter, first, last, 21422, "epsg", 21422, - "Beijing 1954 / Gauss-Kruger zone 22"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6056\"]]"); + p = add_epsg_def (filter, first, last, 6057, "epsg", 6057, + "GR96 / EPSG Arctic zone 4-22"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "6440330555556 +lon_0=-39 +x_0=22500000 +y_0=4500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 4-22\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); + "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",22500000],PARAM"); + "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-39],PARAMETER[\"false_easting\",22500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21422\"]]"); - p = add_epsg_def (filter, first, last, 21423, "epsg", 21423, - "Beijing 1954 / Gauss-Kruger zone 23"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6057\"]]"); + p = add_epsg_def (filter, first, last, 6058, "epsg", 6058, + "GR96 / EPSG Arctic zone 4-24"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + "6440330555556 +lon_0=-14 +x_0=24500000 +y_0=4500000 +ell"); add_proj4text (p, 2, - "=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 4-24\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); + "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",23500000],PARAM"); + "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "al_meridian\",-14],PARAMETER[\"false_easting\",24500000]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"21423\"]]"); - p = add_epsg_def (filter, first, last, 21453, "epsg", 21453, - "Beijing 1954 / Gauss-Kruger CM 75E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6058\"]]"); + p = add_epsg_def (filter, first, last, 6059, "epsg", 6059, + "GR96 / EPSG Arctic zone 5-41"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "333 +lat_0=72.02500919444445 +lon_0=-62 +x_0=41500000 +y"); add_proj4text (p, 2, + "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B"); + "PROJCS[\"GR96 / EPSG Arctic zone 5-41\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_f"); + "667],PARAMETER[\"standard_parallel_2\",70.33333333333333"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); + "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "RAMETER[\"central_meridian\",-62],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); + "ing\",41500000],PARAMETER[\"false_northing\",5500000],UN"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"21453\"]]"); - p = add_epsg_def (filter, first, last, 21454, "epsg", 21454, - "Beijing 1954 / Gauss-Kruger CM 81E"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6059\"]]"); + p = add_epsg_def (filter, first, last, 6060, "epsg", 6060, + "GR96 / EPSG Arctic zone 5-43"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "333 +lat_0=72.02500919444445 +lon_0=-42 +x_0=43500000 +y"); add_proj4text (p, 2, + "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B"); + "PROJCS[\"GR96 / EPSG Arctic zone 5-43\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_f"); + "667],PARAMETER[\"standard_parallel_2\",70.33333333333333"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); + "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "RAMETER[\"central_meridian\",-42],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); + "ing\",43500000],PARAMETER[\"false_northing\",5500000],UN"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"21454\"]]"); - p = add_epsg_def (filter, first, last, 21455, "epsg", 21455, - "Beijing 1954 / Gauss-Kruger CM 87E"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6060\"]]"); + p = add_epsg_def (filter, first, last, 6061, "epsg", 6061, + "GR96 / EPSG Arctic zone 5-45"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "333 +lat_0=72.02500919444445 +lon_0=-22 +x_0=45500000 +y"); add_proj4text (p, 2, + "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B"); + "PROJCS[\"GR96 / EPSG Arctic zone 5-45\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_f"); + "667],PARAMETER[\"standard_parallel_2\",70.33333333333333"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); + "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "RAMETER[\"central_meridian\",-22],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); + "ing\",45500000],PARAMETER[\"false_northing\",5500000],UN"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"21455\"]]"); - p = add_epsg_def (filter, first, last, 21456, "epsg", 21456, - "Beijing 1954 / Gauss-Kruger CM 93E"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6061\"]]"); + p = add_epsg_def (filter, first, last, 6062, "epsg", 6062, + "GR96 / EPSG Arctic zone 6-26"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "8747555555557 +lon_0=-56 +x_0=26500000 +y_0=6500000 +ell"); add_proj4text (p, 2, - "+no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B"); + "PROJCS[\"GR96 / EPSG Arctic zone 6-26\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f"); + "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); + "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "al_meridian\",-56],PARAMETER[\"false_easting\",26500000]"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); + ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"21456\"]]"); - p = add_epsg_def (filter, first, last, 21457, "epsg", 21457, - "Beijing 1954 / Gauss-Kruger CM 99E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6062\"]]"); + p = add_epsg_def (filter, first, last, 6063, "epsg", 6063, + "GR96 / EPSG Arctic zone 6-28"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "8747555555557 +lon_0=-38 +x_0=28500000 +y_0=6500000 +ell"); add_proj4text (p, 2, - "+no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B"); + "PROJCS[\"GR96 / EPSG Arctic zone 6-28\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f"); + "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); + "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "al_meridian\",-38],PARAMETER[\"false_easting\",28500000]"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); + ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"21457\"]]"); - p = add_epsg_def (filter, first, last, 21458, "epsg", 21458, - "Beijing 1954 / Gauss-Kruger CM 105E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6063\"]]"); + p = add_epsg_def (filter, first, last, 6064, "epsg", 6064, + "GR96 / EPSG Arctic zone 6-30"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "8747555555557 +lon_0=-20 +x_0=30500000 +y_0=6500000 +ell"); add_proj4text (p, 2, - " +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 6-30\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); + "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "al_meridian\",-20],PARAMETER[\"false_easting\",30500000]"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21458\"]]"); - p = add_epsg_def (filter, first, last, 21459, "epsg", 21459, - "Beijing 1954 / Gauss-Kruger CM 111E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6064\"]]"); + p = add_epsg_def (filter, first, last, 6065, "epsg", 6065, + "GR96 / EPSG Arctic zone 7-11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "5103930555555 +lon_0=-51 +x_0=11500000 +y_0=7500000 +ell"); add_proj4text (p, 2, - " +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 7-11\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",67],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); + "\"standard_parallel_2\",63.66666666666666],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "atitude_of_origin\",65.35103930555555],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "al_meridian\",-51],PARAMETER[\"false_easting\",11500000]"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + ",PARAMETER[\"false_northing\",7500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21459\"]]"); - p = add_epsg_def (filter, first, last, 21460, "epsg", 21460, - "Beijing 1954 / Gauss-Kruger CM 117E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6065\"]]"); + p = add_epsg_def (filter, first, last, 6066, "epsg", 6066, + "GR96 / EPSG Arctic zone 7-13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "5103930555555 +lon_0=-34 +x_0=13500000 +y_0=7500000 +ell"); add_proj4text (p, 2, - " +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 7-13\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",67],PARAMETER["); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); + "\"standard_parallel_2\",63.66666666666666],PARAMETER[\"l"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "atitude_of_origin\",65.35103930555555],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "al_meridian\",-34],PARAMETER[\"false_easting\",13500000]"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + ",PARAMETER[\"false_northing\",7500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21460\"]]"); - p = add_epsg_def (filter, first, last, 21461, "epsg", 21461, - "Beijing 1954 / Gauss-Kruger CM 123E"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6066\"]]"); + p = add_epsg_def (filter, first, last, 6067, "epsg", 6067, + "GR96 / EPSG Arctic zone 8-20"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "334 +lat_0=62.01530688888889 +lon_0=-52 +x_0=20500000 +y"); add_proj4text (p, 2, - " +no_defs"); + "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 8-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",63.66666666666"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); + "666],PARAMETER[\"standard_parallel_2\",60.33333333333334"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "],PARAMETER[\"latitude_of_origin\",62.01530688888889],PA"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "RAMETER[\"central_meridian\",-52],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + "ing\",20500000],PARAMETER[\"false_northing\",8500000],UN"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21461\"]]"); - p = add_epsg_def (filter, first, last, 21462, "epsg", 21462, - "Beijing 1954 / Gauss-Kruger CM 129E"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6067\"]]"); + p = add_epsg_def (filter, first, last, 6068, "epsg", 6068, + "GR96 / EPSG Arctic zone 8-22"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "334 +lat_0=62.01530688888889 +lon_0=-37 +x_0=22500000 +y"); add_proj4text (p, 2, - " +no_defs"); + "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\""); + "PROJCS[\"GR96 / EPSG Arctic zone 8-22\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "_2SP\"],PARAMETER[\"standard_parallel_1\",63.66666666666"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); + "666],PARAMETER[\"standard_parallel_2\",60.33333333333334"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "],PARAMETER[\"latitude_of_origin\",62.01530688888889],PA"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "RAMETER[\"central_meridian\",-37],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + "ing\",22500000],PARAMETER[\"false_northing\",8500000],UN"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21462\"]]"); - p = add_epsg_def (filter, first, last, 21463, "epsg", 21463, - "Beijing 1954 / Gauss-Kruger CM 135E"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 13, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6068\"]]"); + p = add_epsg_def (filter, first, last, 6069, "epsg", 6069, + "ETRS89 / EPSG Arctic zone 2-22"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "333 +lat_0=82.05842488888888 +lon_0=16 +x_0=22500000 +y_"); add_proj4text (p, 2, - " +no_defs"); + "0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\""); + "PROJCS[\"ETRS89 / EPSG Arctic zone 2-22\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); + "ard_parallel_1\",83.66666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); + "_parallel_2\",80.33333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "_origin\",82.05842488888888],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); + "n\",16],PARAMETER[\"false_easting\",22500000],PARAMETER["); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"21463\"]]"); - p = add_epsg_def (filter, first, last, 21473, "epsg", 21473, - "Beijing 1954 / Gauss-Kruger 13N (deprecated)"); + "\"false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6069\"]]"); + p = add_epsg_def (filter, first, last, 6070, "epsg", 6070, + "ETRS89 / EPSG Arctic zone 3-11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "0733752777778 +lon_0=21 +x_0=11500000 +y_0=3500000 +ellp"); add_proj4text (p, 2, - "+no_defs"); + "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\","); + "PROJCS[\"ETRS89 / EPSG Arctic zone 3-11\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE"); + "ard_parallel_1\",80.33333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); + "_parallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "733752777778],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); + "ER[\"false_easting\",11500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"21473\"]]"); - p = add_epsg_def (filter, first, last, 21474, "epsg", 21474, - "Beijing 1954 / Gauss-Kruger 14N (deprecated)"); + "g\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 13, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 14, + "RITY[\"EPSG\",\"6070\"]]"); + p = add_epsg_def (filter, first, last, 6071, "epsg", 6071, + "ETRS89 / EPSG Arctic zone 4-26"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "6440330555556 +lon_0=10 +x_0=26500000 +y_0=4500000 +ellp"); add_proj4text (p, 2, - "+no_defs"); + "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\","); + "PROJCS[\"ETRS89 / EPSG Arctic zone 4-26\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE"); + "ard_parallel_1\",77],PARAMETER[\"standard_parallel_2\",7"); add_srs_wkt (p, 9, - "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); + "3.66666666666667],PARAMETER[\"latitude_of_origin\",75.36"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "440330555556],PARAMETER[\"central_meridian\",10],PARAMET"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); + "ER[\"false_easting\",26500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"21474\"]]"); - p = add_epsg_def (filter, first, last, 21475, "epsg", 21475, - "Beijing 1954 / Gauss-Kruger 15N (deprecated)"); + "g\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 13, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 14, + "RITY[\"EPSG\",\"6071\"]]"); + p = add_epsg_def (filter, first, last, 6072, "epsg", 6072, + "ETRS89 / EPSG Arctic zone 4-28"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "6440330555556 +lon_0=34 +x_0=28500000 +y_0=4500000 +ellp"); add_proj4text (p, 2, - "+no_defs"); + "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\","); + "PROJCS[\"ETRS89 / EPSG Arctic zone 4-28\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE"); + "ard_parallel_1\",77],PARAMETER[\"standard_parallel_2\",7"); add_srs_wkt (p, 9, - "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); + "3.66666666666667],PARAMETER[\"latitude_of_origin\",75.36"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "440330555556],PARAMETER[\"central_meridian\",34],PARAMET"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); + "ER[\"false_easting\",28500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"21475\"]]"); - p = add_epsg_def (filter, first, last, 21476, "epsg", 21476, - "Beijing 1954 / Gauss-Kruger 16N (deprecated)"); + "g\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 13, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 14, + "RITY[\"EPSG\",\"6072\"]]"); + p = add_epsg_def (filter, first, last, 6073, "epsg", 6073, + "ETRS89 / EPSG Arctic zone 5-11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "333 +lat_0=72.02500919444445 +lon_0=14 +x_0=11500000 +y_"); add_proj4text (p, 2, - "+no_defs"); + "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\","); + "PROJCS[\"ETRS89 / EPSG Arctic zone 5-11\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE"); + "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); + "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "_origin\",72.02500919444445],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); + "n\",14],PARAMETER[\"false_easting\",11500000],PARAMETER["); add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"21476\"]]"); - p = add_epsg_def (filter, first, last, 21477, "epsg", 21477, - "Beijing 1954 / Gauss-Kruger 17N (deprecated)"); + "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6073\"]]"); + p = add_epsg_def (filter, first, last, 6074, "epsg", 6074, + "ETRS89 / EPSG Arctic zone 5-13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); + "333 +lat_0=72.02500919444445 +lon_0=34 +x_0=13500000 +y_"); add_proj4text (p, 2, - "+no_defs"); + "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\","); + "PROJCS[\"ETRS89 / EPSG Arctic zone 5-13\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE"); + "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); + "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "_origin\",72.02500919444445],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); + "n\",34],PARAMETER[\"false_easting\",13500000],PARAMETER["); add_srs_wkt (p, 12, - "ST],AUTHORITY[\"EPSG\",\"21477\"]]"); - p = add_epsg_def (filter, first, last, 21478, "epsg", 21478, - "Beijing 1954 / Gauss-Kruger 18N (deprecated)"); + "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6074\"]]"); + p = add_epsg_def (filter, first, last, 6075, "epsg", 6075, + "WGS 84 / EPSG Arctic zone 2-24"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "333 +lat_0=82.05842488888888 +lon_0=53 +x_0=24500000 +y_"); add_proj4text (p, 2, - " +no_defs"); + "0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 2-24\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET"); + "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "igin\",82.05842488888888],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + ",53],PARAMETER[\"false_easting\",24500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + "alse_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21478\"]]"); - p = add_epsg_def (filter, first, last, 21479, "epsg", 21479, - "Beijing 1954 / Gauss-Kruger 19N (deprecated)"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6075\"]]"); + p = add_epsg_def (filter, first, last, 6076, "epsg", 6076, + "WGS 84 / EPSG Arctic zone 2-26"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "333 +lat_0=82.05842488888888 +lon_0=93 +x_0=26500000 +y_"); add_proj4text (p, 2, - " +no_defs"); + "0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 2-26\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET"); + "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "igin\",82.05842488888888],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + ",93],PARAMETER[\"false_easting\",26500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + "alse_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21479\"]]"); - p = add_epsg_def (filter, first, last, 21480, "epsg", 21480, - "Beijing 1954 / Gauss-Kruger 20N (deprecated)"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6076\"]]"); + p = add_epsg_def (filter, first, last, 6077, "epsg", 6077, + "WGS 84 / EPSG Arctic zone 3-13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "0733752777778 +lon_0=52 +x_0=13500000 +y_0=3500000 +datu"); add_proj4text (p, 2, - " +no_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-13\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "752777778],PARAMETER[\"central_meridian\",52],PARAMETER["); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "\"false_easting\",13500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21480\"]]"); - p = add_epsg_def (filter, first, last, 21481, "epsg", 21481, - "Beijing 1954 / Gauss-Kruger 21N (deprecated)"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6077\"]]"); + p = add_epsg_def (filter, first, last, 6078, "epsg", 6078, + "WGS 84 / EPSG Arctic zone 3-15"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "0733752777778 +lon_0=83 +x_0=15500000 +y_0=3500000 +datu"); add_proj4text (p, 2, - " +no_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-15\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "752777778],PARAMETER[\"central_meridian\",83],PARAMETER["); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "\"false_easting\",15500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21481\"]]"); - p = add_epsg_def (filter, first, last, 21482, "epsg", 21482, - "Beijing 1954 / Gauss-Kruger 22N (deprecated)"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6078\"]]"); + p = add_epsg_def (filter, first, last, 6079, "epsg", 6079, + "WGS 84 / EPSG Arctic zone 3-17"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "0733752777778 +lon_0=114 +x_0=17500000 +y_0=3500000 +dat"); add_proj4text (p, 2, - " +no_defs"); + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-17\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "752777778],PARAMETER[\"central_meridian\",114],PARAMETER"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "[\"false_easting\",17500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21482\"]]"); - p = add_epsg_def (filter, first, last, 21483, "epsg", 21483, - "Beijing 1954 / Gauss-Kruger 23N (deprecated)"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6079\"]]"); + p = add_epsg_def (filter, first, last, 6080, "epsg", 6080, + "WGS 84 / EPSG Arctic zone 3-19"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + "0733752777778 +lon_0=145 +x_0=19500000 +y_0=3500000 +dat"); add_proj4text (p, 2, - " +no_defs"); + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\","); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-19\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); + "752777778],PARAMETER[\"central_meridian\",145],PARAMETER"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "[\"false_easting\",19500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); + ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "AST],AUTHORITY[\"EPSG\",\"21483\"]]"); - p = add_epsg_def (filter, first, last, 21500, "epsg", 21500, - "Belge 1950 (Brussels) / Belge Lambert 50"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6080\"]]"); + p = add_epsg_def (filter, first, last, 6081, "epsg", 6081, + "WGS 84 / EPSG Arctic zone 4-30"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i"); + "6440330555556 +lon_0=58 +x_0=30500000 +y_0=4500000 +datu"); add_proj4text (p, 2, - "ntl +pm=brussels +units=m +no_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-30\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]],PRO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "ndard_parallel_1\",49.83333333333334],PARAMETER[\"standa"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "rd_parallel_2\",51.16666666666666],PARAMETER[\"latitude_"); + "330555556],PARAMETER[\"central_meridian\",58],PARAMETER["); add_srs_wkt (p, 10, - "of_origin\",90],PARAMETER[\"central_meridian\",0],PARAME"); + "\"false_easting\",30500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "TER[\"false_easting\",150000],PARAMETER[\"false_northing"); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "\",5400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 14, - ",\"21500\"]]"); - p = add_epsg_def (filter, first, last, 21780, "epsg", 21780, - "Bern 1898 (Bern) / LV03C"); + "TY[\"EPSG\",\"6081\"]]"); + p = add_epsg_def (filter, first, last, 6082, "epsg", 6082, + "WGS 84 / EPSG Arctic zone 4-32"); add_proj4text (p, 0, - "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,"); + "6440330555556 +lon_0=82 +x_0=32500000 +y_0=4500000 +datu"); add_proj4text (p, 2, - "0,0 +pm=bern +units=m +no_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 ("); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-32\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4801\"]],PROJE"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_"); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "of_center\",46.95240555555556],PARAMETER[\"longitude_of_"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "center\",0],PARAMETER[\"azimuth\",90],PARAMETER[\"rectif"); + "330555556],PARAMETER[\"central_meridian\",82],PARAMETER["); add_srs_wkt (p, 10, - "ied_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAM"); + "\"false_easting\",32500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21780\""); - add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 21781, "epsg", 21781, - "CH1903 / LV03"); + "TY[\"EPSG\",\"6082\"]]"); + p = add_epsg_def (filter, first, last, 6083, "epsg", 6083, + "WGS 84 / EPSG Arctic zone 4-34"); add_proj4text (p, 0, - "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow"); + "6440330555556 +lon_0=106 +x_0=34500000 +y_0=4500000 +dat"); add_proj4text (p, 2, - "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs"); + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-34\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\","); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "G\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],P"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "ARAMETER[\"latitude_of_center\",46.95240555555556],PARAM"); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "ETER[\"longitude_of_center\",7.439583333333333],PARAMETE"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "R[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\",90]"); + "330555556],PARAMETER[\"central_meridian\",106],PARAMETER"); add_srs_wkt (p, 10, - ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); + "[\"false_easting\",34500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "\",600000],PARAMETER[\"false_northing\",200000],UNIT[\"m"); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - "AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21781\"]]"); - p = add_epsg_def (filter, first, last, 21782, "epsg", 21782, - "CH1903 / LV03C-G"); + "TY[\"EPSG\",\"6083\"]]"); + p = add_epsg_def (filter, first, last, 6084, "epsg", 6084, + "WGS 84 / EPSG Arctic zone 4-36"); add_proj4text (p, 0, - "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4"); + "6440330555556 +lon_0=130 +x_0=36500000 +y_0=4500000 +dat"); add_proj4text (p, 2, - ",15.1,405.3,0,0,0,0 +units=m +no_defs"); + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-36\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "EPSG\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\""); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_center\",46.95240555555556],PA"); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "RAMETER[\"longitude_of_center\",7.439583333333333],PARAM"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "ETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\","); + "330555556],PARAMETER[\"central_meridian\",130],PARAMETER"); add_srs_wkt (p, 10, - "90],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "[\"false_easting\",36500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\""); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - "X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]"); - p = add_epsg_def (filter, first, last, 21817, "epsg", 21817, - "Bogota 1975 / UTM zone 17N (deprecated)"); + "TY[\"EPSG\",\"6084\"]]"); + p = add_epsg_def (filter, first, last, 6085, "epsg", 6085, + "WGS 84 / EPSG Arctic zone 4-38"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "6440330555556 +lon_0=154 +x_0=38500000 +y_0=4500000 +dat"); + add_proj4text (p, 2, + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-38\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "330555556],PARAMETER[\"central_meridian\",154],PARAMETER"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "[\"false_easting\",38500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"21817\"]]"); - p = add_epsg_def (filter, first, last, 21818, "epsg", 21818, - "Bogota 1975 / UTM zone 18N"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6085\"]]"); + p = add_epsg_def (filter, first, last, 6086, "epsg", 6086, + "WGS 84 / EPSG Arctic zone 4-40"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "6440330555556 +lon_0=179 +x_0=40500000 +y_0=4500000 +dat"); + add_proj4text (p, 2, + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-40\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM["); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "330555556],PARAMETER[\"central_meridian\",179],PARAMETER"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "[\"false_easting\",40500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"21818\"]]"); - p = add_epsg_def (filter, first, last, 21891, "epsg", 21891, - "Bogota 1975 / Colombia West zone (deprecated)"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6086\"]]"); + p = add_epsg_def (filter, first, last, 6087, "epsg", 6087, + "WGS 84 / EPSG Arctic zone 5-15"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=54 +x_0=15500000 +y_"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\""); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-15\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTIO"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "n\",4.599047222222222],PARAMETER[\"central_meridian\",-7"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "7.08091666666667],PARAMETER[\"scale_factor\",1],PARAMETE"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "R[\"false_easting\",1000000],PARAMETER[\"false_northing\""); + ",54],PARAMETER[\"false_easting\",15500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - "21891\"]]"); - p = add_epsg_def (filter, first, last, 21892, "epsg", 21892, - "Bogota 1975 / Colombia Bogota zone (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"6087\"]]"); + p = add_epsg_def (filter, first, last, 6088, "epsg", 6088, + "WGS 84 / EPSG Arctic zone 5-17"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=74 +x_0=17500000 +y_"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-17\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTI"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "in\",4.599047222222222],PARAMETER[\"central_meridian\",-"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "74.08091666666667],PARAMETER[\"scale_factor\",1],PARAMET"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "ER[\"false_easting\",1000000],PARAMETER[\"false_northing"); + ",74],PARAMETER[\"false_easting\",17500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - ",\"21892\"]]"); - p = add_epsg_def (filter, first, last, 21893, "epsg", 21893, - "Bogota 1975 / Colombia East Central zone (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"6088\"]]"); + p = add_epsg_def (filter, first, last, 6089, "epsg", 6089, + "WGS 84 / EPSG Arctic zone 5-19"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=95 +x_0=19500000 +y_"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-19\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_of_origin\",4.599047222222222],PARAMETER[\"central_meri"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "dian\",-71.08091666666667],PARAMETER[\"scale_factor\",1]"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_"); + ",95],PARAMETER[\"false_easting\",19500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - "\"EPSG\",\"21893\"]]"); - p = add_epsg_def (filter, first, last, 21894, "epsg", 21894, - "Bogota 1975 / Colombia East (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"6089\"]]"); + p = add_epsg_def (filter, first, last, 6090, "epsg", 6090, + "WGS 84 / EPSG Arctic zone 5-21"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=116 +x_0=21500000 +y"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - ".599047222222222],PARAMETER[\"central_meridian\",-68.080"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); + ",116],PARAMETER[\"false_easting\",21500000],PARAMETER[\""); add_srs_wkt (p, 11, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - "94\"]]"); - p = add_epsg_def (filter, first, last, 21896, "epsg", 21896, - "Bogota 1975 / Colombia West zone"); + ",NORTH],AUTHORITY[\"EPSG\",\"6090\"]]"); + p = add_epsg_def (filter, first, last, 6091, "epsg", 6091, + "WGS 84 / EPSG Arctic zone 5-23"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=137 +x_0=23500000 +y"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-23\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transver"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",4.599047"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "222222222],PARAMETER[\"central_meridian\",-77.0809166666"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "sting\",1000000],PARAMETER[\"false_northing\",1000000],U"); + ",137],PARAMETER[\"false_easting\",23500000],PARAMETER[\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21896\"]]"); - p = add_epsg_def (filter, first, last, 21897, "epsg", 21897, - "Bogota 1975 / Colombia Bogota zone"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6091\"]]"); + p = add_epsg_def (filter, first, last, 6092, "epsg", 6092, + "WGS 84 / EPSG Arctic zone 5-25"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=158 +x_0=25500000 +y"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-25\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "22\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transv"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.5990"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "47222222222],PARAMETER[\"central_meridian\",-74.08091666"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "easting\",1000000],PARAMETER[\"false_northing\",1000000]"); + ",158],PARAMETER[\"false_easting\",25500000],PARAMETER[\""); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21897\"]"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 21898, "epsg", 21898, - "Bogota 1975 / Colombia East Central zone"); + ",NORTH],AUTHORITY[\"EPSG\",\"6092\"]]"); + p = add_epsg_def (filter, first, last, 6093, "epsg", 6093, + "WGS 84 / EPSG Arctic zone 5-27"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=179 +x_0=27500000 +y"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 5-27\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - ".599047222222222],PARAMETER[\"central_meridian\",-71.080"); + "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); + "igin\",72.02500919444445],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); + ",179],PARAMETER[\"false_easting\",27500000],PARAMETER[\""); add_srs_wkt (p, 11, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"218"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - "98\"]]"); - p = add_epsg_def (filter, first, last, 21899, "epsg", 21899, - "Bogota 1975 / Colombia East"); + ",NORTH],AUTHORITY[\"EPSG\",\"6093\"]]"); + p = add_epsg_def (filter, first, last, 6094, "epsg", 6094, + "NAD83(NSRS2007) / EPSG Arctic zone 5-29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + "333 +lat_0=72.02500919444445 +lon_0=-163 +x_0=29500000 +"); add_proj4text (p, 2, - "84=307,304,-318,0,0,0,0 +units=m +no_defs"); + "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1"); + "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-29\",GEOGC"); add_srs_wkt (p, 1, - "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192"); + "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30"); + "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Me"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",4.59904722222"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "2222],PARAMETER[\"central_meridian\",-68.08091666666667]"); + "\"],PARAMETER[\"standard_parallel_1\",73.66666666666667]"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); + ",PARAMETER[\"standard_parallel_2\",70.33333333333333],PA"); add_srs_wkt (p, 10, - "\",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\""); + "RAMETER[\"latitude_of_origin\",72.02500919444445],PARAME"); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "TER[\"central_meridian\",-163],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21899\"]]"); - p = add_epsg_def (filter, first, last, 22032, "epsg", 22032, - "Camacupa / UTM zone 32S"); + "\",29500000],PARAMETER[\"false_northing\",5500000],UNIT["); + add_srs_wkt (p, 13, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 14, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 15, + "094\"]]"); + p = add_epsg_def (filter, first, last, 6095, "epsg", 6095, + "NAD83(NSRS2007) / EPSG Arctic zone 5-31"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "347.6,-231,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=72.02500919444445 +lon_0=-147 +x_0=31500000 +"); + add_proj4text (p, 2, + "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D"); + "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-31\",GEOGC"); add_srs_wkt (p, 1, - "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); + "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); + "\"],PARAMETER[\"standard_parallel_1\",73.66666666666667]"); add_srs_wkt (p, 9, - "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + ",PARAMETER[\"standard_parallel_2\",70.33333333333333],PA"); add_srs_wkt (p, 10, - "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "RAMETER[\"latitude_of_origin\",72.02500919444445],PARAME"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + "TER[\"central_meridian\",-147],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"22032\"]]"); - p = add_epsg_def (filter, first, last, 22033, "epsg", 22033, - "Camacupa / UTM zone 33S"); + "\",31500000],PARAMETER[\"false_northing\",5500000],UNIT["); + add_srs_wkt (p, 13, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 14, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 15, + "095\"]]"); + p = add_epsg_def (filter, first, last, 6096, "epsg", 6096, + "NAD83(NSRS2007) / EPSG Arctic zone 6-14"); add_proj4text (p, 0, - "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "347.6,-231,0,0,0,0 +units=m +no_defs"); + "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D"); + "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-14\",GEOGC"); add_srs_wkt (p, 1, - "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); + "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); + "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0."); + "\"],PARAMETER[\"standard_parallel_1\",70.33333333333333]"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + ",PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latit"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ude_of_origin\",68.68747555555557],PARAMETER[\"central_m"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "eridian\",-165],PARAMETER[\"false_easting\",14500000],PA"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"22033\"]]"); - p = add_epsg_def (filter, first, last, 22091, "epsg", 22091, - "Camacupa / TM 11.30 SE"); + "RAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"6096\"]]"); + p = add_epsg_def (filter, first, last, 6097, "epsg", 6097, + "NAD83(NSRS2007) / EPSG Arctic zone 6-16"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,"); + "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el"); add_proj4text (p, 2, - "0,0,0 +units=m +no_defs"); + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA"); + "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-16\",GEOGC"); add_srs_wkt (p, 1, - "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); + "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,"); + "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_M"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",0"); + "\"],PARAMETER[\"standard_parallel_1\",70.33333333333333]"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + ",PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latit"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "ude_of_origin\",68.68747555555557],PARAMETER[\"central_m"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "eridian\",-147],PARAMETER[\"false_easting\",16500000],PA"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"22091\"]]"); - p = add_epsg_def (filter, first, last, 22092, "epsg", 22092, - "Camacupa / TM 12 SE"); + "RAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"6097\"]]"); + p = add_epsg_def (filter, first, last, 6098, "epsg", 6098, + "NAD83(CSRS) / EPSG Arctic zone 1-23"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,"); + "3711833333333 +lon_0=-90 +x_0=23500000 +y_0=1500000 +ell"); add_proj4text (p, 2, - "0,0 +units=m +no_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM"); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 1-23\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\""); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Merca"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "entral_meridian\",12],PARAMETER[\"scale_factor\",0.9996]"); + "[\"standard_parallel_1\",87],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "el_2\",83.66666666666667],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "\",85.43711833333333],PARAMETER[\"central_meridian\",-90"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "],PARAMETER[\"false_easting\",23500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"22092\"]]"); - p = add_epsg_def (filter, first, last, 22171, "epsg", 22171, - "POSGAR 98 / Argentina 1"); + "e_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6098\"]]"); + p = add_epsg_def (filter, first, last, 6099, "epsg", 6099, + "NAD83(CSRS) / EPSG Arctic zone 2-14"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=82.05842488888888 +lon_0=-115 +x_0=14500000 +"); + add_proj4text (p, 2, + "y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-14\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scal"); + "[\"standard_parallel_1\",83.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",1500000],PARAM"); + "standard_parallel_2\",80.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "itude_of_origin\",82.05842488888888],PARAMETER[\"central"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "_meridian\",-115],PARAMETER[\"false_easting\",14500000],"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22171\"]]"); - p = add_epsg_def (filter, first, last, 22172, "epsg", 22172, - "POSGAR 98 / Argentina 2"); + "PARAMETER[\"false_northing\",2500000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6099\"]]"); + p = add_epsg_def (filter, first, last, 6100, "epsg", 6100, + "NAD83(CSRS) / EPSG Arctic zone 2-16"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=82.05842488888888 +lon_0=-75 +x_0=16500000 +y"); + add_proj4text (p, 2, + "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-16\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); + "[\"standard_parallel_1\",83.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",2500000],PARAM"); + "standard_parallel_2\",80.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "itude_of_origin\",82.05842488888888],PARAMETER[\"central"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "_meridian\",-75],PARAMETER[\"false_easting\",16500000],P"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22172\"]]"); - p = add_epsg_def (filter, first, last, 22173, "epsg", 22173, - "POSGAR 98 / Argentina 3"); + "ARAMETER[\"false_northing\",2500000],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 13, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6100\"]]"); + p = add_epsg_def (filter, first, last, 6101, "epsg", 6101, + "NAD83(CSRS) / EPSG Arctic zone 3-25"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "0733752777778 +lon_0=-129 +x_0=25500000 +y_0=3500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-25\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scal"); + "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM"); + "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "\",78.70733752777778],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "9],PARAMETER[\"false_easting\",25500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22173\"]]"); - p = add_epsg_def (filter, first, last, 22174, "epsg", 22174, - "POSGAR 98 / Argentina 4"); + "se_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + add_srs_wkt (p, 14, + "ORTH],AUTHORITY[\"EPSG\",\"6101\"]]"); + p = add_epsg_def (filter, first, last, 6102, "epsg", 6102, + "NAD83(CSRS) / EPSG Arctic zone 3-27"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "0733752777778 +lon_0=-99 +x_0=27500000 +y_0=3500000 +ell"); + add_proj4text (p, 2, + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-27\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); + "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",4500000],PARAM"); + "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "\",78.70733752777778],PARAMETER[\"central_meridian\",-99"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "],PARAMETER[\"false_easting\",27500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22174\"]]"); - p = add_epsg_def (filter, first, last, 22175, "epsg", 22175, - "POSGAR 98 / Argentina 5"); + "e_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6102\"]]"); + p = add_epsg_def (filter, first, last, 6103, "epsg", 6103, + "NAD83(CSRS) / EPSG Arctic zone 3-29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell"); + add_proj4text (p, 2, + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-29\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scal"); + "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",5500000],PARAM"); + "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "\",78.70733752777778],PARAMETER[\"central_meridian\",-69"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "],PARAMETER[\"false_easting\",29500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22175\"]]"); - p = add_epsg_def (filter, first, last, 22176, "epsg", 22176, - "POSGAR 98 / Argentina 6"); + "e_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6103\"]]"); + p = add_epsg_def (filter, first, last, 6104, "epsg", 6104, + "NAD83(CSRS) / EPSG Arctic zone 4-14"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "6440330555556 +lon_0=-129 +x_0=14500000 +y_0=4500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-14\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); + "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",6500000],PARAM"); + "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "\",75.36440330555556],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "9],PARAMETER[\"false_easting\",14500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22176\"]]"); - p = add_epsg_def (filter, first, last, 22177, "epsg", 22177, - "POSGAR 98 / Argentina 7"); + "se_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + add_srs_wkt (p, 14, + "ORTH],AUTHORITY[\"EPSG\",\"6104\"]]"); + p = add_epsg_def (filter, first, last, 6105, "epsg", 6105, + "NAD83(CSRS) / EPSG Arctic zone 4-16"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "6440330555556 +lon_0=-104 +x_0=16500000 +y_0=4500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-16\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "90],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scal"); + "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",7500000],PARAM"); + "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "\",75.36440330555556],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "4],PARAMETER[\"false_easting\",16500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22177\"]]"); - p = add_epsg_def (filter, first, last, 22181, "epsg", 22181, - "POSGAR 94 / Argentina 1"); + "se_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + add_srs_wkt (p, 14, + "ORTH],AUTHORITY[\"EPSG\",\"6105\"]]"); + p = add_epsg_def (filter, first, last, 6106, "epsg", 6106, + "NAD83(CSRS) / EPSG Arctic zone 4-18"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "6440330555556 +lon_0=-79 +x_0=18500000 +y_0=4500000 +ell"); + add_proj4text (p, 2, + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-18\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale"); + "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME"); + "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "\",75.36440330555556],PARAMETER[\"central_meridian\",-79"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "],PARAMETER[\"false_easting\",18500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22181\"]]"); - p = add_epsg_def (filter, first, last, 22182, "epsg", 22182, - "POSGAR 94 / Argentina 2"); + "e_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6106\"]]"); + p = add_epsg_def (filter, first, last, 6107, "epsg", 6107, + "NAD83(CSRS) / EPSG Arctic zone 5-33"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=72.02500919444445 +lon_0=-131 +x_0=33500000 +"); + add_proj4text (p, 2, + "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-33\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale"); + "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME"); + "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "itude_of_origin\",72.02500919444445],PARAMETER[\"central"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "_meridian\",-131],PARAMETER[\"false_easting\",33500000],"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22182\"]]"); - p = add_epsg_def (filter, first, last, 22183, "epsg", 22183, - "POSGAR 94 / Argentina 3"); + "PARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6107\"]]"); + p = add_epsg_def (filter, first, last, 6108, "epsg", 6108, + "NAD83(CSRS) / EPSG Arctic zone 5-35"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=72.02500919444445 +lon_0=-111 +x_0=35500000 +"); + add_proj4text (p, 2, + "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-35\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale"); + "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME"); + "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "itude_of_origin\",72.02500919444445],PARAMETER[\"central"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "_meridian\",-111],PARAMETER[\"false_easting\",35500000],"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22183\"]]"); - p = add_epsg_def (filter, first, last, 22184, "epsg", 22184, - "POSGAR 94 / Argentina 4"); + "PARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6108\"]]"); + p = add_epsg_def (filter, first, last, 6109, "epsg", 6109, + "NAD83(CSRS) / EPSG Arctic zone 5-37"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=72.02500919444445 +lon_0=-91 +x_0=37500000 +y"); + add_proj4text (p, 2, + "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-37\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale"); + "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME"); + "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "itude_of_origin\",72.02500919444445],PARAMETER[\"central"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "_meridian\",-91],PARAMETER[\"false_easting\",37500000],P"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22184\"]]"); - p = add_epsg_def (filter, first, last, 22185, "epsg", 22185, - "POSGAR 94 / Argentina 5"); + "ARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 13, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6109\"]]"); + p = add_epsg_def (filter, first, last, 6110, "epsg", 6110, + "NAD83(CSRS) / EPSG Arctic zone 5-39"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=72.02500919444445 +lon_0=-71 +x_0=39500000 +y"); + add_proj4text (p, 2, + "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-39\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale"); + "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME"); + "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "itude_of_origin\",72.02500919444445],PARAMETER[\"central"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "_meridian\",-71],PARAMETER[\"false_easting\",39500000],P"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22185\"]]"); - p = add_epsg_def (filter, first, last, 22186, "epsg", 22186, - "POSGAR 94 / Argentina 6"); + "ARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 13, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6110\"]]"); + p = add_epsg_def (filter, first, last, 6111, "epsg", 6111, + "NAD83(CSRS) / EPSG Arctic zone 6-18"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "8747555555557 +lon_0=-132 +x_0=18500000 +y_0=6500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-18\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale"); + "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME"); + "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "\",68.68747555555557],PARAMETER[\"central_meridian\",-13"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "2],PARAMETER[\"false_easting\",18500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22186\"]]"); - p = add_epsg_def (filter, first, last, 22187, "epsg", 22187, - "POSGAR 94 / Argentina 7"); + "se_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + add_srs_wkt (p, 14, + "ORTH],AUTHORITY[\"EPSG\",\"6111\"]]"); + p = add_epsg_def (filter, first, last, 6112, "epsg", 6112, + "NAD83(CSRS) / EPSG Arctic zone 6-20"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "8747555555557 +lon_0=-113 +x_0=20500000 +y_0=6500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\","); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-20\",GEOGCS[\""); add_srs_wkt (p, 1, - "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale"); + "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME"); + "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "\",68.68747555555557],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); + "3],PARAMETER[\"false_easting\",20500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"22187\"]]"); - p = add_epsg_def (filter, first, last, 22191, "epsg", 22191, - "Campo Inchauspe / Argentina 1"); + "se_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + add_srs_wkt (p, 14, + "ORTH],AUTHORITY[\"EPSG\",\"6112\"]]"); + p = add_epsg_def (filter, first, last, 6113, "epsg", 6113, + "NAD83(CSRS) / EPSG Arctic zone 6-22"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "8747555555557 +lon_0=-94 +x_0=22500000 +y_0=6500000 +ell"); add_proj4text (p, 2, - "_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo "); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-22\",GEOGCS[\""); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale_f"); + "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",1500000],PARAMETE"); + "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "\",68.68747555555557],PARAMETER[\"central_meridian\",-94"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + "],PARAMETER[\"false_easting\",22500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22191\"]]"); - p = add_epsg_def (filter, first, last, 22192, "epsg", 22192, - "Campo Inchauspe / Argentina 2"); + "e_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6113\"]]"); + p = add_epsg_def (filter, first, last, 6114, "epsg", 6114, + "NAD83(CSRS) / EPSG Arctic zone 6-24"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "8747555555557 +lon_0=-75 +x_0=24500000 +y_0=6500000 +ell"); add_proj4text (p, 2, - "_defs"); + "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo "); + "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-24\",GEOGCS[\""); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); + "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",2500000],PARAMETE"); + "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "\",68.68747555555557],PARAMETER[\"central_meridian\",-75"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + "],PARAMETER[\"false_easting\",24500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22192\"]]"); - p = add_epsg_def (filter, first, last, 22193, "epsg", 22193, - "Campo Inchauspe / Argentina 3"); + "e_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"6114\"]]"); + p = add_epsg_def (filter, first, last, 6115, "epsg", 6115, + "WGS 84 / EPSG Arctic zone 1-27"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "3711833333333 +lon_0=30 +x_0=27500000 +y_0=1500000 +datu"); add_proj4text (p, 2, - "_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo "); + "PROJCS[\"WGS 84 / EPSG Arctic zone 1-27\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale_f"); + "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE"); + "833333333],PARAMETER[\"central_meridian\",30],PARAMETER["); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "\"false_easting\",27500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22193\"]]"); - p = add_epsg_def (filter, first, last, 22194, "epsg", 22194, - "Campo Inchauspe / Argentina 4"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6115\"]]"); + p = add_epsg_def (filter, first, last, 6116, "epsg", 6116, + "WGS 84 / EPSG Arctic zone 1-29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "3711833333333 +lon_0=90 +x_0=29500000 +y_0=1500000 +datu"); add_proj4text (p, 2, - "_defs"); + "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo "); + "PROJCS[\"WGS 84 / EPSG Arctic zone 1-29\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE"); + "833333333],PARAMETER[\"central_meridian\",90],PARAMETER["); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "\"false_easting\",29500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22194\"]]"); - p = add_epsg_def (filter, first, last, 22195, "epsg", 22195, - "Campo Inchauspe / Argentina 5"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6116\"]]"); + p = add_epsg_def (filter, first, last, 6117, "epsg", 6117, + "WGS 84 / EPSG Arctic zone 1-31"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "3711833333333 +lon_0=150 +x_0=31500000 +y_0=1500000 +dat"); add_proj4text (p, 2, - "_defs"); + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo "); + "PROJCS[\"WGS 84 / EPSG Arctic zone 1-31\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale_f"); + "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",5500000],PARAMETE"); + "833333333],PARAMETER[\"central_meridian\",150],PARAMETER"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "[\"false_easting\",31500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22195\"]]"); - p = add_epsg_def (filter, first, last, 22196, "epsg", 22196, - "Campo Inchauspe / Argentina 6"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6117\"]]"); + p = add_epsg_def (filter, first, last, 6118, "epsg", 6118, + "WGS 84 / EPSG Arctic zone 1-21"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); + "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "3711833333333 +lon_0=-150 +x_0=21500000 +y_0=1500000 +da"); add_proj4text (p, 2, - "_defs"); + "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo "); + "PROJCS[\"WGS 84 / EPSG Arctic zone 1-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",6500000],PARAMETE"); + "833333333],PARAMETER[\"central_meridian\",-150],PARAMETE"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "R[\"false_easting\",21500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + "\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22196\"]]"); - p = add_epsg_def (filter, first, last, 22197, "epsg", 22197, - "Campo Inchauspe / Argentina 7"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"6118\"]]"); + p = add_epsg_def (filter, first, last, 6119, "epsg", 6119, + "WGS 84 / EPSG Arctic zone 2-28"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); + "333 +lat_0=82.05842488888888 +lon_0=133 +x_0=28500000 +y"); add_proj4text (p, 2, - "_defs"); + "_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo "); + "PROJCS[\"WGS 84 / EPSG Arctic zone 2-28\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); + "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale_f"); + "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "actor\",1],PARAMETER[\"false_easting\",7500000],PARAMETE"); + "igin\",82.05842488888888],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + ",133],PARAMETER[\"false_easting\",28500000],PARAMETER[\""); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); + "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"22197\"]]"); - p = add_epsg_def (filter, first, last, 22234, "epsg", 22234, - "Cape / UTM zone 34S"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6119\"]]"); + p = add_epsg_def (filter, first, last, 6120, "epsg", 6120, + "WGS 84 / EPSG Arctic zone 2-10"); add_proj4text (p, 0, - "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=82.05842488888888 +lon_0=166 +x_0=10500000 +y"); + add_proj4text (p, 2, + "_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 2-10\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "igin\",82.05842488888888],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",166],PARAMETER[\"false_easting\",10500000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22234\"]]"); - p = add_epsg_def (filter, first, last, 22235, "epsg", 22235, - "Cape / UTM zone 35S"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6120\"]]"); + p = add_epsg_def (filter, first, last, 6121, "epsg", 6121, + "WGS 84 / EPSG Arctic zone 2-12"); add_proj4text (p, 0, - "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, - "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=82.05842488888888 +lon_0=-154 +x_0=12500000 +"); + add_proj4text (p, 2, + "y_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 2-12\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "igin\",82.05842488888888],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",-154],PARAMETER[\"false_easting\",12500000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"22235\"]]"); - p = add_epsg_def (filter, first, last, 22236, "epsg", 22236, - "Cape / UTM zone 36S (deprecated)"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6121\"]]"); + p = add_epsg_def (filter, first, last, 6122, "epsg", 6122, + "WGS 84 / EPSG Arctic zone 3-21"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); + "0733752777778 +lon_0=176 +x_0=21500000 +y_0=3500000 +dat"); + add_proj4text (p, 2, + "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84["); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "752777778],PARAMETER[\"central_meridian\",176],PARAMETER"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "[\"false_easting\",21500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"22236\"]]"); - p = add_epsg_def (filter, first, last, 22275, "epsg", 22275, - "Cape / Lo15"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6122\"]]"); + p = add_epsg_def (filter, first, last, 6123, "epsg", 6123, + "WGS 84 / EPSG Arctic zone 3-23"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); + "0733752777778 +lon_0=-153 +x_0=23500000 +y_0=3500000 +da"); add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 3-23\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "central_meridian\",15],PARAMETER[\"scale_factor\",1],PAR"); + "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "752777778],PARAMETER[\"central_meridian\",-153],PARAMETE"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "R[\"false_easting\",23500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275"); + "\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22277, "epsg", 22277, - "Cape / Lo17"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"6123\"]]"); + p = add_epsg_def (filter, first, last, 6124, "epsg", 6124, + "WGS 84 / EPSG Arctic zone 4-12"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); + "6440330555556 +lon_0=-155 +x_0=12500000 +y_0=4500000 +da"); add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"WGS 84 / EPSG Arctic zone 4-12\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6"); add_srs_wkt (p, 8, - "central_meridian\",17],PARAMETER[\"scale_factor\",1],PAR"); + "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "330555556],PARAMETER[\"central_meridian\",-155],PARAMETE"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "R[\"false_easting\",12500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277"); + "\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22279, "epsg", 22279, - "Cape / Lo19"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"6124\"]]"); + p = add_epsg_def (filter, first, last, 6125, "epsg", 6125, + "ETRS89 / EPSG Arctic zone 5-47"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); + "333 +lat_0=72.02500919444445 +lon_0=-5 +x_0=47500000 +y_"); add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"ETRS89 / EPSG Arctic zone 5-47\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "central_meridian\",19],PARAMETER[\"scale_factor\",1],PAR"); + "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "_origin\",72.02500919444445],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279"); + "n\",-5],PARAMETER[\"false_easting\",47500000],PARAMETER["); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22281, "epsg", 22281, - "Cape / Lo21"); + "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6125\"]]"); + p = add_epsg_def (filter, first, last, 6128, "epsg", 6128, + "Grand Cayman National Grid 1959"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); - add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "79,-27.584,-7.862,8.163,6.042,-13.925 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"Grand Cayman National Grid 1959\",GEOGCS[\"GCGD"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1959\",SPHEROID"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379,-27.584,-7.86"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "2,8.163,6.042,-13.925],AUTHORITY[\"EPSG\",\"6723\"]],PRI"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"4723\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, - "central_meridian\",21],PARAMETER[\"scale_factor\",1],PAR"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ".9996],PARAMETER[\"false_easting\",1640419.9475],PARAMET"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281"); + "ER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY["); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22283, "epsg", 22283, - "Cape / Lo23"); + "\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 13, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"6128\"]]"); + p = add_epsg_def (filter, first, last, 6129, "epsg", 6129, + "Sister Islands National Grid 1961"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); - add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "180.304,-0.393,-2.323,2.96,-24.081 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"Sister Islands National Grid 1961\",GEOGCS[\"SI"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "GD61\",DATUM[\"Sister_Islands_Geodetic_Datum_1961\",SPHE"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "TY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,180.304,-0."); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\"6726\"]],P"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "\"]],AUTHORITY[\"EPSG\",\"4726\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, - "central_meridian\",23],PARAMETER[\"scale_factor\",1],PAR"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "ETER[\"central_meridian\",-81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",0.9996],PARAMETER[\"false_easting\",1640419.9475],PARAM"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283"); + "ETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORIT"); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22285, "epsg", 22285, - "Cape / Lo25"); + "Y[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + add_srs_wkt (p, 13, + "hing\",NORTH],AUTHORITY[\"EPSG\",\"6129\"]]"); + p = add_epsg_def (filter, first, last, 6135, "epsg", 6135, + "CIGD11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); - add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "Y[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); - add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); - add_srs_wkt (p, 8, - "central_meridian\",25],PARAMETER[\"scale_factor\",1],PAR"); - add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); - add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); - add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285"); - add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22287, "epsg", 22287, - "Cape / Lo27"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\"]]"); + p = add_epsg_def (filter, first, last, 6141, "epsg", 6141, + "Cayman Islands National Grid 2011 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); + ".33333333333333 +lon_0=80.56666666666666 +x_0=899160 +y_"); add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"Cayman Islands National Grid 2011 (deprecated)\""); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + ",GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "TY[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\""); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "central_meridian\",27],PARAMETER[\"scale_factor\",1],PAR"); + "[\"standard_parallel_1\",19.33333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "standard_parallel_2\",19.7],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "in\",19.33333333333333],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287"); + "0.56666666666666],PARAMETER[\"false_easting\",2950000],P"); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22289, "epsg", 22289, - "Cape / Lo29"); + "ARAMETER[\"false_northing\",1900000],UNIT[\"foot\",0.304"); + add_srs_wkt (p, 13, + "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],A"); + add_srs_wkt (p, 14, + "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6141\"]]"); + p = add_epsg_def (filter, first, last, 6204, "epsg", 6204, + "Macedonian State Coordinate System"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); + "0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m"); add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"Macedonian State Coordinate System\",GEOGCS[\"M"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "GI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "S84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "2\"]],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",29],PARAMETER[\"scale_factor\",1],PAR"); + "METER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289"); + "\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22291, "epsg", 22291, - "Cape / Lo31"); + "\"EPSG\",\"6204\"]]"); + p = add_epsg_def (filter, first, last, 6207, "epsg", 6207, + "Nepal 1981"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); - add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "4=293.17,726.18,245.36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "GEOGCS[\"Nepal 1981\",DATUM[\"Nepal_1981\",SPHEROID[\"Ev"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "erest 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTH"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "ORITY[\"EPSG\",\"7015\"]],TOWGS84[293.17,726.18,245.36,0"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + ",0,0,0],AUTHORITY[\"EPSG\",\"1111\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); - add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); - add_srs_wkt (p, 8, - "central_meridian\",31],PARAMETER[\"scale_factor\",1],PAR"); - add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); - add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); - add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291"); - add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22293, "epsg", 22293, - "Cape / Lo33"); + "EPSG\",\"6207\"]]"); + p = add_epsg_def (filter, first, last, 6210, "epsg", 6210, + "SIRGAS 2000 / UTM zone 23N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); + "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); - add_proj4text (p, 2, - "08,-292,0,0,0,0 +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); + "PROJCS[\"SIRGAS 2000 / UTM zone 23N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, - "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, - "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "central_meridian\",33],PARAMETER[\"scale_factor\",1],PAR"); + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - "\"]]"); - p = add_epsg_def (filter, first, last, 22332, "epsg", 22332, - "Carthage / UTM zone 32N"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "6210\"]]"); + p = add_epsg_def (filter, first, last, 6211, "epsg", 6211, + "SIRGAS 2000 / UTM zone 24N"); add_proj4text (p, 0, - "+proj=utm +zone=32 +datum=carthage +units=m +no_defs"); + "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D"); + "PROJCS[\"SIRGAS 2000 / UTM zone 24N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, - "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, - ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, - "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"22332\"]]"); - p = add_epsg_def (filter, first, last, 22391, "epsg", 22391, - "Carthage / Nord Tunisie"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "6211\"]]"); + p = add_epsg_def (filter, first, last, 6316, "epsg", 6316, + "Macedonia State Coordinate System zone 7"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, - "4 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_d"); + "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, - "efs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D"); + "PROJCS[\"Macedonia State Coordinate System zone 7\",GEOG"); add_srs_wkt (p, 1, - "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); + "CS[\"MGI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, - ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); + "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, - "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); + "],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"103"); add_srs_wkt (p, 4, - "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "1\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36]"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale_f"); + "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "actor\",0.999625544],PARAMETER[\"false_easting\",500000]"); + "actor\",0.9999],PARAMETER[\"false_easting\",7500000],PAR"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"22391\"]]"); - p = add_epsg_def (filter, first, last, 22392, "epsg", 22392, - "Carthage / Sud Tunisie"); + "UTHORITY[\"EPSG\",\"6316\"]]"); + p = add_epsg_def (filter, first, last, 6318, "epsg", 6318, + "NAD83(2011)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996"); - add_proj4text (p, 1, - "25769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +"); - add_proj4text (p, 2, - "no_defs"); + "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA"); + "GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, - "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); + "ference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, - "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM"); + "\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); - add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); - add_srs_wkt (p, 7, - "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33."); - add_srs_wkt (p, 8, - "3],PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale"); - add_srs_wkt (p, 9, - "_factor\",0.999625769],PARAMETER[\"false_easting\",50000"); - add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1"); - add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); - add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"22392\"]]"); - p = add_epsg_def (filter, first, last, 22521, "epsg", 22521, - "Corrego Alegre 1970-72 / UTM zone 21S"); + "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]]"); + p = add_epsg_def (filter, first, last, 6322, "epsg", 6322, + "NAD83(PA11)"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,"); - add_proj4text (p, 1, - "-6,0,0,0,0 +units=m +no_defs"); + "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS["); + "GEOGCS[\"NAD83(PA11)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, - "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); + "ference_System_PA11\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, - "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); + "\",\"1117\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); - add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); - add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); - add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); - add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); - add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); - add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); - add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"22521\"]]"); - p = add_epsg_def (filter, first, last, 22522, "epsg", 22522, - "Corrego Alegre 1970-72 / UTM zone 22S"); + "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6322\"]]"); + p = add_epsg_def (filter, first, last, 6325, "epsg", 6325, + "NAD83(MA11)"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,"); - add_proj4text (p, 1, - "-6,0,0,0,0 +units=m +no_defs"); + "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS["); + "GEOGCS[\"NAD83(MA11)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, - "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); + "ference_System_MA11\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, - "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); + "\",\"1118\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); - add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); - add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); - add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); - add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); - add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); - add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); - add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"22522\"]]"); - p = add_epsg_def (filter, first, last, 22523, "epsg", 22523, - "Corrego Alegre 1970-72 / UTM zone 23S"); + "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6325\"]]"); + p = add_epsg_def (filter, first, last, 6328, "epsg", 6328, + "NAD83(2011) / UTM zone 59N"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,"); - add_proj4text (p, 1, - "-6,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=59 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS["); + "PROJCS[\"NAD83(2011) / UTM zone 59N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); + "R[\"central_meridian\",171],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"22523\"]]"); - p = add_epsg_def (filter, first, last, 22524, "epsg", 22524, - "Corrego Alegre 1970-72 / UTM zone 24S"); + ",AUTHORITY[\"EPSG\",\"6328\"]]"); + p = add_epsg_def (filter, first, last, 6329, "epsg", 6329, + "NAD83(2011) / UTM zone 60N"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,"); - add_proj4text (p, 1, - "-6,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=60 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS["); + "PROJCS[\"NAD83(2011) / UTM zone 60N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); + "R[\"central_meridian\",177],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"22524\"]]"); - p = add_epsg_def (filter, first, last, 22525, "epsg", 22525, - "Corrego Alegre 1970-72 / UTM zone 25S"); + ",AUTHORITY[\"EPSG\",\"6329\"]]"); + p = add_epsg_def (filter, first, last, 6330, "epsg", 6330, + "NAD83(2011) / UTM zone 1N"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,"); - add_proj4text (p, 1, - "-6,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=1 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS["); + "PROJCS[\"NAD83(2011) / UTM zone 1N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); + "[\"central_meridian\",-177],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"22525\"]]"); - p = add_epsg_def (filter, first, last, 22700, "epsg", 22700, - "Deir ez Zor / Levant Zone"); + ",AUTHORITY[\"EPSG\",\"6330\"]]"); + p = add_epsg_def (filter, first, last, 6331, "epsg", 6331, + "NAD83(2011) / UTM zone 2N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); - add_proj4text (p, 1, - "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); - add_proj4text (p, 2, - "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=2 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo"); + "PROJCS[\"NAD83(2011) / UTM zone 2N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\""); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PROJE"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "ude_of_origin\",34.65],PARAMETER[\"central_meridian\",37"); + "[\"central_meridian\",-171],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ".35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"f"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "alse_easting\",300000],PARAMETER[\"false_northing\",3000"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 22770, "epsg", 22770, - "Deir ez Zor / Syria Lambert"); + ",AUTHORITY[\"EPSG\",\"6331\"]]"); + p = add_epsg_def (filter, first, last, 6332, "epsg", 6332, + "NAD83(2011) / UTM zone 3N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); - add_proj4text (p, 1, - "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); - add_proj4text (p, 2, - "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=3 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez "); + "PROJCS[\"NAD83(2011) / UTM zone 3N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\""); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PR"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "titude_of_origin\",34.65],PARAMETER[\"central_meridian\""); + "[\"central_meridian\",-165],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ",37.35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER["); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "\"false_easting\",300000],PARAMETER[\"false_northing\",3"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); - add_srs_wkt (p, 13, - "770\"]]"); - p = add_epsg_def (filter, first, last, 22780, "epsg", 22780, - "Deir ez Zor / Levant Stereographic"); + ",AUTHORITY[\"EPSG\",\"6332\"]]"); + p = add_epsg_def (filter, first, last, 6333, "epsg", 6333, + "NAD83(2011) / UTM zone 4N"); add_proj4text (p, 0, - "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0="); - add_proj4text (p, 1, - "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532"); - add_proj4text (p, 2, - ",238.69,0,0,0,0 +units=m +no_defs"); + "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D"); + "PROJCS[\"NAD83(2011) / UTM zone 4N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "atitude_of_origin\",34.2],PARAMETER[\"central_meridian\""); + "[\"central_meridian\",-159],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - ",39.15],PARAMETER[\"scale_factor\",0.9995341],PARAMETER["); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]"); - p = add_epsg_def (filter, first, last, 22832, "epsg", 22832, - "Douala / UTM zone 32N (deprecated)"); + ",AUTHORITY[\"EPSG\",\"6333\"]]"); + p = add_epsg_def (filter, first, last, 6334, "epsg", 6334, + "NAD83(2011) / UTM zone 5N"); add_proj4text (p, 0, - "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_"); - add_proj4text (p, 1, - "defs"); + "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D"); + "PROJCS[\"NAD83(2011) / UTM zone 5N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\","); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - ",\"4228\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "[\"central_meridian\",-153],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "22832\"]]"); - p = add_epsg_def (filter, first, last, 22991, "epsg", 22991, - "Egypt 1907 / Blue Belt"); + ",AUTHORITY[\"EPSG\",\"6334\"]]"); + p = add_epsg_def (filter, first, last, 6335, "epsg", 6335, + "NAD83(2011) / UTM zone 6N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11"); - add_proj4text (p, 1, - "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); - add_proj4text (p, 2, - "s=m +no_defs"); + "+proj=utm +zone=6 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\","); + "PROJCS[\"NAD83(2011) / UTM zone 6N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "eridian\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "[\"central_meridian\",-147],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "false_easting\",300000],PARAMETER[\"false_northing\",110"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "EPSG\",\"22991\"]]"); - p = add_epsg_def (filter, first, last, 22992, "epsg", 22992, - "Egypt 1907 / Red Belt"); + ",AUTHORITY[\"EPSG\",\"6335\"]]"); + p = add_epsg_def (filter, first, last, 6336, "epsg", 6336, + "NAD83(2011) / UTM zone 7N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); - add_proj4text (p, 1, - "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D"); + "PROJCS[\"NAD83(2011) / UTM zone 7N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "eridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "[\"central_meridian\",-141],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "false_easting\",615000],PARAMETER[\"false_northing\",810"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "EPSG\",\"22992\"]]"); - p = add_epsg_def (filter, first, last, 22993, "epsg", 22993, - "Egypt 1907 / Purple Belt"); + ",AUTHORITY[\"EPSG\",\"6336\"]]"); + p = add_epsg_def (filter, first, last, 6337, "epsg", 6337, + "NAD83(2011) / UTM zone 8N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20"); - add_proj4text (p, 1, - "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\""); + "PROJCS[\"NAD83(2011) / UTM zone 8N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER["); + "[\"central_meridian\",-135],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "\"false_easting\",700000],PARAMETER[\"false_northing\",2"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "\"EPSG\",\"22993\"]]"); - p = add_epsg_def (filter, first, last, 22994, "epsg", 22994, - "Egypt 1907 / Extended Purple Belt"); + ",AUTHORITY[\"EPSG\",\"6337\"]]"); + p = add_epsg_def (filter, first, last, 6338, "epsg", 6338, + "NAD83(2011) / UTM zone 9N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12"); - add_proj4text (p, 1, - "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); - add_proj4text (p, 2, - "s=m +no_defs"); + "+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg"); + "PROJCS[\"NAD83(2011) / UTM zone 9N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\""); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM["); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mer"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER["); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P"); + "[\"central_meridian\",-129],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "thing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"22994\"]]"); - p = add_epsg_def (filter, first, last, 23028, "epsg", 23028, - "ED50 / UTM zone 28N"); + ",AUTHORITY[\"EPSG\",\"6338\"]]"); + p = add_epsg_def (filter, first, last, 6339, "epsg", 6339, + "NAD83(2011) / UTM zone 10N"); add_proj4text (p, 0, - "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 10N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],PAR"); + "R[\"central_meridian\",-123],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23028\"]]"); - p = add_epsg_def (filter, first, last, 23029, "epsg", 23029, - "ED50 / UTM zone 29N"); + "H],AUTHORITY[\"EPSG\",\"6339\"]]"); + p = add_epsg_def (filter, first, last, 6340, "epsg", 6340, + "NAD83(2011) / UTM zone 11N"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 11N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-117],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23029\"]]"); - p = add_epsg_def (filter, first, last, 23030, "epsg", 23030, - "ED50 / UTM zone 30N"); + "H],AUTHORITY[\"EPSG\",\"6340\"]]"); + p = add_epsg_def (filter, first, last, 6341, "epsg", 6341, + "NAD83(2011) / UTM zone 12N"); add_proj4text (p, 0, - "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 12N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-111],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23030\"]]"); - p = add_epsg_def (filter, first, last, 23031, "epsg", 23031, - "ED50 / UTM zone 31N"); + "H],AUTHORITY[\"EPSG\",\"6341\"]]"); + p = add_epsg_def (filter, first, last, 6342, "epsg", 6342, + "NAD83(2011) / UTM zone 13N"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 13N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "R[\"central_meridian\",-105],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "\"EPSG\",\"23031\"]]"); - p = add_epsg_def (filter, first, last, 23032, "epsg", 23032, - "ED50 / UTM zone 32N"); + "H],AUTHORITY[\"EPSG\",\"6342\"]]"); + p = add_epsg_def (filter, first, last, 6343, "epsg", 6343, + "NAD83(2011) / UTM zone 14N"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 14N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM"); + "R[\"central_meridian\",-99],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "\"EPSG\",\"23032\"]]"); - p = add_epsg_def (filter, first, last, 23033, "epsg", 23033, - "ED50 / UTM zone 33N"); + ",AUTHORITY[\"EPSG\",\"6343\"]]"); + p = add_epsg_def (filter, first, last, 6344, "epsg", 6344, + "NAD83(2011) / UTM zone 15N"); add_proj4text (p, 0, - "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 15N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-93],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23033\"]]"); + ",AUTHORITY[\"EPSG\",\"6344\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_29.c b/src/spatialite/src/srsinit/epsg_inlined_29.c index 20d2321..d34c2cf 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_29.c +++ b/src/spatialite/src/srsinit/epsg_inlined_29.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3390 +52,3506 @@ initialize_epsg_29 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 23034, "epsg", 23034, - "ED50 / UTM zone 34N"); + p = add_epsg_def (filter, first, last, 6345, "epsg", 6345, + "NAD83(2011) / UTM zone 16N"); add_proj4text (p, 0, - "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 16N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-87],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23034\"]]"); - p = add_epsg_def (filter, first, last, 23035, "epsg", 23035, - "ED50 / UTM zone 35N"); + ",AUTHORITY[\"EPSG\",\"6345\"]]"); + p = add_epsg_def (filter, first, last, 6346, "epsg", 6346, + "NAD83(2011) / UTM zone 17N"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 17N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23035\"]]"); - p = add_epsg_def (filter, first, last, 23036, "epsg", 23036, - "ED50 / UTM zone 36N"); + ",AUTHORITY[\"EPSG\",\"6346\"]]"); + p = add_epsg_def (filter, first, last, 6347, "epsg", 6347, + "NAD83(2011) / UTM zone 18N"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 18N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23036\"]]"); - p = add_epsg_def (filter, first, last, 23037, "epsg", 23037, - "ED50 / UTM zone 37N"); + ",AUTHORITY[\"EPSG\",\"6347\"]]"); + p = add_epsg_def (filter, first, last, 6348, "epsg", 6348, + "NAD83(2011) / UTM zone 19N"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0"); - add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / UTM zone 19N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARA"); + "R[\"central_meridian\",-69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23037\"]]"); - p = add_epsg_def (filter, first, last, 23038, "epsg", 23038, - "ED50 / UTM zone 38N"); + ",AUTHORITY[\"EPSG\",\"6348\"]]"); + p = add_epsg_def (filter, first, last, 6350, "epsg", 6350, + "NAD83(2011) / Conus Albers"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0"); + "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E"); + "PROJCS[\"NAD83(2011) / Conus Albers\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Coni"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",29.5],"); add_srs_wkt (p, 8, - "l_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARA"); + "PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "tude_of_center\",23],PARAMETER[\"longitude_of_center\",-"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "96],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, - "[\"EPSG\",\"23038\"]]"); - p = add_epsg_def (filter, first, last, 23090, "epsg", 23090, - "ED50 / TM 0 N"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"6350\"]]"); + p = add_epsg_def (filter, first, last, 6351, "epsg", 6351, + "NAD83(2011) / EPSG Arctic zone 5-29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); + "333 +lat_0=72.02500919444445 +lon_0=-163 +x_0=29500000 +"); add_proj4text (p, 2, - "o_defs"); + "y_0=5500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea"); + "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-29\",GEOGCS[\""); add_srs_wkt (p, 1, - "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "SG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "dian\",0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "el_1\",73.66666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "2\",70.33333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "72.02500919444445],PARAMETER[\"central_meridian\",-163],"); add_srs_wkt (p, 11, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + "PARAMETER[\"false_easting\",29500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, - ",\"23090\"]]"); - p = add_epsg_def (filter, first, last, 23095, "epsg", 23095, - "ED50 / TM 5 NE"); + "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + add_srs_wkt (p, 14, + "H],AUTHORITY[\"EPSG\",\"6351\"]]"); + p = add_epsg_def (filter, first, last, 6352, "epsg", 6352, + "NAD83(2011) / EPSG Arctic zone 5-31"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0"); + "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, - "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); + "333 +lat_0=72.02500919444445 +lon_0=-147 +x_0=31500000 +"); add_proj4text (p, 2, - "o_defs"); + "y_0=5500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); + "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-31\",GEOGCS[\""); add_srs_wkt (p, 1, - "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "ridian\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); + "el_1\",73.66666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "[\"false_easting\",500000],PARAMETER[\"false_northing\","); + "2\",70.33333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "72.02500919444445],PARAMETER[\"central_meridian\",-147],"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "PARAMETER[\"false_easting\",31500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, - "G\",\"23095\"]]"); - p = add_epsg_def (filter, first, last, 23239, "epsg", 23239, - "Fahud / UTM zone 39N"); + "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + add_srs_wkt (p, 14, + "H],AUTHORITY[\"EPSG\",\"6352\"]]"); + p = add_epsg_def (filter, first, last, 6353, "epsg", 6353, + "NAD83(2011) / EPSG Arctic zone 6-14"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\""); + "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-14\",GEOGCS[\""); add_srs_wkt (p, 1, - "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "dian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); + "el_1\",70.33333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); + "2\",67],PARAMETER[\"latitude_of_origin\",68.687475555555"); add_srs_wkt (p, 10, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "57],PARAMETER[\"central_meridian\",-165],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "se_easting\",14500000],PARAMETER[\"false_northing\",6500"); add_srs_wkt (p, 12, - "G\",\"23239\"]]"); - p = add_epsg_def (filter, first, last, 23240, "epsg", 23240, - "Fahud / UTM zone 40N"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 13, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 14, + "EPSG\",\"6353\"]]"); + p = add_epsg_def (filter, first, last, 6354, "epsg", 6354, + "NAD83(2011) / EPSG Arctic zone 6-16"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,"); + "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\""); + "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-16\",GEOGCS[\""); add_srs_wkt (p, 1, - "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "dian\",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); + "el_1\",70.33333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); + "2\",67],PARAMETER[\"latitude_of_origin\",68.687475555555"); add_srs_wkt (p, 10, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "57],PARAMETER[\"central_meridian\",-147],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "se_easting\",16500000],PARAMETER[\"false_northing\",6500"); add_srs_wkt (p, 12, - "G\",\"23240\"]]"); - p = add_epsg_def (filter, first, last, 23433, "epsg", 23433, - "Garoua / UTM zone 33N (deprecated)"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 13, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 14, + "EPSG\",\"6354\"]]"); + p = add_epsg_def (filter, first, last, 6355, "epsg", 6355, + "NAD83(2011) / Alabama East"); add_proj4text (p, 0, - "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_"); + "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, - "defs"); + "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G"); + "PROJCS[\"NAD83(2011) / Alabama East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\","); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",\"4234\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",30.5],PARAM"); add_srs_wkt (p, 8, - "\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "ETER[\"central_meridian\",-85.83333333333333],PARAMETER["); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "\"scale_factor\",0.99996],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "\"23433\"]]"); - p = add_epsg_def (filter, first, last, 23700, "epsg", 23700, - "HD72 / EOV"); + ",NORTH],AUTHORITY[\"EPSG\",\"6355\"]]"); + p = add_epsg_def (filter, first, last, 6356, "epsg", 6356, + "NAD83(2011) / Alabama West"); add_proj4text (p, 0, - "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177"); + "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, - "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67"); - add_proj4text (p, 2, - " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs"); + "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_"); + "PROJCS[\"NAD83(2011) / Alabama West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14."); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "[\"EPSG\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercato"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "r\"],PARAMETER[\"latitude_of_center\",47.14439372222222]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET"); add_srs_wkt (p, 8, - ",PARAMETER[\"longitude_of_center\",19.04857177777778],PA"); + "ER[\"central_meridian\",-87.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "RAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle"); + ",0.999933333],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 10, - "\",90],PARAMETER[\"scale_factor\",0.99993],PARAMETER[\"f"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "alse_easting\",650000],PARAMETER[\"false_northing\",2000"); + "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); - add_srs_wkt (p, 13, - "\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"23700"); - add_srs_wkt (p, 14, - "\"]]"); - p = add_epsg_def (filter, first, last, 23830, "epsg", 23830, - "DGN95 / Indonesia TM-3 zone 46.2"); + "ORITY[\"EPSG\",\"6356\"]]"); + p = add_epsg_def (filter, first, last, 6362, "epsg", 6362, + "Mexico ITRF92 / LCC"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +"); + "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 "); add_proj4text (p, 1, - "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); + "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - " +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF92 / LCC\",GEOGCS[\"Mexico ITRF92\","); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "EPSG\",\"4483\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "SP\"],PARAMETER[\"standard_parallel_1\",17.5],PARAMETER["); add_srs_wkt (p, 8, - "METER[\"central_meridian\",94.5],PARAMETER[\"scale_facto"); + "\"standard_parallel_2\",29.5],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, - "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); + "igin\",12],PARAMETER[\"central_meridian\",-102],PARAMETE"); add_srs_wkt (p, 10, - "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); + "R[\"false_easting\",2500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"23830\"]]"); - p = add_epsg_def (filter, first, last, 23831, "epsg", 23831, - "DGN95 / Indonesia TM-3 zone 47.1"); + "RITY[\"EPSG\",\"6362\"]]"); + p = add_epsg_def (filter, first, last, 6365, "epsg", 6365, + "Mexico ITRF2008"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +"); + "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, - "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN"); + "GEOGCS[\"Mexico ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPH"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",\"1120\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); - add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); - add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); - add_srs_wkt (p, 8, - "METER[\"central_meridian\",97.5],PARAMETER[\"scale_facto"); - add_srs_wkt (p, 9, - "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); - add_srs_wkt (p, 10, - "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); - add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"23831\"]]"); - p = add_epsg_def (filter, first, last, 23832, "epsg", 23832, - "DGN95 / Indonesia TM-3 zone 47.2"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6365\"]]"); + p = add_epsg_def (filter, first, last, 6366, "epsg", 6366, + "Mexico ITRF2008 / UTM zone 11N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 11N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",100.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23832\"]]"); - p = add_epsg_def (filter, first, last, 23833, "epsg", 23833, - "DGN95 / Indonesia TM-3 zone 48.1"); + "H],AUTHORITY[\"EPSG\",\"6366\"]]"); + p = add_epsg_def (filter, first, last, 6367, "epsg", 6367, + "Mexico ITRF2008 / UTM zone 12N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 12N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",103.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23833\"]]"); - p = add_epsg_def (filter, first, last, 23834, "epsg", 23834, - "DGN95 / Indonesia TM-3 zone 48.2"); + "H],AUTHORITY[\"EPSG\",\"6367\"]]"); + p = add_epsg_def (filter, first, last, 6368, "epsg", 6368, + "Mexico ITRF2008 / UTM zone 13N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 13N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",106.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-105],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23834\"]]"); - p = add_epsg_def (filter, first, last, 23835, "epsg", 23835, - "DGN95 / Indonesia TM-3 zone 49.1"); + "H],AUTHORITY[\"EPSG\",\"6368\"]]"); + p = add_epsg_def (filter, first, last, 6369, "epsg", 6369, + "Mexico ITRF2008 / UTM zone 14N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 14N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",109.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-99],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23835\"]]"); - p = add_epsg_def (filter, first, last, 23836, "epsg", 23836, - "DGN95 / Indonesia TM-3 zone 49.2"); + "H],AUTHORITY[\"EPSG\",\"6369\"]]"); + p = add_epsg_def (filter, first, last, 6370, "epsg", 6370, + "Mexico ITRF2008 / UTM zone 15N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 15N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",112.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-93],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23836\"]]"); - p = add_epsg_def (filter, first, last, 23837, "epsg", 23837, - "DGN95 / Indonesia TM-3 zone 50.1"); + "H],AUTHORITY[\"EPSG\",\"6370\"]]"); + p = add_epsg_def (filter, first, last, 6371, "epsg", 6371, + "Mexico ITRF2008 / UTM zone 16N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 "); + "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); - add_proj4text (p, 2, - "m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / UTM zone 16N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",115.5],PARAMETER[\"scale_fact"); + "ER[\"central_meridian\",-87],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23837\"]]"); - p = add_epsg_def (filter, first, last, 23838, "epsg", 23838, - "DGN95 / Indonesia TM-3 zone 50.2"); + "H],AUTHORITY[\"EPSG\",\"6371\"]]"); + p = add_epsg_def (filter, first, last, 6372, "epsg", 6372, + "Mexico ITRF2008 / LCC"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 "); + "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 "); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, - "m +no_defs"); + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN"); + "PROJCS[\"Mexico ITRF2008 / LCC\",GEOGCS[\"Mexico ITRF200"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "8\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "ITY[\"EPSG\",\"6365\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "onic_2SP\"],PARAMETER[\"standard_parallel_1\",17.5],PARA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",118.5],PARAMETER[\"scale_fact"); + "METER[\"standard_parallel_2\",29.5],PARAMETER[\"latitude"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "_of_origin\",12],PARAMETER[\"central_meridian\",-102],PA"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "RAMETER[\"false_easting\",2500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23838\"]]"); - p = add_epsg_def (filter, first, last, 23839, "epsg", 23839, - "DGN95 / Indonesia TM-3 zone 51.1"); + "],AUTHORITY[\"EPSG\",\"6372\"]]"); + p = add_epsg_def (filter, first, last, 6381, "epsg", 6381, + "UCS-2000 / Ukraine TM zone 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 7\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",121.5],PARAMETER[\"scale_fact"); + "AMETER[\"central_meridian\",21],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23839\"]]"); - p = add_epsg_def (filter, first, last, 23840, "epsg", 23840, - "DGN95 / Indonesia TM-3 zone 51.2"); + "9001\"]],AUTHORITY[\"EPSG\",\"6381\"]]"); + p = add_epsg_def (filter, first, last, 6382, "epsg", 6382, + "UCS-2000 / Ukraine TM zone 8"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 8\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",124.5],PARAMETER[\"scale_fact"); + "AMETER[\"central_meridian\",24],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23840\"]]"); - p = add_epsg_def (filter, first, last, 23841, "epsg", 23841, - "DGN95 / Indonesia TM-3 zone 52.1"); + "9001\"]],AUTHORITY[\"EPSG\",\"6382\"]]"); + p = add_epsg_def (filter, first, last, 6383, "epsg", 6383, + "UCS-2000 / Ukraine TM zone 9"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 9\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",127.5],PARAMETER[\"scale_fact"); + "AMETER[\"central_meridian\",27],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23841\"]]"); - p = add_epsg_def (filter, first, last, 23842, "epsg", 23842, - "DGN95 / Indonesia TM-3 zone 52.2"); + "9001\"]],AUTHORITY[\"EPSG\",\"6383\"]]"); + p = add_epsg_def (filter, first, last, 6384, "epsg", 6384, + "UCS-2000 / Ukraine TM zone 10"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 10\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",130.5],PARAMETER[\"scale_fact"); + "RAMETER[\"central_meridian\",30],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23842\"]]"); - p = add_epsg_def (filter, first, last, 23843, "epsg", 23843, - "DGN95 / Indonesia TM-3 zone 53.1"); + "9001\"]],AUTHORITY[\"EPSG\",\"6384\"]]"); + p = add_epsg_def (filter, first, last, 6385, "epsg", 6385, + "UCS-2000 / Ukraine TM zone 11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 11\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",133.5],PARAMETER[\"scale_fact"); + "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23843\"]]"); - p = add_epsg_def (filter, first, last, 23844, "epsg", 23844, - "DGN95 / Indonesia TM-3 zone 53.2"); + "9001\"]],AUTHORITY[\"EPSG\",\"6385\"]]"); + p = add_epsg_def (filter, first, last, 6386, "epsg", 6386, + "UCS-2000 / Ukraine TM zone 12"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 12\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",136.5],PARAMETER[\"scale_fact"); + "RAMETER[\"central_meridian\",36],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23844\"]]"); - p = add_epsg_def (filter, first, last, 23845, "epsg", 23845, - "DGN95 / Indonesia TM-3 zone 54.1"); + "9001\"]],AUTHORITY[\"EPSG\",\"6386\"]]"); + p = add_epsg_def (filter, first, last, 6387, "epsg", 6387, + "UCS-2000 / Ukraine TM zone 13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 "); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, - "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit"); add_proj4text (p, 2, - "m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN"); + "PROJCS[\"UCS-2000 / Ukraine TM zone 13\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, - "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); + "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, - "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); + ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); + "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); + "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",139.5],PARAMETER[\"scale_fact"); + "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"23845\"]]"); - p = add_epsg_def (filter, first, last, 23846, "epsg", 23846, - "ID74 / UTM zone 46N"); + "9001\"]],AUTHORITY[\"EPSG\",\"6387\"]]"); + p = add_epsg_def (filter, first, last, 6391, "epsg", 6391, + "Cayman Islands National Grid 2011"); add_proj4text (p, 0, - "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19"); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + ".33333333333333 +lon_0=-80.56666666666666 +x_0=899160 +y"); + add_proj4text (p, 2, + "_0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"Cayman Islands National Grid 2011\",GEOGCS[\"CI"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "GD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\"]],PROJECTIO"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); + "parallel_1\",19.33333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "allel_2\",19.7],PARAMETER[\"latitude_of_origin\",19.3333"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "3333333333],PARAMETER[\"central_meridian\",-80.566666666"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "66666],PARAMETER[\"false_easting\",2950000],PARAMETER[\""); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"23846\"]]"); - p = add_epsg_def (filter, first, last, 23847, "epsg", 23847, - "ID74 / UTM zone 47N"); + "false_northing\",1900000],UNIT[\"foot\",0.3048,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + add_srs_wkt (p, 14, + "ing\",NORTH],AUTHORITY[\"EPSG\",\"6391\"]]"); + p = add_epsg_def (filter, first, last, 6393, "epsg", 6393, + "NAD83(2011) / Alaska Albers"); add_proj4text (p, 0, - "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska Albers\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Coni"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",55],PA"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); + "RAMETER[\"standard_parallel_2\",65],PARAMETER[\"latitude"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "_of_center\",50],PARAMETER[\"longitude_of_center\",-154]"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"23847\"]]"); - p = add_epsg_def (filter, first, last, 23848, "epsg", 23848, - "ID74 / UTM zone 48N"); + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 13, + "393\"]]"); + p = add_epsg_def (filter, first, last, 6394, "epsg", 6394, + "NAD83(2011) / Alaska zone 1"); add_proj4text (p, 0, - "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); + add_proj4text (p, 2, + "_uoff +gamma=323.1301023611111 +ellps=GRS80 +units=m +no"); + add_proj4text (p, 3, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska zone 1\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Hotine_Obli"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "que_Mercator\"],PARAMETER[\"latitude_of_center\",57],PAR"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); + "AMETER[\"longitude_of_center\",-133.6666666666667],PARAM"); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "ETER[\"azimuth\",323.1301023611111],PARAMETER[\"rectifie"); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + "or\",0.9999],PARAMETER[\"false_easting\",5000000],PARAME"); add_srs_wkt (p, 12, - "ORTH],AUTHORITY[\"EPSG\",\"23848\"]]"); - p = add_epsg_def (filter, first, last, 23849, "epsg", 23849, - "ID74 / UTM zone 49N"); + "TER[\"false_northing\",-5000000],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 13, + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + add_srs_wkt (p, 14, + "H],AUTHORITY[\"EPSG\",\"6394\"]]"); + p = add_epsg_def (filter, first, last, 6395, "epsg", 6395, + "NAD83(2011) / Alaska zone 2"); add_proj4text (p, 0, - "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska zone 2\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); + "ER[\"central_meridian\",-142],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "ORTH],AUTHORITY[\"EPSG\",\"23849\"]]"); - p = add_epsg_def (filter, first, last, 23850, "epsg", 23850, - "ID74 / UTM zone 50N"); + "\"EPSG\",\"6395\"]]"); + p = add_epsg_def (filter, first, last, 6396, "epsg", 6396, + "NAD83(2011) / Alaska zone 3"); add_proj4text (p, 0, - "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska zone 3\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); + "ER[\"central_meridian\",-146],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "ORTH],AUTHORITY[\"EPSG\",\"23850\"]]"); - p = add_epsg_def (filter, first, last, 23851, "epsg", 23851, - "ID74 / UTM zone 51N"); + "\"EPSG\",\"6396\"]]"); + p = add_epsg_def (filter, first, last, 6397, "epsg", 6397, + "NAD83(2011) / Alaska zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska zone 4\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); + "ER[\"central_meridian\",-150],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "ORTH],AUTHORITY[\"EPSG\",\"23851\"]]"); - p = add_epsg_def (filter, first, last, 23852, "epsg", 23852, - "ID74 / UTM zone 52N"); + "\"EPSG\",\"6397\"]]"); + p = add_epsg_def (filter, first, last, 6398, "epsg", 6398, + "NAD83(2011) / Alaska zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / Alaska zone 5\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); + "ER[\"central_meridian\",-154],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "ORTH],AUTHORITY[\"EPSG\",\"23852\"]]"); - p = add_epsg_def (filter, first, last, 23853, "epsg", 23853, - "ID74 / UTM zone 53N (deprecated)"); + "\"EPSG\",\"6398\"]]"); + p = add_epsg_def (filter, first, last, 6399, "epsg", 6399, + "NAD83(2011) / Alaska zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs"); + "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7"); + "PROJCS[\"NAD83(2011) / Alaska zone 6\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); + "ER[\"central_meridian\",-158],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]"); - p = add_epsg_def (filter, first, last, 23866, "epsg", 23866, - "DGN95 / UTM zone 46N"); + "\"EPSG\",\"6399\"]]"); + p = add_epsg_def (filter, first, last, 6400, "epsg", 6400, + "NAD83(2011) / Alaska zone 7"); add_proj4text (p, 0, - "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Alaska zone 7\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "l_meridian\",93],PARAMETER[\"scale_factor\",0.9996],PARA"); + "ER[\"central_meridian\",-162],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "[\"EPSG\",\"23866\"]]"); - p = add_epsg_def (filter, first, last, 23867, "epsg", 23867, - "DGN95 / UTM zone 47N"); + "\"EPSG\",\"6400\"]]"); + p = add_epsg_def (filter, first, last, 6401, "epsg", 6401, + "NAD83(2011) / Alaska zone 8"); add_proj4text (p, 0, - "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Alaska zone 8\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); + "ER[\"central_meridian\",-166],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "[\"EPSG\",\"23867\"]]"); - p = add_epsg_def (filter, first, last, 23868, "epsg", 23868, - "DGN95 / UTM zone 48N"); + "\"EPSG\",\"6401\"]]"); + p = add_epsg_def (filter, first, last, 6402, "epsg", 6402, + "NAD83(2011) / Alaska zone 9"); add_proj4text (p, 0, - "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "units=m +no_defs"); + "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Alaska zone 9\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET"); add_srs_wkt (p, 8, - "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); + "ER[\"central_meridian\",-170],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23868\"]]"); - p = add_epsg_def (filter, first, last, 23869, "epsg", 23869, - "DGN95 / UTM zone 49N"); + "\"EPSG\",\"6402\"]]"); + p = add_epsg_def (filter, first, last, 6403, "epsg", 6403, + "NAD83(2011) / Alaska zone 10"); add_proj4text (p, 0, - "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, - "units=m +no_defs"); + "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS"); + add_proj4text (p, 2, + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Alaska zone 10\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",5"); add_srs_wkt (p, 8, - "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); + "3.83333333333334],PARAMETER[\"standard_parallel_2\",51.8"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "3333333333334],PARAMETER[\"latitude_of_origin\",51],PARA"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "METER[\"central_meridian\",-176],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "ng\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23869\"]]"); - p = add_epsg_def (filter, first, last, 23870, "epsg", 23870, - "DGN95 / UTM zone 50N"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 13, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6403\"]]"); + p = add_epsg_def (filter, first, last, 6404, "epsg", 6404, + "NAD83(2011) / Arizona Central"); add_proj4text (p, 0, - "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, - "units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona Central\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA"); add_srs_wkt (p, 8, - "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); + "METER[\"central_meridian\",-111.9166666666667],PARAMETER"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",21"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "3360],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23870\"]]"); - p = add_epsg_def (filter, first, last, 23871, "epsg", 23871, - "DGN95 / UTM zone 51N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6404\"]]"); + p = add_epsg_def (filter, first, last, 6405, "epsg", 6405, + "NAD83(2011) / Arizona Central (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, - "units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona Central (ft)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],"); add_srs_wkt (p, 8, - "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); + "PARAMETER[\"central_meridian\",-111.9166666666667],PARAM"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + ",700000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + ".3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23871\"]]"); - p = add_epsg_def (filter, first, last, 23872, "epsg", 23872, - "DGN95 / UTM zone 52N"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6405\"]]"); + p = add_epsg_def (filter, first, last, 6406, "epsg", 6406, + "NAD83(2011) / Arizona East"); add_proj4text (p, 0, - "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, - "units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET"); add_srs_wkt (p, 8, - "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); + "ER[\"central_meridian\",-110.1666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",21336"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"23872\"]]"); - p = add_epsg_def (filter, first, last, 23877, "epsg", 23877, - "DGN95 / UTM zone 47S"); + "RTH],AUTHORITY[\"EPSG\",\"6406\"]]"); + p = add_epsg_def (filter, first, last, 6407, "epsg", 6407, + "NAD83(2011) / Arizona East (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona East (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PA"); add_srs_wkt (p, 8, - "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); + "RAMETER[\"central_meridian\",-110.1666666666667],PARAMET"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "ER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "700000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0."); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"23877\"]]"); - p = add_epsg_def (filter, first, last, 23878, "epsg", 23878, - "DGN95 / UTM zone 48S"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6407\"]]"); + p = add_epsg_def (filter, first, last, 6408, "epsg", 6408, + "NAD83(2011) / Arizona West"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET"); add_srs_wkt (p, 8, - "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); + "ER[\"central_meridian\",-113.75],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "r\",0.999933333],PARAMETER[\"false_easting\",213360],PAR"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23878\"]]"); - p = add_epsg_def (filter, first, last, 23879, "epsg", 23879, - "DGN95 / UTM zone 49S"); + "UTHORITY[\"EPSG\",\"6408\"]]"); + p = add_epsg_def (filter, first, last, 6409, "epsg", 6409, + "NAD83(2011) / Arizona West (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arizona West (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PA"); add_srs_wkt (p, 8, - "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); + "RAMETER[\"central_meridian\",-113.75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "factor\",0.999933333],PARAMETER[\"false_easting\",700000"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,A"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "UTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23879\"]]"); - p = add_epsg_def (filter, first, last, 23880, "epsg", 23880, - "DGN95 / UTM zone 50S"); + ",NORTH],AUTHORITY[\"EPSG\",\"6409\"]]"); + p = add_epsg_def (filter, first, last, 6410, "epsg", 6410, + "NAD83(2011) / Arkansas North"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); + add_proj4text (p, 2, + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arkansas North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); + "6.23333333333333],PARAMETER[\"standard_parallel_2\",34.9"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "3333333333333],PARAMETER[\"latitude_of_origin\",34.33333"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "333333334],PARAMETER[\"central_meridian\",-92],PARAMETER"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "[\"false_easting\",400000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23880\"]]"); - p = add_epsg_def (filter, first, last, 23881, "epsg", 23881, - "DGN95 / UTM zone 51S"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6410\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 6411, "epsg", 6411, + "NAD83(2011) / Arkansas North (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); + add_proj4text (p, 2, + "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arkansas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); + "el_1\",36.23333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "2\",34.93333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "34.33333333333334],PARAMETER[\"central_meridian\",-92],P"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "ARAMETER[\"false_easting\",1312333.3333],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23881\"]]"); - p = add_epsg_def (filter, first, last, 23882, "epsg", 23882, - "DGN95 / UTM zone 52S"); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 13, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6411\"]]"); + p = add_epsg_def (filter, first, last, 6412, "epsg", 6412, + "NAD83(2011) / Arkansas South"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); + add_proj4text (p, 2, + "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arkansas South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); + "4.76666666666667],PARAMETER[\"standard_parallel_2\",33.3"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "],PARAMETER[\"latitude_of_origin\",32.66666666666666],PA"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "RAMETER[\"central_meridian\",-92],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "ing\",400000],PARAMETER[\"false_northing\",400000],UNIT["); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23882\"]]"); - p = add_epsg_def (filter, first, last, 23883, "epsg", 23883, - "DGN95 / UTM zone 53S"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6412\"]]"); + p = add_epsg_def (filter, first, last, 6413, "epsg", 6413, + "NAD83(2011) / Arkansas South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); + add_proj4text (p, 2, + "999.99998984 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Arkansas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "l_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PAR"); + "el_1\",34.76666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "2\",33.3],PARAMETER[\"latitude_of_origin\",32.6666666666"); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "6666],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "lse_easting\",1312333.3333],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23883\"]]"); - p = add_epsg_def (filter, first, last, 23884, "epsg", 23884, - "DGN95 / UTM zone 54S"); + ",1312333.3333],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 13, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6413\"]]"); + p = add_epsg_def (filter, first, last, 6414, "epsg", 6414, + "NAD83(2011) / California Albers"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,"); + "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\""); + "PROJCS[\"NAD83(2011) / California Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "l_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PAR"); + "4],PARAMETER[\"standard_parallel_2\",40.5],PARAMETER[\"l"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "atitude_of_center\",0],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 10, - "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + ",-120],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "northing\",-4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"23884\"]]"); - p = add_epsg_def (filter, first, last, 23886, "epsg", 23886, - "ID74 / UTM zone 46S (deprecated)"); + ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"6414\"]]"); + p = add_epsg_def (filter, first, last, 6415, "epsg", 6415, + "NAD83(2011) / California zone 1"); add_proj4text (p, 0, - "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); + add_proj4text (p, 2, + "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7"); + "PROJCS[\"NAD83(2011) / California zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); + "\",41.66666666666666],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "40],PARAMETER[\"latitude_of_origin\",39.33333333333334],"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); + "PARAMETER[\"central_meridian\",-122],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); + "asting\",2000000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 12, - "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]"); - p = add_epsg_def (filter, first, last, 23887, "epsg", 23887, - "ID74 / UTM zone 47S"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6415\"]]"); + p = add_epsg_def (filter, first, last, 6416, "epsg", 6416, + "NAD83(2011) / California zone 1 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); + add_proj4text (p, 2, + "00.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 1 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); + "llel_1\",41.66666666666666],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, - ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "l_2\",40],PARAMETER[\"latitude_of_origin\",39.3333333333"); add_srs_wkt (p, 10, - "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); + "3334],PARAMETER[\"central_meridian\",-122],PARAMETER[\"f"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "alse_easting\",6561666.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"23887\"]]"); - p = add_epsg_def (filter, first, last, 23888, "epsg", 23888, - "ID74 / UTM zone 48S"); + ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6416\"]]"); + p = add_epsg_def (filter, first, last, 6417, "epsg", 6417, + "NAD83(2011) / California zone 2"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); + add_proj4text (p, 2, + "_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); + "\",39.83333333333334],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "38.33333333333334],PARAMETER[\"latitude_of_origin\",37.6"); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + "6666666666666],PARAMETER[\"central_meridian\",-122],PARA"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "METER[\"false_easting\",2000000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23888\"]]"); - p = add_epsg_def (filter, first, last, 23889, "epsg", 23889, - "ID74 / UTM zone 49S"); + "ing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + add_srs_wkt (p, 13, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"6417\"]]"); + p = add_epsg_def (filter, first, last, 6418, "epsg", 6418, + "NAD83(2011) / California zone 2 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); + add_proj4text (p, 2, + "01016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 2 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); + "llel_1\",39.83333333333334],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "l_2\",38.33333333333334],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + ",37.66666666666666],PARAMETER[\"central_meridian\",-122]"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + ",PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23889\"]]"); - p = add_epsg_def (filter, first, last, 23890, "epsg", 23890, - "ID74 / UTM zone 50S"); + "lse_northing\",1640416.667],UNIT[\"US survey foot\",0.30"); + add_srs_wkt (p, 13, + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + add_srs_wkt (p, 14, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6418\"]]"); + p = add_epsg_def (filter, first, last, 6419, "epsg", 6419, + "NAD83(2011) / California zone 3"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); + add_proj4text (p, 2, + "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); + "\",38.43333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "37.06666666666667],PARAMETER[\"latitude_of_origin\",36.5"); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + "],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "se_easting\",2000000],PARAMETER[\"false_northing\",50000"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23890\"]]"); - p = add_epsg_def (filter, first, last, 23891, "epsg", 23891, - "ID74 / UTM zone 51S"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6419\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 6420, "epsg", 6420, + "NAD83(2011) / California zone 3 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); + add_proj4text (p, 2, + "500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 3 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); + "llel_1\",38.43333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "l_2\",37.06666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + ",36.5],PARAMETER[\"central_meridian\",-120.5],PARAMETER["); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "\"false_easting\",6561666.667],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23891\"]]"); - p = add_epsg_def (filter, first, last, 23892, "epsg", 23892, - "ID74 / UTM zone 52S"); + "g\",1640416.667],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 13, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6420\"]]"); + p = add_epsg_def (filter, first, last, 6421, "epsg", 6421, + "NAD83(2011) / California zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +uni"); + add_proj4text (p, 2, + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); + "\",37.25],PARAMETER[\"standard_parallel_2\",36],PARAMETE"); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "R[\"latitude_of_origin\",35.33333333333334],PARAMETER[\""); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + "central_meridian\",-119],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "0000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23892\"]]"); - p = add_epsg_def (filter, first, last, 23893, "epsg", 23893, - "ID74 / UTM zone 53S"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6421\"]]"); + p = add_epsg_def (filter, first, last, 6422, "epsg", 6422, + "NAD83(2011) / California zone 4 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); + add_proj4text (p, 2, + "1 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 4 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",135],PARAMETER[\"scale_factor"); + "llel_1\",37.25],PARAMETER[\"standard_parallel_2\",36],PA"); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "RAMETER[\"latitude_of_origin\",35.33333333333334],PARAME"); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + "TER[\"central_meridian\",-119],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "\",6561666.667],PARAMETER[\"false_northing\",1640416.667"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23893\"]]"); - p = add_epsg_def (filter, first, last, 23894, "epsg", 23894, - "ID74 / UTM zone 54S"); + "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 14, + "HORITY[\"EPSG\",\"6422\"]]"); + p = add_epsg_def (filter, first, last, 6423, "epsg", 6423, + "NAD83(2011) / California zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554"); + "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, - " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); + add_proj4text (p, 2, + "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I"); + "PROJCS[\"NAD83(2011) / California zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",141],PARAMETER[\"scale_factor"); + "\",35.46666666666667],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); + "34.03333333333333],PARAMETER[\"latitude_of_origin\",33.5"); add_srs_wkt (p, 10, - "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); + "],PARAMETER[\"central_meridian\",-118],PARAMETER[\"false"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "_easting\",2000000],PARAMETER[\"false_northing\",500000]"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"23894\"]]"); - p = add_epsg_def (filter, first, last, 23946, "epsg", 23946, - "Indian 1954 / UTM zone 46N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 13, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6423\"]]"); + p = add_epsg_def (filter, first, last, 6424, "epsg", 6424, + "NAD83(2011) / California zone 5 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, - "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); + add_proj4text (p, 2, + "0000.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19"); + "PROJCS[\"NAD83(2011) / California zone 5 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); + "llel_1\",35.46666666666667],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "l_2\",34.03333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + ",33.5],PARAMETER[\"central_meridian\",-118],PARAMETER[\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "false_easting\",6561666.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]"); - p = add_epsg_def (filter, first, last, 23947, "epsg", 23947, - "Indian 1954 / UTM zone 47N"); + ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6424\"]]"); + p = add_epsg_def (filter, first, last, 6425, "epsg", 6425, + "NAD83(2011) / California zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, - "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); + add_proj4text (p, 2, + " +y_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19"); + "PROJCS[\"NAD83(2011) / California zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); + "\",33.88333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "32.78333333333333],PARAMETER[\"latitude_of_origin\",32.1"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "6666666666666],PARAMETER[\"central_meridian\",-116.25],P"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]"); - p = add_epsg_def (filter, first, last, 23948, "epsg", 23948, - "Indian 1954 / UTM zone 48N"); + "rthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 13, + "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 14, + "PSG\",\"6425\"]]"); + p = add_epsg_def (filter, first, last, 6426, "epsg", 6426, + "NAD83(2011) / California zone 6 (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, - "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); + add_proj4text (p, 2, + ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-f"); + add_proj4text (p, 3, + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19"); + "PROJCS[\"NAD83(2011) / California zone 6 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); + "llel_1\",33.88333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "l_2\",32.78333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + ",32.16666666666666],PARAMETER[\"central_meridian\",-116."); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "25],PARAMETER[\"false_easting\",6561666.667],PARAMETER[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]"); - p = add_epsg_def (filter, first, last, 24047, "epsg", 24047, - "Indian 1975 / UTM zone 47N"); + "false_northing\",1640416.667],UNIT[\"US survey foot\",0."); + add_srs_wkt (p, 13, + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 14, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6426\"]]"); + p = add_epsg_def (filter, first, last, 6427, "epsg", 6427, + "NAD83(2011) / Colorado Central"); add_proj4text (p, 0, - "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, - "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); + "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); + add_proj4text (p, 2, + "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19"); + "PROJCS[\"NAD83(2011) / Colorado Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); + ",39.75],PARAMETER[\"standard_parallel_2\",38.45],PARAMET"); add_srs_wkt (p, 9, - "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); + "ER[\"latitude_of_origin\",37.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "central_meridian\",-105.5],PARAMETER[\"false_easting\",9"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "14401.8289],PARAMETER[\"false_northing\",304800.6096],UN"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]"); - p = add_epsg_def (filter, first, last, 24048, "epsg", 24048, - "Indian 1975 / UTM zone 48N"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6427\"]]"); + p = add_epsg_def (filter, first, last, 6428, "epsg", 6428, + "NAD83(2011) / Colorado Central (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, - "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); + "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); + add_proj4text (p, 2, + "96012192 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19"); + "PROJCS[\"NAD83(2011) / Colorado Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); + "lel_1\",39.75],PARAMETER[\"standard_parallel_2\",38.45],"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "PARAMETER[\"latitude_of_origin\",37.83333333333334],PARA"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "METER[\"central_meridian\",-105.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "ting\",3000000],PARAMETER[\"false_northing\",1000000],UN"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]"); - p = add_epsg_def (filter, first, last, 24100, "epsg", 24100, - "Jamaica 1875 / Jamaica (Old Grid)"); + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 14, + "ITY[\"EPSG\",\"6428\"]]"); + p = add_epsg_def (filter, first, last, 6429, "epsg", 6429, + "NAD83(2011) / Colorado North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167"); + "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, - "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356"); + "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, - "514.966204134 +to_meter=0.3047972654 +no_defs"); + "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja"); + "PROJCS[\"NAD83(2011) / Colorado North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "80\",6378249.144808011,293.4663076556303,AUTHORITY[\"EPS"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_C"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMET"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",-77],PARAMETER[\"scale_factor\","); + "0.78333333333333],PARAMETER[\"standard_parallel_2\",39.7"); add_srs_wkt (p, 9, - "1],PARAMETER[\"false_easting\",550000],PARAMETER[\"false"); + "1666666666667],PARAMETER[\"latitude_of_origin\",39.33333"); add_srs_wkt (p, 10, - "_northing\",400000],UNIT[\"Clarke's foot\",0.3047972654,"); + "333333334],PARAMETER[\"central_meridian\",-105.5],PARAME"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXI"); + "TER[\"false_easting\",914401.8289],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]"); - p = add_epsg_def (filter, first, last, 24200, "epsg", 24200, - "JAD69 / Jamaica National Grid"); + "thing\",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 14, + "[\"EPSG\",\"6429\"]]"); + p = add_epsg_def (filter, first, last, 6430, "epsg", 6430, + "NAD83(2011) / Colorado North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250"); + "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, - "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,"); + "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, - "0,0 +units=m +no_defs"); + "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-"); + add_proj4text (p, 3, + "ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\""); + "PROJCS[\"NAD83(2011) / Colorado North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "18],PARAMETER[\"central_meridian\",-77],PARAMETER[\"scal"); + "el_1\",40.78333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); + "2\",39.71666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "TER[\"false_northing\",150000],UNIT[\"metre\",1,AUTHORIT"); + "39.33333333333334],PARAMETER[\"central_meridian\",-105.5"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "],PARAMETER[\"false_easting\",3000000],PARAMETER[\"false"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]"); - p = add_epsg_def (filter, first, last, 24305, "epsg", 24305, - "Kalianpur 1937 / UTM zone 45N"); + "_northing\",1000000],UNIT[\"US survey foot\",0.304800609"); + add_srs_wkt (p, 13, + "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 14, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6430\"]]"); + p = add_epsg_def (filter, first, last, 6431, "epsg", 6431, + "NAD83(2011) / Colorado South"); add_proj4text (p, 0, - "+proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, - "towgs84=282,726,254,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); + add_proj4text (p, 2, + "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Colorado South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); + "8.43333333333333],PARAMETER[\"standard_parallel_2\",37.2"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); + "3333333333333],PARAMETER[\"latitude_of_origin\",36.66666"); add_srs_wkt (p, 10, - "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "666666666],PARAMETER[\"central_meridian\",-105.5],PARAME"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "TER[\"false_easting\",914401.8289],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]"); - p = add_epsg_def (filter, first, last, 24306, "epsg", 24306, - "Kalianpur 1937 / UTM zone 46N"); + "thing\",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 14, + "[\"EPSG\",\"6431\"]]"); + p = add_epsg_def (filter, first, last, 6432, "epsg", 6432, + "NAD83(2011) / Colorado South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, - "towgs84=282,726,254,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); + add_proj4text (p, 2, + "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-"); + add_proj4text (p, 3, + "ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Colorado South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); + "el_1\",38.43333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); + "2\",37.23333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "36.66666666666666],PARAMETER[\"central_meridian\",-105.5"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + "],PARAMETER[\"false_easting\",3000000],PARAMETER[\"false"); add_srs_wkt (p, 12, - "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]"); - p = add_epsg_def (filter, first, last, 24311, "epsg", 24311, - "Kalianpur 1962 / UTM zone 41N"); + "_northing\",1000000],UNIT[\"US survey foot\",0.304800609"); + add_srs_wkt (p, 13, + "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 14, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6432\"]]"); + p = add_epsg_def (filter, first, last, 6433, "epsg", 6433, + "NAD83(2011) / Connecticut"); add_proj4text (p, 0, - "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +"); + "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, - "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); + ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); + add_proj4text (p, 2, + "00.3048 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Connecticut\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],"); + "86666666666667],PARAMETER[\"standard_parallel_2\",41.2],"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "PARAMETER[\"latitude_of_origin\",40.83333333333334],PARA"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "METER[\"central_meridian\",-72.75],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "ting\",304800.6096],PARAMETER[\"false_northing\",152400."); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311"); + "3048],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24312, "epsg", 24312, - "Kalianpur 1962 / UTM zone 42N"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"643"); + add_srs_wkt (p, 14, + "3\"]]"); + p = add_epsg_def (filter, first, last, 6434, "epsg", 6434, + "NAD83(2011) / Connecticut (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +"); + "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, - "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); + ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); + add_proj4text (p, 2, + "0=152400.3048006096 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Connecticut (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); + "1\",41.86666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + ",41.2],PARAMETER[\"latitude_of_origin\",40.8333333333333"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "4],PARAMETER[\"central_meridian\",-72.75],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "lse_easting\",1000000],PARAMETER[\"false_northing\",5000"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312"); + "00],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24313, "epsg", 24313, - "Kalianpur 1962 / UTM zone 43N"); + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"6434\"]]"); + p = add_epsg_def (filter, first, last, 6435, "epsg", 6435, + "NAD83(2011) / Delaware"); add_proj4text (p, 0, - "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +"); + "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, - "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); + "995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Delaware\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, - "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); + ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, - "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "tor\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\""); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); + "central_meridian\",-75.41666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "_factor\",0.999995],PARAMETER[\"false_easting\",200000],"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24342, "epsg", 24342, - "Kalianpur 1975 / UTM zone 42N"); + "],AUTHORITY[\"EPSG\",\"6435\"]]"); + p = add_epsg_def (filter, first, last, 6436, "epsg", 6436, + "NAD83(2011) / Delaware (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us"); + add_proj4text (p, 2, + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Delaware (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARA"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); + "METER[\"central_meridian\",-75.41666666666667],PARAMETER"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "[\"scale_factor\",0.999995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342"); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24343, "epsg", 24343, - "Kalianpur 1975 / UTM zone 43N"); + "\",\"6436\"]]"); + p = add_epsg_def (filter, first, last, 6437, "epsg", 6437, + "NAD83(2011) / Florida East"); add_proj4text (p, 0, - "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",24.33333333"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); + "333333],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24344, "epsg", 24344, - "Kalianpur 1975 / UTM zone 44N"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6437\"]]"); + p = add_epsg_def (filter, first, last, 6438, "epsg", 6438, + "NAD83(2011) / Florida East (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); + "3333333333333],PARAMETER[\"central_meridian\",-81],PARAM"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "ting\",656166.667],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24345, "epsg", 24345, - "Kalianpur 1975 / UTM zone 45N"); + "[\"EPSG\",\"6438\"]]"); + p = add_epsg_def (filter, first, last, 6439, "epsg", 6439, + "NAD83(2011) / Florida GDL Albers"); add_proj4text (p, 0, - "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida GDL Albers\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Alber"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "s_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\","); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); + "24],PARAMETER[\"standard_parallel_2\",31.5],PARAMETER[\""); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "latitude_of_center\",24],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "\",-84],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24346, "epsg", 24346, - "Kalianpur 1975 / UTM zone 46N"); + "\"EPSG\",\"6439\"]]"); + p = add_epsg_def (filter, first, last, 6440, "epsg", 6440, + "NAD83(2011) / Florida North"); add_proj4text (p, 0, - "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida North\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); + ".75],PARAMETER[\"standard_parallel_2\",29.58333333333333"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "],PARAMETER[\"latitude_of_origin\",29],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "al_meridian\",-84.5],PARAMETER[\"false_easting\",600000]"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24347, "epsg", 24347, - "Kalianpur 1975 / UTM zone 47N"); + "H],AUTHORITY[\"EPSG\",\"6440\"]]"); + p = add_epsg_def (filter, first, last, 6441, "epsg", 6441, + "NAD83(2011) / Florida North (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +"); + "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, - "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us"); + add_proj4text (p, 2, + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); + "_1\",30.75],PARAMETER[\"standard_parallel_2\",29.5833333"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); + "3333333],PARAMETER[\"latitude_of_origin\",29],PARAMETER["); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "\"central_meridian\",-84.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); + "1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, - "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347"); + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 24370, "epsg", 24370, - "Kalianpur 1880 / India zone 0"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6441\"]]"); + p = add_epsg_def (filter, first, last, 6442, "epsg", 6442, + "NAD83(2011) / Florida West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, - "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377"); - add_proj4text (p, 2, - "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307"); - add_proj4text (p, 3, - "444408 +no_defs"); + "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "1830 Definition)\",6377299.36559538,300.8017255433612,AU"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",24.33333333"); add_srs_wkt (p, 8, - "\",39.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); + "333333],PARAMETER[\"central_meridian\",-82],PARAMETER[\""); add_srs_wkt (p, 9, - "scale_factor\",0.99846154],PARAMETER[\"false_easting\",2"); + "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "355500],PARAMETER[\"false_northing\",2590000],UNIT[\"Ind"); + "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24370\"]]"); - p = add_epsg_def (filter, first, last, 24371, "epsg", 24371, - "Kalianpur 1880 / India zone I"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6442\"]]"); + p = add_epsg_def (filter, first, last, 6443, "epsg", 6443, + "NAD83(2011) / Florida West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, - "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637"); + "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units"); add_proj4text (p, 2, - "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530"); - add_proj4text (p, 3, - "7444408 +no_defs"); + "=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Florida West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "1830 Definition)\",6377299.36559538,300.8017255433612,AU"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3"); add_srs_wkt (p, 8, - "\",32.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); + "3333333333333],PARAMETER[\"central_meridian\",-82],PARAM"); add_srs_wkt (p, 9, - "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3"); + "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind"); + "ting\",656166.667],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, - "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24371\"]]"); - p = add_epsg_def (filter, first, last, 24372, "epsg", 24372, - "Kalianpur 1880 / India zone IIa"); + "[\"EPSG\",\"6443\"]]"); + p = add_epsg_def (filter, first, last, 6444, "epsg", 6444, + "NAD83(2011) / Georgia East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, - "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); - add_proj4text (p, 2, - ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); - add_proj4text (p, 3, - "408 +no_defs"); + "9 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Georgia East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - " (1830 Definition)\",6377299.36559538,300.8017255433612,"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET"); add_srs_wkt (p, 8, - "n\",26],PARAMETER[\"central_meridian\",74],PARAMETER[\"s"); + "ER[\"central_meridian\",-82.16666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24372\"]]"); - p = add_epsg_def (filter, first, last, 24373, "epsg", 24373, - "Kalianpur 1880 / India zone III"); + "RTH],AUTHORITY[\"EPSG\",\"6444\"]]"); + p = add_epsg_def (filter, first, last, 6445, "epsg", 6445, + "NAD83(2011) / Georgia East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, - "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); + "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, - ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); - add_proj4text (p, 3, - "408 +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone III\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Georgia East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - " (1830 Definition)\",6377299.36559538,300.8017255433612,"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",30],"); add_srs_wkt (p, 8, - "n\",19],PARAMETER[\"central_meridian\",80],PARAMETER[\"s"); + "PARAMETER[\"central_meridian\",-82.16666666666667],PARAM"); add_srs_wkt (p, 9, - "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); + "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); + ",656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, - "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24373\"]]"); - p = add_epsg_def (filter, first, last, 24374, "epsg", 24374, - "Kalianpur 1880 / India zone IV"); + "G\",\"6445\"]]"); + p = add_epsg_def (filter, first, last, 6446, "epsg", 6446, + "NAD83(2011) / Georgia West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, - "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); - add_proj4text (p, 2, - ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); - add_proj4text (p, 3, - "408 +no_defs"); + "9 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone IV\",GEOGCS[\"Kalia"); + "PROJCS[\"NAD83(2011) / Georgia West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "npur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest "); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "(1830 Definition)\",6377299.36559538,300.8017255433612,A"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET"); add_srs_wkt (p, 8, - "n\",12],PARAMETER[\"central_meridian\",80],PARAMETER[\"s"); + "ER[\"central_meridian\",-84.16666666666667],PARAMETER[\""); add_srs_wkt (p, 9, - "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",70000"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24374\"]]"); - p = add_epsg_def (filter, first, last, 24375, "epsg", 24375, - "Kalianpur 1937 / India zone IIb"); + "RTH],AUTHORITY[\"EPSG\",\"6446\"]]"); + p = add_epsg_def (filter, first, last, 6447, "epsg", 6447, + "NAD83(2011) / Georgia West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, - "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075"); + "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, - ".413140239 +towgs84=282,726,254,0,0,0,0 +units=m +no_def"); - add_proj4text (p, 3, - "s"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Georgia West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHOR"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",30],"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",26],PARAMETER[\"central_meridian"); + "PARAMETER[\"central_meridian\",-84.16666666666667],PARAM"); add_srs_wkt (p, 9, - "\",90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER["); + "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "\"false_easting\",2743185.69],PARAMETER[\"false_northing"); + ",2296583.333],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 11, - "\",914395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"24375\"]]"); - p = add_epsg_def (filter, first, last, 24376, "epsg", 24376, - "Kalianpur 1962 / India zone I"); + "SG\",\"6447\"]]"); + p = add_epsg_def (filter, first, last, 6448, "epsg", 6448, + "NAD83(2011) / Idaho Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, - "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561"); + "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m "); add_proj4text (p, 2, - "00.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_d"); - add_proj4text (p, 3, - "efs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Idaho Central\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",41.66666666"); add_srs_wkt (p, 8, - "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); + "666666],PARAMETER[\"central_meridian\",-114],PARAMETER[\""); add_srs_wkt (p, 9, - "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "scale_factor\",0.999947368],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); - add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24376\"]]"); - p = add_epsg_def (filter, first, last, 24377, "epsg", 24377, - "Kalianpur 1962 / India zone IIa"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6448\"]]"); + p = add_epsg_def (filter, first, last, 6449, "epsg", 6449, + "NAD83(2011) / Idaho Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, - "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2"); + "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, - "30165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); + "0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Idaho Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "45\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.6"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); + "6666666666666],PARAMETER[\"central_meridian\",-114],PARA"); add_srs_wkt (p, 9, - "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "METER[\"scale_factor\",0.999947368],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); + "sting\",1640416.667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24377\"]]"); - p = add_epsg_def (filter, first, last, 24378, "epsg", 24378, - "Kalianpur 1975 / India zone I"); + "TY[\"EPSG\",\"6449\"]]"); + p = add_epsg_def (filter, first, last, 6450, "epsg", 6450, + "NAD83(2011) / Idaho East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, - "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560"); + "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d"); - add_proj4text (p, 3, - "efs"); + "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian"); + "PROJCS[\"NAD83(2011) / Idaho East\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); + "tor\"],PARAMETER[\"latitude_of_origin\",41.6666666666666"); add_srs_wkt (p, 8, - "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); + "6],PARAMETER[\"central_meridian\",-112.1666666666667],PA"); add_srs_wkt (p, 9, - "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "RAMETER[\"scale_factor\",0.999947368],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); + "easting\",200000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); - add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24378\"]]"); - p = add_epsg_def (filter, first, last, 24379, "epsg", 24379, - "Kalianpur 1975 / India zone IIa"); + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6450\"]]"); + p = add_epsg_def (filter, first, last, 6451, "epsg", 6451, + "NAD83(2011) / Idaho East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, - "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, - "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Idaho East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.666"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); + "66666666666],PARAMETER[\"central_meridian\",-112.1666666"); add_srs_wkt (p, 9, - "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "666667],PARAMETER[\"scale_factor\",0.999947368],PARAMETE"); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); + "R[\"false_easting\",656166.667],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, - "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24379\"]]"); - p = add_epsg_def (filter, first, last, 24380, "epsg", 24380, - "Kalianpur 1975 / India zone IIb"); + "TH],AUTHORITY[\"EPSG\",\"6451\"]]"); + p = add_epsg_def (filter, first, last, 6452, "epsg", 6452, + "NAD83(2011) / Idaho West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, - "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, - "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Idaho West\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); + "tor\"],PARAMETER[\"latitude_of_origin\",41.6666666666666"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); + "6],PARAMETER[\"central_meridian\",-115.75],PARAMETER[\"s"); add_srs_wkt (p, 9, - "dian\",90],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "cale_factor\",0.999933333],PARAMETER[\"false_easting\",8"); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); - add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24380\"]]"); - p = add_epsg_def (filter, first, last, 24381, "epsg", 24381, - "Kalianpur 1975 / India zone III"); + ",NORTH],AUTHORITY[\"EPSG\",\"6452\"]]"); + p = add_epsg_def (filter, first, last, 6453, "epsg", 6453, + "NAD83(2011) / Idaho West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, - "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, - "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "nits=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / India zone III\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Idaho West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.666"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",19],PARAMETER[\"central_meri"); + "66666666666],PARAMETER[\"central_meridian\",-115.75],PAR"); add_srs_wkt (p, 9, - "dian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAME"); + "AMETER[\"scale_factor\",0.999933333],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); + "asting\",2624666.667],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"24381\"]]"); - p = add_epsg_def (filter, first, last, 24382, "epsg", 24382, - "Kalianpur 1880 / India zone IIb"); + "ITY[\"EPSG\",\"6453\"]]"); + p = add_epsg_def (filter, first, last, 6454, "epsg", 6454, + "NAD83(2011) / Illinois East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, - "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); + "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); - add_proj4text (p, 3, - "408 +no_defs"); + "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali"); + "PROJCS[\"NAD83(2011) / Illinois East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - " (1830 Definition)\",6377299.36559538,300.8017255433612,"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666"); add_srs_wkt (p, 8, - "n\",26],PARAMETER[\"central_meridian\",90],PARAMETER[\"s"); + "666666],PARAMETER[\"central_meridian\",-88.3333333333333"); add_srs_wkt (p, 9, - "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); + "3],PARAMETER[\"scale_factor\",0.999975],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); + "e_easting\",300000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 12, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"24382\"]]"); - p = add_epsg_def (filter, first, last, 24383, "epsg", 24383, - "Kalianpur 1975 / India zone IV"); + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6454\"]]"); + p = add_epsg_def (filter, first, last, 6455, "epsg", 6455, + "NAD83(2011) / Illinois East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, - "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, - "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); + "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kalianpur 1975 / India zone IV\",GEOGCS[\"Kalia"); + "PROJCS[\"NAD83(2011) / Illinois East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "npur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest "); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "1830 (1975 Definition)\",6377299.151,300.8017255,AUTHORI"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "TY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTH"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"414"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "6\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAME"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",12],PARAMETER[\"central_merid"); + "6666666666666],PARAMETER[\"central_meridian\",-88.333333"); add_srs_wkt (p, 9, - "ian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAMET"); + "33333333],PARAMETER[\"scale_factor\",0.999975],PARAMETER"); add_srs_wkt (p, 10, - "ER[\"false_easting\",2743195.5],PARAMETER[\"false_northi"); + "[\"false_easting\",984250.0000000002],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "ng\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, - "THORITY[\"EPSG\",\"24383\"]]"); - p = add_epsg_def (filter, first, last, 24500, "epsg", 24500, - "Kertau 1968 / Singapore Grid"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6455\"]]"); + p = add_epsg_def (filter, first, last, 6456, "epsg", 6456, + "NAD83(2011) / Illinois West"); add_proj4text (p, 0, - "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, - "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038"); + "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, - "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau "); + "PROJCS[\"NAD83(2011) / Illinois West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\""); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\""); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cass"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",1.287646"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666"); add_srs_wkt (p, 8, - "666666667],PARAMETER[\"central_meridian\",103.8530022222"); + "666666],PARAMETER[\"central_meridian\",-90.1666666666666"); add_srs_wkt (p, 9, - "222],PARAMETER[\"false_easting\",30000],PARAMETER[\"fals"); + "7],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\"f"); add_srs_wkt (p, 10, - "e_northing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "alse_easting\",700000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"24500\"]]"); - p = add_epsg_def (filter, first, last, 24547, "epsg", 24547, - "Kertau 1968 / UTM zone 47N"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6456\"]]"); + p = add_epsg_def (filter, first, last, 6457, "epsg", 6457, + "NAD83(2011) / Illinois West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, - "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); + "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); + add_proj4text (p, 2, + "ps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19"); + "PROJCS[\"NAD83(2011) / Illinois West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto"); + "6666666666666],PARAMETER[\"central_meridian\",-90.166666"); add_srs_wkt (p, 9, - "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + "66666667],PARAMETER[\"scale_factor\",0.999941177],PARAME"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "TER[\"false_easting\",2296583.333300001],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"24547\"]]"); - p = add_epsg_def (filter, first, last, 24548, "epsg", 24548, - "Kertau 1968 / UTM zone 48N"); + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 13, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6457\"]]"); + p = add_epsg_def (filter, first, last, 6458, "epsg", 6458, + "NAD83(2011) / Indiana East"); add_proj4text (p, 0, - "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +"); + "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, - "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); + "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +"); + add_proj4text (p, 2, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19"); + "PROJCS[\"NAD83(2011) / Indiana East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAM"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact"); + "ETER[\"central_meridian\",-85.66666666666667],PARAMETER["); add_srs_wkt (p, 9, - "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); + "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + ",100000],PARAMETER[\"false_northing\",250000],UNIT[\"met"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"24548\"]]"); - p = add_epsg_def (filter, first, last, 24571, "epsg", 24571, - "Kertau / R.S.O. Malaya (ch) (deprecated)"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6458\"]]"); + p = add_epsg_def (filter, first, last, 6459, "epsg", 6459, + "NAD83(2011) / Indiana East (ftUS)"); add_proj4text (p, 0, - "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); + "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, - "0.99984 +x_0=804671.2997750348 +y_0=0 +gamma=323.1301023"); + "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, - "611111 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,"); - add_proj4text (p, 3, - "851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs"); + "ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG"); + "PROJCS[\"NAD83(2011) / Indiana East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJE"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5"); add_srs_wkt (p, 8, - "of_center\",4],PARAMETER[\"longitude_of_center\",102.25]"); + "],PARAMETER[\"central_meridian\",-85.66666666666667],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"azimuth\",323.0257905],PARAMETER[\"rectifie"); + "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact"); + "asting\",328083.333],PARAMETER[\"false_northing\",820208"); add_srs_wkt (p, 11, - "or\",0.99984],PARAMETER[\"false_easting\",40000],PARAMET"); + ".3330000002],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, - "ER[\"false_northing\",0],UNIT[\"British chain (Benoit 18"); + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, - "95 B)\",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],"); - add_srs_wkt (p, 14, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); - add_srs_wkt (p, 15, - "Y[\"EPSG\",\"24571\"]]"); - p = add_epsg_def (filter, first, last, 24600, "epsg", 24600, - "KOC Lambert"); + ",NORTH],AUTHORITY[\"EPSG\",\"6459\"]]"); + p = add_epsg_def (filter, first, last, 6460, "epsg", 6460, + "NAD83(2011) / Indiana West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); + "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, - "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); + "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +"); add_proj4text (p, 2, - "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs"); + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil"); + "PROJCS[\"NAD83(2011) / Indiana West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200."); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conforma"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAM"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto"); + "ETER[\"central_meridian\",-87.08333333333333],PARAMETER["); add_srs_wkt (p, 9, - "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P"); + "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU"); + ",900000],PARAMETER[\"false_northing\",250000],UNIT[\"met"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]"); - p = add_epsg_def (filter, first, last, 24718, "epsg", 24718, - "La Canoa / UTM zone 18N"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6460\"]]"); + p = add_epsg_def (filter, first, last, 6461, "epsg", 6461, + "NAD83(2011) / Indiana West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35"); + "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, - "7.9,0,0,0,0 +units=m +no_defs"); + "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); + add_proj4text (p, 2, + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D"); + "PROJCS[\"NAD83(2011) / Indiana West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5"); add_srs_wkt (p, 8, - "entral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996"); + "],PARAMETER[\"central_meridian\",-87.08333333333333],PAR"); add_srs_wkt (p, 9, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "asting\",2952750],PARAMETER[\"false_northing\",820208.33"); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "30000002],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"24718\"]]"); - p = add_epsg_def (filter, first, last, 24719, "epsg", 24719, - "La Canoa / UTM zone 19N"); + "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"6461\"]]"); + p = add_epsg_def (filter, first, last, 6462, "epsg", 6462, + "NAD83(2011) / Iowa North"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35"); + "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, - "7.9,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); + add_proj4text (p, 2, + "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D"); + "PROJCS[\"NAD83(2011) / Iowa North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.2666"); add_srs_wkt (p, 8, - "entral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996"); + "6666666667],PARAMETER[\"standard_parallel_2\",42.0666666"); add_srs_wkt (p, 9, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "6666667],PARAMETER[\"latitude_of_origin\",41.5],PARAMETE"); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "R[\"central_meridian\",-93.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + ",1500000],PARAMETER[\"false_northing\",1000000],UNIT[\"m"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"24719\"]]"); - p = add_epsg_def (filter, first, last, 24720, "epsg", 24720, - "La Canoa / UTM zone 20N"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); + add_srs_wkt (p, 13, + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6462\"]]"); + p = add_epsg_def (filter, first, last, 6463, "epsg", 6463, + "NAD83(2011) / Iowa North (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35"); + "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, - "7.9,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); + add_proj4text (p, 2, + "99898402 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D"); + "PROJCS[\"NAD83(2011) / Iowa North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996"); + "\",43.26666666666667],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "42.06666666666667],PARAMETER[\"latitude_of_origin\",41.5"); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + "],PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "e_easting\",4921250],PARAMETER[\"false_northing\",328083"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"24720\"]]"); - p = add_epsg_def (filter, first, last, 24817, "epsg", 24817, - "PSAD56 / UTM zone 17N"); + "3.333300001],UNIT[\"US survey foot\",0.3048006096012192,"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 14, + ",NORTH],AUTHORITY[\"EPSG\",\"6463\"]]"); + p = add_epsg_def (filter, first, last, 6464, "epsg", 6464, + "NAD83(2011) / Iowa South"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,"); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); + add_proj4text (p, 2, + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Iowa South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); + "3333333333],PARAMETER[\"standard_parallel_2\",40.6166666"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "6666667],PARAMETER[\"latitude_of_origin\",40],PARAMETER["); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "\"central_meridian\",-93.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]"); - p = add_epsg_def (filter, first, last, 24818, "epsg", 24818, - "PSAD56 / UTM zone 18N"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 13, + "\",NORTH],AUTHORITY[\"EPSG\",\"6464\"]]"); + p = add_epsg_def (filter, first, last, 6465, "epsg", 6465, + "NAD83(2011) / Iowa South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,"); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); + add_proj4text (p, 2, + "ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Iowa South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); + "\",41.78333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "40.61666666666667],PARAMETER[\"latitude_of_origin\",40],"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "easting\",1640416.6667],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 14, + "ORITY[\"EPSG\",\"6465\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_30.c b/src/spatialite/src/srsinit/epsg_inlined_30.c index 18c8c3c..90ed4b0 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_30.c +++ b/src/spatialite/src/srsinit/epsg_inlined_30.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3332 +52,3656 @@ initialize_epsg_30 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 24819, "epsg", 24819, - "PSAD56 / UTM zone 19N"); + p = add_epsg_def (filter, first, last, 6466, "epsg", 6466, + "NAD83(2011) / Kansas North"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,"); + "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); + add_proj4text (p, 2, + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kansas North\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); + ".78333333333333],PARAMETER[\"standard_parallel_2\",38.71"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "666666666667],PARAMETER[\"latitude_of_origin\",38.333333"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER["); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "\"false_easting\",400000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]"); - p = add_epsg_def (filter, first, last, 24820, "epsg", 24820, - "PSAD56 / UTM zone 20N"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6466\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 6467, "epsg", 6467, + "NAD83(2011) / Kansas North (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,"); + "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); + add_proj4text (p, 2, + "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kansas North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); + "_1\",39.78333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + ",38.71666666666667],PARAMETER[\"latitude_of_origin\",38."); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "33333333333334],PARAMETER[\"central_meridian\",-98],PARA"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "METER[\"false_easting\",1312333.3333],PARAMETER[\"false_"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]"); - p = add_epsg_def (filter, first, last, 24821, "epsg", 24821, - "PSAD56 / UTM zone 21N"); + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 14, + "\",NORTH],AUTHORITY[\"EPSG\",\"6467\"]]"); + p = add_epsg_def (filter, first, last, 6468, "epsg", 6468, + "NAD83(2011) / Kansas South"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,"); + "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); + add_proj4text (p, 2, + "_0=400000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kansas South\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); + ".56666666666667],PARAMETER[\"standard_parallel_2\",37.26"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "666666666667],PARAMETER[\"latitude_of_origin\",36.666666"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "66666666],PARAMETER[\"central_meridian\",-98.5],PARAMETE"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "R[\"false_easting\",400000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]"); - p = add_epsg_def (filter, first, last, 24877, "epsg", 24877, - "PSAD56 / UTM zone 17S"); + ",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 13, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "6468\"]]"); + p = add_epsg_def (filter, first, last, 6469, "epsg", 6469, + "NAD83(2011) / Kansas South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); + add_proj4text (p, 2, + "998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +n"); + add_proj4text (p, 3, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kansas South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); + "_1\",38.56666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + ",37.26666666666667],PARAMETER[\"latitude_of_origin\",36."); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "66666666666666],PARAMETER[\"central_meridian\",-98.5],PA"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "RAMETER[\"false_easting\",1312333.3333],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]"); - p = add_epsg_def (filter, first, last, 24878, "epsg", 24878, - "PSAD56 / UTM zone 18S"); + "e_northing\",1312333.3333],UNIT[\"US survey foot\",0.304"); + add_srs_wkt (p, 13, + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 14, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6469\"]]"); + p = add_epsg_def (filter, first, last, 6470, "epsg", 6470, + "NAD83(2011) / Kentucky North"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); + add_proj4text (p, 2, + "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kentucky North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); + "7.96666666666667],PARAMETER[\"standard_parallel_2\",38.9"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "6666666666667],PARAMETER[\"latitude_of_origin\",37.5],PA"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "RAMETER[\"central_meridian\",-84.25],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]"); - p = add_epsg_def (filter, first, last, 24879, "epsg", 24879, - "PSAD56 / UTM zone 19S"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6470\"]]"); + p = add_epsg_def (filter, first, last, 6471, "epsg", 6471, + "NAD83(2011) / Kentucky North (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); + add_proj4text (p, 2, + "0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kentucky North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); + "el_1\",37.96666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "2\",38.96666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "37.5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\""); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "false_easting\",1640416.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]"); - p = add_epsg_def (filter, first, last, 24880, "epsg", 24880, - "PSAD56 / UTM zone 20S"); + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"6471\"]]"); + p = add_epsg_def (filter, first, last, 6472, "epsg", 6472, + "NAD83(2011) / Kentucky Single Zone"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); + add_proj4text (p, 2, + "+y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kentucky Single Zone\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); + "_1\",37.08333333333334],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + ",38.66666666666666],PARAMETER[\"latitude_of_origin\",36."); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "33333333333334],PARAMETER[\"central_meridian\",-85.75],P"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "ARAMETER[\"false_easting\",1500000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]"); - p = add_epsg_def (filter, first, last, 24881, "epsg", 24881, - "PSAD56 / UTM zone 21S"); + "rthing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 14, + "EPSG\",\"6472\"]]"); + p = add_epsg_def (filter, first, last, 6473, "epsg", 6473, + "NAD83(2011) / Kentucky Single Zone (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); + add_proj4text (p, 2, + "+y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_def"); + add_proj4text (p, 3, + "s"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kentucky Single Zone (ftUS)\",GEO"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); + "parallel_1\",37.08333333333334],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "allel_2\",38.66666666666666],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "gin\",36.33333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "-85.75],PARAMETER[\"false_easting\",4921250],PARAMETER[\""); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]"); - p = add_epsg_def (filter, first, last, 24882, "epsg", 24882, - "PSAD56 / UTM zone 22S"); + "false_northing\",3280833.333],UNIT[\"US survey foot\",0."); + add_srs_wkt (p, 13, + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 14, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6473\"]]"); + p = add_epsg_def (filter, first, last, 6474, "epsg", 6474, + "NAD83(2011) / Kentucky South"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,"); + "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, - "-376,0,0,0,0 +units=m +no_defs"); + "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); + add_proj4text (p, 2, + "y_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM"); + "PROJCS[\"NAD83(2011) / Kentucky South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal"); + "7.93333333333333],PARAMETER[\"standard_parallel_2\",36.7"); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "3333333333333],PARAMETER[\"latitude_of_origin\",36.33333"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "333333334],PARAMETER[\"central_meridian\",-85.75],PARAME"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]"); - p = add_epsg_def (filter, first, last, 24891, "epsg", 24891, - "PSAD56 / Peru west zone"); + "\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 13, + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6474\"]]"); + p = add_epsg_def (filter, first, last, 6475, "epsg", 6475, + "NAD83(2011) / Kentucky South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22"); + "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, - "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376"); + "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, - ",0,0,0,0 +units=m +no_defs"); + "001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-"); + add_proj4text (p, 3, + "ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT"); + "PROJCS[\"NAD83(2011) / Kentucky South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "in\",-6],PARAMETER[\"central_meridian\",-80.5],PARAMETER"); + "el_1\",37.93333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.99983008],PARAMETER[\"false_easting\""); + "2\",36.73333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - ",222000],PARAMETER[\"false_northing\",1426834.743],UNIT["); + "36.33333333333334],PARAMETER[\"central_meridian\",-85.75"); add_srs_wkt (p, 11, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + "],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\"f"); add_srs_wkt (p, 12, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]"); - p = add_epsg_def (filter, first, last, 24892, "epsg", 24892, - "PSAD56 / Peru central zone"); + "alse_northing\",1640416.667],UNIT[\"US survey foot\",0.3"); + add_srs_wkt (p, 13, + "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 14, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6475\"]]"); + p = add_epsg_def (filter, first, last, 6476, "epsg", 6476, + "NAD83(2011) / Louisiana North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72"); + "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, - "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376"); + "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, - ",0,0,0,0 +units=m +no_defs"); + "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\","); + "PROJCS[\"NAD83(2011) / Louisiana North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJEC"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "igin\",-9.5],PARAMETER[\"central_meridian\",-76],PARAMET"); + ",32.66666666666666],PARAMETER[\"standard_parallel_2\",31"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",0.99932994],PARAMETER[\"false_eastin"); + ".16666666666667],PARAMETER[\"latitude_of_origin\",30.5],"); add_srs_wkt (p, 10, - "g\",720000],PARAMETER[\"false_northing\",1039979.159],UN"); + "PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "easting\",1000000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]"); - p = add_epsg_def (filter, first, last, 24893, "epsg", 24893, - "PSAD56 / Peru east zone"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6476\"]]"); + p = add_epsg_def (filter, first, last, 6477, "epsg", 6477, + "NAD83(2011) / Louisiana North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0="); + "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, - "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-"); + "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, - "376,0,0,0,0 +units=m +no_defs"); + "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT"); + "PROJCS[\"NAD83(2011) / Louisiana North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "in\",-9.5],PARAMETER[\"central_meridian\",-70.5],PARAMET"); + "el_1\",32.66666666666666],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",0.99952992],PARAMETER[\"false_eastin"); + "2\",31.16666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "g\",1324000],PARAMETER[\"false_northing\",1040084.558],U"); + "30.5],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "false_easting\",3280833.333300001],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]"); - p = add_epsg_def (filter, first, last, 25000, "epsg", 25000, - "Leigon / Ghana Metre Grid"); + "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); + add_srs_wkt (p, 13, + "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + add_srs_wkt (p, 14, + "NORTH],AUTHORITY[\"EPSG\",\"6477\"]]"); + p = add_epsg_def (filter, first, last, 6478, "epsg", 6478, + "NAD83(2011) / Louisiana South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); + "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, - "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3"); + ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units="); add_proj4text (p, 2, - "64,0,0,0,0 +units=m +no_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D"); + "PROJCS[\"NAD83(2011) / Louisiana South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",4.666666666666667],"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-1],PARAMETER[\"scale_fac"); + ",30.7],PARAMETER[\"standard_parallel_2\",29.3],PARAMETER"); add_srs_wkt (p, 9, - "tor\",0.99975],PARAMETER[\"false_easting\",274319.51],PA"); + "[\"latitude_of_origin\",28.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "an\",-91.33333333333333],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"25000\"]]"); - p = add_epsg_def (filter, first, last, 25231, "epsg", 25231, - "Lome / UTM zone 31N"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"6478\"]]"); + p = add_epsg_def (filter, first, last, 6479, "epsg", 6479, + "NAD83(2011) / Louisiana South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_"); + "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, - "defs"); + ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); + add_proj4text (p, 2, + "80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L"); + "PROJCS[\"NAD83(2011) / Louisiana South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTI"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); + "el_1\",30.7],PARAMETER[\"standard_parallel_2\",29.3],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "AMETER[\"latitude_of_origin\",28.5],PARAMETER[\"central_"); add_srs_wkt (p, 10, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "meridian\",-91.33333333333333],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]"); - p = add_epsg_def (filter, first, last, 25391, "epsg", 25391, - "Luzon 1911 / Philippines zone I"); + "\",3280833.333300001],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 12, + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 14, + "ITY[\"EPSG\",\"6479\"]]"); + p = add_epsg_def (filter, first, last, 6480, "epsg", 6480, + "NAD83(2011) / Maine CS2000 Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); + "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, - "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo"); + "PROJCS[\"NAD83(2011) / Maine CS2000 Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.5"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); + "],PARAMETER[\"central_meridian\",-69.125],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); + "ale_factor\",0.99998],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"25391\"]]"); - p = add_epsg_def (filter, first, last, 25392, "epsg", 25392, - "Luzon 1911 / Philippines zone II"); + "TH],AUTHORITY[\"EPSG\",\"6480\"]]"); + p = add_epsg_def (filter, first, last, 6481, "epsg", 6481, + "NAD83(2011) / Maine CS2000 East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); + "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, - "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz"); + "PROJCS[\"NAD83(2011) / Maine CS2000 East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.833"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale_"); + "33333333334],PARAMETER[\"central_meridian\",-67.875],PAR"); add_srs_wkt (p, 9, - "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); + "AMETER[\"scale_factor\",0.99998],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "ng\",700000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"25392\"]]"); - p = add_epsg_def (filter, first, last, 25393, "epsg", 25393, - "Luzon 1911 / Philippines zone III"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6481\"]]"); + p = add_epsg_def (filter, first, last, 6482, "epsg", 6482, + "NAD83(2011) / Maine CS2000 West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, - "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu"); + "PROJCS[\"NAD83(2011) / Maine CS2000 West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\""); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.833"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale_"); + "33333333334],PARAMETER[\"central_meridian\",-70.375],PAR"); add_srs_wkt (p, 9, - "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); + "AMETER[\"scale_factor\",0.99998],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "ng\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"25393\"]]"); - p = add_epsg_def (filter, first, last, 25394, "epsg", 25394, - "Luzon 1911 / Philippines zone IV"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6482\"]]"); + p = add_epsg_def (filter, first, last, 6483, "epsg", 6483, + "NAD83(2011) / Maine East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz"); + "PROJCS[\"NAD83(2011) / Maine East\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "tor\"],PARAMETER[\"latitude_of_origin\",43.6666666666666"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_"); + "6],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, - "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); + "le_factor\",0.9999],PARAMETER[\"false_easting\",300000],"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"25394\"]]"); - p = add_epsg_def (filter, first, last, 25395, "epsg", 25395, - "Luzon 1911 / Philippines zone V"); + "],AUTHORITY[\"EPSG\",\"6483\"]]"); + p = add_epsg_def (filter, first, last, 6484, "epsg", 6484, + "NAD83(2011) / Maine East (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); + "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, - "=m +no_defs"); + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo"); + "PROJCS[\"NAD83(2011) / Maine East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.666"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",125],PARAMETER[\"scale_f"); + "66666666666],PARAMETER[\"central_meridian\",-68.5],PARAM"); add_srs_wkt (p, 9, - "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); + "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"25395\"]]"); - p = add_epsg_def (filter, first, last, 25700, "epsg", 25700, - "Makassar (Jakarta) / NEIEZ (deprecated)"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"6484\"]]"); + p = add_epsg_def (filter, first, last, 6485, "epsg", 6485, + "NAD83(2011) / Maine West"); add_proj4text (p, 0, - "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm="); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, - "jakarta +units=m +no_defs"); + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC"); + "PROJCS[\"NAD83(2011) / Maine West\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PAR"); + "tor\"],PARAMETER[\"latitude_of_origin\",42.8333333333333"); add_srs_wkt (p, 8, - "AMETER[\"central_meridian\",110],PARAMETER[\"scale_facto"); + "4],PARAMETER[\"central_meridian\",-70.16666666666667],PA"); add_srs_wkt (p, 9, - "r\",0.997],PARAMETER[\"false_easting\",3900000],PARAMETE"); + "RAMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "R[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORITY["); + "easting\",900000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"25700\"]]"); - p = add_epsg_def (filter, first, last, 25828, "epsg", 25828, - "ETRS89 / UTM zone 28N"); + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6485\"]]"); + p = add_epsg_def (filter, first, last, 6486, "epsg", 6486, + "NAD83(2011) / Maine West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "units=m +no_defs"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u"); + add_proj4text (p, 2, + "nits=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Maine West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.833"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_"); + "33333333334],PARAMETER[\"central_meridian\",-70.16666666"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "666667],PARAMETER[\"scale_factor\",0.999966667],PARAMETE"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "R[\"false_easting\",2952750],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"25828\"]]"); - p = add_epsg_def (filter, first, last, 25829, "epsg", 25829, - "ETRS89 / UTM zone 29N"); + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"6486\"]]"); + p = add_epsg_def (filter, first, last, 6487, "epsg", 6487, + "NAD83(2011) / Maryland"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, - "units=m +no_defs"); + "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Maryland\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f"); + "PARAMETER[\"standard_parallel_2\",38.3],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "tude_of_origin\",37.66666666666666],PARAMETER[\"central_"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "meridian\",-77],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25829\"]]"); - p = add_epsg_def (filter, first, last, 25830, "epsg", 25830, - "ETRS89 / UTM zone 30N"); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"6487\"]]"); + p = add_epsg_def (filter, first, last, 6488, "epsg", 6488, + "NAD83(2011) / Maryland (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, - "units=m +no_defs"); + "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); + add_proj4text (p, 2, + "0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Maryland (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f"); + ",39.45],PARAMETER[\"standard_parallel_2\",38.3],PARAMETE"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "R[\"latitude_of_origin\",37.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "central_meridian\",-77],PARAMETER[\"false_easting\",1312"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "333.333],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25830\"]]"); - p = add_epsg_def (filter, first, last, 25831, "epsg", 25831, - "ETRS89 / UTM zone 31N"); + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + add_srs_wkt (p, 13, + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6488\"]]"); + p = add_epsg_def (filter, first, last, 6489, "epsg", 6489, + "NAD83(2011) / Massachusetts Island"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, - "units=m +no_defs"); + "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); + add_proj4text (p, 2, + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Massachusetts Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); + "_1\",41.48333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + ",41.28333333333333],PARAMETER[\"latitude_of_origin\",41]"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + ",PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"false"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25831\"]]"); - p = add_epsg_def (filter, first, last, 25832, "epsg", 25832, - "ETRS89 / UTM zone 32N"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6489\"]]"); + p = add_epsg_def (filter, first, last, 6490, "epsg", 6490, + "NAD83(2011) / Massachusetts Island (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, - "units=m +no_defs"); + "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); + add_proj4text (p, 2, + " +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Massachusetts Island (ftUS)\",GEO"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); + "parallel_1\",41.48333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "allel_2\",41.28333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "gin\",41],PARAMETER[\"central_meridian\",-70.5],PARAMETE"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "R[\"false_easting\",1640416.667],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25832\"]]"); - p = add_epsg_def (filter, first, last, 25833, "epsg", 25833, - "ETRS89 / UTM zone 33N"); + "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 14, + "RTH],AUTHORITY[\"EPSG\",\"6490\"]]"); + p = add_epsg_def (filter, first, last, 6491, "epsg", 6491, + "NAD83(2011) / Massachusetts Mainland"); add_proj4text (p, 0, - "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, - "units=m +no_defs"); + "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); + add_proj4text (p, 2, + "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Massachusetts Mainland\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); + "el_1\",42.68333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "2\",41.71666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "41],PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "lse_easting\",200000],PARAMETER[\"false_northing\",75000"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25833\"]]"); - p = add_epsg_def (filter, first, last, 25834, "epsg", 25834, - "ETRS89 / UTM zone 34N"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6491\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 6492, "epsg", 6492, + "NAD83(2011) / Massachusetts Mainland (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, - "units=m +no_defs"); + "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); + add_proj4text (p, 2, + "50000 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Massachusetts Mainland (ftUS)\",G"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTI"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); + "_parallel_1\",42.68333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "rallel_2\",41.71666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "igin\",41],PARAMETER[\"central_meridian\",-71.5],PARAMET"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "ER[\"false_easting\",656166.667],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25834\"]]"); - p = add_epsg_def (filter, first, last, 25835, "epsg", 25835, - "ETRS89 / UTM zone 35N"); + "ing\",2460625],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 13, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6492\"]]"); + p = add_epsg_def (filter, first, last, 6493, "epsg", 6493, + "NAD83(2011) / Michigan Central"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, - "units=m +no_defs"); + ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); + add_proj4text (p, 2, + "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Michigan Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); + ",45.7],PARAMETER[\"standard_parallel_2\",44.183333333333"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "33],PARAMETER[\"latitude_of_origin\",43.31666666666667],"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "PARAMETER[\"central_meridian\",-84.36666666666666],PARAM"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "ETER[\"false_easting\",6000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25835\"]]"); - p = add_epsg_def (filter, first, last, 25836, "epsg", 25836, - "ETRS89 / UTM zone 36N"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 14, + "493\"]]"); + p = add_epsg_def (filter, first, last, 6494, "epsg", 6494, + "NAD83(2011) / Michigan Central (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, - "units=m +no_defs"); + ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); + add_proj4text (p, 2, + "99976001 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Michigan Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); + "el_1\",45.7],PARAMETER[\"standard_parallel_2\",44.183333"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "33333333],PARAMETER[\"latitude_of_origin\",43.3166666666"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "6667],PARAMETER[\"central_meridian\",-84.36666666666666]"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",PARAMETER[\"false_easting\",19685039.37],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25836\"]]"); - p = add_epsg_def (filter, first, last, 25837, "epsg", 25837, - "ETRS89 / UTM zone 37N"); + "lse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 14, + "[\"EPSG\",\"6494\"]]"); + p = add_epsg_def (filter, first, last, 6495, "epsg", 6495, + "NAD83(2011) / Michigan North"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, - "units=m +no_defs"); + "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); + add_proj4text (p, 2, + "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Michigan North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); + "7.08333333333334],PARAMETER[\"standard_parallel_2\",45.4"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "8333333333333],PARAMETER[\"latitude_of_origin\",44.78333"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "[\"false_easting\",8000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25837\"]]"); - p = add_epsg_def (filter, first, last, 25838, "epsg", 25838, - "ETRS89 / UTM zone 38N"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 13, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6495\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 6496, "epsg", 6496, + "NAD83(2011) / Michigan North (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, - "units=m +no_defs"); + "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); + add_proj4text (p, 2, + "968001 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 38N\",GEOGCS[\"ETRS89\",DATUM"); + "PROJCS[\"NAD83(2011) / Michigan North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); + "_1\",47.08333333333334],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ",45.48333333333333],PARAMETER[\"latitude_of_origin\",44."); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "78333333333333],PARAMETER[\"central_meridian\",-87],PARA"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "METER[\"false_easting\",26246719.16],PARAMETER[\"false_n"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]"); - p = add_epsg_def (filter, first, last, 25884, "epsg", 25884, - "ETRS89 / TM Baltic93"); + "orthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 13, + "002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 14, + "PSG\",\"6496\"]]"); + p = add_epsg_def (filter, first, last, 6497, "epsg", 6497, + "NAD83(2011) / Michigan Oblique Mercator"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); + "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, - "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); + "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, - "s"); + "_uoff +gamma=337.25556 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM["); + "PROJCS[\"NAD83(2011) / Michigan Oblique Mercator\",GEOGC"); add_srs_wkt (p, 1, - "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); + "\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_of_cen"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f"); + "ter\",45.30916666666666],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "\",-86],PARAMETER[\"azimuth\",337.25556],PARAMETER[\"rec"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "tified_grid_angle\",337.25556],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + ",0.9996],PARAMETER[\"false_easting\",2546731.496],PARAME"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"25884\"]]"); - p = add_epsg_def (filter, first, last, 25932, "epsg", 25932, - "Malongo 1987 / UTM zone 32S"); + "TER[\"false_northing\",-4354009.816],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 13, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + add_srs_wkt (p, 14, + "NORTH],AUTHORITY[\"EPSG\",\"6497\"]]"); + p = add_epsg_def (filter, first, last, 6498, "epsg", 6498, + "NAD83(2011) / Michigan South"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5"); + "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, - ".36,-100.29,0,0,0,0 +units=m +no_defs"); + ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); + add_proj4text (p, 2, + "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo "); + "PROJCS[\"NAD83(2011) / Michigan South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\""); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Tran"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); + "3.66666666666666],PARAMETER[\"standard_parallel_2\",42.1"); add_srs_wkt (p, 9, - "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen"); add_srs_wkt (p, 10, - "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); + "tral_meridian\",-84.36666666666666],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "sting\",4000000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]"); - p = add_epsg_def (filter, first, last, 26191, "epsg", 26191, - "Merchich / Nord Maroc"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6498\"]]"); + p = add_epsg_def (filter, first, last, 6499, "epsg", 6499, + "NAD83(2011) / Michigan South (ft)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999"); + "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, - "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +"); + ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, - "towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); + "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT"); + "PROJCS[\"NAD83(2011) / Michigan South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3]"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); + "_1\",43.66666666666666],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "factor\",0.999625769],PARAMETER[\"false_easting\",500000"); + ",42.1],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER["); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,"); + "\"central_meridian\",-84.36666666666666],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "se_easting\",13123359.58],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"26191\"]]"); - p = add_epsg_def (filter, first, last, 26192, "epsg", 26192, - "Merchich / Sud Maroc"); + "],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXI"); + add_srs_wkt (p, 13, + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"649"); + add_srs_wkt (p, 14, + "9\"]]"); + p = add_epsg_def (filter, first, last, 6500, "epsg", 6500, + "NAD83(2011) / Minnesota Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63"); + "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +un"); add_proj4text (p, 2, - "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU"); + "PROJCS[\"NAD83(2011) / Minnesota Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84["); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM["); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confor"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_f"); + "\",47.05],PARAMETER[\"standard_parallel_2\",45.616666666"); add_srs_wkt (p, 9, - "actor\",0.999615596],PARAMETER[\"false_easting\",500000]"); + "66667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\""); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); + "central_meridian\",-94.25],PARAMETER[\"false_easting\",8"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "00000],PARAMETER[\"false_northing\",100000],UNIT[\"metre"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"26192\"]]"); - p = add_epsg_def (filter, first, last, 26193, "epsg", 26193, - "Merchich / Sahara (deprecated)"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 13, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6500\"]]"); + p = add_epsg_def (filter, first, last, 6501, "epsg", 6501, + "NAD83(2011) / Minnesota Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg"); + "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, - "s84=31,146,47,0,0,0,0 +units=m +no_defs"); + "83997 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch"); + "PROJCS[\"NAD83(2011) / Minnesota Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\","); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\""); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lamb"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "n\",26.1],PARAMETER[\"central_meridian\",-5.4],PARAMETER"); + "llel_1\",47.05],PARAMETER[\"standard_parallel_2\",45.616"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",12"); + "66666666667],PARAMETER[\"latitude_of_origin\",45],PARAME"); add_srs_wkt (p, 10, - "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); + "TER[\"central_meridian\",-94.25],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + "ng\",2624666.6667],PARAMETER[\"false_northing\",328083.3"); add_srs_wkt (p, 12, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]"); - p = add_epsg_def (filter, first, last, 26194, "epsg", 26194, - "Merchich / Sahara Nord"); + "333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT"); + add_srs_wkt (p, 13, + "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 14, + ",AUTHORITY[\"EPSG\",\"6501\"]]"); + p = add_epsg_def (filter, first, last, 6502, "epsg", 6502, + "NAD83(2011) / Minnesota North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 "); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, - "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); + "_0=100000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA"); + "PROJCS[\"NAD83(2011) / Minnesota North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conf"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale"); + ",48.63333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 9, - "_factor\",0.999616304],PARAMETER[\"false_easting\",12000"); + ".03333333333333],PARAMETER[\"latitude_of_origin\",46.5],"); add_srs_wkt (p, 10, - "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\","); + "PARAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + "easting\",800000],PARAMETER[\"false_northing\",100000],U"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26194\"]]"); - p = add_epsg_def (filter, first, last, 26195, "epsg", 26195, - "Merchich / Sahara Sud"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6502\"]]"); + p = add_epsg_def (filter, first, last, 6503, "epsg", 6503, + "NAD83(2011) / Minnesota North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 "); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, - "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); + "00101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-f"); + add_proj4text (p, 3, + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT"); + "PROJCS[\"NAD83(2011) / Minnesota North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5]"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); + "el_1\",48.63333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "factor\",0.999616437],PARAMETER[\"false_easting\",150000"); + "2\",47.03333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1"); + "46.5],PARAMETER[\"central_meridian\",-93.1],PARAMETER[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + "false_easting\",2624666.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"26195\"]]"); - p = add_epsg_def (filter, first, last, 26237, "epsg", 26237, - "Massawa / UTM zone 37N"); + "\",328083.3333],UNIT[\"US survey foot\",0.30480060960121"); + add_srs_wkt (p, 13, + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6503\"]]"); + p = add_epsg_def (filter, first, last, 6504, "epsg", 6504, + "NAD83(2011) / Minnesota South"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); + add_proj4text (p, 2, + "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT"); + "PROJCS[\"NAD83(2011) / Minnesota South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299."); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "\"EPSG\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAME"); + ",45.21666666666667],PARAMETER[\"standard_parallel_2\",43"); add_srs_wkt (p, 9, - "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); + ".78333333333333],PARAMETER[\"latitude_of_origin\",43],PA"); add_srs_wkt (p, 10, - "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + "RAMETER[\"central_meridian\",-94],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "ing\",800000],PARAMETER[\"false_northing\",100000],UNIT["); add_srs_wkt (p, 12, - "EPSG\",\"26237\"]]"); - p = add_epsg_def (filter, first, last, 26331, "epsg", 26331, - "Minna / UTM zone 31N"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6504\"]]"); + p = add_epsg_def (filter, first, last, 6505, "epsg", 6505, + "NAD83(2011) / Minnesota South (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); + add_proj4text (p, 2, + "99.99998983997 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Minnesota South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "dian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "el_1\",45.21666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "2\",43.78333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "43],PARAMETER[\"central_meridian\",-94],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + "e_easting\",2624666.6667],PARAMETER[\"false_northing\",3"); add_srs_wkt (p, 12, - ",\"26331\"]]"); - p = add_epsg_def (filter, first, last, 26332, "epsg", 26332, - "Minna / UTM zone 32N"); + "28083.3333],UNIT[\"US survey foot\",0.3048006096012192,A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 14, + ",NORTH],AUTHORITY[\"EPSG\",\"6505\"]]"); + p = add_epsg_def (filter, first, last, 6506, "epsg", 6506, + "NAD83(2011) / Mississippi East"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,"); + "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Mississippi East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P"); add_srs_wkt (p, 8, - "dian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "ARAMETER[\"central_meridian\",-88.83333333333333],PARAME"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + ",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - ",\"26332\"]]"); - p = add_epsg_def (filter, first, last, 26391, "epsg", 26391, - "Minna / Nigeria West Belt"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6506\"]]"); + p = add_epsg_def (filter, first, last, 6507, "epsg", 6507, + "NAD83(2011) / Mississippi East (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2"); + "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, - "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); + "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, - "ts=m +no_defs"); + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA"); + "PROJCS[\"NAD83(2011) / Mississippi East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, - "l_meridian\",4.5],PARAMETER[\"scale_factor\",0.99975],PA"); + "9.5],PARAMETER[\"central_meridian\",-88.83333333333333],"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",230738.26],PARAMETER[\"false_n"); + "PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "sting\",984250.0000000002],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26391\"]]"); - p = add_epsg_def (filter, first, last, 26392, "epsg", 26392, - "Minna / Nigeria Mid Belt"); + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"6507\"]]"); + p = add_epsg_def (filter, first, last, 6508, "epsg", 6508, + "NAD83(2011) / Mississippi TM"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9"); + "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, - "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); - add_proj4text (p, 2, - "ts=m +no_defs"); + "500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT"); + "PROJCS[\"NAD83(2011) / Mississippi TM\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"]"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - ",PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"central"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",32.5],PARA"); add_srs_wkt (p, 8, - "_meridian\",8.5],PARAMETER[\"scale_factor\",0.99975],PAR"); + "METER[\"central_meridian\",-89.75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",670553.98],PARAMETER[\"false_no"); + "tor\",0.9998335],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "AMETER[\"false_northing\",1300000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26392\"]]"); - p = add_epsg_def (filter, first, last, 26393, "epsg", 26393, - "Minna / Nigeria East Belt"); + "RTH],AUTHORITY[\"EPSG\",\"6508\"]]"); + p = add_epsg_def (filter, first, last, 6509, "epsg", 6509, + "NAD83(2011) / Mississippi West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369"); + "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, - ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un"); - add_proj4text (p, 2, - "its=m +no_defs"); + "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA"); + "PROJCS[\"NAD83(2011) / Mississippi West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P"); add_srs_wkt (p, 8, - "l_meridian\",12.5],PARAMETER[\"scale_factor\",0.99975],P"); + "ARAMETER[\"central_meridian\",-90.33333333333333],PARAME"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",1110369.7],PARAMETER[\"false_"); + "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + ",700000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"26393\"]]"); - p = add_epsg_def (filter, first, last, 26432, "epsg", 26432, - "Mhast / UTM zone 32S (deprecated)"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6509\"]]"); + p = add_epsg_def (filter, first, last, 6510, "epsg", 6510, + "NAD83(2011) / Mississippi West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-"); + "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, - "4.11,-96.38,0,0,0,0 +units=m +no_defs"); + "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh"); + "PROJCS[\"NAD83(2011) / Mississippi West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, - "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); + "9.5],PARAMETER[\"central_meridian\",-90.33333333333333],"); add_srs_wkt (p, 9, - "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + "PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "sting\",2296583.333],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26432\"]]"); - p = add_epsg_def (filter, first, last, 26591, "epsg", 26591, - "Monte Mario (Rome) / Italy zone 1 (deprecated)"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"6510\"]]"); + p = add_epsg_def (filter, first, last, 6511, "epsg", 6511, + "NAD83(2011) / Missouri Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 "); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, - "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9"); + "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, - ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\""); + "PROJCS[\"NAD83(2011) / Missouri Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); - add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + add_srs_wkt (p, 6, + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",35.8333"); add_srs_wkt (p, 8, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "3333333334],PARAMETER[\"central_meridian\",-92.5],PARAME"); add_srs_wkt (p, 9, - "METER[\"central_meridian\",-3.45233333333333],PARAMETER["); + "TER[\"scale_factor\",0.999933333],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",150"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); - add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"26591\"]]"); - p = add_epsg_def (filter, first, last, 26592, "epsg", 26592, - "Monte Mario (Rome) / Italy zone 2 (deprecated)"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6511\"]]"); + p = add_epsg_def (filter, first, last, 6512, "epsg", 6512, + "NAD83(2011) / Missouri East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +"); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, - "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9."); + "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, - "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\""); + "PROJCS[\"NAD83(2011) / Missouri East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",35.83333333"); add_srs_wkt (p, 8, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "333334],PARAMETER[\"central_meridian\",-90.5],PARAMETER["); add_srs_wkt (p, 9, - "METER[\"central_meridian\",2.54766666666666],PARAMETER[\""); + "\"scale_factor\",0.999933333],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",25200"); + ",250000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); - add_srs_wkt (p, 13, - "ORTH],AUTHORITY[\"EPSG\",\"26592\"]]"); - p = add_epsg_def (filter, first, last, 26632, "epsg", 26632, - "M'poraloko / UTM zone 32N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6512\"]]"); + p = add_epsg_def (filter, first, last, 6513, "epsg", 6513, + "NAD83(2011) / Missouri West"); add_proj4text (p, 0, - "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,"); + "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, - "-130,42,0,0,0,0 +units=m +no_defs"); + "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko"); + "PROJCS[\"NAD83(2011) / Missouri West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",36.16666666"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); + "666666],PARAMETER[\"central_meridian\",-94.5],PARAMETER["); add_srs_wkt (p, 9, - "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + "\"scale_factor\",0.999941177],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + ",850000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26632\"]]"); - p = add_epsg_def (filter, first, last, 26692, "epsg", 26692, - "M'poraloko / UTM zone 32S"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6513\"]]"); + p = add_epsg_def (filter, first, last, 6514, "epsg", 6514, + "NAD83(2011) / Montana"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); + "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, - "84=-74,-130,42,0,0,0,0 +units=m +no_defs"); + " +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko"); + "PROJCS[\"NAD83(2011) / Montana\",GEOGCS[\"NAD83(2011)\","); add_srs_wkt (p, 1, - "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); + "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S"); add_srs_wkt (p, 2, - "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PAR"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); + "AMETER[\"standard_parallel_2\",45],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, - "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + "of_origin\",44.25],PARAMETER[\"central_meridian\",-109.5"); add_srs_wkt (p, 10, - "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); + "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]"); - p = add_epsg_def (filter, first, last, 26701, "epsg", 26701, - "NAD27 / UTM zone 1N"); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"6514\"]]"); + p = add_epsg_def (filter, first, last, 6515, "epsg", 6515, + "NAD83(2011) / Montana (ft)"); add_proj4text (p, 0, - "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs"); + "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); + add_proj4text (p, 1, + " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_d"); + add_proj4text (p, 2, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Montana (ft)\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49"); add_srs_wkt (p, 8, - "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "],PARAMETER[\"standard_parallel_2\",45],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "tude_of_origin\",44.25],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "109.5],PARAMETER[\"false_easting\",1968503.937],PARAMETE"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "R[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\""); add_srs_wkt (p, 12, - "26701\"]]"); - p = add_epsg_def (filter, first, last, 26702, "epsg", 26702, - "NAD27 / UTM zone 2N"); + "EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"6515\"]]"); + p = add_epsg_def (filter, first, last, 6516, "epsg", 6516, + "NAD83(2011) / Nebraska"); add_proj4text (p, 0, - "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + add_proj4text (p, 1, + "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nebraska\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR"); add_srs_wkt (p, 8, - "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "of_origin\",39.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ian\",-100],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "26702\"]]"); - p = add_epsg_def (filter, first, last, 26703, "epsg", 26703, - "NAD27 / UTM zone 3N"); + "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 13, + "ITY[\"EPSG\",\"6516\"]]"); + p = add_epsg_def (filter, first, last, 6517, "epsg", 6517, + "NAD83(2011) / Nebraska (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + add_proj4text (p, 1, + "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); + add_proj4text (p, 2, + "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, - "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "TER[\"standard_parallel_1\",43],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "allel_2\",40],PARAMETER[\"latitude_of_origin\",39.833333"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "33333334],PARAMETER[\"central_meridian\",-100],PARAMETER"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"false_easting\",1640416.6667],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "26703\"]]"); - p = add_epsg_def (filter, first, last, 26704, "epsg", 26704, - "NAD27 / UTM zone 4N"); + "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 14, + "RTH],AUTHORITY[\"EPSG\",\"6517\"]]"); + p = add_epsg_def (filter, first, last, 6518, "epsg", 6518, + "NAD83(2011) / Nevada Central"); add_proj4text (p, 0, - "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada Central\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PAR"); add_srs_wkt (p, 8, - "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "AMETER[\"central_meridian\",-116.6666666666667],PARAMETE"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "00000],PARAMETER[\"false_northing\",6000000],UNIT[\"metr"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "26704\"]]"); - p = add_epsg_def (filter, first, last, 26705, "epsg", 26705, - "NAD27 / UTM zone 5N"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6518\"]]"); + p = add_epsg_def (filter, first, last, 6519, "epsg", 6519, + "NAD83(2011) / Nevada Central (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +uni"); + add_proj4text (p, 2, + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",34"); add_srs_wkt (p, 8, - "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + ".75],PARAMETER[\"central_meridian\",-116.6666666666667],"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ting\",1640416.6667],PARAMETER[\"false_northing\",196850"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "00],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, - "26705\"]]"); - p = add_epsg_def (filter, first, last, 26706, "epsg", 26706, - "NAD27 / UTM zone 6N"); + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"6519\"]]"); + p = add_epsg_def (filter, first, last, 6520, "epsg", 6520, + "NAD83(2011) / Nevada East"); add_proj4text (p, 0, - "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada East\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAM"); add_srs_wkt (p, 8, - "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ETER[\"central_meridian\",-115.5833333333333],PARAMETER["); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "000],PARAMETER[\"false_northing\",8000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "26706\"]]"); - p = add_epsg_def (filter, first, last, 26707, "epsg", 26707, - "NAD27 / UTM zone 7N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6520\"]]"); + p = add_epsg_def (filter, first, last, 6521, "epsg", 6521, + "NAD83(2011) / Nevada East (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); + add_proj4text (p, 2, + "GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada East (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75"); add_srs_wkt (p, 8, - "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "],PARAMETER[\"central_meridian\",-115.5833333333333],PAR"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "g\",656166.6667],PARAMETER[\"false_northing\",26246666.6"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "6670001],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, - "26707\"]]"); - p = add_epsg_def (filter, first, last, 26708, "epsg", 26708, - "NAD27 / UTM zone 8N"); + "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"6521\"]]"); + p = add_epsg_def (filter, first, last, 6522, "epsg", 6522, + "NAD83(2011) / Nevada West"); add_proj4text (p, 0, - "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada West\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAM"); add_srs_wkt (p, 8, - "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ETER[\"central_meridian\",-118.5833333333333],PARAMETER["); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",800"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "000],PARAMETER[\"false_northing\",4000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "26708\"]]"); - p = add_epsg_def (filter, first, last, 26709, "epsg", 26709, - "NAD27 / UTM zone 9N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6522\"]]"); + p = add_epsg_def (filter, first, last, 6523, "epsg", 6523, + "NAD83(2011) / Nevada West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); + add_proj4text (p, 2, + "=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Nevada West (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75"); add_srs_wkt (p, 8, - "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "],PARAMETER[\"central_meridian\",-118.5833333333333],PAR"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "g\",2624666.6667],PARAMETER[\"false_northing\",13123333."); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 12, - "26709\"]]"); - p = add_epsg_def (filter, first, last, 26710, "epsg", 26710, - "NAD27 / UTM zone 10N"); + "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); + add_srs_wkt (p, 13, + "],AUTHORITY[\"EPSG\",\"6523\"]]"); + p = add_epsg_def (filter, first, last, 6524, "epsg", 6524, + "NAD83(2011) / New Hampshire"); add_proj4text (p, 0, - "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + add_proj4text (p, 1, + "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Hampshire\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARAM"); add_srs_wkt (p, 8, - "123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ETER[\"central_meridian\",-71.66666666666667],PARAMETER["); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + ",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "26710\"]]"); - p = add_epsg_def (filter, first, last, 26711, "epsg", 26711, - "NAD27 / UTM zone 11N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6524\"]]"); + p = add_epsg_def (filter, first, last, 6525, "epsg", 6525, + "NAD83(2011) / New Hampshire (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + add_proj4text (p, 1, + "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +uni"); + add_proj4text (p, 2, + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Hampshire (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5"); add_srs_wkt (p, 8, - "117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "],PARAMETER[\"central_meridian\",-71.66666666666667],PAR"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "asting\",984250.0000000002],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, - "26711\"]]"); - p = add_epsg_def (filter, first, last, 26712, "epsg", 26712, - "NAD27 / UTM zone 12N"); + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"6525\"]]"); + p = add_epsg_def (filter, first, last, 6526, "epsg", 6526, + "NAD83(2011) / New Jersey"); add_proj4text (p, 0, - "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + add_proj4text (p, 1, + "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Jersey\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "tor\"],PARAMETER[\"latitude_of_origin\",38.8333333333333"); add_srs_wkt (p, 8, - "111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "4],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "le_factor\",0.9999],PARAMETER[\"false_easting\",150000],"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, - "26712\"]]"); - p = add_epsg_def (filter, first, last, 26713, "epsg", 26713, - "NAD27 / UTM zone 13N"); + "],AUTHORITY[\"EPSG\",\"6526\"]]"); + p = add_epsg_def (filter, first, last, 6527, "epsg", 6527, + "NAD83(2011) / New Jersey (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + add_proj4text (p, 1, + "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def"); + add_proj4text (p, 2, + "s"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Jersey (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.833"); add_srs_wkt (p, 8, - "105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "33333333334],PARAMETER[\"central_meridian\",-74.5],PARAM"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + ",492125],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 12, - "26713\"]]"); - p = add_epsg_def (filter, first, last, 26714, "epsg", 26714, - "NAD27 / UTM zone 14N"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"6527\"]]"); + p = add_epsg_def (filter, first, last, 6528, "epsg", 6528, + "NAD83(2011) / New Mexico Central"); add_proj4text (p, 0, - "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); + add_proj4text (p, 1, + "00 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],P"); add_srs_wkt (p, 8, - "99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "ARAMETER[\"central_meridian\",-106.25],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "6714\"]]"); - p = add_epsg_def (filter, first, last, 26715, "epsg", 26715, - "NAD27 / UTM zone 15N"); + "AUTHORITY[\"EPSG\",\"6528\"]]"); + p = add_epsg_def (filter, first, last, 6529, "epsg", 6529, + "NAD83(2011) / New Mexico Central (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); + add_proj4text (p, 1, + "00.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + ",31],PARAMETER[\"central_meridian\",-106.25],PARAMETER[\""); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",16404"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "16.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 12, - "6715\"]]"); - p = add_epsg_def (filter, first, last, 26716, "epsg", 26716, - "NAD27 / UTM zone 16N"); + ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "6529\"]]"); + p = add_epsg_def (filter, first, last, 6530, "epsg", 6530, + "NAD83(2011) / New Mexico East"); add_proj4text (p, 0, - "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + add_proj4text (p, 1, + "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA"); add_srs_wkt (p, 8, - "87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "METER[\"central_meridian\",-104.3333333333333],PARAMETER"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "[\"scale_factor\",0.999909091],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "\",165000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "6716\"]]"); - p = add_epsg_def (filter, first, last, 26717, "epsg", 26717, - "NAD27 / UTM zone 17N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6530\"]]"); + p = add_epsg_def (filter, first, last, 6531, "epsg", 6531, + "NAD83(2011) / New Mexico East (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + add_proj4text (p, 1, + "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31"); add_srs_wkt (p, 8, - "81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "],PARAMETER[\"central_meridian\",-104.3333333333333],PAR"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "AMETER[\"scale_factor\",0.999909091],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "asting\",541337.5],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "6717\"]]"); - p = add_epsg_def (filter, first, last, 26718, "epsg", 26718, - "NAD27 / UTM zone 18N"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"6531\"]]"); + p = add_epsg_def (filter, first, last, 6532, "epsg", 6532, + "NAD83(2011) / New Mexico West"); add_proj4text (p, 0, - "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + add_proj4text (p, 1, + "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA"); add_srs_wkt (p, 8, - "75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "METER[\"central_meridian\",-107.8333333333333],PARAMETER"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "[\"scale_factor\",0.999916667],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "\",830000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "6718\"]]"); - p = add_epsg_def (filter, first, last, 26719, "epsg", 26719, - "NAD27 / UTM zone 19N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6532\"]]"); + p = add_epsg_def (filter, first, last, 6533, "epsg", 6533, + "NAD83(2011) / New Mexico West (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + add_proj4text (p, 1, + "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New Mexico West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31"); add_srs_wkt (p, 8, - "69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "],PARAMETER[\"central_meridian\",-107.8333333333333],PAR"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "AMETER[\"scale_factor\",0.999916667],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "asting\",2723091.667],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "6719\"]]"); - p = add_epsg_def (filter, first, last, 26720, "epsg", 26720, - "NAD27 / UTM zone 20N"); + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 13, + "ITY[\"EPSG\",\"6533\"]]"); + p = add_epsg_def (filter, first, last, 6534, "epsg", 6534, + "NAD83(2011) / New York Central"); add_proj4text (p, 0, - "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New York Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PAR"); add_srs_wkt (p, 8, - "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "AMETER[\"central_meridian\",-76.58333333333333],PARAMETE"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "R[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + ",250000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "6720\"]]"); - p = add_epsg_def (filter, first, last, 26721, "epsg", 26721, - "NAD27 / UTM zone 21N"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6534\"]]"); + p = add_epsg_def (filter, first, last, 6535, "epsg", 6535, + "NAD83(2011) / New York Central (ftUS)"); add_proj4text (p, 0, - "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New York Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, - "57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "0],PARAMETER[\"central_meridian\",-76.58333333333333],PA"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "RAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "sting\",820208.3330000002],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 12, - "6721\"]]"); - p = add_epsg_def (filter, first, last, 26722, "epsg", 26722, - "NAD27 / UTM zone 22N"); + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"6535\"]]"); + p = add_epsg_def (filter, first, last, 6536, "epsg", 6536, + "NAD83(2011) / New York East"); add_proj4text (p, 0, - "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs"); + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + add_proj4text (p, 1, + "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New York East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",38.83333333"); add_srs_wkt (p, 8, - "51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "333334],PARAMETER[\"central_meridian\",-74.5],PARAMETER["); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "6722\"]]"); - p = add_epsg_def (filter, first, last, 26729, "epsg", 26729, - "NAD27 / Alabama East"); + "NORTH],AUTHORITY[\"EPSG\",\"6536\"]]"); + p = add_epsg_def (filter, first, last, 6537, "epsg", 6537, + "NAD83(2011) / New York East (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, - "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def"); add_proj4text (p, 2, - "s-ft +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New York East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "latitude_of_origin\",30.5],PARAMETER[\"central_meridian\""); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.8"); add_srs_wkt (p, 8, - ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]"); + "3333333333334],PARAMETER[\"central_meridian\",-74.5],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); + "g\",492125],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"26729\"]]"); - p = add_epsg_def (filter, first, last, 26730, "epsg", 26730, - "NAD27 / Alabama West"); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"6537\"]]"); + p = add_epsg_def (filter, first, last, 6538, "epsg", 6538, + "NAD83(2011) / New York Long Island"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1"); + "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, - "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de"); + "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, - "fs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / New York Long Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "-87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER"); + "_1\",41.03333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "[\"false_easting\",500000],PARAMETER[\"false_northing\","); + ",40.66666666666666],PARAMETER[\"latitude_of_origin\",40."); add_srs_wkt (p, 10, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "16666666666666],PARAMETER[\"central_meridian\",-74],PARA"); add_srs_wkt (p, 11, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "METER[\"false_easting\",300000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"26730\"]]"); - p = add_epsg_def (filter, first, last, 26731, "epsg", 26731, - "NAD27 / Alaska zone 1"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 14, + "538\"]]"); + p = add_epsg_def (filter, first, last, 6539, "epsg", 6539, + "NAD83(2011) / New York Long Island (ftUS)"); add_proj4text (p, 0, - "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); + "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, - "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5"); + "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, - "000000.001016002 +gamma=323.1301023611111 +datum=NAD27 +"); - add_proj4text (p, 3, - "units=us-ft +no_defs"); + "000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / New York Long Island (ftUS)\",GEO"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAM"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO"); add_srs_wkt (p, 7, - "ETER[\"latitude_of_center\",57],PARAMETER[\"longitude_of"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "_center\",-133.6666666666667],PARAMETER[\"azimuth\",323."); + "parallel_1\",41.03333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "1301023611111],PARAMETER[\"rectified_grid_angle\",323.13"); + "allel_2\",40.66666666666666],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "01023611111],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); + "gin\",40.16666666666666],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, - "R[\"false_easting\",16404166.67],PARAMETER[\"false_north"); + "-74],PARAMETER[\"false_easting\",984250.0000000002],PARA"); add_srs_wkt (p, 12, - "ing\",-16404166.67],UNIT[\"US survey foot\",0.3048006096"); + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]"); - p = add_epsg_def (filter, first, last, 26732, "epsg", 26732, - "NAD27 / Alaska zone 2"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6539\"]]"); + p = add_epsg_def (filter, first, last, 6540, "epsg", 6540, + "NAD83(2011) / New York West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400."); + "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / New York West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",40],PARAMET"); add_srs_wkt (p, 8, - "\",-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "ER[\"central_meridian\",-78.58333333333333],PARAMETER[\""); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "scale_factor\",0.9999375],PARAMETER[\"false_easting\",35"); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26732\"]]"); - p = add_epsg_def (filter, first, last, 26733, "epsg", 26733, - "NAD27 / Alaska zone 3"); + ",NORTH],AUTHORITY[\"EPSG\",\"6540\"]]"); + p = add_epsg_def (filter, first, last, 6541, "epsg", 6541, + "NAD83(2011) / New York West (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400."); + "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / New York West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],"); add_srs_wkt (p, 8, - "\",-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "PARAMETER[\"central_meridian\",-78.58333333333333],PARAM"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "ETER[\"scale_factor\",0.9999375],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + "ng\",1148291.667],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26733\"]]"); - p = add_epsg_def (filter, first, last, 26734, "epsg", 26734, - "NAD27 / Alaska zone 4"); + "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"6541\"]]"); + p = add_epsg_def (filter, first, last, 6542, "epsg", 6542, + "NAD83(2011) / North Carolina"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400."); + "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); + add_proj4text (p, 2, + "=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Carolina\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "\",-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "6.16666666666666],PARAMETER[\"standard_parallel_2\",34.3"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "3333333333334],PARAMETER[\"latitude_of_origin\",33.75],P"); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + "ARAMETER[\"central_meridian\",-79],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "ting\",609601.22],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26734\"]]"); - p = add_epsg_def (filter, first, last, 26735, "epsg", 26735, - "NAD27 / Alaska zone 5"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6542\"]]"); + p = add_epsg_def (filter, first, last, 6543, "epsg", 6543, + "NAD83(2011) / North Carolina (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400."); + "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); + add_proj4text (p, 2, + "0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Carolina (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "\",-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "el_1\",36.16666666666666],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "2\",34.33333333333334],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + "33.75],PARAMETER[\"central_meridian\",-79],PARAMETER[\"f"); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "alse_easting\",2000000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26735\"]]"); - p = add_epsg_def (filter, first, last, 26736, "epsg", 26736, - "NAD27 / Alaska zone 6"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 14, + "ORITY[\"EPSG\",\"6543\"]]"); + p = add_epsg_def (filter, first, last, 6544, "epsg", 6544, + "NAD83(2011) / North Dakota North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400."); + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); + add_proj4text (p, 2, + "S80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "\",-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "1\",48.73333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + ",47.43333333333333],PARAMETER[\"latitude_of_origin\",47]"); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + ",PARAMETER[\"central_meridian\",-100.5],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26736\"]]"); - p = add_epsg_def (filter, first, last, 26737, "epsg", 26737, - "NAD27 / Alaska zone 7"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6544\"]]"); + p = add_epsg_def (filter, first, last, 6545, "epsg", 6545, + "NAD83(2011) / North Dakota North (ft)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360."); + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, - "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); + add_proj4text (p, 2, + "ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Dakota North (ft)\",GEOGCS["); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, - "\",-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "lel_1\",48.73333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, - "false_easting\",700000],PARAMETER[\"false_northing\",0],"); + "_2\",47.43333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + ",47],PARAMETER[\"central_meridian\",-100.5],PARAMETER[\""); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "false_easting\",1968503.937],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26737\"]]"); - p = add_epsg_def (filter, first, last, 26738, "epsg", 26738, - "NAD27 / Alaska zone 8"); + ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 14, + "545\"]]"); + p = add_epsg_def (filter, first, last, 6546, "epsg", 6546, + "NAD83(2011) / North Dakota South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400."); + "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, - "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); + add_proj4text (p, 2, + "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "\",-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "1\",47.48333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + ",46.18333333333333],PARAMETER[\"latitude_of_origin\",45."); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + "66666666666666],PARAMETER[\"central_meridian\",-100.5],P"); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "ARAMETER[\"false_easting\",600000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26738\"]]"); - p = add_epsg_def (filter, first, last, 26739, "epsg", 26739, - "NAD27 / Alaska zone 9"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 13, + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6546\"]]"); + p = add_epsg_def (filter, first, last, 6547, "epsg", 6547, + "NAD83(2011) / North Dakota South (ft)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880."); + "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, - "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); + add_proj4text (p, 2, + "999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / North Dakota South (ft)\",GEOGCS["); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, - "\",-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + "lel_1\",47.48333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, - "false_easting\",600000],PARAMETER[\"false_northing\",0],"); + "_2\",46.18333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + ",45.66666666666666],PARAMETER[\"central_meridian\",-100."); add_srs_wkt (p, 11, - "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + "5],PARAMETER[\"false_easting\",1968503.937],PARAMETER[\""); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"26739\"]]"); - p = add_epsg_def (filter, first, last, 26740, "epsg", 26740, - "NAD27 / Alaska zone 10"); + "false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 14, + "ITY[\"EPSG\",\"6547\"]]"); + p = add_epsg_def (filter, first, last, 6548, "epsg", 6548, + "NAD83(2011) / Ohio North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); + "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, - "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 "); + ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - "+datum=NAD27 +units=us-ft +no_defs"); + "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Ohio North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",53.83333333333334],PAR"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],P"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",51.83333333333334],PARAME"); + "ARAMETER[\"standard_parallel_2\",40.43333333333333],PARA"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",51],PARAMETER[\"central_merid"); + "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE"); add_srs_wkt (p, 10, - "ian\",-176],PARAMETER[\"false_easting\",3000000],PARAMET"); + "R[\"central_meridian\",-82.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); + ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, - "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]"); - p = add_epsg_def (filter, first, last, 26741, "epsg", 26741, - "NAD27 / California zone I"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6548\"]]"); + p = add_epsg_def (filter, first, last, 6549, "epsg", 6549, + "NAD83(2011) / Ohio North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); + "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, - "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 "); + ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - "+datum=NAD27 +units=us-ft +no_defs"); + "RS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA"); + "PROJCS[\"NAD83(2011) / Ohio North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "],PARAMETER[\"standard_parallel_1\",41.66666666666666],P"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud"); + "\",41.7],PARAMETER[\"standard_parallel_2\",40.4333333333"); add_srs_wkt (p, 9, - "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer"); + "3333],PARAMETER[\"latitude_of_origin\",39.66666666666666"); add_srs_wkt (p, 10, - "idian\",-122],PARAMETER[\"false_easting\",2000000],PARAM"); + "],PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]"); - p = add_epsg_def (filter, first, last, 26742, "epsg", 26742, - "NAD27 / California zone II"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 14, + "TY[\"EPSG\",\"6549\"]]"); + p = add_epsg_def (filter, first, last, 6550, "epsg", 6550, + "NAD83(2011) / Ohio South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); + "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, - "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219"); + "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, - "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD83(2011) / Ohio South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",39.83333333333334]"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.0333"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",38.33333333333334],PA"); + "3333333333],PARAMETER[\"standard_parallel_2\",38.7333333"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",37.66666666666666],PARAME"); + "3333333],PARAMETER[\"latitude_of_origin\",38],PARAMETER["); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-122],PARAMETER[\"false_easting"); + "\"central_meridian\",-82.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, - "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); + "600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, - "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"26742\"]]"); - p = add_epsg_def (filter, first, last, 26743, "epsg", 26743, - "NAD27 / California zone III"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6550\"]]"); + p = add_epsg_def (filter, first, last, 6551, "epsg", 6551, + "NAD83(2011) / Ohio South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); + "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, - "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_"); + "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, - "0=0 +datum=NAD27 +units=us-ft +no_defs"); + "80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD83(2011) / Ohio South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",37.06666666666667],PA"); + "\",40.03333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"central"); + "38.73333333333333],PARAMETER[\"latitude_of_origin\",38],"); add_srs_wkt (p, 10, - "_meridian\",-120.5],PARAMETER[\"false_easting\",2000000]"); + "PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, - ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); + "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, - ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\""); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 26744, "epsg", 26744, - "NAD27 / California zone IV"); + "[\"EPSG\",\"6551\"]]"); + p = add_epsg_def (filter, first, last, 6552, "epsg", 6552, + "NAD83(2011) / Oklahoma North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); + "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, - "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27"); + "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - " +units=us-ft +no_defs"); + " +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD83(2011) / Oklahoma North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\""); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "standard_parallel_2\",36],PARAMETER[\"latitude_of_origin"); + "6.76666666666667],PARAMETER[\"standard_parallel_2\",35.5"); add_srs_wkt (p, 9, - "\",35.33333333333334],PARAMETER[\"central_meridian\",-11"); + "6666666666667],PARAMETER[\"latitude_of_origin\",35],PARA"); add_srs_wkt (p, 10, - "9],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); + "METER[\"central_meridian\",-98],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, - "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, - "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26744\"]]"); - p = add_epsg_def (filter, first, last, 26745, "epsg", 26745, - "NAD27 / California zone V"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6552\"]]"); + p = add_epsg_def (filter, first, last, 6553, "epsg", 6553, + "NAD83(2011) / Oklahoma North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); + "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, - "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0="); + "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA"); + "PROJCS[\"NAD83(2011) / Oklahoma North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "],PARAMETER[\"standard_parallel_1\",35.46666666666667],P"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "ARAMETER[\"standard_parallel_2\",34.03333333333333],PARA"); + "el_1\",36.76666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "METER[\"latitude_of_origin\",33.5],PARAMETER[\"central_m"); + "2\",35.56666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "eridian\",-118],PARAMETER[\"false_easting\",2000000],PAR"); + "35],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); + "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, - "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]"); - p = add_epsg_def (filter, first, last, 26746, "epsg", 26746, - "NAD27 / California zone VI"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 14, + "TY[\"EPSG\",\"6553\"]]"); + p = add_epsg_def (filter, first, last, 6554, "epsg", 6554, + "NAD83(2011) / Oklahoma South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); + "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, - "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601."); + "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, - "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD83(2011) / Oklahoma South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",33.88333333333333]"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",32.78333333333333],PA"); + "5.23333333333333],PARAMETER[\"standard_parallel_2\",33.9"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",32.16666666666666],PARAME"); + "3333333333333],PARAMETER[\"latitude_of_origin\",33.33333"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-116.25],PARAMETER[\"false_east"); + "333333334],PARAMETER[\"central_meridian\",-98],PARAMETER"); add_srs_wkt (p, 11, - "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US"); + "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, - " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, - "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6554\"]"); add_srs_wkt (p, 14, - "PSG\",\"26746\"]]"); - p = add_epsg_def (filter, first, last, 26747, "epsg", 26747, - "NAD27 / California zone VII (deprecated)"); + "]"); + p = add_epsg_def (filter, first, last, 6555, "epsg", 6555, + "NAD83(2011) / Oklahoma South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); + "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, - "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); + "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, - "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27"); - add_proj4text (p, 3, - " +units=us-ft +no_defs"); + "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG"); + "PROJCS[\"NAD83(2011) / Oklahoma South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confo"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "1666666666666],PARAMETER[\"standard_parallel_2\",33.8666"); + "el_1\",35.23333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "6666666667],PARAMETER[\"latitude_of_origin\",34.13333333"); + "2\",33.93333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "333333],PARAMETER[\"central_meridian\",-118.333333333333"); + "33.33333333333334],PARAMETER[\"central_meridian\",-98],P"); add_srs_wkt (p, 11, - "3],PARAMETER[\"false_easting\",4186692.58],PARAMETER[\"f"); + "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "alse_northing\",416926.74],UNIT[\"US survey foot\",0.304"); + "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]"); - p = add_epsg_def (filter, first, last, 26748, "epsg", 26748, - "NAD27 / Arizona East"); + ",NORTH],AUTHORITY[\"EPSG\",\"6555\"]]"); + p = add_epsg_def (filter, first, last, 6556, "epsg", 6556, + "NAD83(2011) / Oregon Lambert"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); + "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, - "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); - add_proj4text (p, 2, - "t +no_defs"); + ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Oregon Lambert\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "-110.1666666666667],PARAMETER[\"scale_factor\",0.9999],P"); + "3],PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"l"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); + "atitude_of_origin\",41.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); + ",-120.5],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26748\"]]"); - p = add_epsg_def (filter, first, last, 26749, "epsg", 26749, - "NAD27 / Arizona Central"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"6556\"]]"); + p = add_epsg_def (filter, first, last, 6557, "epsg", 6557, + "NAD83(2011) / Oregon Lambert (ft)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); + "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, - "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); + ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no"); add_proj4text (p, 2, - "t +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD83(2011) / Oregon Lambert (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "n\",-111.9166666666667],PARAMETER[\"scale_factor\",0.999"); + "_1\",43],PARAMETER[\"standard_parallel_2\",45.5],PARAMET"); add_srs_wkt (p, 9, - "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "ER[\"latitude_of_origin\",41.75],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + "idian\",-120.5],PARAMETER[\"false_easting\",1312335.958]"); add_srs_wkt (p, 11, - "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + ",PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AU"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26749\"]]"); - p = add_epsg_def (filter, first, last, 26750, "epsg", 26750, - "NAD27 / Arizona West"); + "THORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + add_srs_wkt (p, 13, + "NORTH],AUTHORITY[\"EPSG\",\"6557\"]]"); + p = add_epsg_def (filter, first, last, 6558, "epsg", 6558, + "NAD83(2011) / Oregon North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); + "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, - "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); + "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - "defs"); + "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Oregon North\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46"); add_srs_wkt (p, 8, - "-113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMET"); + "],PARAMETER[\"standard_parallel_2\",44.33333333333334],P"); add_srs_wkt (p, 9, - "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); + "ARAMETER[\"latitude_of_origin\",43.66666666666666],PARAM"); add_srs_wkt (p, 10, - ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + "ETER[\"central_meridian\",-120.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "ing\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"26750\"]]"); - p = add_epsg_def (filter, first, last, 26751, "epsg", 26751, - "NAD27 / Arkansas North"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 13, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6558\"]]"); + p = add_epsg_def (filter, first, last, 6559, "epsg", 6559, + "NAD83(2011) / Oregon North (ft)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); + "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, - "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192"); + "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, - "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Oregon North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",36.23333333333333],PAR"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",34.93333333333333],PARAME"); + "\",46],PARAMETER[\"standard_parallel_2\",44.333333333333"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",34.33333333333334],PARAMETER["); + "34],PARAMETER[\"latitude_of_origin\",43.66666666666666],"); add_srs_wkt (p, 10, - "\"central_meridian\",-92],PARAMETER[\"false_easting\",20"); + "PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false"); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); + "_easting\",8202099.738],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + "UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS["); add_srs_wkt (p, 13, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6559\""); add_srs_wkt (p, 14, - "26751\"]]"); - p = add_epsg_def (filter, first, last, 26752, "epsg", 26752, - "NAD27 / Arkansas South"); + "]]"); + p = add_epsg_def (filter, first, last, 6560, "epsg", 6560, + "NAD83(2011) / Oregon South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); + "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, - ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0"); + "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Oregon South\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",34.76666666666667],PAR"); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",33.3],PARAMETER[\"latitud"); + "],PARAMETER[\"standard_parallel_2\",42.33333333333334],P"); add_srs_wkt (p, 9, - "e_of_origin\",32.66666666666666],PARAMETER[\"central_mer"); + "ARAMETER[\"latitude_of_origin\",41.66666666666666],PARAM"); add_srs_wkt (p, 10, - "idian\",-92],PARAMETER[\"false_easting\",2000000],PARAME"); + "ETER[\"central_meridian\",-120.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); + "ing\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, - "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, - "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]"); - p = add_epsg_def (filter, first, last, 26753, "epsg", 26753, - "NAD27 / Colorado North"); + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6560\"]]"); + p = add_epsg_def (filter, first, last, 6561, "epsg", 6561, + "NAD83(2011) / Oregon South (ft)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333"); + "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, - "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2"); + "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Oregon South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",39.71666666666667],PAR"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",40.78333333333333],PARAME"); + "\",44],PARAMETER[\"standard_parallel_2\",42.333333333333"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER["); + "34],PARAMETER[\"latitude_of_origin\",41.66666666666666],"); add_srs_wkt (p, 10, - "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); + "PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + "_easting\",4921259.843],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + "UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS["); add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6561\""); add_srs_wkt (p, 14, - ",\"26753\"]]"); - p = add_epsg_def (filter, first, last, 26754, "epsg", 26754, - "NAD27 / Colorado Central"); + "]]"); + p = add_epsg_def (filter, first, last, 6562, "epsg", 6562, + "NAD83(2011) / Pennsylvania North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); + "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, - "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum="); + "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, - "NAD27 +units=us-ft +no_defs"); + "=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD83(2011) / Pennsylvania North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin"); + "1\",41.95],PARAMETER[\"standard_parallel_2\",40.88333333"); add_srs_wkt (p, 9, - "\",37.83333333333334],PARAMETER[\"central_meridian\",-10"); + "333333],PARAMETER[\"latitude_of_origin\",40.166666666666"); add_srs_wkt (p, 10, - "5.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); + "66],PARAMETER[\"central_meridian\",-77.75],PARAMETER[\"f"); add_srs_wkt (p, 11, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + "alse_easting\",600000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]"); - p = add_epsg_def (filter, first, last, 26755, "epsg", 26755, - "NAD27 / Colorado South"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6562\"]]"); + p = add_epsg_def (filter, first, last, 6563, "epsg", 6563, + "NAD83(2011) / Pennsylvania North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); + "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, - "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2"); + "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Pennsylvania North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",37.23333333333333],PARAME"); + "rallel_1\",41.95],PARAMETER[\"standard_parallel_2\",40.8"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",36.66666666666666],PARAMETER["); + "8333333333333],PARAMETER[\"latitude_of_origin\",40.16666"); add_srs_wkt (p, 10, - "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); + "666666666],PARAMETER[\"central_meridian\",-77.75],PARAME"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, - ",\"26755\"]]"); - p = add_epsg_def (filter, first, last, 26756, "epsg", 26756, - "NAD27 / Connecticut"); + "H],AUTHORITY[\"EPSG\",\"6563\"]]"); + p = add_epsg_def (filter, first, last, 6564, "epsg", 6564, + "NAD83(2011) / Pennsylvania South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); + "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, - ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_"); + "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, - "0=0 +datum=NAD27 +units=us-ft +no_defs"); + "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Pennsylvania South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",41.86666666666667],PARAME"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_o"); + "1\",40.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "f_origin\",40.83333333333334],PARAMETER[\"central_meridi"); + ",39.93333333333333],PARAMETER[\"latitude_of_origin\",39."); add_srs_wkt (p, 10, - "an\",-72.75],PARAMETER[\"false_easting\",600000],PARAMET"); + "33333333333334],PARAMETER[\"central_meridian\",-77.75],P"); add_srs_wkt (p, 11, - "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); + "ARAMETER[\"false_easting\",600000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]"); - p = add_epsg_def (filter, first, last, 26757, "epsg", 26757, - "NAD27 / Delaware"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"6564\"]]"); + p = add_epsg_def (filter, first, last, 6565, "epsg", 6565, + "NAD83(2011) / Pennsylvania South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); + "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, - "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); + "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, - "-ft +no_defs"); + "y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor"); + "PROJCS[\"NAD83(2011) / Pennsylvania South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "titude_of_origin\",38],PARAMETER[\"central_meridian\",-7"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "5.41666666666667],PARAMETER[\"scale_factor\",0.999995],P"); + "rallel_1\",40.96666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); + "lel_2\",39.93333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); + "n\",39.33333333333334],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "7.75],PARAMETER[\"false_easting\",1968500],PARAMETER[\"f"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26757\"]]"); - p = add_epsg_def (filter, first, last, 26758, "epsg", 26758, - "NAD27 / Florida East"); + "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); + add_srs_wkt (p, 13, + "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 14, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6565\"]]"); + p = add_epsg_def (filter, first, last, 6566, "epsg", 6566, + "NAD83(2011) / Puerto Rico and Virgin Is."); add_proj4text (p, 0, - "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); + "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, - "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, - "=us-ft +no_defs"); + "x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Puerto Rico and Virgin Is.\",GEOG"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9999411"); + "rallel_1\",18.43333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "lel_2\",18.03333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + "n\",17.83333333333333],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 11, - "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "6.43333333333334],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26758\"]]"); + "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 14, + "RTH],AUTHORITY[\"EPSG\",\"6566\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_31.c b/src/spatialite/src/srsinit/epsg_inlined_31.c index c0ccb49..9646f99 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_31.c +++ b/src/spatialite/src/srsinit/epsg_inlined_31.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3692 +52,3442 @@ initialize_epsg_31 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 26759, "epsg", 26759, - "NAD27 / Florida West"); + p = add_epsg_def (filter, first, last, 6567, "epsg", 6567, + "NAD83(2011) / Rhode Island"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); + "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, - "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_def"); add_proj4text (p, 2, - "=us-ft +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Rhode Island\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",41.08333333"); add_srs_wkt (p, 8, - "ral_meridian\",-82],PARAMETER[\"scale_factor\",0.9999411"); + "333334],PARAMETER[\"central_meridian\",-71.5],PARAMETER["); add_srs_wkt (p, 9, - "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + "\"scale_factor\",0.99999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + ",100000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26759\"]]"); - p = add_epsg_def (filter, first, last, 26760, "epsg", 26760, - "NAD27 / Florida North"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6567\"]]"); + p = add_epsg_def (filter, first, last, 6568, "epsg", 6568, + "NAD83(2011) / Rhode Island (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); + "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, - "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); + "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +unit"); add_proj4text (p, 2, - "7 +units=us-ft +no_defs"); + "s=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / Rhode Island (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"stan"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.0"); add_srs_wkt (p, 8, - "dard_parallel_2\",29.58333333333333],PARAMETER[\"latitud"); + "8333333333334],PARAMETER[\"central_meridian\",-71.5],PAR"); add_srs_wkt (p, 9, - "e_of_origin\",29],PARAMETER[\"central_meridian\",-84.5],"); + "AMETER[\"scale_factor\",0.99999375],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); + "sting\",328083.3333],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"26760\"]]"); - p = add_epsg_def (filter, first, last, 26766, "epsg", 26766, - "NAD27 / Georgia East"); + "TY[\"EPSG\",\"6568\"]]"); + p = add_epsg_def (filter, first, last, 6569, "epsg", 6569, + "NAD83(2011) / South Carolina"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); + "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, - "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); + ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, - "t +no_defs"); + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / South Carolina\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "-82.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); + "4.83333333333334],PARAMETER[\"standard_parallel_2\",32.5"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); + "],PARAMETER[\"latitude_of_origin\",31.83333333333333],PA"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); + "RAMETER[\"central_meridian\",-81],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "ing\",609600],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26766\"]]"); - p = add_epsg_def (filter, first, last, 26767, "epsg", 26767, - "NAD27 / Georgia West"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 13, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6569\"]]"); + p = add_epsg_def (filter, first, last, 6570, "epsg", 6570, + "NAD83(2011) / South Carolina (ft)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); + "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, - "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); + ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, - "t +no_defs"); + "80 +units=ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / South Carolina (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "-84.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); + "_1\",34.83333333333334],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); + ",32.5],PARAMETER[\"latitude_of_origin\",31.8333333333333"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); + "3],PARAMETER[\"central_meridian\",-81],PARAMETER[\"false"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26767\"]]"); - p = add_epsg_def (filter, first, last, 26768, "epsg", 26768, - "NAD27 / Idaho East"); + "[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6570\"]]"); + p = add_epsg_def (filter, first, last, 6571, "epsg", 6571, + "NAD83(2011) / South Dakota North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); + "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, - "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0"); + "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / South Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "ral_meridian\",-112.1666666666667],PARAMETER[\"scale_fac"); + "1\",45.68333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "tor\",0.999947368],PARAMETER[\"false_easting\",500000],P"); + ",44.41666666666666],PARAMETER[\"latitude_of_origin\",43."); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "83333333333334],PARAMETER[\"central_meridian\",-100],PAR"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "AMETER[\"false_easting\",600000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 26769, "epsg", 26769, - "NAD27 / Idaho Central"); + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "6571\"]]"); + p = add_epsg_def (filter, first, last, 6572, "epsg", 6572, + "NAD83(2011) / South Dakota North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); + "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, - "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2"); + "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, - "7 +units=us-ft +no_defs"); + "0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / South Dakota North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",41.66666666666666],PARAMETER[\"c"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "entral_meridian\",-114],PARAMETER[\"scale_factor\",0.999"); + "rallel_1\",45.68333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "947368],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "lel_2\",44.41666666666666],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "n\",43.83333333333334],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "00],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]"); - p = add_epsg_def (filter, first, last, 26770, "epsg", 26770, - "NAD27 / Idaho West"); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 13, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 14, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6572\"]]"); + p = add_epsg_def (filter, first, last, 6573, "epsg", 6573, + "NAD83(2011) / South Dakota South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); + "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, - ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); + ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, - "nits=us-ft +no_defs"); + "_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / South Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "ral_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999"); + "1\",44.4],PARAMETER[\"standard_parallel_2\",42.833333333"); add_srs_wkt (p, 9, - "933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "33334],PARAMETER[\"latitude_of_origin\",42.3333333333333"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "4],PARAMETER[\"central_meridian\",-100.3333333333333],PA"); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "RAMETER[\"false_easting\",600000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]"); - p = add_epsg_def (filter, first, last, 26771, "epsg", 26771, - "NAD27 / Illinois East"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + add_srs_wkt (p, 13, + ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "6573\"]]"); + p = add_epsg_def (filter, first, last, 6574, "epsg", 6574, + "NAD83(2011) / South Dakota South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); + "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, - "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0"); + ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / South Dakota South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "entral_meridian\",-88.33333333333333],PARAMETER[\"scale_"); + "rallel_1\",44.4],PARAMETER[\"standard_parallel_2\",42.83"); add_srs_wkt (p, 9, - "factor\",0.999975],PARAMETER[\"false_easting\",500000],P"); + "333333333334],PARAMETER[\"latitude_of_origin\",42.333333"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "33333334],PARAMETER[\"central_meridian\",-100.3333333333"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "333],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]"); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 26772, "epsg", 26772, - "NAD27 / Illinois West"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6574\"]]"); + p = add_epsg_def (filter, first, last, 6575, "epsg", 6575, + "NAD83(2011) / Tennessee"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); + "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, - "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, - "um=NAD27 +units=us-ft +no_defs"); + "S80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / Tennessee\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166"); add_srs_wkt (p, 8, - "entral_meridian\",-90.16666666666667],PARAMETER[\"scale_"); + "6666666666],PARAMETER[\"standard_parallel_2\",35.25],PAR"); add_srs_wkt (p, 9, - "factor\",0.999941177],PARAMETER[\"false_easting\",500000"); + "AMETER[\"latitude_of_origin\",34.33333333333334],PARAMET"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); + "ER[\"central_meridian\",-86],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 26773, "epsg", 26773, - "NAD27 / Indiana East"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6575\"]]"); + p = add_epsg_def (filter, first, last, 6576, "epsg", 6576, + "NAD83(2011) / Tennessee (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); + "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, - "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "S80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Tennessee (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966"); + ",36.41666666666666],PARAMETER[\"standard_parallel_2\",35"); add_srs_wkt (p, 9, - "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + ".25],PARAMETER[\"latitude_of_origin\",34.33333333333334]"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + ",PARAMETER[\"central_meridian\",-86],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]"); - p = add_epsg_def (filter, first, last, 26774, "epsg", 26774, - "NAD27 / Indiana West"); + "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 14, + "EPSG\",\"6576\"]]"); + p = add_epsg_def (filter, first, last, 6577, "epsg", 6577, + "NAD83(2011) / Texas Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); + "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, - "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Texas Central\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",31"); add_srs_wkt (p, 8, - ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966"); + ".88333333333333],PARAMETER[\"standard_parallel_2\",30.11"); add_srs_wkt (p, 9, - "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + "666666666667],PARAMETER[\"latitude_of_origin\",29.666666"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "66666667],PARAMETER[\"central_meridian\",-100.3333333333"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "333],PARAMETER[\"false_easting\",700000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]"); - p = add_epsg_def (filter, first, last, 26775, "epsg", 26775, - "NAD27 / Iowa North"); + "se_northing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 14, + "TY[\"EPSG\",\"6577\"]]"); + p = add_epsg_def (filter, first, last, 6578, "epsg", 6578, + "NAD83(2011) / Texas Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); + "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, - "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0"); + "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=u"); + add_proj4text (p, 3, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / Texas Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",43.26666666666667],PARAMET"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",42.06666666666667],PARAMETER["); + "_1\",31.88333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "\"latitude_of_origin\",41.5],PARAMETER[\"central_meridia"); + ",30.11666666666667],PARAMETER[\"latitude_of_origin\",29."); add_srs_wkt (p, 10, - "n\",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "66666666666667],PARAMETER[\"central_meridian\",-100.3333"); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + "333333333],PARAMETER[\"false_easting\",2296583.333],PARA"); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + "METER[\"false_northing\",9842500.000000002],UNIT[\"US su"); add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]"); - p = add_epsg_def (filter, first, last, 26776, "epsg", 26776, - "NAD27 / Iowa South"); + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + add_srs_wkt (p, 14, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 15, + "\",\"6578\"]]"); + p = add_epsg_def (filter, first, last, 6579, "epsg", 6579, + "NAD83(2011) / Texas Centric Albers Equal Area"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); + "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, - "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0"); - add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / Texas Centric Albers Equal Area\""); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJE"); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",41.78333333333333],PARAMET"); + "CTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",40.61666666666667],PARAMETER["); + "parallel_1\",27.5],PARAMETER[\"standard_parallel_2\",35]"); add_srs_wkt (p, 9, - "\"latitude_of_origin\",40],PARAMETER[\"central_meridian\""); + ",PARAMETER[\"latitude_of_center\",18],PARAMETER[\"longit"); add_srs_wkt (p, 10, - ",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); + "ude_of_center\",-100],PARAMETER[\"false_easting\",150000"); add_srs_wkt (p, 11, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "0],PARAMETER[\"false_northing\",6000000],UNIT[\"metre\","); add_srs_wkt (p, 12, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]"); - p = add_epsg_def (filter, first, last, 26777, "epsg", 26777, - "NAD27 / Kansas North"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6579\"]]"); + p = add_epsg_def (filter, first, last, 6580, "epsg", 6580, + "NAD83(2011) / Texas Centric Lambert Conformal"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); + "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, - "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192"); - add_proj4text (p, 2, - "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Texas Centric Lambert Conformal\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJE"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",39.78333333333333],PARAME"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",38.71666666666667],PARAMETER"); + "ard_parallel_1\",27.5],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"c"); + ",35],PARAMETER[\"latitude_of_origin\",18],PARAMETER[\"ce"); add_srs_wkt (p, 10, - "entral_meridian\",-98],PARAMETER[\"false_easting\",20000"); + "ntral_meridian\",-100],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 11, - "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); + "00],PARAMETER[\"false_northing\",5000000],UNIT[\"metre\""); add_srs_wkt (p, 12, - "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); - add_srs_wkt (p, 14, - "77\"]]"); - p = add_epsg_def (filter, first, last, 26778, "epsg", 26778, - "NAD27 / Kansas South"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6580\"]]"); + p = add_epsg_def (filter, first, last, 6581, "epsg", 6581, + "NAD83(2011) / Texas North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); + "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, - "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21"); + "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +u"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD83(2011) / Texas North\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",38.56666666666667],PARAME"); + "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36."); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",37.26666666666667],PARAMETER"); + "18333333333333],PARAMETER[\"standard_parallel_2\",34.65]"); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); + ",PARAMETER[\"latitude_of_origin\",34],PARAMETER[\"centra"); add_srs_wkt (p, 10, - "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); + "l_meridian\",-101.5],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); + ",PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); - add_srs_wkt (p, 14, - "6778\"]]"); - p = add_epsg_def (filter, first, last, 26779, "epsg", 26779, - "NAD27 / Kentucky North"); + ",NORTH],AUTHORITY[\"EPSG\",\"6581\"]]"); + p = add_epsg_def (filter, first, last, 6582, "epsg", 6582, + "NAD83(2011) / Texas North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); + "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, - "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_"); + "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, - "0=0 +datum=NAD27 +units=us-ft +no_defs"); + "83998 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Texas North (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",37.96666666666667],PAR"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",38.96666666666667],PARAME"); + "1\",36.18333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer"); + ",34.65],PARAMETER[\"latitude_of_origin\",34],PARAMETER[\""); add_srs_wkt (p, 10, - "idian\",-84.25],PARAMETER[\"false_easting\",2000000],PAR"); + "central_meridian\",-101.5],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 11, - "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); + "56166.667],PARAMETER[\"false_northing\",3280833.333],UNI"); add_srs_wkt (p, 12, - "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]"); - p = add_epsg_def (filter, first, last, 26780, "epsg", 26780, - "NAD27 / Kentucky South"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 14, + "TY[\"EPSG\",\"6582\"]]"); + p = add_epsg_def (filter, first, last, 6583, "epsg", 6583, + "NAD83(2011) / Texas North Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333"); + "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, - "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2"); + "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "_0=2000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(2011) / Texas North Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",36.73333333333333],PAR"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",37.93333333333333],PARAME"); + "_1\",33.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); + ",32.13333333333333],PARAMETER[\"latitude_of_origin\",31."); add_srs_wkt (p, 10, - "\"central_meridian\",-85.75],PARAMETER[\"false_easting\""); + "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + "RAMETER[\"false_easting\",600000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, - "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + "hing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, - ",\"26780\"]]"); - p = add_epsg_def (filter, first, last, 26781, "epsg", 26781, - "NAD27 / Louisiana North"); + "SG\",\"6583\"]]"); + p = add_epsg_def (filter, first, last, 6584, "epsg", 6584, + "NAD83(2011) / Texas North Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666"); + "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, - "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21"); + "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD83(2011) / Texas North Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",31.16666666666667],PAR"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",32.66666666666666],PARAME"); + "rallel_1\",33.96666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",30.66666666666667],PARAMETER["); + "lel_2\",32.13333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "\"central_meridian\",-92.5],PARAMETER[\"false_easting\","); + "n\",31.66666666666667],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 11, - "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + "8.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + "lse_northing\",6561666.667],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, - "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, - "\"26781\"]]"); - p = add_epsg_def (filter, first, last, 26782, "epsg", 26782, - "NAD27 / Louisiana South"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6584\"]]"); + p = add_epsg_def (filter, first, last, 6585, "epsg", 6585, + "NAD83(2011) / Texas South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666"); + "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, - "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0"); + "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD83(2011) / Texas South\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",29.3],PARAMETER[\"stan"); + "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27."); add_srs_wkt (p, 8, - "dard_parallel_2\",30.7],PARAMETER[\"latitude_of_origin\""); + "83333333333333],PARAMETER[\"standard_parallel_2\",26.166"); add_srs_wkt (p, 9, - ",28.66666666666667],PARAMETER[\"central_meridian\",-91.3"); + "66666666667],PARAMETER[\"latitude_of_origin\",25.6666666"); add_srs_wkt (p, 10, - "3333333333333],PARAMETER[\"false_easting\",2000000],PARA"); + "6666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + "[\"false_easting\",300000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + "5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]"); - p = add_epsg_def (filter, first, last, 26783, "epsg", 26783, - "NAD27 / Maine East"); + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "6585\"]]"); + p = add_epsg_def (filter, first, last, 6586, "epsg", 6586, + "NAD83(2011) / Texas South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9"); + "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, - "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); + "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, - "-ft +no_defs"); + "00000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / Texas South (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); + "1\",27.83333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + ",26.16666666666667],PARAMETER[\"latitude_of_origin\",25."); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); + "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "RAMETER[\"false_easting\",984250.0000000002],PARAMETER[\""); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"26783\"]]"); - p = add_epsg_def (filter, first, last, 26784, "epsg", 26784, - "NAD27 / Maine West"); + "false_northing\",16404166.667],UNIT[\"US survey foot\",0"); + add_srs_wkt (p, 13, + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + add_srs_wkt (p, 14, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6586\"]]"); + p = add_epsg_def (filter, first, last, 6587, "epsg", 6587, + "NAD83(2011) / Texas South Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat"); + "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, - "um=NAD27 +units=us-ft +no_defs"); + "=4000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(2011) / Texas South Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); + "_1\",30.28333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "tor\",0.999966667],PARAMETER[\"false_easting\",500000],P"); + ",28.38333333333333],PARAMETER[\"latitude_of_origin\",27."); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "83333333333333],PARAMETER[\"central_meridian\",-99],PARA"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "METER[\"false_easting\",600000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]"); + "ng\",4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 26785, "epsg", 26785, - "NAD27 / Maryland"); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"6587\"]]"); + p = add_epsg_def (filter, first, last, 6588, "epsg", 6588, + "NAD83(2011) / Texas South Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333"); + "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, - "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2"); + "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, - "7 +units=us-ft +no_defs"); + "=3999999.9998984 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor"); + "PROJCS[\"NAD83(2011) / Texas South Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); + "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, - "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); + "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, - "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "TER[\"standard_parallel_1\",38.3],PARAMETER[\"standard_p"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "arallel_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8"); + "rallel_1\",30.28333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "3333333333334],PARAMETER[\"central_meridian\",-77],PARAM"); + "lel_2\",28.38333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "ETER[\"false_easting\",800000.0000000002],PARAMETER[\"fa"); + "n\",27.83333333333333],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 11, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + "9],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + "e_northing\",13123333.333],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26785\"]]"); - p = add_epsg_def (filter, first, last, 26786, "epsg", 26786, - "NAD27 / Massachusetts Mainland"); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 14, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6588\"]]"); + p = add_epsg_def (filter, first, last, 6589, "epsg", 6589, + "NAD83(2011) / Vermont"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333"); + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, - "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0"); - add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27"); + "PROJCS[\"NAD83(2011) / Vermont\",GEOGCS[\"NAD83(2011)\","); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); + "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S"); add_srs_wkt (p, 2, - " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",41.7166666666666"); + "tor\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER["); add_srs_wkt (p, 8, - "7],PARAMETER[\"standard_parallel_2\",42.68333333333333],"); + "\"central_meridian\",-72.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); + ".999964286],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, - "_meridian\",-71.5],PARAMETER[\"false_easting\",600000],P"); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 12, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); - add_srs_wkt (p, 13, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]"); - add_srs_wkt (p, 14, - "]"); - p = add_epsg_def (filter, first, last, 26787, "epsg", 26787, - "NAD27 / Massachusetts Island"); + "ITY[\"EPSG\",\"6589\"]]"); + p = add_epsg_def (filter, first, last, 6590, "epsg", 6590, + "NAD83(2011) / Vermont (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333"); + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, - "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0"); + "=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_de"); add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\""); + "PROJCS[\"NAD83(2011) / Vermont (ftUS)\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",41.2833333333333"); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARA"); add_srs_wkt (p, 8, - "3],PARAMETER[\"standard_parallel_2\",41.48333333333333],"); + "METER[\"central_meridian\",-72.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); + "or\",0.999964286],PARAMETER[\"false_easting\",1640416.66"); add_srs_wkt (p, 10, - "_meridian\",-70.5],PARAMETER[\"false_easting\",200000],P"); + "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 12, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"659"); add_srs_wkt (p, 13, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]"); - add_srs_wkt (p, 14, - "]"); - p = add_epsg_def (filter, first, last, 26791, "epsg", 26791, - "NAD27 / Minnesota North"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 6591, "epsg", 6591, + "NAD83(2011) / Virginia Lambert"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333"); + "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21"); - add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD83(2011) / Virginia Lambert\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",47.03333333333333],PAR"); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",48.63333333333333],PARAME"); + ",37],PARAMETER[\"standard_parallel_2\",39.5],PARAMETER[\""); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer"); + "latitude_of_origin\",36],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, - "idian\",-93.1],PARAMETER[\"false_easting\",2000000],PARA"); + "-79.5],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]"); - p = add_epsg_def (filter, first, last, 26792, "epsg", 26792, - "NAD27 / Minnesota Central"); + "\",\"6591\"]]"); + p = add_epsg_def (filter, first, last, 6592, "epsg", 6592, + "NAD83(2011) / Virginia North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4"); + "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); + ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, - "27 +units=us-ft +no_defs"); + "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA"); + "PROJCS[\"NAD83(2011) / Virginia North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "],PARAMETER[\"standard_parallel_1\",45.61666666666667],P"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "ARAMETER[\"standard_parallel_2\",47.05],PARAMETER[\"lati"); + "9.2],PARAMETER[\"standard_parallel_2\",38.03333333333333"); add_srs_wkt (p, 9, - "tude_of_origin\",45],PARAMETER[\"central_meridian\",-94."); + "],PARAMETER[\"latitude_of_origin\",37.66666666666666],PA"); add_srs_wkt (p, 10, - "25],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal"); + "RAMETER[\"central_meridian\",-78.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "sting\",3500000],PARAMETER[\"false_northing\",2000000],U"); add_srs_wkt (p, 12, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]"); - p = add_epsg_def (filter, first, last, 26793, "epsg", 26793, - "NAD27 / Minnesota South"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6592\"]]"); + p = add_epsg_def (filter, first, last, 6593, "epsg", 6593, + "NAD83(2011) / Virginia North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666"); + "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, - "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +"); + ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, - "datum=NAD27 +units=us-ft +no_defs"); + "000000.0001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD83(2011) / Virginia North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",43.78333333333333],PAR"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",45.21666666666667],PARAME"); + "el_1\",39.2],PARAMETER[\"standard_parallel_2\",38.033333"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",43],PARAMETER[\"central_merid"); + "33333333],PARAMETER[\"latitude_of_origin\",37.6666666666"); add_srs_wkt (p, 10, - "ian\",-94],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "6666],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\""); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + "false_easting\",11482916.667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + "\",6561666.667],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]"); - p = add_epsg_def (filter, first, last, 26794, "epsg", 26794, - "NAD27 / Mississippi East"); + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6593\"]]"); + p = add_epsg_def (filter, first, last, 6594, "epsg", 6594, + "NAD83(2011) / Virginia South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, - "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N"); + "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, - "AD27 +units=us-ft +no_defs"); + "y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD83(2011) / Virginia South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, - "central_meridian\",-88.83333333333333],PARAMETER[\"scale"); + "7.96666666666667],PARAMETER[\"standard_parallel_2\",36.7"); add_srs_wkt (p, 9, - "_factor\",0.99996],PARAMETER[\"false_easting\",500000],P"); + "6666666666667],PARAMETER[\"latitude_of_origin\",36.33333"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "333333334],PARAMETER[\"central_meridian\",-78.5],PARAMET"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "ER[\"false_easting\",3500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]"); + "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 26795, "epsg", 26795, - "NAD27 / Mississippi West"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"6594\"]]"); + p = add_epsg_def (filter, first, last, 6595, "epsg", 6595, + "NAD83(2011) / Virginia South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, - "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft "); + add_proj4text (p, 3, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD83(2011) / Virginia South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",30.5],PARAMETER[\"central_merid"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9"); + "el_1\",37.96666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "99941177],PARAMETER[\"false_easting\",500000],PARAMETER["); + "2\",36.76666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); + "36.33333333333334],PARAMETER[\"central_meridian\",-78.5]"); add_srs_wkt (p, 11, - "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); + ",PARAMETER[\"false_easting\",11482916.667],PARAMETER[\"f"); add_srs_wkt (p, 12, - "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]"); - p = add_epsg_def (filter, first, last, 26796, "epsg", 26796, - "NAD27 / Missouri East"); + "alse_northing\",3280833.333],UNIT[\"US survey foot\",0.3"); + add_srs_wkt (p, 13, + "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 14, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6595\"]]"); + p = add_epsg_def (filter, first, last, 6596, "epsg", 6596, + "NAD83(2011) / Washington North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, - "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / Washington North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c"); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "entral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99"); + ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 9, - "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + ".5],PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"cen"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "tral_meridian\",-120.8333333333333],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]"); - p = add_epsg_def (filter, first, last, 26797, "epsg", 26797, - "NAD27 / Missouri Central"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); + add_srs_wkt (p, 13, + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6596\"]]"); + p = add_epsg_def (filter, first, last, 6597, "epsg", 6597, + "NAD83(2011) / Washington North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, - "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + " +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD83(2011) / Washington North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",35.83333333333334],PARAMETER[\""); + "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, - "central_meridian\",-92.5],PARAMETER[\"scale_factor\",0.9"); + "lel_1\",48.73333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, - "99933333],PARAMETER[\"false_easting\",500000],PARAMETER["); + "_2\",47.5],PARAMETER[\"latitude_of_origin\",47],PARAMETE"); add_srs_wkt (p, 10, - "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); + "R[\"central_meridian\",-120.8333333333333],PARAMETER[\"f"); add_srs_wkt (p, 11, - "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); + "alse_easting\",1640416.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]"); - p = add_epsg_def (filter, first, last, 26798, "epsg", 26798, - "NAD27 / Missouri West"); + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"6597\"]]"); + p = add_epsg_def (filter, first, last, 6598, "epsg", 6598, + "NAD83(2011) / Washington South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); + "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, - "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD83(2011) / Washington South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",36.16666666666666],PARAMETER[\"c"); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "entral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99"); + ",47.33333333333334],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 9, - "9941177],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + ".83333333333334],PARAMETER[\"latitude_of_origin\",45.333"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "33333333334],PARAMETER[\"central_meridian\",-120.5],PARA"); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]"); - p = add_epsg_def (filter, first, last, 26799, "epsg", 26799, - "NAD27 / California zone VII"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); + add_srs_wkt (p, 14, + "598\"]]"); + p = add_epsg_def (filter, first, last, 6599, "epsg", 6599, + "NAD83(2011) / Washington South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); + "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, - "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); + "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, - "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2"); - add_proj4text (p, 3, - "7 +units=us-ft +no_defs"); + "001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD83(2011) / Washington South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",34.41666666666666]"); + "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",33.86666666666667],PA"); + "lel_1\",47.33333333333334],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",34.13333333333333],PARAME"); + "_2\",45.83333333333334],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-118.3333333333333],PARAMETER[\""); + ",45.33333333333334],PARAMETER[\"central_meridian\",-120."); add_srs_wkt (p, 11, - "false_easting\",4186692.58],PARAMETER[\"false_northing\""); + "5],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\""); add_srs_wkt (p, 12, - ",4160926.74],UNIT[\"US survey foot\",0.3048006096012192,"); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, - "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, - ",NORTH],AUTHORITY[\"EPSG\",\"26799\"]]"); - p = add_epsg_def (filter, first, last, 26801, "epsg", 26801, - "NAD Michigan / Michigan East"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6599\"]]"); + p = add_epsg_def (filter, first, last, 6600, "epsg", 6600, + "NAD83(2011) / West Virginia North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548"); - add_proj4text (p, 2, - "896 +b=6356826.621488444 +units=us-ft +no_defs"); + "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan East\",GEOGCS[\"NAD27 M"); + "PROJCS[\"NAD83(2011) / West Virginia North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-83.66666666666667],PARAMETER["); + "_1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAME"); add_srs_wkt (p, 9, - "\"scale_factor\",0.999942857],PARAMETER[\"false_easting\""); + "TER[\"latitude_of_origin\",38.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + "idian\",-79.5],PARAMETER[\"false_easting\",600000],PARAM"); add_srs_wkt (p, 11, - "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, - "\"26801\"]]"); - p = add_epsg_def (filter, first, last, 26802, "epsg", 26802, - "NAD Michigan / Michigan Old Central"); + "HORITY[\"EPSG\",\"6600\"]]"); + p = add_epsg_def (filter, first, last, 6601, "epsg", 6601, + "NAD83(2011) / West Virginia North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); - add_proj4text (p, 2, - "26.621488444 +units=us-ft +no_defs"); + "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan Old Central\",GEOGCS[\""); + "PROJCS[\"NAD83(2011) / West Virginia North (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Cla"); + "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, - "rke 1866 Michigan\",6378450.047548896,294.9786971646747,"); + "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\""); + "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Tran"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.5"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"sca"); + "rallel_1\",40.25],PARAMETER[\"standard_parallel_2\",39],"); add_srs_wkt (p, 9, - "le_factor\",0.999909091],PARAMETER[\"false_easting\",500"); + "PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"centr"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); + "al_meridian\",-79.5],PARAMETER[\"false_easting\",1968500"); add_srs_wkt (p, 11, - "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); + "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, - "802\"]]"); - p = add_epsg_def (filter, first, last, 26803, "epsg", 26803, - "NAD Michigan / Michigan West"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6601\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 6602, "epsg", 6602, + "NAD83(2011) / West Virginia South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "26.621488444 +units=us-ft +no_defs"); + " +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan West\",GEOGCS[\"NAD27 M"); + "PROJCS[\"NAD83(2011) / West Virginia South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-88.75],PARAMETER[\"scale_fact"); + "_1\",38.88333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "or\",0.999909091],PARAMETER[\"false_easting\",500000],PA"); + ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "asting\",600000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26803\"]]"); - p = add_epsg_def (filter, first, last, 26811, "epsg", 26811, - "NAD Michigan / Michigan North"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6602\"]]"); + p = add_epsg_def (filter, first, last, 6603, "epsg", 6603, + "NAD83(2011) / West Virginia South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192"); + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 "); - add_proj4text (p, 3, - "+units=us-ft +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan North\",GEOGCS[\"NAD27 "); + "PROJCS[\"NAD83(2011) / West Virginia South (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18"); + "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, - "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR"); + "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR"); + "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 7, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, - "5.48333333333333],PARAMETER[\"standard_parallel_2\",47.0"); + "rallel_1\",38.88333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, - "8333333333334],PARAMETER[\"latitude_of_origin\",44.78333"); + "lel_2\",37.48333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, - "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER"); + "n\",37],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 11, - "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); + "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 12, - ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, - "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, - "AUTHORITY[\"EPSG\",\"26811\"]]"); - p = add_epsg_def (filter, first, last, 26812, "epsg", 26812, - "NAD Michigan / Michigan Central"); + "HORITY[\"EPSG\",\"6603\"]]"); + p = add_epsg_def (filter, first, last, 6604, "epsg", 6604, + "NAD83(2011) / Wisconsin Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43"); + "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, - ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21"); + "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, - "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844"); - add_proj4text (p, 3, - "4 +units=us-ft +no_defs"); + "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan Central\",GEOGCS[\"NAD2"); + "PROJCS[\"NAD83(2011) / Wisconsin Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "7 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke "); + "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "1866 Michigan\",6378450.047548896,294.9786971646747,AUTH"); + "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "ORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],"); + ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); + "759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 8, - ",44.18333333333333],PARAMETER[\"standard_parallel_2\",45"); + "METER[\"standard_parallel_1\",45.5],PARAMETER[\"standard"); add_srs_wkt (p, 9, - ".7],PARAMETER[\"latitude_of_origin\",43.31666666666667],"); + "_parallel_2\",44.25],PARAMETER[\"latitude_of_origin\",43"); add_srs_wkt (p, 10, - "PARAMETER[\"central_meridian\",-84.33333333333333],PARAM"); + ".83333333333334],PARAMETER[\"central_meridian\",-90],PAR"); add_srs_wkt (p, 11, - "ETER[\"false_easting\",2000000],PARAMETER[\"false_northi"); + "AMETER[\"false_easting\",600000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, - "TH],AUTHORITY[\"EPSG\",\"26812\"]]"); - p = add_epsg_def (filter, first, last, 26813, "epsg", 26813, - "NAD Michigan / Michigan South"); + "6604\"]]"); + p = add_epsg_def (filter, first, last, 6605, "epsg", 6605, + "NAD83(2011) / Wisconsin Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41"); + "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, - ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0"); + "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, - "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f"); - add_proj4text (p, 3, - "t +no_defs"); + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD Michigan / Michigan South\",GEOGCS[\"NAD27 "); + "PROJCS[\"NAD83(2011) / Wisconsin Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18"); + "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, - "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR"); + "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR"); + "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, - "2.1],PARAMETER[\"standard_parallel_2\",43.66666666666666"); + "llel_1\",45.5],PARAMETER[\"standard_parallel_2\",44.25],"); add_srs_wkt (p, 9, - "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen"); + "PARAMETER[\"latitude_of_origin\",43.83333333333334],PARA"); add_srs_wkt (p, 10, - "tral_meridian\",-84.33333333333333],PARAMETER[\"false_ea"); + "METER[\"central_meridian\",-90],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, - "sting\",2000000],PARAMETER[\"false_northing\",0],UNIT[\""); + "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, - "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, - "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, - "EPSG\",\"26813\"]]"); - p = add_epsg_def (filter, first, last, 26814, "epsg", 26814, - "NAD83 / Maine East (ftUS) (deprecated)"); + "G\",\"6605\"]]"); + p = add_epsg_def (filter, first, last, 6606, "epsg", 6606, + "NAD83(2011) / Wisconsin North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, - "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); + add_proj4text (p, 2, + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS"); + "PROJCS[\"NAD83(2011) / Wisconsin North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "3.66666666666666],PARAMETER[\"central_meridian\",-68.5],"); + ",46.76666666666667],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); + ".56666666666667],PARAMETER[\"latitude_of_origin\",45.166"); add_srs_wkt (p, 10, - "ting\",300000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "66666666666],PARAMETER[\"central_meridian\",-90],PARAMET"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]"); - p = add_epsg_def (filter, first, last, 26815, "epsg", 26815, - "NAD83 / Maine West (ftUS) (deprecated)"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 13, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6606\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 6607, "epsg", 6607, + "NAD83(2011) / Wisconsin North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); + "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, - "nits=m +no_defs"); + "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS"); + "PROJCS[\"NAD83(2011) / Wisconsin North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "2.83333333333334],PARAMETER[\"central_meridian\",-70.166"); + "el_1\",46.76666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR"); + "2\",45.56666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "AMETER[\"false_easting\",900000],PARAMETER[\"false_north"); + "45.16666666666666],PARAMETER[\"central_meridian\",-90],P"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, - "26815\"]]"); - p = add_epsg_def (filter, first, last, 26819, "epsg", 26819, - "NAD83 / Minnesota North (ftUS) (deprecated)"); + "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 14, + ",NORTH],AUTHORITY[\"EPSG\",\"6607\"]]"); + p = add_epsg_def (filter, first, last, 6608, "epsg", 6608, + "NAD83(2011) / Wisconsin South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "00101601 +y_0=99999.99998984 +datum=NAD83 +units=m +no_d"); - add_proj4text (p, 3, - "efs"); + " +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G"); + "PROJCS[\"NAD83(2011) / Wisconsin South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); + "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, - "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); + "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, - "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, - "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); + "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); + "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "parallel_1\",48.63333333333333],PARAMETER[\"standard_par"); + ",44.06666666666667],PARAMETER[\"standard_parallel_2\",42"); add_srs_wkt (p, 9, - "allel_2\",47.03333333333333],PARAMETER[\"latitude_of_ori"); + ".73333333333333],PARAMETER[\"latitude_of_origin\",42],PA"); add_srs_wkt (p, 10, - "gin\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAME"); + "RAMETER[\"central_meridian\",-90],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "TER[\"false_easting\",800000.0000101601],PARAMETER[\"fal"); + "ing\",600000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, - "se_northing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 14, - "AUTHORITY[\"EPSG\",\"26819\"]]"); - p = add_epsg_def (filter, first, last, 26820, "epsg", 26820, - "NAD83 / Minnesota Central (ftUS) (deprecated)"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6608\"]]"); + p = add_epsg_def (filter, first, last, 6609, "epsg", 6609, + "NAD83(2011) / Wisconsin South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); + "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "84 +datum=NAD83 +units=m +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\""); + "PROJCS[\"NAD83(2011) / Wisconsin South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); + "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, - ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); + "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, - "_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\",4"); + "el_1\",44.06666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, - "5.61666666666667],PARAMETER[\"latitude_of_origin\",45],P"); + "2\",42.73333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, - "ARAMETER[\"central_meridian\",-94.25],PARAMETER[\"false_"); + "42],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "easting\",800000.0000101601],PARAMETER[\"false_northing\""); + "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, - ",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, - "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, - "PSG\",\"26820\"]]"); - p = add_epsg_def (filter, first, last, 26821, "epsg", 26821, - "NAD83 / Minnesota South (ftUS) (deprecated)"); + "TY[\"EPSG\",\"6609\"]]"); + p = add_epsg_def (filter, first, last, 6610, "epsg", 6610, + "NAD83(2011) / Wisconsin Transverse Mercator"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); - add_proj4text (p, 2, - "99.99998984 +datum=NAD83 +units=m +no_defs"); + "_0=-4480000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G"); + "PROJCS[\"NAD83(2011) / Wisconsin Transverse Mercator\",G"); add_srs_wkt (p, 1, - "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); + "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, - "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); + "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, - "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); + "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTI"); add_srs_wkt (p, 7, - "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "parallel_1\",45.21666666666667],PARAMETER[\"standard_par"); + "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); add_srs_wkt (p, 9, - "allel_2\",43.78333333333333],PARAMETER[\"latitude_of_ori"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",52000"); add_srs_wkt (p, 10, - "gin\",43],PARAMETER[\"central_meridian\",-94],PARAMETER["); + "0],PARAMETER[\"false_northing\",-4480000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "\"false_easting\",800000.0000101601],PARAMETER[\"false_n"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "orthing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); - add_srs_wkt (p, 14, - "ORITY[\"EPSG\",\"26821\"]]"); - p = add_epsg_def (filter, first, last, 26822, "epsg", 26822, - "NAD83 / Nebraska (ftUS) (deprecated)"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6610\"]]"); + p = add_epsg_def (filter, first, last, 6611, "epsg", 6611, + "NAD83(2011) / Wyoming East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +datum=NAD83 +u"); - add_proj4text (p, 2, - "nits=m +no_defs"); + "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83(2011) / Wyoming East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); add_srs_wkt (p, 8, - "_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER"); + "ETER[\"central_meridian\",-105.1666666666667],PARAMETER["); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",39.83333333333334],PARAMETER[\"c"); + "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "entral_meridian\",-100],PARAMETER[\"false_easting\",5000"); + "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "00.0000101601],PARAMETER[\"false_northing\",0],UNIT[\"me"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); - add_srs_wkt (p, 13, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]"); - p = add_epsg_def (filter, first, last, 26823, "epsg", 26823, - "NAD83 / West Virginia North (ftUS) (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6611\"]]"); + p = add_epsg_def (filter, first, last, 6612, "epsg", 6612, + "NAD83(2011) / Wyoming East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, - "5 +x_0=1968500 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)"); + "PROJCS[\"NAD83(2011) / Wyoming East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, - "ard_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\""); + "],PARAMETER[\"central_meridian\",-105.1666666666667],PAR"); add_srs_wkt (p, 9, - ",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\""); + "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "central_meridian\",-79.5],PARAMETER[\"false_easting\",19"); + "ting\",656166.6667],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, - "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"26823\"]]"); - p = add_epsg_def (filter, first, last, 26824, "epsg", 26824, - "NAD83 / West Virginia South (ftUS) (deprecated)"); + "[\"EPSG\",\"6612\"]]"); + p = add_epsg_def (filter, first, last, 6613, "epsg", 6613, + "NAD83(2011) / Wyoming East Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +datum=NAD8"); + "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, - "3 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)"); + "PROJCS[\"NAD83(2011) / Wyoming East Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, - "ard_parallel_1\",38.88333333333333],PARAMETER[\"standard"); + "],PARAMETER[\"central_meridian\",-107.3333333333333],PAR"); add_srs_wkt (p, 9, - "_parallel_2\",37.48333333333333],PARAMETER[\"latitude_of"); + "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "_origin\",37],PARAMETER[\"central_meridian\",-81],PARAME"); + "ting\",400000],PARAMETER[\"false_northing\",100000],UNIT"); add_srs_wkt (p, 11, - "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 12, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); - add_srs_wkt (p, 13, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); - add_srs_wkt (p, 14, - "824\"]]"); - p = add_epsg_def (filter, first, last, 26825, "epsg", 26825, - "NAD83(HARN) / Maine East (ftUS) (deprecated)"); + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6613\"]]"); + p = add_epsg_def (filter, first, last, 6614, "epsg", 6614, + "NAD83(2011) / Wyoming East Central (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, - "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); + "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, - ",0 +units=m +no_defs"); + "s=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\","); + "PROJCS[\"NAD83(2011) / Wyoming East Central (ftUS)\",GEO"); add_srs_wkt (p, 1, - "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); + "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); + "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO"); add_srs_wkt (p, 7, - "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "latitude_of_origin\",43.66666666666666],PARAMETER[\"cent"); + "n\",40.5],PARAMETER[\"central_meridian\",-107.3333333333"); add_srs_wkt (p, 9, - "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); + "333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"f"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); + "alse_easting\",1312333.3333],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + ",328083.3333],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, - ",\"26825\"]]"); - p = add_epsg_def (filter, first, last, 26826, "epsg", 26826, - "NAD83(HARN) / Maine West (ftUS) (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"6614\"]]"); + p = add_epsg_def (filter, first, last, 6615, "epsg", 6615, + "NAD83(2011) / Wyoming West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); + "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\","); + "PROJCS[\"NAD83(2011) / Wyoming West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); add_srs_wkt (p, 8, - "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); + "ETER[\"central_meridian\",-110.0833333333333],PARAMETER["); add_srs_wkt (p, 9, - "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); + "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "tor\",0.999966667],PARAMETER[\"false_easting\",900000],P"); + "800000],PARAMETER[\"false_northing\",100000],UNIT[\"metr"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 13, - ",AUTHORITY[\"EPSG\",\"26826\"]]"); - p = add_epsg_def (filter, first, last, 26830, "epsg", 26830, - "NAD83(HARN) / Minnesota North (ftUS) (deprecated)"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6615\"]]"); + p = add_epsg_def (filter, first, last, 6616, "epsg", 6616, + "NAD83(2011) / Wyoming West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, - "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); - add_proj4text (p, 3, - ",0,0,0,0 +units=m +no_defs"); + "lps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate"); + "PROJCS[\"NAD83(2011) / Wyoming West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, - "],PARAMETER[\"standard_parallel_1\",48.63333333333333],P"); + "],PARAMETER[\"central_meridian\",-110.0833333333333],PAR"); add_srs_wkt (p, 9, - "ARAMETER[\"standard_parallel_2\",47.03333333333333],PARA"); + "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "METER[\"latitude_of_origin\",46.5],PARAMETER[\"central_m"); + "ting\",2624666.6667],PARAMETER[\"false_northing\",328083"); add_srs_wkt (p, 11, - "eridian\",-93.1],PARAMETER[\"false_easting\",800000.0000"); + ".3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 12, - "101601],PARAMETER[\"false_northing\",99999.99998984],UNI"); + "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); - add_srs_wkt (p, 14, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]"); - p = add_epsg_def (filter, first, last, 26831, "epsg", 26831, - "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)"); + "H],AUTHORITY[\"EPSG\",\"6616\"]]"); + p = add_epsg_def (filter, first, last, 6617, "epsg", 6617, + "NAD83(2011) / Wyoming West Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); - add_proj4text (p, 2, - "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca"); + "PROJCS[\"NAD83(2011) / Wyoming West Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac"); + "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298."); + "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "SG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\""); + "],PARAMETER[\"central_meridian\",-108.75],PARAMETER[\"sc"); add_srs_wkt (p, 9, - "standard_parallel_2\",45.61666666666667],PARAMETER[\"lat"); + "ale_factor\",0.9999375],PARAMETER[\"false_easting\",6000"); add_srs_wkt (p, 10, - "itude_of_origin\",45],PARAMETER[\"central_meridian\",-94"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - ".25],PARAMETER[\"false_easting\",800000.0000101601],PARA"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, - "METER[\"false_northing\",99999.99998984],UNIT[\"metre\","); - add_srs_wkt (p, 13, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); - add_srs_wkt (p, 14, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26831\"]]"); - p = add_epsg_def (filter, first, last, 26832, "epsg", 26832, - "NAD83(HARN) / Minnesota South (ftUS) (deprecated)"); + "ORTH],AUTHORITY[\"EPSG\",\"6617\"]]"); + p = add_epsg_def (filter, first, last, 6618, "epsg", 6618, + "NAD83(2011) / Wyoming West Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); - add_proj4text (p, 2, - "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); - add_proj4text (p, 3, - " +no_defs"); + "=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate"); + "PROJCS[\"NAD83(2011) / Wyoming West Central (ftUS)\",GEO"); add_srs_wkt (p, 1, - "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); + "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, - "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); + "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, - "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); + "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); + "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO"); add_srs_wkt (p, 7, - "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "],PARAMETER[\"standard_parallel_1\",45.21666666666667],P"); + "n\",40.5],PARAMETER[\"central_meridian\",-108.75],PARAME"); add_srs_wkt (p, 9, - "ARAMETER[\"standard_parallel_2\",43.78333333333333],PARA"); + "TER[\"scale_factor\",0.9999375],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "METER[\"latitude_of_origin\",43],PARAMETER[\"central_mer"); + "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, - "idian\",-94],PARAMETER[\"false_easting\",800000.00001016"); + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, - "01],PARAMETER[\"false_northing\",99999.99998984],UNIT[\""); + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); - add_srs_wkt (p, 14, - ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]"); - p = add_epsg_def (filter, first, last, 26833, "epsg", 26833, - "NAD83(HARN) / Nebraska (ftUS) (deprecated)"); + "G\",\"6618\"]]"); + p = add_epsg_def (filter, first, last, 6619, "epsg", 6619, + "NAD83(2011) / Utah Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); + "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE"); + "PROJCS[\"NAD83(2011) / Utah Central\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, - "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen"); + "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, - "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); + "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); + "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40"); add_srs_wkt (p, 8, - "METER[\"standard_parallel_1\",43],PARAMETER[\"standard_p"); + ".65],PARAMETER[\"standard_parallel_2\",39.01666666666667"); add_srs_wkt (p, 9, - "arallel_2\",40],PARAMETER[\"latitude_of_origin\",39.8333"); + "],PARAMETER[\"latitude_of_origin\",38.33333333333334],PA"); add_srs_wkt (p, 10, - "3333333334],PARAMETER[\"central_meridian\",-100],PARAMET"); + "RAMETER[\"central_meridian\",-111.5],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "ER[\"false_easting\",500000.0000101601],PARAMETER[\"fals"); + "asting\",500000],PARAMETER[\"false_northing\",2000000],U"); add_srs_wkt (p, 12, - "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, - "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); - add_srs_wkt (p, 14, - "SG\",\"26833\"]]"); - p = add_epsg_def (filter, first, last, 26834, "epsg", 26834, - "NAD83(HARN) / West Virginia North (ftUS) (deprecated)"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6619\"]]"); + p = add_epsg_def (filter, first, last, 6620, "epsg", 6620, + "NAD83(2011) / Utah North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, - "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); + "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, - "0 +units=m +no_defs"); + "y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre"); + "PROJCS[\"NAD83(2011) / Utah North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833"); add_srs_wkt (p, 8, - "SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER"); + "3333333333],PARAMETER[\"standard_parallel_2\",40.7166666"); add_srs_wkt (p, 9, - "[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_ori"); + "6666667],PARAMETER[\"latitude_of_origin\",40.33333333333"); add_srs_wkt (p, 10, - "gin\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAME"); + "334],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\""); add_srs_wkt (p, 11, - "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); + "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, - "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"662"); add_srs_wkt (p, 14, - "834\"]]"); - p = add_epsg_def (filter, first, last, 26835, "epsg", 26835, - "NAD83(HARN) / West Virginia South (ftUS) (deprecated)"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 6621, "epsg", 6621, + "NAD83(2011) / Utah South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); + "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, - "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre"); + "PROJCS[\"NAD83(2011) / Utah South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, - "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); + "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, - "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],"); add_srs_wkt (p, 8, - "SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333333"); + "PARAMETER[\"standard_parallel_2\",37.21666666666667],PAR"); add_srs_wkt (p, 9, - "3],PARAMETER[\"standard_parallel_2\",37.48333333333333],"); + "AMETER[\"latitude_of_origin\",36.66666666666666],PARAMET"); add_srs_wkt (p, 10, - "PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"central"); + "ER[\"central_meridian\",-111.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, - "_meridian\",-81],PARAMETER[\"false_easting\",1968500],PA"); + "g\",500000],PARAMETER[\"false_northing\",3000000],UNIT[\""); add_srs_wkt (p, 12, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 14, - "AUTHORITY[\"EPSG\",\"26835\"]]"); - p = add_epsg_def (filter, first, last, 26836, "epsg", 26836, - "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)"); + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6621\"]]"); + p = add_epsg_def (filter, first, last, 6622, "epsg", 6622, + "NAD83(CSRS) / Quebec Lambert"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, - "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); + "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, - ",0 +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated"); + "PROJCS[\"NAD83(CSRS) / Quebec Lambert\",GEOGCS[\"NAD83(C"); add_srs_wkt (p, 1, - ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); + "SRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\""); add_srs_wkt (p, 2, - "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); + "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJE"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",43.66666666666666],"); + "ard_parallel_1\",60],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_"); + "6],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"cent"); add_srs_wkt (p, 10, - "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); + "ral_meridian\",-68.5],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"26836\"]]"); - p = add_epsg_def (filter, first, last, 26837, "epsg", 26837, - "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)"); + "UTHORITY[\"EPSG\",\"6622\"]]"); + p = add_epsg_def (filter, first, last, 6623, "epsg", 6623, + "NAD83 / Quebec Albers"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); - add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated"); + "PROJCS[\"NAD83 / Quebec Albers\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); - add_srs_wkt (p, 3, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + add_srs_wkt (p, 3, + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); - add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); - add_srs_wkt (p, 6, + add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); + "Area\"],PARAMETER[\"standard_parallel_1\",60],PARAMETER["); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",42.83333333333334],"); + "\"standard_parallel_2\",46],PARAMETER[\"latitude_of_cent"); add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",-70.16666666666667],PARAM"); + "er\",44],PARAMETER[\"longitude_of_center\",-68.5],PARAME"); add_srs_wkt (p, 10, - "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); + "TER[\"false_easting\",0],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, - "ting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); - add_srs_wkt (p, 13, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]"); - p = add_epsg_def (filter, first, last, 26841, "epsg", 26841, - "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6623\"]]"); + p = add_epsg_def (filter, first, last, 6624, "epsg", 6624, + "NAD83(CSRS) / Quebec Albers"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, - "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); - add_proj4text (p, 3, - ",0,0,0,0 +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre"); + "PROJCS[\"NAD83(CSRS) / Quebec Albers\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 1, - "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); + "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 2, - "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); + "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJE"); add_srs_wkt (p, 7, - "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); + "CTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6"); + "parallel_1\",60],PARAMETER[\"standard_parallel_2\",46],P"); add_srs_wkt (p, 9, - "3333333333333],PARAMETER[\"standard_parallel_2\",47.0333"); + "ARAMETER[\"latitude_of_center\",44],PARAMETER[\"longitud"); add_srs_wkt (p, 10, - "3333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAM"); + "e_of_center\",-68.5],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, - "ETER[\"central_meridian\",-93.1],PARAMETER[\"false_easti"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - "ng\",800000.0000101601],PARAMETER[\"false_northing\",999"); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, - "99.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); - add_srs_wkt (p, 14, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 15, - ",\"26841\"]]"); - p = add_epsg_def (filter, first, last, 26842, "epsg", 26842, - "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)"); + "HORITY[\"EPSG\",\"6624\"]]"); + p = add_epsg_def (filter, first, last, 6625, "epsg", 6625, + "NAD83(2011) / Utah Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); + "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, - "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "=2000000.00001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep"); + "PROJCS[\"NAD83(2011) / Utah Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati"); + "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, - "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980"); + "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Con"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47"); + "_1\",40.65],PARAMETER[\"standard_parallel_2\",39.0166666"); add_srs_wkt (p, 9, - ".05],PARAMETER[\"standard_parallel_2\",45.61666666666667"); + "6666667],PARAMETER[\"latitude_of_origin\",38.33333333333"); add_srs_wkt (p, 10, - "],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centr"); + "334],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\""); add_srs_wkt (p, 11, - "al_meridian\",-94.25],PARAMETER[\"false_easting\",800000"); + "false_easting\",1640416.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - ".0000101601],PARAMETER[\"false_northing\",99999.99998984"); + "\",6561666.666700001],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\""); - add_srs_wkt (p, 15, - "]]"); - p = add_epsg_def (filter, first, last, 26843, "epsg", 26843, - "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)"); + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6625\"]]"); + p = add_epsg_def (filter, first, last, 6626, "epsg", 6626, + "NAD83(2011) / Utah North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); + "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, - "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + "0001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre"); + "PROJCS[\"NAD83(2011) / Utah North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2"); + "\",41.78333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, - "1666666666667],PARAMETER[\"standard_parallel_2\",43.7833"); + "40.71666666666667],PARAMETER[\"latitude_of_origin\",40.3"); add_srs_wkt (p, 10, - "3333333333],PARAMETER[\"latitude_of_origin\",43],PARAMET"); + "3333333333334],PARAMETER[\"central_meridian\",-111.5],PA"); add_srs_wkt (p, 11, - "ER[\"central_meridian\",-94],PARAMETER[\"false_easting\""); + "RAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fals"); add_srs_wkt (p, 12, - ",800000.0000101601],PARAMETER[\"false_northing\",99999.9"); + "e_northing\",3280833.333300001],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, - "9998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6626\"]"); add_srs_wkt (p, 15, - "26843\"]]"); - p = add_epsg_def (filter, first, last, 26844, "epsg", 26844, - "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)"); + "]"); + p = add_epsg_def (filter, first, last, 6627, "epsg", 6627, + "NAD83(2011) / Utah South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); + "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "=3000000 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\""); + "PROJCS[\"NAD83(2011) / Utah South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); + "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, - "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); + "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, - "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); + "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETE"); + "\",38.35],PARAMETER[\"standard_parallel_2\",37.216666666"); add_srs_wkt (p, 9, - "R[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_or"); + "66667],PARAMETER[\"latitude_of_origin\",36.6666666666666"); add_srs_wkt (p, 10, - "igin\",39.83333333333334],PARAMETER[\"central_meridian\""); + "6],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"fa"); add_srs_wkt (p, 11, - ",-100],PARAMETER[\"false_easting\",500000.0000101601],PA"); + "lse_easting\",1640416.6667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + ",9842500.000000002],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, - "AUTHORITY[\"EPSG\",\"26844\"]]"); - p = add_epsg_def (filter, first, last, 26845, "epsg", 26845, - "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6627\"]]"); + p = add_epsg_def (filter, first, last, 6628, "epsg", 6628, + "NAD83(PA11) / Hawaii zone 1"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, - "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); + "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_d"); add_proj4text (p, 2, - "0 +units=m +no_defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 1\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, - "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, - "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",18.83333333"); add_srs_wkt (p, 8, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "333333],PARAMETER[\"central_meridian\",-155.5],PARAMETER"); add_srs_wkt (p, 9, - "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\""); + "[\"scale_factor\",0.999966667],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\""); + "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); - add_srs_wkt (p, 14, - "\"EPSG\",\"26845\"]]"); - p = add_epsg_def (filter, first, last, 26846, "epsg", 26846, - "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"6628\"]]"); + p = add_epsg_def (filter, first, last, 6629, "epsg", 6629, + "NAD83(PA11) / Hawaii zone 2"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); + "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, - "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 2\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, - "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, - "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",20.33333333"); add_srs_wkt (p, 8, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); + "333333],PARAMETER[\"central_meridian\",-156.666666666666"); add_srs_wkt (p, 9, - "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4"); + "7],PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"f"); add_srs_wkt (p, 10, - "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA"); + "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, - "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, - "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"metr"); - add_srs_wkt (p, 13, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); - add_srs_wkt (p, 14, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]"); - p = add_epsg_def (filter, first, last, 26847, "epsg", 26847, - "NAD83 / Maine East (ftUS)"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6629\"]]"); + p = add_epsg_def (filter, first, last, 6630, "epsg", 6630, + "NAD83(PA11) / Hawaii zone 3"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, - "999 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=us"); - add_proj4text (p, 2, - "-ft +no_defs"); + "999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 3\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); + "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",43.66666666666"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",21.16666666"); add_srs_wkt (p, 8, - "666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"s"); + "666667],PARAMETER[\"central_meridian\",-158],PARAMETER[\""); add_srs_wkt (p, 9, - "cale_factor\",0.9999],PARAMETER[\"false_easting\",984250"); + "scale_factor\",0.99999],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, - ".0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 13, - "G\",\"26847\"]]"); - p = add_epsg_def (filter, first, last, 26848, "epsg", 26848, - "NAD83 / Maine West (ftUS)"); + "ORTH],AUTHORITY[\"EPSG\",\"6630\"]]"); + p = add_epsg_def (filter, first, last, 6631, "epsg", 6631, + "NAD83(PA11) / Hawaii zone 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); - add_proj4text (p, 2, - "nits=us-ft +no_defs"); + "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 4\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); + "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",21.83333333"); add_srs_wkt (p, 8, - "334],PARAMETER[\"central_meridian\",-70.16666666666667],"); + "333333],PARAMETER[\"central_meridian\",-159.5],PARAMETER"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); + "[\"scale_factor\",0.99999],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, - "e_easting\",2952750],PARAMETER[\"false_northing\",0],UNI"); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); - add_srs_wkt (p, 13, - "TY[\"EPSG\",\"26848\"]]"); - p = add_epsg_def (filter, first, last, 26849, "epsg", 26849, - "NAD83 / Minnesota North (ftUS)"); + ",NORTH],AUTHORITY[\"EPSG\",\"6631\"]]"); + p = add_epsg_def (filter, first, last, 6632, "epsg", 6632, + "NAD83(PA11) / Hawaii zone 5"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, - "00101599 +y_0=99999.99998983997 +datum=NAD83 +units=us-f"); - add_proj4text (p, 3, - "t +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 5\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); + "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",21.66666666"); add_srs_wkt (p, 8, - "8.63333333333333],PARAMETER[\"standard_parallel_2\",47.0"); + "666667],PARAMETER[\"central_meridian\",-160.166666666666"); add_srs_wkt (p, 9, - "3333333333333],PARAMETER[\"latitude_of_origin\",46.5],PA"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "RAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_ea"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "sting\",2624666.6667],PARAMETER[\"false_northing\",32808"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "3.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); - add_srs_wkt (p, 14, - "TH],AUTHORITY[\"EPSG\",\"26849\"]]"); - p = add_epsg_def (filter, first, last, 26850, "epsg", 26850, - "NAD83 / Minnesota Central (ftUS)"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6632\"]]"); + p = add_epsg_def (filter, first, last, 6633, "epsg", 6633, + "NAD83(PA11) / Hawaii zone 3 (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); + "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, - "83997 +datum=NAD83 +units=us-ft +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD"); + "PROJCS[\"NAD83(PA11) / Hawaii zone 3 (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); + "AD83(PA11)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, - "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + "stem_PA11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); + "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\""); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); + "9122\"]],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",21.1"); add_srs_wkt (p, 8, - ",47.05],PARAMETER[\"standard_parallel_2\",45.61666666666"); + "6666666666667],PARAMETER[\"central_meridian\",-158],PARA"); add_srs_wkt (p, 9, - "667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"ce"); + "METER[\"scale_factor\",0.99999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "ntral_meridian\",-94.25],PARAMETER[\"false_easting\",262"); + "g\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "4666.6667],PARAMETER[\"false_northing\",328083.3333],UNI"); + "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); + "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, - "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); - add_srs_wkt (p, 14, - "TY[\"EPSG\",\"26850\"]]"); - p = add_epsg_def (filter, first, last, 26851, "epsg", 26851, - "NAD83 / Minnesota South (ftUS)"); + "EPSG\",\"6633\"]]"); + p = add_epsg_def (filter, first, last, 6634, "epsg", 6634, + "NAD83(PA11) / UTM zone 4N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); - add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); - add_proj4text (p, 2, - "99.99998983997 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83"); + "PROJCS[\"NAD83(PA11) / UTM zone 4N\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); + ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "5.21666666666667],PARAMETER[\"standard_parallel_2\",43.7"); + "[\"central_meridian\",-159],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "8333333333333],PARAMETER[\"latitude_of_origin\",43],PARA"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "METER[\"central_meridian\",-94],PARAMETER[\"false_eastin"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "g\",2624666.6667],PARAMETER[\"false_northing\",328083.33"); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); - add_srs_wkt (p, 13, - "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 14, - "AUTHORITY[\"EPSG\",\"26851\"]]"); - p = add_epsg_def (filter, first, last, 26852, "epsg", 26852, - "NAD83 / Nebraska (ftUS)"); + ",AUTHORITY[\"EPSG\",\"6634\"]]"); + p = add_epsg_def (filter, first, last, 6635, "epsg", 6635, + "NAD83(PA11) / UTM zone 5N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); - add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +uni"); - add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"NAD83(PA11) / UTM zone 5N\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); + "[\"central_meridian\",-153],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "of_origin\",39.83333333333334],PARAMETER[\"central_merid"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ian\",-100],PARAMETER[\"false_easting\",1640416.6667],PA"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); - add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]"); - p = add_epsg_def (filter, first, last, 26853, "epsg", 26853, - "NAD83 / West Virginia North (ftUS)"); + ",AUTHORITY[\"EPSG\",\"6635\"]]"); + p = add_epsg_def (filter, first, last, 6636, "epsg", 6636, + "NAD83(PA11) / UTM zone 2S"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); - add_proj4text (p, 1, - "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N"); + "PROJCS[\"NAD83(PA11) / UTM zone 2S\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, - "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); + ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, - "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); + "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, - "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); + "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); + ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAMET"); + "[\"central_meridian\",-171],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "ER[\"latitude_of_origin\",38.5],PARAMETER[\"central_meri"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "dian\",-79.5],PARAMETER[\"false_easting\",1968500],PARAM"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); - add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]"); - p = add_epsg_def (filter, first, last, 26854, "epsg", 26854, - "NAD83 / West Virginia South (ftUS)"); + ",NORTH],AUTHORITY[\"EPSG\",\"6636\"]]"); + p = add_epsg_def (filter, first, last, 6637, "epsg", 6637, + "NAD83(MA11) / Guam Map Grid"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); - add_proj4text (p, 2, - " +units=us-ft +no_defs"); + "y_0=200000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N"); + "PROJCS[\"NAD83(MA11) / Guam Map Grid\",GEOGCS[\"NAD83(MA"); add_srs_wkt (p, 1, - "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); + "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_MA"); add_srs_wkt (p, 2, - "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); + "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); + "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1118\"]],PRI"); add_srs_wkt (p, 4, - "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); + "],AUTHORITY[\"EPSG\",\"6325\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",13.5],PARAM"); add_srs_wkt (p, 8, - "1\",38.88333333333333],PARAMETER[\"standard_parallel_2\""); + "ETER[\"central_meridian\",144.75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]"); + "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 10, - ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e"); + "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); - add_srs_wkt (p, 14, - "EPSG\",\"26854\"]]"); - p = add_epsg_def (filter, first, last, 26855, "epsg", 26855, - "NAD83(HARN) / Maine East (ftUS)"); + "RITY[\"EPSG\",\"6637\"]]"); + p = add_epsg_def (filter, first, last, 6646, "epsg", 6646, + "Karbala 1979 / Iraq National Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.99"); add_proj4text (p, 1, - "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); + "94 +x_0=800000 +y_0=0 +ellps=clrk80 +towgs84=70.995,-335"); add_proj4text (p, 2, - "0,0,0,0,0,0,0 +units=us-ft +no_defs"); + ".916,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8"); + "PROJCS[\"Karbala 1979 / Iraq National Grid\",GEOGCS[\"Ka"); add_srs_wkt (p, 1, - "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); + "rbala 1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, - ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "\"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, - "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "\"EPSG\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4743\"]],"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "rigin\",43.66666666666666],PARAMETER[\"central_meridian\""); + "_of_origin\",29.02626833333333],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - ",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); + "dian\",46.5],PARAMETER[\"scale_factor\",0.9994],PARAMETE"); add_srs_wkt (p, 10, - "alse_easting\",984250.0000000002],PARAMETER[\"false_nort"); + "R[\"false_easting\",800000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, - "ORTH],AUTHORITY[\"EPSG\",\"26855\"]]"); - p = add_epsg_def (filter, first, last, 26856, "epsg", 26856, - "NAD83(HARN) / Maine West (ftUS)"); + "PSG\",\"6646\"]]"); + p = add_epsg_def (filter, first, last, 6668, "epsg", 6668, + "JGD2011"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); - add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); - add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8"); + "GEOGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\""); add_srs_wkt (p, 1, - "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); - add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + add_srs_wkt (p, 2, + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, - "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); - add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); - add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); - add_srs_wkt (p, 8, - "rigin\",42.83333333333334],PARAMETER[\"central_meridian\""); - add_srs_wkt (p, 9, - ",-70.16666666666667],PARAMETER[\"scale_factor\",0.999966"); - add_srs_wkt (p, 10, - "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa"); - add_srs_wkt (p, 11, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); - add_srs_wkt (p, 12, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); - add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]"); - p = add_epsg_def (filter, first, last, 26857, "epsg", 26857, - "NAD83(HARN) / Minnesota North (ftUS)"); + "HORITY[\"EPSG\",\"6668\"]]"); + p = add_epsg_def (filter, first, last, 6669, "epsg", 6669, + "JGD2011 / Japan Plane Rectangular CS I"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); - add_proj4text (p, 2, - "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); - add_proj4text (p, 3, - "0,0,0,0,0,0 +units=us-ft +no_defs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\""); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS I\",GEOGCS"); add_srs_wkt (p, 1, - "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); + "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, - "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); + "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); + "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "standard_parallel_1\",48.63333333333333],PARAMETER[\"sta"); + "tral_meridian\",129.5],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "ndard_parallel_2\",47.03333333333333],PARAMETER[\"latitu"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "de_of_origin\",46.5],PARAMETER[\"central_meridian\",-93."); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "1],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\""); - add_srs_wkt (p, 12, - "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); - add_srs_wkt (p, 13, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); - add_srs_wkt (p, 14, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]"); - p = add_epsg_def (filter, first, last, 26858, "epsg", 26858, - "NAD83(HARN) / Minnesota Central (ftUS)"); + "AUTHORITY[\"EPSG\",\"6669\"]]"); + p = add_epsg_def (filter, first, last, 6670, "epsg", 6670, + "JGD2011 / Japan Plane Rectangular CS II"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); - add_proj4text (p, 2, - "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); - add_proj4text (p, 3, - "no_defs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS II\",GEOGC"); add_srs_wkt (p, 1, - "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); + "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "[\"standard_parallel_1\",47.05],PARAMETER[\"standard_par"); + "tral_meridian\",131],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, - "allel_2\",45.61666666666667],PARAMETER[\"latitude_of_ori"); + "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "gin\",45],PARAMETER[\"central_meridian\",-94.25],PARAMET"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); add_srs_wkt (p, 11, - "ER[\"false_easting\",2624666.6667],PARAMETER[\"false_nor"); - add_srs_wkt (p, 12, - "thing\",328083.3333],UNIT[\"US survey foot\",0.304800609"); - add_srs_wkt (p, 13, - "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); - add_srs_wkt (p, 14, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]"); - p = add_epsg_def (filter, first, last, 26859, "epsg", 26859, - "NAD83(HARN) / Minnesota South (ftUS)"); + "THORITY[\"EPSG\",\"6670\"]]"); + p = add_epsg_def (filter, first, last, 6671, "epsg", 6671, + "JGD2011 / Japan Plane Rectangular CS III"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); - add_proj4text (p, 2, - "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); - add_proj4text (p, 3, - "s=us-ft +no_defs"); + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\""); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS III\",GEOG"); add_srs_wkt (p, 1, - "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, - "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); + "or\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"c"); add_srs_wkt (p, 8, - "standard_parallel_1\",45.21666666666667],PARAMETER[\"sta"); + "entral_meridian\",132.1666666666667],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "ndard_parallel_2\",43.78333333333333],PARAMETER[\"latitu"); + "actor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 10, - "de_of_origin\",43],PARAMETER[\"central_meridian\",-94],P"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "ARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fal"); - add_srs_wkt (p, 12, - "se_northing\",328083.3333],UNIT[\"US survey foot\",0.304"); - add_srs_wkt (p, 13, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); - add_srs_wkt (p, 14, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]"); - p = add_epsg_def (filter, first, last, 26860, "epsg", 26860, - "NAD83(HARN) / Nebraska (ftUS)"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6671\"]]"); + p = add_epsg_def (filter, first, last, 6672, "epsg", 6672, + "JGD2011 / Japan Plane Rectangular CS IV"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); - add_proj4text (p, 2, - "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IV\",GEOGC"); add_srs_wkt (p, 1, - "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); + "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "ard_parallel_1\",43],PARAMETER[\"standard_parallel_2\",4"); + "tral_meridian\",133.5],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "0],PARAMETER[\"latitude_of_origin\",39.83333333333334],P"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "ARAMETER[\"central_meridian\",-100],PARAMETER[\"false_ea"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "sting\",1640416.6667],PARAMETER[\"false_northing\",0],UN"); - add_srs_wkt (p, 12, - "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); - add_srs_wkt (p, 13, - "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); - add_srs_wkt (p, 14, - "ITY[\"EPSG\",\"26860\"]]"); - p = add_epsg_def (filter, first, last, 26861, "epsg", 26861, - "NAD83(HARN) / West Virginia North (ftUS)"); + "AUTHORITY[\"EPSG\",\"6672\"]]"); + p = add_epsg_def (filter, first, last, 6673, "epsg", 6673, + "JGD2011 / Japan Plane Rectangular CS V"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, - "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); - add_proj4text (p, 2, - " +units=us-ft +no_defs"); + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS V\",GEOGCS"); add_srs_wkt (p, 1, - "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); + "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, - "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); + "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); + "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_1\",40.25],PARAMETER[\"standard_"); + "tral_meridian\",134.3333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5],"); + "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, - "PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false_"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT["); - add_srs_wkt (p, 12, - "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); - add_srs_wkt (p, 14, - "[\"EPSG\",\"26861\"]]"); - p = add_epsg_def (filter, first, last, 26862, "epsg", 26862, - "NAD83(HARN) / West Virginia South (ftUS)"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"6673\"]]"); + p = add_epsg_def (filter, first, last, 6674, "epsg", 6674, + "JGD2011 / Japan Plane Rectangular CS VI"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); - add_proj4text (p, 2, - " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VI\",GEOGC"); add_srs_wkt (p, 1, - "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); + "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_1\",38.88333333333333],PARAMETER"); + "tral_meridian\",136],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, - "[\"standard_parallel_2\",37.48333333333333],PARAMETER[\""); + "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "latitude_of_origin\",37],PARAMETER[\"central_meridian\","); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); add_srs_wkt (p, 11, - "-81],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa"); - add_srs_wkt (p, 12, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); - add_srs_wkt (p, 13, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); - add_srs_wkt (p, 14, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]"); - p = add_epsg_def (filter, first, last, 26863, "epsg", 26863, - "NAD83(NSRS2007) / Maine East (ftUS)"); + "THORITY[\"EPSG\",\"6674\"]]"); + p = add_epsg_def (filter, first, last, 6675, "epsg", 6675, + "JGD2011 / Japan Plane Rectangular CS VII"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, - "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); - add_proj4text (p, 2, - "0,0,0,0,0,0,0 +units=us-ft +no_defs"); + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\""); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VII\",GEOG"); add_srs_wkt (p, 1, - "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, - "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "or\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"c"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",43.66666666666666],PARAMETER[\""); + "entral_meridian\",137.1666666666667],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "central_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9"); + "actor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 10, - "999],PARAMETER[\"false_easting\",984250.0000000002],PARA"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); - add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); - add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]"); - p = add_epsg_def (filter, first, last, 26864, "epsg", 26864, - "NAD83(NSRS2007) / Maine West (ftUS)"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6675\"]]"); + p = add_epsg_def (filter, first, last, 6676, "epsg", 6676, + "JGD2011 / Japan Plane Rectangular CS VIII"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); - add_proj4text (p, 2, - "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\""); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VIII\",GEO"); add_srs_wkt (p, 1, - "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); + "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, - "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "tor\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\""); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\""); + "central_meridian\",138.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "central_meridian\",-70.16666666666667],PARAMETER[\"scale"); + "999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no"); add_srs_wkt (p, 10, - "_factor\",0.999966667],PARAMETER[\"false_easting\",29527"); + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "50],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); - add_srs_wkt (p, 12, - "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); - add_srs_wkt (p, 13, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); - add_srs_wkt (p, 14, - "64\"]]"); - p = add_epsg_def (filter, first, last, 26865, "epsg", 26865, - "NAD83(NSRS2007) / Minnesota North (ftUS)"); + "]],AUTHORITY[\"EPSG\",\"6676\"]]"); + p = add_epsg_def (filter, first, last, 6677, "epsg", 6677, + "JGD2011 / Japan Plane Rectangular CS IX"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); - add_proj4text (p, 2, - "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); - add_proj4text (p, 3, - "0,0,0,0,0,0 +units=us-ft +no_defs"); + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IX\",GEOGC"); add_srs_wkt (p, 1, - "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"standard_parallel_1\",48.63333333333333]"); + "tral_meridian\",139.8333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - ",PARAMETER[\"standard_parallel_2\",47.03333333333333],PA"); + "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, - "RAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"central"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "_meridian\",-93.1],PARAMETER[\"false_easting\",2624666.6"); - add_srs_wkt (p, 12, - "667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US"); - add_srs_wkt (p, 13, - " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); - add_srs_wkt (p, 14, - "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 15, - "PSG\",\"26865\"]]"); - p = add_epsg_def (filter, first, last, 26866, "epsg", 26866, - "NAD83(NSRS2007) / Minnesota Central (ftUS)"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"6677\"]]"); + p = add_epsg_def (filter, first, last, 6678, "epsg", 6678, + "JGD2011 / Japan Plane Rectangular CS X"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); - add_proj4text (p, 2, - "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); - add_proj4text (p, 3, - "no_defs"); + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS X\",GEOGCS"); add_srs_wkt (p, 1, - "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); + "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, - "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER"); + "tral_meridian\",140.8333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "[\"standard_parallel_2\",45.61666666666667],PARAMETER[\""); + "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, - "latitude_of_origin\",45],PARAMETER[\"central_meridian\","); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "-94.25],PARAMETER[\"false_easting\",2624666.6667],PARAME"); - add_srs_wkt (p, 12, - "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo"); - add_srs_wkt (p, 13, - "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); - add_srs_wkt (p, 14, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); - add_srs_wkt (p, 15, - "66\"]]"); - p = add_epsg_def (filter, first, last, 26867, "epsg", 26867, - "NAD83(NSRS2007) / Minnesota South (ftUS)"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"6678\"]]"); + p = add_epsg_def (filter, first, last, 6679, "epsg", 6679, + "JGD2011 / Japan Plane Rectangular CS XI"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); - add_proj4text (p, 2, - "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); - add_proj4text (p, 3, - "s=us-ft +no_defs"); + "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XI\",GEOGC"); add_srs_wkt (p, 1, - "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"standard_parallel_1\",45.21666666666667]"); + "tral_meridian\",140.25],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - ",PARAMETER[\"standard_parallel_2\",43.78333333333333],PA"); + "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "RAMETER[\"latitude_of_origin\",43],PARAMETER[\"central_m"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "eridian\",-94],PARAMETER[\"false_easting\",2624666.6667]"); - add_srs_wkt (p, 12, - ",PARAMETER[\"false_northing\",328083.3333],UNIT[\"US sur"); - add_srs_wkt (p, 13, - "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); - add_srs_wkt (p, 14, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 15, - ",\"26867\"]]"); - p = add_epsg_def (filter, first, last, 26868, "epsg", 26868, - "NAD83(NSRS2007) / Nebraska (ftUS)"); + ",AUTHORITY[\"EPSG\",\"6679\"]]"); + p = add_epsg_def (filter, first, last, 6680, "epsg", 6680, + "JGD2011 / Japan Plane Rectangular CS XII"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); - add_proj4text (p, 2, - "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XII\",GEOG"); add_srs_wkt (p, 1, - "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, - "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "or\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"c"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_"); + "entral_meridian\",142.25],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.833"); + "999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no"); add_srs_wkt (p, 10, - "33333333334],PARAMETER[\"central_meridian\",-100],PARAME"); + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no"); - add_srs_wkt (p, 12, - "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); - add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); - add_srs_wkt (p, 14, - ",NORTH],AUTHORITY[\"EPSG\",\"26868\"]]"); - p = add_epsg_def (filter, first, last, 26869, "epsg", 26869, - "NAD83(NSRS2007) / West Virginia North (ftUS)"); + "]],AUTHORITY[\"EPSG\",\"6680\"]]"); + p = add_epsg_def (filter, first, last, 6681, "epsg", 6681, + "JGD2011 / Japan Plane Rectangular CS XIII"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, - "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); - add_proj4text (p, 2, - " +units=us-ft +no_defs"); + "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\","); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIII\",GEO"); add_srs_wkt (p, 1, - "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); + "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, - "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); + "tor\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\""); add_srs_wkt (p, 8, - "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAME"); + "central_meridian\",144.25],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "TER[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_"); + "9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "origin\",38.5],PARAMETER[\"central_meridian\",-79.5],PAR"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort"); - add_srs_wkt (p, 12, - "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); - add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); - add_srs_wkt (p, 14, - "ORTH],AUTHORITY[\"EPSG\",\"26869\"]]"); - p = add_epsg_def (filter, first, last, 26870, "epsg", 26870, - "NAD83(NSRS2007) / West Virginia South (ftUS)"); + "]],AUTHORITY[\"EPSG\",\"6681\"]]"); + p = add_epsg_def (filter, first, last, 6682, "epsg", 6682, + "JGD2011 / Japan Plane Rectangular CS XIV"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); - add_proj4text (p, 2, - " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\","); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIV\",GEOG"); add_srs_wkt (p, 1, - "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, - "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); + "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c"); add_srs_wkt (p, 8, - "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333"); + "entral_meridian\",142],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "3333],PARAMETER[\"standard_parallel_2\",37.4833333333333"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "3],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"cent"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "ral_meridian\",-81],PARAMETER[\"false_easting\",1968500]"); - add_srs_wkt (p, 12, - ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); - add_srs_wkt (p, 13, - ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); - add_srs_wkt (p, 14, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\""); - add_srs_wkt (p, 15, - "]]"); - p = add_epsg_def (filter, first, last, 26891, "epsg", 26891, - "NAD83(CSRS) / MTM zone 11"); + "AUTHORITY[\"EPSG\",\"6682\"]]"); + p = add_epsg_def (filter, first, last, 6683, "epsg", 6683, + "JGD2011 / Japan Plane Rectangular CS XV"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, - "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XV\",GEOGC"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-82.5],PARAMETER["); + "tral_meridian\",127.5],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); - add_srs_wkt (p, 12, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]"); - p = add_epsg_def (filter, first, last, 26892, "epsg", 26892, - "NAD83(CSRS) / MTM zone 12"); + "AUTHORITY[\"EPSG\",\"6683\"]]"); + p = add_epsg_def (filter, first, last, 6684, "epsg", 6684, + "JGD2011 / Japan Plane Rectangular CS XVI"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVI\",GEOG"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); + "entral_meridian\",124],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]"); - p = add_epsg_def (filter, first, last, 26893, "epsg", 26893, - "NAD83(CSRS) / MTM zone 13"); + "AUTHORITY[\"EPSG\",\"6684\"]]"); + p = add_epsg_def (filter, first, last, 6685, "epsg", 6685, + "JGD2011 / Japan Plane Rectangular CS XVII"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVII\",GEO"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "tor\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-84],PARAMETER[\""); + "central_meridian\",131],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]"); - p = add_epsg_def (filter, first, last, 26894, "epsg", 26894, - "NAD83(CSRS) / MTM zone 14"); + ",AUTHORITY[\"EPSG\",\"6685\"]]"); + p = add_epsg_def (filter, first, last, 6686, "epsg", 6686, + "JGD2011 / Japan Plane Rectangular CS XVIII"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVIII\",GE"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "OGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\","); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "tor\"],PARAMETER[\"latitude_of_origin\",20],PARAMETER[\""); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\""); + "central_meridian\",136],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]"); - p = add_epsg_def (filter, first, last, 26895, "epsg", 26895, - "NAD83(CSRS) / MTM zone 15"); + ",AUTHORITY[\"EPSG\",\"6686\"]]"); + p = add_epsg_def (filter, first, last, 6687, "epsg", 6687, + "JGD2011 / Japan Plane Rectangular CS XIX"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIX\",GEOG"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); + "entral_meridian\",154],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]"); - p = add_epsg_def (filter, first, last, 26896, "epsg", 26896, - "NAD83(CSRS) / MTM zone 16"); + "AUTHORITY[\"EPSG\",\"6687\"]]"); + p = add_epsg_def (filter, first, last, 6688, "epsg", 6688, + "JGD2011 / UTM zone 51N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + "+proj=utm +zone=51 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / UTM zone 51N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\""); + "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"668"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]"); - p = add_epsg_def (filter, first, last, 26897, "epsg", 26897, - "NAD83(CSRS) / MTM zone 17"); + "8\"]]"); + p = add_epsg_def (filter, first, last, 6689, "epsg", 6689, + "JGD2011 / UTM zone 52N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + "+proj=utm +zone=52 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS"); + "PROJCS[\"JGD2011 / UTM zone 52N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, - ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); + "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-96],PARAMETER[\""); + "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"668"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]"); - p = add_epsg_def (filter, first, last, 26898, "epsg", 26898, - "NAD83(CSRS) / MTM zone 1"); + "9\"]]"); + p = add_epsg_def (filter, first, last, 6690, "epsg", 6690, + "JGD2011 / UTM zone 53N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + "+proj=utm +zone=53 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)"); + "PROJCS[\"JGD2011 / UTM zone 53N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, - "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); + "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",13"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-53],PARAMETER[\""); + "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669"); add_srs_wkt (p, 12, - ")\",NORTH],AUTHORITY[\"EPSG\",\"26898\"]]"); - p = add_epsg_def (filter, first, last, 26899, "epsg", 26899, - "NAD83(CSRS) / MTM zone 2"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 6691, "epsg", 6691, + "JGD2011 / UTM zone 54N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); - add_proj4text (p, 2, - "fs"); + "+proj=utm +zone=54 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)"); + "PROJCS[\"JGD2011 / UTM zone 54N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, - "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); + "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); + "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",14"); add_srs_wkt (p, 8, - "in\",0],PARAMETER[\"central_meridian\",-56],PARAMETER[\""); + "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669"); add_srs_wkt (p, 12, - ")\",NORTH],AUTHORITY[\"EPSG\",\"26899\"]]"); - p = add_epsg_def (filter, first, last, 26901, "epsg", 26901, - "NAD83 / UTM zone 1N"); + "1\"]]"); + p = add_epsg_def (filter, first, last, 6692, "epsg", 6692, + "JGD2011 / UTM zone 55N"); add_proj4text (p, 0, - "+proj=utm +zone=1 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=55 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"JGD2011 / UTM zone 55N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",14"); add_srs_wkt (p, 8, - "l_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],PA"); + "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26901\"]]"); - p = add_epsg_def (filter, first, last, 26902, "epsg", 26902, - "NAD83 / UTM zone 2N"); + "2\"]]"); + p = add_epsg_def (filter, first, last, 6703, "epsg", 6703, + "WGS 84 / TM 60 SW"); add_proj4text (p, 0, - "+proj=utm +zone=2 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=-60 +k=0.9996 +x_0=500000 +y"); + add_proj4text (p, 1, + "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"WGS 84 / TM 60 SW\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "METER[\"central_meridian\",-60],PARAMETER[\"scale_factor"); add_srs_wkt (p, 8, - "l_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],PA"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26902\"]]"); - p = add_epsg_def (filter, first, last, 26903, "epsg", 26903, - "NAD83 / UTM zone 3N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"6703\"]]"); + p = add_epsg_def (filter, first, last, 6706, "epsg", 6706, + "RDN2008"); add_proj4text (p, 0, - "+proj=utm +zone=3 +datum=NAD83 +units=m +no_defs"); + "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); + add_proj4text (p, 1, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\""); + "GEOGCS[\"RDN2008\",DATUM[\"Rete_Dinamica_Nazionale_2008\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "G\",\"1132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); - add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); - add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); - add_srs_wkt (p, 8, - "l_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],PA"); - add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); - add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); - add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26903\"]]"); - p = add_epsg_def (filter, first, last, 26904, "epsg", 26904, - "NAD83 / UTM zone 4N"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6706\"]]"); + p = add_epsg_def (filter, first, last, 6707, "epsg", 6707, + "RDN2008 / TM32"); add_proj4text (p, 0, - "+proj=utm +zone=4 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"RDN2008 / TM32\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],PA"); + "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26904\"]]"); - p = add_epsg_def (filter, first, last, 26905, "epsg", 26905, - "NAD83 / UTM zone 5N"); + "THORITY[\"EPSG\",\"6707\"]]"); + p = add_epsg_def (filter, first, last, 6708, "epsg", 6708, + "RDN2008 / TM33"); add_proj4text (p, 0, - "+proj=utm +zone=5 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"RDN2008 / TM33\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],PA"); + "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26905\"]]"); + "UTHORITY[\"EPSG\",\"6708\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_32.c b/src/spatialite/src/srsinit/epsg_inlined_32.c index 0f25b2c..7bade69 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_32.c +++ b/src/spatialite/src/srsinit/epsg_inlined_32.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3402 +52,3398 @@ initialize_epsg_32 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 26906, "epsg", 26906, - "NAD83 / UTM zone 6N"); + p = add_epsg_def (filter, first, last, 6709, "epsg", 6709, + "RDN2008 / TM34"); add_proj4text (p, 0, - "+proj=utm +zone=6 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"RDN2008 / TM34\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PA"); + "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26906\"]]"); - p = add_epsg_def (filter, first, last, 26907, "epsg", 26907, - "NAD83 / UTM zone 7N"); + "UTHORITY[\"EPSG\",\"6709\"]]"); + p = add_epsg_def (filter, first, last, 6720, "epsg", 6720, + "WGS 84 / CIG92"); add_proj4text (p, 0, - "+proj=utm +zone=7 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.000024 +x_0=500"); + add_proj4text (p, 1, + "00 +y_0=1300000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"WGS 84 / CIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS_"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORI"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "TY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRI"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "R[\"central_meridian\",105.625],PARAMETER[\"scale_factor"); add_srs_wkt (p, 8, - "l_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],PA"); + "\",1.000024],PARAMETER[\"false_easting\",50000],PARAMETE"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "R[\"false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26907\"]]"); - p = add_epsg_def (filter, first, last, 26908, "epsg", 26908, - "NAD83 / UTM zone 8N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"6720\"]]"); + p = add_epsg_def (filter, first, last, 6721, "epsg", 6721, + "GDA94 / CIG94"); add_proj4text (p, 0, - "+proj=utm +zone=8 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.00002514 +x_0=5"); + add_proj4text (p, 1, + "0000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / CIG94\",GEOGCS[\"GDA94\",DATUM[\"Geocen"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "tric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, - "l_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],PA"); + "ntral_meridian\",105.625],PARAMETER[\"scale_factor\",1.0"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "0002514],PARAMETER[\"false_easting\",50000],PARAMETER[\""); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26908\"]]"); - p = add_epsg_def (filter, first, last, 26909, "epsg", 26909, - "NAD83 / UTM zone 9N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6721\"]]"); + p = add_epsg_def (filter, first, last, 6722, "epsg", 6722, + "WGS 84 / CKIG92"); add_proj4text (p, 0, - "+proj=utm +zone=9 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=1 +x_0=50000 +y_0="); + add_proj4text (p, 1, + "1400000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"WGS 84 / CKIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHOR"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PR"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "ER[\"central_meridian\",96.875],PARAMETER[\"scale_factor"); add_srs_wkt (p, 8, - "l_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],PA"); + "\",1],PARAMETER[\"false_easting\",50000],PARAMETER[\"fal"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "se_northing\",1400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26909\"]]"); - p = add_epsg_def (filter, first, last, 26910, "epsg", 26910, - "NAD83 / UTM zone 10N"); + "ORTH],AUTHORITY[\"EPSG\",\"6722\"]]"); + p = add_epsg_def (filter, first, last, 6723, "epsg", 6723, + "GDA94 / CKIG94"); add_proj4text (p, 0, - "+proj=utm +zone=10 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=0.99999387 +x_0=50"); + add_proj4text (p, 1, + "000 +y_0=1500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); + add_proj4text (p, 2, + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / CKIG94\",GEOGCS[\"GDA94\",DATUM[\"Geoce"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ntric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "HORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "l_meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PA"); + "entral_meridian\",96.875],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "9999387],PARAMETER[\"false_easting\",50000],PARAMETER[\""); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26910\"]]"); - p = add_epsg_def (filter, first, last, 26911, "epsg", 26911, - "NAD83 / UTM zone 11N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6723\"]]"); + p = add_epsg_def (filter, first, last, 6732, "epsg", 6732, + "GDA94 / MGA zone 41"); add_proj4text (p, 0, - "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=41 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 41\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PA"); + "R[\"central_meridian\",63],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26911\"]]"); - p = add_epsg_def (filter, first, last, 26912, "epsg", 26912, - "NAD83 / UTM zone 12N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6732\"]]"); + p = add_epsg_def (filter, first, last, 6733, "epsg", 6733, + "GDA94 / MGA zone 42"); add_proj4text (p, 0, - "+proj=utm +zone=12 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=42 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 42\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PA"); + "R[\"central_meridian\",69],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26912\"]]"); - p = add_epsg_def (filter, first, last, 26913, "epsg", 26913, - "NAD83 / UTM zone 13N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6733\"]]"); + p = add_epsg_def (filter, first, last, 6734, "epsg", 6734, + "GDA94 / MGA zone 43"); add_proj4text (p, 0, - "+proj=utm +zone=13 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=43 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 43\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PA"); + "R[\"central_meridian\",75],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"26913\"]]"); - p = add_epsg_def (filter, first, last, 26914, "epsg", 26914, - "NAD83 / UTM zone 14N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6734\"]]"); + p = add_epsg_def (filter, first, last, 6735, "epsg", 6735, + "GDA94 / MGA zone 44"); add_proj4text (p, 0, - "+proj=utm +zone=14 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=44 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 44\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PAR"); + "R[\"central_meridian\",81],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26914\"]]"); - p = add_epsg_def (filter, first, last, 26915, "epsg", 26915, - "NAD83 / UTM zone 15N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6735\"]]"); + p = add_epsg_def (filter, first, last, 6736, "epsg", 6736, + "GDA94 / MGA zone 46"); add_proj4text (p, 0, - "+proj=utm +zone=15 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=46 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 46\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR"); + "R[\"central_meridian\",93],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26915\"]]"); - p = add_epsg_def (filter, first, last, 26916, "epsg", 26916, - "NAD83 / UTM zone 16N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6736\"]]"); + p = add_epsg_def (filter, first, last, 6737, "epsg", 6737, + "GDA94 / MGA zone 47"); add_proj4text (p, 0, - "+proj=utm +zone=16 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=47 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 47\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR"); + "R[\"central_meridian\",99],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26916\"]]"); - p = add_epsg_def (filter, first, last, 26917, "epsg", 26917, - "NAD83 / UTM zone 17N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6737\"]]"); + p = add_epsg_def (filter, first, last, 6738, "epsg", 6738, + "GDA94 / MGA zone 59"); add_proj4text (p, 0, - "+proj=utm +zone=17 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"GDA94 / MGA zone 59\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR"); + "R[\"central_meridian\",171],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26917\"]]"); - p = add_epsg_def (filter, first, last, 26918, "epsg", 26918, - "NAD83 / UTM zone 18N"); + ",NORTH],AUTHORITY[\"EPSG\",\"6738\"]]"); + p = add_epsg_def (filter, first, last, 6870, "epsg", 6870, + "ETRS89 / Albania 2010"); add_proj4text (p, 0, - "+proj=utm +zone=18 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +"); + add_proj4text (p, 1, + "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"ETRS89 / Albania 2010\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR"); + "],PARAMETER[\"central_meridian\",20],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); - add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26918\"]]"); - p = add_epsg_def (filter, first, last, 26919, "epsg", 26919, - "NAD83 / UTM zone 19N"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6870\"]]"); + p = add_epsg_def (filter, first, last, 6875, "epsg", 6875, + "RDN2008 / Italy zone"); add_proj4text (p, 0, - "+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9985000000000001 +x_"); + add_proj4text (p, 1, + "0=7000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); + add_proj4text (p, 2, + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"RDN2008 / Italy zone\",GEOGCS[\"RDN2008\",DATUM"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "[\"Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM["); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "UTHORITY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR"); + "central_meridian\",12],PARAMETER[\"scale_factor\",0.9985"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "],PARAMETER[\"false_easting\",7000000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); - add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26919\"]]"); - p = add_epsg_def (filter, first, last, 26920, "epsg", 26920, - "NAD83 / UTM zone 20N"); + "1\"]],AUTHORITY[\"EPSG\",\"6875\"]]"); + p = add_epsg_def (filter, first, last, 6876, "epsg", 6876, + "RDN2008 / Zone 12"); add_proj4text (p, 0, - "+proj=utm +zone=20 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=3000000 +y_0=0 "); + add_proj4text (p, 1, + "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"RDN2008 / Zone 12\",GEOGCS[\"RDN2008\",DATUM[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ORITY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, - "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR"); + "ntral_meridian\",12],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ETER[\"false_easting\",3000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); - add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26920\"]]"); - p = add_epsg_def (filter, first, last, 26921, "epsg", 26921, - "NAD83 / UTM zone 21N"); + "UTHORITY[\"EPSG\",\"6876\"]]"); + p = add_epsg_def (filter, first, last, 20004, "epsg", 20004, + "Pulkovo 1995 / Gauss-Kruger zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=21 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); + add_proj4text (p, 1, + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + add_proj4text (p, 2, + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR"); + "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45000"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20004\"]"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26921\"]]"); - p = add_epsg_def (filter, first, last, 26922, "epsg", 26922, - "NAD83 / UTM zone 22N"); + "]"); + p = add_epsg_def (filter, first, last, 20005, "epsg", 20005, + "Pulkovo 1995 / Gauss-Kruger zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=22 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); + add_proj4text (p, 1, + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + add_proj4text (p, 2, + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); + "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",55000"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20005\"]"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26922\"]]"); - p = add_epsg_def (filter, first, last, 26923, "epsg", 26923, - "NAD83 / UTM zone 23N"); + "]"); + p = add_epsg_def (filter, first, last, 20006, "epsg", 20006, + "Pulkovo 1995 / Gauss-Kruger zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=23 +datum=NAD83 +units=m +no_defs"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); + add_proj4text (p, 1, + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + add_proj4text (p, 2, + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR"); + "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",65000"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20006\"]"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"26923\"]]"); - p = add_epsg_def (filter, first, last, 26929, "epsg", 26929, - "NAD83 / Alabama East"); + "]"); + p = add_epsg_def (filter, first, last, 20007, "epsg", 20007, + "Pulkovo 1995 / Gauss-Kruger zone 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, - "9996 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + add_proj4text (p, 2, + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"cen"); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "tral_meridian\",-85.83333333333333],PARAMETER[\"scale_fa"); + "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); add_srs_wkt (p, 9, - "ctor\",0.99996],PARAMETER[\"false_easting\",200000],PARA"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20007\"]"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"26929\"]]"); - p = add_epsg_def (filter, first, last, 26930, "epsg", 26930, - "NAD83 / Alabama West"); + "]"); + p = add_epsg_def (filter, first, last, 20008, "epsg", 20008, + "Pulkovo 1995 / Gauss-Kruger zone 8"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); + "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, - "00000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); + add_proj4text (p, 2, + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "al_meridian\",-87.5],PARAMETER[\"scale_factor\",0.999933"); + "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET"); add_srs_wkt (p, 9, - "333],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20008\"]"); add_srs_wkt (p, 12, - "PSG\",\"26930\"]]"); - p = add_epsg_def (filter, first, last, 26931, "epsg", 26931, - "NAD83 / Alaska zone 1"); + "]"); + p = add_epsg_def (filter, first, last, 20009, "epsg", 20009, + "Pulkovo 1995 / Gauss-Kruger zone 9"); add_proj4text (p, 0, - "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); + "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, - "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "mma=323.1301023611111 +datum=NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Merc"); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, - "ator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER[\""); + "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, - "longitude_of_center\",-133.6666666666667],PARAMETER[\"az"); + "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET"); add_srs_wkt (p, 9, - "imuth\",323.1301023611111],PARAMETER[\"rectified_grid_an"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000"); add_srs_wkt (p, 10, - "gle\",323.1301023611111],PARAMETER[\"scale_factor\",0.99"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "99],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal"); + "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20009\"]"); add_srs_wkt (p, 12, - "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); - add_srs_wkt (p, 13, - "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); - add_srs_wkt (p, 14, - "ITY[\"EPSG\",\"26931\"]]"); - p = add_epsg_def (filter, first, last, 26932, "epsg", 26932, - "NAD83 / Alaska zone 2"); + "]"); + p = add_epsg_def (filter, first, last, 20010, "epsg", 20010, + "Pulkovo 1995 / Gauss-Kruger zone 10"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-142],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",105"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20010"); add_srs_wkt (p, 12, - ",\"26932\"]]"); - p = add_epsg_def (filter, first, last, 26933, "epsg", 26933, - "NAD83 / Alaska zone 3"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20011, "epsg", 20011, + "Pulkovo 1995 / Gauss-Kruger zone 11"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-146],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",115"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20011"); add_srs_wkt (p, 12, - ",\"26933\"]]"); - p = add_epsg_def (filter, first, last, 26934, "epsg", 26934, - "NAD83 / Alaska zone 4"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20012, "epsg", 20012, + "Pulkovo 1995 / Gauss-Kruger zone 12"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-150],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",125"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20012"); add_srs_wkt (p, 12, - ",\"26934\"]]"); - p = add_epsg_def (filter, first, last, 26935, "epsg", 26935, - "NAD83 / Alaska zone 5"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20013, "epsg", 20013, + "Pulkovo 1995 / Gauss-Kruger zone 13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-154],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20013"); add_srs_wkt (p, 12, - ",\"26935\"]]"); - p = add_epsg_def (filter, first, last, 26936, "epsg", 26936, - "NAD83 / Alaska zone 6"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20014, "epsg", 20014, + "Pulkovo 1995 / Gauss-Kruger zone 14"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-158],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20014"); add_srs_wkt (p, 12, - ",\"26936\"]]"); - p = add_epsg_def (filter, first, last, 26937, "epsg", 26937, - "NAD83 / Alaska zone 7"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20015, "epsg", 20015, + "Pulkovo 1995 / Gauss-Kruger zone 15"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-162],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20015"); add_srs_wkt (p, 12, - ",\"26937\"]]"); - p = add_epsg_def (filter, first, last, 26938, "epsg", 26938, - "NAD83 / Alaska zone 8"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20016, "epsg", 20016, + "Pulkovo 1995 / Gauss-Kruger zone 16"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-166],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20016"); add_srs_wkt (p, 12, - ",\"26938\"]]"); - p = add_epsg_def (filter, first, last, 26939, "epsg", 26939, - "NAD83 / Alaska zone 9"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20017, "epsg", 20017, + "Pulkovo 1995 / Gauss-Kruger zone 17"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "tral_meridian\",-170],PARAMETER[\"scale_factor\",0.9999]"); + "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175"); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20017"); add_srs_wkt (p, 12, - ",\"26939\"]]"); - p = add_epsg_def (filter, first, last, 26940, "epsg", 26940, - "NAD83 / Alaska zone 10"); + "\"]]"); + p = add_epsg_def (filter, first, last, 20018, "epsg", 20018, + "Pulkovo 1995 / Gauss-Kruger zone 18"); add_proj4text (p, 0, - "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, - "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +datum=NAD"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333334],PARAMETER[\"standard_parallel_2\",51.83333333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); add_srs_wkt (p, 9, - "333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\""); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18"); add_srs_wkt (p, 10, - "central_meridian\",-176],PARAMETER[\"false_easting\",100"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2001"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); - add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"26940\"]]"); - p = add_epsg_def (filter, first, last, 26941, "epsg", 26941, - "NAD83 / California zone 1"); + "8\"]]"); + p = add_epsg_def (filter, first, last, 20019, "epsg", 20019, + "Pulkovo 1995 / Gauss-Kruger zone 19"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, - "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +datu"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "m=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "666666666666],PARAMETER[\"standard_parallel_2\",40],PARA"); + "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); add_srs_wkt (p, 9, - "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-122],PARAMETER[\"false_easting\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2001"); add_srs_wkt (p, 12, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); - add_srs_wkt (p, 13, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]"); - p = add_epsg_def (filter, first, last, 26942, "epsg", 26942, - "NAD83 / California zone 2"); + "9\"]]"); + p = add_epsg_def (filter, first, last, 20020, "epsg", 20020, + "Pulkovo 1995 / Gauss-Kruger zone 20"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, - "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "_0=500000 +datum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333334],PARAMETER[\"standard_parallel_2\",38.33333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); add_srs_wkt (p, 9, - "333333334],PARAMETER[\"latitude_of_origin\",37.666666666"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, - "66666],PARAMETER[\"central_meridian\",-122],PARAMETER[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "false_easting\",2000000],PARAMETER[\"false_northing\",50"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); - add_srs_wkt (p, 13, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); - add_srs_wkt (p, 14, - "42\"]]"); - p = add_epsg_def (filter, first, last, 26943, "epsg", 26943, - "NAD83 / California zone 3"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 20021, "epsg", 20021, + "Pulkovo 1995 / Gauss-Kruger zone 21"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, - "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "datum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333333],PARAMETER[\"standard_parallel_2\",37.06666"); + "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); add_srs_wkt (p, 9, - "666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAME"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT["); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); - add_srs_wkt (p, 13, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]"); - p = add_epsg_def (filter, first, last, 26944, "epsg", 26944, - "NAD83 / California zone 4"); + "1\"]]"); + p = add_epsg_def (filter, first, last, 20022, "epsg", 20022, + "Pulkovo 1995 / Gauss-Kruger zone 22"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, - "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +datum=NAD83 +uni"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "ts=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lati"); + "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); add_srs_wkt (p, 9, - "tude_of_origin\",35.33333333333334],PARAMETER[\"central_"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22"); add_srs_wkt (p, 10, - "meridian\",-119],PARAMETER[\"false_easting\",2000000],PA"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTH"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); - add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"26944\"]]"); - p = add_epsg_def (filter, first, last, 26945, "epsg", 26945, - "NAD83 / California zone 5"); + "2\"]]"); + p = add_epsg_def (filter, first, last, 20023, "epsg", 20023, + "Pulkovo 1995 / Gauss-Kruger zone 23"); add_proj4text (p, 0, - "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, - "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +da"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "tum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "666666666667],PARAMETER[\"standard_parallel_2\",34.03333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 9, - "333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAME"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-118],PARAMETER[\"false_easting"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); - add_srs_wkt (p, 13, - ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]"); - p = add_epsg_def (filter, first, last, 26946, "epsg", 26946, - "NAD83 / California zone 6"); + "3\"]]"); + p = add_epsg_def (filter, first, last, 20024, "epsg", 20024, + "Pulkovo 1995 / Gauss-Kruger zone 24"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); + "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, - "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - " +y_0=500000 +datum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333333],PARAMETER[\"standard_parallel_2\",32.78333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA"); add_srs_wkt (p, 9, - "333333333],PARAMETER[\"latitude_of_origin\",32.166666666"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24"); add_srs_wkt (p, 10, - "66666],PARAMETER[\"central_meridian\",-116.25],PARAMETER"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 13, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 14, - "26946\"]]"); - p = add_epsg_def (filter, first, last, 26948, "epsg", 26948, - "NAD83 / Arizona East"); + "4\"]]"); + p = add_epsg_def (filter, first, last, 20025, "epsg", 20025, + "Pulkovo 1995 / Gauss-Kruger zone 25"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, - "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + add_proj4text (p, 2, + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact"); + "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",213360],PARAMET"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26948\"]]"); - p = add_epsg_def (filter, first, last, 26949, "epsg", 26949, - "NAD83 / Arizona Central"); + "5\"]]"); + p = add_epsg_def (filter, first, last, 20026, "epsg", 20026, + "Pulkovo 1995 / Gauss-Kruger zone 26"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, - "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + add_proj4text (p, 2, + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "central_meridian\",-111.9166666666667],PARAMETER[\"scale"); + "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA"); add_srs_wkt (p, 9, - "_factor\",0.9999],PARAMETER[\"false_easting\",213360],PA"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"26949\"]]"); - p = add_epsg_def (filter, first, last, 26950, "epsg", 26950, - "NAD83 / Arizona West"); + "6\"]]"); + p = add_epsg_def (filter, first, last, 20027, "epsg", 20027, + "Pulkovo 1995 / Gauss-Kruger zone 27"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, - "=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); + add_proj4text (p, 2, + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999"); + "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA"); add_srs_wkt (p, 9, - "33333],PARAMETER[\"false_easting\",213360],PARAMETER[\"f"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27"); add_srs_wkt (p, 10, - "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "EPSG\",\"26950\"]]"); - p = add_epsg_def (filter, first, last, 26951, "epsg", 26951, - "NAD83 / Arkansas North"); + "7\"]]"); + p = add_epsg_def (filter, first, last, 20028, "epsg", 20028, + "Pulkovo 1995 / Gauss-Kruger zone 28"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); + "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, - "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "=0 +datum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333],PARAMETER[\"standard_parallel_2\",34.93333333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA"); add_srs_wkt (p, 9, - "333333],PARAMETER[\"latitude_of_origin\",34.333333333333"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28"); add_srs_wkt (p, 10, - "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); - add_srs_wkt (p, 13, - "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]"); - p = add_epsg_def (filter, first, last, 26952, "epsg", 26952, - "NAD83 / Arkansas South"); + "8\"]]"); + p = add_epsg_def (filter, first, last, 20029, "epsg", 20029, + "Pulkovo 1995 / Gauss-Kruger zone 29"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); + "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, - ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +datu"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "m=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM"); + "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA"); add_srs_wkt (p, 9, - "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29"); add_srs_wkt (p, 10, - "[\"central_meridian\",-92],PARAMETER[\"false_easting\",4"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002"); add_srs_wkt (p, 12, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); - add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26952\"]]"); - p = add_epsg_def (filter, first, last, 26953, "epsg", 26953, - "NAD83 / Colorado North"); + "9\"]]"); + p = add_epsg_def (filter, first, last, 20030, "epsg", 20030, + "Pulkovo 1995 / Gauss-Kruger zone 30"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); + "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, - "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); + "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, - "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); + "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333],PARAMETER[\"standard_parallel_2\",39.71666666"); + "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA"); add_srs_wkt (p, 9, - "666667],PARAMETER[\"latitude_of_origin\",39.333333333333"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, - "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2003"); add_srs_wkt (p, 12, - ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); - add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"26953\"]]"); - p = add_epsg_def (filter, first, last, 26954, "epsg", 26954, - "NAD83 / Colorado Central"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 20031, "epsg", 20031, + "Pulkovo 1995 / Gauss-Kruger zone 31"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); + "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, - "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +da"); + "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, - "tum=NAD83 +units=m +no_defs"); + ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"lat"); + "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR"); add_srs_wkt (p, 9, - "itude_of_origin\",37.83333333333334],PARAMETER[\"central"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, - "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8"); + "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"200"); add_srs_wkt (p, 12, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); - add_srs_wkt (p, 13, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]"); - p = add_epsg_def (filter, first, last, 26955, "epsg", 26955, - "NAD83 / Colorado South"); + "31\"]]"); + p = add_epsg_def (filter, first, last, 20032, "epsg", 20032, + "Pulkovo 1995 / Gauss-Kruger zone 32"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); + "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, - "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); + "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, - "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); + ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "333333333],PARAMETER[\"standard_parallel_2\",37.23333333"); + "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR"); add_srs_wkt (p, 9, - "333333],PARAMETER[\"latitude_of_origin\",36.666666666666"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, - "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); + "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"200"); add_srs_wkt (p, 12, - ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); - add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"26955\"]]"); - p = add_epsg_def (filter, first, last, 26956, "epsg", 26956, - "NAD83 / Connecticut"); + "32\"]]"); + p = add_epsg_def (filter, first, last, 20064, "epsg", 20064, + "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "00.3048 +datum=NAD83 +units=m +no_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.86666666"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMETE"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); add_srs_wkt (p, 9, - "R[\"latitude_of_origin\",40.83333333333334],PARAMETER[\""); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "central_meridian\",-72.75],PARAMETER[\"false_easting\",3"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "04800.6096],PARAMETER[\"false_northing\",152400.3048],UN"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); - add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]"); - p = add_epsg_def (filter, first, last, 26957, "epsg", 26957, - "NAD83 / Delaware"); + "20064\"]]"); + p = add_epsg_def (filter, first, last, 20065, "epsg", 20065, + "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "995 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, - "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"central"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "_meridian\",-75.41666666666667],PARAMETER[\"scale_factor"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27"); add_srs_wkt (p, 9, - "\",0.999995],PARAMETER[\"false_easting\",200000],PARAMET"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26957\"]]"); - p = add_epsg_def (filter, first, last, 26958, "epsg", 26958, - "NAD83 / Florida East"); + "20065\"]]"); + p = add_epsg_def (filter, first, last, 20066, "epsg", 20066, + "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fact"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33"); add_srs_wkt (p, 9, - "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"26958\"]]"); - p = add_epsg_def (filter, first, last, 26959, "epsg", 26959, - "NAD83 / Florida West"); + "20066\"]]"); + p = add_epsg_def (filter, first, last, 20067, "epsg", 20067, + "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fact"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39"); add_srs_wkt (p, 9, - "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"26959\"]]"); - p = add_epsg_def (filter, first, last, 26960, "epsg", 26960, - "NAD83 / Florida North"); + "20067\"]]"); + p = add_epsg_def (filter, first, last, 20068, "epsg", 20068, + "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); + "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "+no_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],PAR"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",29.58333333333333],PARAME"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",29],PARAMETER[\"central_merid"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "ian\",-84.5],PARAMETER[\"false_easting\",600000],PARAMET"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); - add_srs_wkt (p, 13, - "RITY[\"EPSG\",\"26960\"]]"); - p = add_epsg_def (filter, first, last, 26961, "epsg", 26961, - "NAD83 / Hawaii zone 1"); + "20068\"]]"); + p = add_epsg_def (filter, first, last, 20069, "epsg", 20069, + "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); + "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "999966667 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_d"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "efs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",18.83333333333333],"); + "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"scale"); + "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51"); add_srs_wkt (p, 9, - "_factor\",0.999966667],PARAMETER[\"false_easting\",50000"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "RTH],AUTHORITY[\"EPSG\",\"26961\"]]"); - p = add_epsg_def (filter, first, last, 26962, "epsg", 26962, - "NAD83 / Hawaii zone 2"); + "20069\"]]"); + p = add_epsg_def (filter, first, last, 20070, "epsg", 20070, + "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); + "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=500000 +y_0=0 +datum=NAD83 +u"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "nits=m +no_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",20.33333333333333],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-156.6666666666667],PARAM"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]"); - p = add_epsg_def (filter, first, last, 26963, "epsg", 26963, - "NAD83 / Hawaii zone 3"); + "20070\"]]"); + p = add_epsg_def (filter, first, last, 20071, "epsg", 20071, + "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); + "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",21.16666666666667],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, - "actor\",0.99999],PARAMETER[\"false_easting\",500000],PAR"); + "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"26963\"]]"); - p = add_epsg_def (filter, first, last, 26964, "epsg", 26964, - "NAD83 / Hawaii zone 4"); + "20071\"]]"); + p = add_epsg_def (filter, first, last, 20072, "epsg", 20072, + "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); + "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "99999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",21.83333333333333],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"scale"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, - "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P"); + "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"26964\"]]"); - p = add_epsg_def (filter, first, last, 26965, "epsg", 26965, - "NAD83 / Hawaii zone 5"); + "20072\"]]"); + p = add_epsg_def (filter, first, last, 20073, "epsg", 20073, + "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "666667 +k=1 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",21.66666666666667],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-160.1666666666667],PARAM"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); + "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26965\"]]"); - p = add_epsg_def (filter, first, last, 26966, "epsg", 26966, - "NAD83 / Georgia East"); + "20073\"]]"); + p = add_epsg_def (filter, first, last, 20074, "epsg", 20074, + "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "9 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "al_meridian\",-82.16666666666667],PARAMETER[\"scale_fact"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); + "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26966\"]]"); - p = add_epsg_def (filter, first, last, 26967, "epsg", 26967, - "NAD83 / Georgia West"); + "20074\"]]"); + p = add_epsg_def (filter, first, last, 20075, "epsg", 20075, + "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "9 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); + add_proj4text (p, 2, + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "al_meridian\",-84.16666666666667],PARAMETER[\"scale_fact"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"26967\"]]"); - p = add_epsg_def (filter, first, last, 26968, "epsg", 26968, - "NAD83 / Idaho East"); + "20075\"]]"); + p = add_epsg_def (filter, first, last, 20076, "epsg", 20076, + "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +datum=N"); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "AD83 +units=m +no_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti"); + "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]"); - p = add_epsg_def (filter, first, last, 26969, "epsg", 26969, - "NAD83 / Idaho Central"); + "20076\"]]"); + p = add_epsg_def (filter, first, last, 20077, "epsg", 20077, + "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "99473679999999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m "); + "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, - "+no_defs"); + "22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",41.66666666666666],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, - "actor\",0.999947368],PARAMETER[\"false_easting\",500000]"); + "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"26969\"]]"); - p = add_epsg_def (filter, first, last, 26970, "epsg", 26970, - "NAD83 / Idaho West"); + "20077\"]]"); + p = add_epsg_def (filter, first, last, 20078, "epsg", 20078, + "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ".999933333 +x_0=800000 +y_0=0 +datum=NAD83 +units=m +no_"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.999933333],PARAMETER[\"false_easting\",800000"); + "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"26970\"]]"); - p = add_epsg_def (filter, first, last, 26971, "epsg", 26971, - "NAD83 / Illinois East"); + "\"20078\"]]"); + p = add_epsg_def (filter, first, last, 20079, "epsg", 20079, + "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +datum=N"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "AD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-88.33333333333333],PARAM"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",0.999975],PARAMETER[\"false_eastin"); + "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26971\"]]"); - p = add_epsg_def (filter, first, last, 26972, "epsg", 26972, - "NAD83 / Illinois West"); + "\"20079\"]]"); + p = add_epsg_def (filter, first, last, 20080, "epsg", 20080, + "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "666667 +k=0.999941177 +x_0=700000 +y_0=0 +datum=NAD83 +u"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "nits=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-90.16666666666667],PARAM"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas"); + "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]"); - p = add_epsg_def (filter, first, last, 26973, "epsg", 26973, - "NAD83 / Indiana East"); + "\"20080\"]]"); + p = add_epsg_def (filter, first, last, 20081, "epsg", 20081, + "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "99966667 +x_0=100000 +y_0=250000 +datum=NAD83 +units=m +"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "tral_meridian\",-85.66666666666667],PARAMETER[\"scale_fa"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "ctor\",0.999966667],PARAMETER[\"false_easting\",100000],"); + "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26973\"]]"); - p = add_epsg_def (filter, first, last, 26974, "epsg", 26974, - "NAD83 / Indiana West"); + "\"20081\"]]"); + p = add_epsg_def (filter, first, last, 20082, "epsg", 20082, + "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "99966667 +x_0=900000 +y_0=250000 +datum=NAD83 +units=m +"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "tral_meridian\",-87.08333333333333],PARAMETER[\"scale_fa"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "ctor\",0.999966667],PARAMETER[\"false_easting\",900000],"); + "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26974\"]]"); - p = add_epsg_def (filter, first, last, 26975, "epsg", 26975, - "NAD83 / Iowa North"); + "\"20082\"]]"); + p = add_epsg_def (filter, first, last, 20083, "epsg", 20083, + "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "datum=NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.266666666"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "66667],PARAMETER[\"standard_parallel_2\",42.066666666666"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "67],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"c"); + "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "entral_meridian\",-93.5],PARAMETER[\"false_easting\",150"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); - add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]"); - p = add_epsg_def (filter, first, last, 26976, "epsg", 26976, - "NAD83 / Iowa South"); + "\"20083\"]]"); + p = add_epsg_def (filter, first, last, 20084, "epsg", 20084, + "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); + "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +datum=NAD"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "33333],PARAMETER[\"standard_parallel_2\",40.616666666666"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "67],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); + "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "tral_meridian\",-93.5],PARAMETER[\"false_easting\",50000"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); - add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"26976\"]]"); - p = add_epsg_def (filter, first, last, 26977, "epsg", 26977, - "NAD83 / Kansas North"); + "\"20084\"]]"); + p = add_epsg_def (filter, first, last, 20085, "epsg", 20085, + "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); + "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "=0 +datum=NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333333"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "333333],PARAMETER[\"standard_parallel_2\",38.71666666666"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "667],PARAMETER[\"latitude_of_origin\",38.33333333333334]"); + "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - ",PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_e"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "asting\",400000],PARAMETER[\"false_northing\",0],UNIT[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); - add_srs_wkt (p, 13, - ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]"); - p = add_epsg_def (filter, first, last, 26978, "epsg", 26978, - "NAD83 / Kansas South"); + "\"20085\"]]"); + p = add_epsg_def (filter, first, last, 20086, "epsg", 20086, + "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); + "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "_0=400000 +datum=NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666666"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "666667],PARAMETER[\"standard_parallel_2\",37.26666666666"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "667],PARAMETER[\"latitude_of_origin\",36.66666666666666]"); + "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "_easting\",400000],PARAMETER[\"false_northing\",400000],"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); - add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]"); - p = add_epsg_def (filter, first, last, 26979, "epsg", 26979, - "NAD83 / Kentucky North (deprecated)"); + "\"20086\"]]"); + p = add_epsg_def (filter, first, last, 20087, "epsg", 20087, + "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666"); + "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum="); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\""); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, - "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "_1\",37.96666666666667],PARAMETER[\"standard_parallel_2\""); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - ",37.96666666666667],PARAMETER[\"latitude_of_origin\",37."); + "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"fa"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); - add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]"); - p = add_epsg_def (filter, first, last, 26980, "epsg", 26980, - "NAD83 / Kentucky South"); + "\"20087\"]]"); + p = add_epsg_def (filter, first, last, 20088, "epsg", 20088, + "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); + "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "y_0=500000 +datum=NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "333333333],PARAMETER[\"standard_parallel_2\",36.73333333"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "333333],PARAMETER[\"latitude_of_origin\",36.333333333333"); + "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "alse_easting\",500000],PARAMETER[\"false_northing\",5000"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); - add_srs_wkt (p, 13, - "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980"); - add_srs_wkt (p, 14, - "\"]]"); - p = add_epsg_def (filter, first, last, 26981, "epsg", 26981, - "NAD83 / Louisiana North"); + "\"20088\"]]"); + p = add_epsg_def (filter, first, last, 20089, "epsg", 20089, + "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); + "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +datum="); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "NAD83 +units=m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE"); + "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\""); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - ",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); - add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26981\"]]"); - p = add_epsg_def (filter, first, last, 26982, "epsg", 26982, - "NAD83 / Louisiana South"); + "\"20089\"]]"); + p = add_epsg_def (filter, first, last, 20090, "epsg", 20090, + "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); + "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ".33333333333333 +x_0=1000000 +y_0=0 +datum=NAD83 +units="); + "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, - "m +no_defs"); + ".22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91"); + "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - ".33333333333333],PARAMETER[\"false_easting\",1000000],PA"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 13, - "AUTHORITY[\"EPSG\",\"26982\"]]"); - p = add_epsg_def (filter, first, last, 26983, "epsg", 26983, - "NAD83 / Maine East"); + "\"20090\"]]"); + p = add_epsg_def (filter, first, last, 20091, "epsg", 20091, + "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); + "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, - "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); + add_proj4text (p, 2, + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - "ctor\",0.9999],PARAMETER[\"false_easting\",300000],PARAM"); + "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"26983\"]]"); - p = add_epsg_def (filter, first, last, 26984, "epsg", 26984, - "NAD83 / Maine West"); + ",\"20091\"]]"); + p = add_epsg_def (filter, first, last, 20092, "epsg", 20092, + "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); + "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, - "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); + " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, - "nits=m +no_defs"); + "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA"); + "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti"); + "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ng\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]"); - p = add_epsg_def (filter, first, last, 26985, "epsg", 26985, - "NAD83 / Maryland"); + ",\"20092\"]]"); + p = add_epsg_def (filter, first, last, 20135, "epsg", 20135, + "Adindan / UTM zone 35N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); + "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, - "666 +lon_0=-77 +x_0=400000 +y_0=0 +datum=NAD83 +units=m "); - add_proj4text (p, 2, - "+no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor"); + "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, - "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); + "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, - "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); + "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); + ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); + "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAMET"); + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_of"); + "ral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "_origin\",37.66666666666666],PARAMETER[\"central_meridia"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "n\",-77],PARAMETER[\"false_easting\",400000],PARAMETER[\""); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"26985\"]]"); - p = add_epsg_def (filter, first, last, 26986, "epsg", 26986, - "NAD83 / Massachusetts Mainland"); + "TY[\"EPSG\",\"20135\"]]"); + p = add_epsg_def (filter, first, last, 20136, "epsg", 20136, + "Adindan / UTM zone 36N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); + "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, - "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +datu"); - add_proj4text (p, 2, - "m=NAD83 +units=m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83"); + "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); + "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, - "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); + "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, - ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); + ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); + "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7"); + "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "ing\",200000],PARAMETER[\"false_northing\",750000],UNIT["); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); - add_srs_wkt (p, 13, - "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]"); - p = add_epsg_def (filter, first, last, 26987, "epsg", 26987, - "NAD83 / Massachusetts Island"); + "TY[\"EPSG\",\"20136\"]]"); + p = add_epsg_def (filter, first, last, 20137, "epsg", 20137, + "Adindan / UTM zone 37N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); + "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, - "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +datum=NAD"); - add_proj4text (p, 2, - "83 +units=m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\""); + "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); + "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, - ".48333333333333],PARAMETER[\"standard_parallel_2\",41.28"); + "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "333333333333],PARAMETER[\"latitude_of_origin\",41],PARAM"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "ETER[\"central_meridian\",-70.5],PARAMETER[\"false_easti"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); - add_srs_wkt (p, 13, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]"); - p = add_epsg_def (filter, first, last, 26988, "epsg", 26988, - "NAD83 / Michigan North"); + "TY[\"EPSG\",\"20137\"]]"); + p = add_epsg_def (filter, first, last, 20138, "epsg", 20138, + "Adindan / UTM zone 38N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); + "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, - "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); - add_proj4text (p, 2, - "0=0 +datum=NAD83 +units=m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333"); + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "333333334],PARAMETER[\"standard_parallel_2\",45.48333333"); + "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "333333],PARAMETER[\"latitude_of_origin\",44.783333333333"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "33],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fals"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "e_easting\",8000000],PARAMETER[\"false_northing\",0],UNI"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); - add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]"); - p = add_epsg_def (filter, first, last, 26989, "epsg", 26989, - "NAD83 / Michigan Central"); + "TY[\"EPSG\",\"20138\"]]"); + p = add_epsg_def (filter, first, last, 20248, "epsg", 20248, + "AGD66 / AMG zone 48 (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); + "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "y_0=0 +datum=NAD83 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"AGD66 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "66\",DATUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\""); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "\"EPSG\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.3"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "03,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIM"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],P"); + "],AUTHORITY[\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, - "ARAMETER[\"standard_parallel_2\",44.18333333333333],PARA"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, - "METER[\"latitude_of_origin\",43.31666666666667],PARAMETE"); + "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-84.36666666666666],PARAMETER[\"f"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "alse_easting\",6000000],PARAMETER[\"false_northing\",0],"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]"); - p = add_epsg_def (filter, first, last, 26990, "epsg", 26990, - "NAD83 / Michigan South"); + ",NORTH],AUTHORITY[\"EPSG\",\"20248\"]]"); + p = add_epsg_def (filter, first, last, 20249, "epsg", 20249, + "AGD66 / AMG zone 49"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); + "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +datum="); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "NAD83 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "666666666],PARAMETER[\"standard_parallel_2\",42.1],PARAM"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "ETER[\"latitude_of_origin\",41.5],PARAMETER[\"central_me"); + "meridian\",111],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "ridian\",-84.36666666666666],PARAMETER[\"false_easting\""); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26990\"]]"); - p = add_epsg_def (filter, first, last, 26991, "epsg", 26991, - "NAD83 / Minnesota North"); + "HORITY[\"EPSG\",\"20249\"]]"); + p = add_epsg_def (filter, first, last, 20250, "epsg", 20250, + "AGD66 / AMG zone 50"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); + "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "_0=100000 +datum=NAD83 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE"); + "meridian\",117],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\""); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - ",800000],PARAMETER[\"false_northing\",100000],UNIT[\"met"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]"); - p = add_epsg_def (filter, first, last, 26992, "epsg", 26992, - "NAD83 / Minnesota Central"); + "HORITY[\"EPSG\",\"20250\"]]"); + p = add_epsg_def (filter, first, last, 20251, "epsg", 20251, + "AGD66 / AMG zone 51"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); + "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +datum=NAD83 +un"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "its=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "],PARAMETER[\"standard_parallel_2\",45.61666666666667],P"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "ARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central_"); + "meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "meridian\",-94.25],PARAMETER[\"false_easting\",800000],P"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUT"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, - "ORTH],AUTHORITY[\"EPSG\",\"26992\"]]"); - p = add_epsg_def (filter, first, last, 26993, "epsg", 26993, - "NAD83 / Minnesota South"); + "HORITY[\"EPSG\",\"20251\"]]"); + p = add_epsg_def (filter, first, last, 20252, "epsg", 20252, + "AGD66 / AMG zone 52"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); + "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +datum="); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "NAD83 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER["); + "meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "\"central_meridian\",-94],PARAMETER[\"false_easting\",80"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",100000],UNIT[\"metre\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"26993\"]]"); - p = add_epsg_def (filter, first, last, 26994, "epsg", 26994, - "NAD83 / Mississippi East"); + "HORITY[\"EPSG\",\"20252\"]]"); + p = add_epsg_def (filter, first, last, 20253, "epsg", 20253, + "AGD66 / AMG zone 53"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); + "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "9995 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "\"central_meridian\",-88.83333333333333],PARAMETER[\"sca"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "le_factor\",0.99995],PARAMETER[\"false_easting\",300000]"); + "meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"26994\"]]"); - p = add_epsg_def (filter, first, last, 26995, "epsg", 26995, - "NAD83 / Mississippi West"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20253\"]]"); + p = add_epsg_def (filter, first, last, 20254, "epsg", 20254, + "AGD66 / AMG zone 54"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); + "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "9995 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "\"central_meridian\",-90.33333333333333],PARAMETER[\"sca"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "le_factor\",0.99995],PARAMETER[\"false_easting\",700000]"); + "meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"26995\"]]"); - p = add_epsg_def (filter, first, last, 26996, "epsg", 26996, - "NAD83 / Missouri East"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20254\"]]"); + p = add_epsg_def (filter, first, last, 20255, "epsg", 20255, + "AGD66 / AMG zone 55"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); + "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "99933333 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_de"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "fs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",35.83333333333334],"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scale_"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "factor\",0.999933333],PARAMETER[\"false_easting\",250000"); + "meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"26996\"]]"); - p = add_epsg_def (filter, first, last, 26997, "epsg", 26997, - "NAD83 / Missouri Central"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20255\"]]"); + p = add_epsg_def (filter, first, last, 20256, "epsg", 20256, + "AGD66 / AMG zone 56"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); + "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "99933333 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_de"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "fs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",35.8333333333333"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "4],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"sca"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "le_factor\",0.999933333],PARAMETER[\"false_easting\",500"); + "meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"26997\"]]"); - p = add_epsg_def (filter, first, last, 26998, "epsg", 26998, - "NAD83 / Missouri West"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20256\"]]"); + p = add_epsg_def (filter, first, last, 20257, "epsg", 20257, + "AGD66 / AMG zone 57"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); + "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "99941177 +x_0=850000 +y_0=0 +datum=NAD83 +units=m +no_de"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, - "fs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",36.16666666666666],"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scale_"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "factor\",0.999941177],PARAMETER[\"false_easting\",850000"); + "meridian\",159],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"26998\"]]"); - p = add_epsg_def (filter, first, last, 27037, "epsg", 27037, - "Nahrwan 1967 / UTM zone 37N"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20257\"]]"); + p = add_epsg_def (filter, first, last, 20258, "epsg", 20258, + "AGD66 / AMG zone 58"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-243,-192,477,"); + "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, - "0,0,0,0 +units=m +no_defs"); + "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan "); + "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, - "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); + "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); + "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, - "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); + "meridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]"); - p = add_epsg_def (filter, first, last, 27038, "epsg", 27038, - "Nahrwan 1967 / UTM zone 38N"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"20258\"]]"); + p = add_epsg_def (filter, first, last, 20348, "epsg", 20348, + "AGD84 / AMG zone 48 (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-243,-192,477,"); + "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "0,0,0,0 +units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan "); + "PROJCS[\"AGD84 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, - "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); + "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, - "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); + "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, - "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); + "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\""); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); + "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 9, - "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); + "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]"); - p = add_epsg_def (filter, first, last, 27039, "epsg", 27039, - "Nahrwan 1967 / UTM zone 39N"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "20348\"]]"); + p = add_epsg_def (filter, first, last, 20349, "epsg", 20349, + "AGD84 / AMG zone 49"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-243,-192,477,"); + "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "0,0,0,0 +units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan "); + "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); + "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); add_srs_wkt (p, 9, - "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]"); - p = add_epsg_def (filter, first, last, 27040, "epsg", 27040, - "Nahrwan 1967 / UTM zone 40N"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]"); + p = add_epsg_def (filter, first, last, 20350, "epsg", 20350, + "AGD84 / AMG zone 50"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-243,-192,477,"); + "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "0,0,0,0 +units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan "); + "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); + "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\""); add_srs_wkt (p, 9, - "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]"); - p = add_epsg_def (filter, first, last, 27120, "epsg", 27120, - "Naparima 1972 / UTM zone 20N"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]"); + p = add_epsg_def (filter, first, last, 20351, "epsg", 20351, + "AGD84 / AMG zone 51"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,"); + "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "0,0 +units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim"); + "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); + "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\""); add_srs_wkt (p, 9, - "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"27120\"]]"); - p = add_epsg_def (filter, first, last, 27200, "epsg", 27200, - "NZGD49 / New Zealand Map Grid"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]"); + p = add_epsg_def (filter, first, last, 20352, "epsg", 20352, + "AGD84 / AMG zone 52"); add_proj4text (p, 0, - "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231"); + "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "50 +datum=nzgd49 +units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49"); + "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - ",\"4272\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMET"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ER[\"latitude_of_origin\",-41],PARAMETER[\"central_merid"); + "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\""); add_srs_wkt (p, 9, - "ian\",173],PARAMETER[\"false_easting\",2510000],PARAMETE"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "R[\"false_northing\",6023150],UNIT[\"metre\",1,AUTHORITY"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]"); - p = add_epsg_def (filter, first, last, 27205, "epsg", 27205, - "NZGD49 / Mount Eden Circuit"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]"); + p = add_epsg_def (filter, first, last, 20353, "epsg", 20353, + "AGD84 / AMG zone 53"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393"); + "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "611111 +k=0.9999 +x_0=300000 +y_0=700000 +datum=nzgd49 +"); - add_proj4text (p, 2, - "units=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-36.87986527777778],PARAMETER[\""); + "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 9, - "central_meridian\",174.7643393611111],PARAMETER[\"scale_"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "AMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHO"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 13, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"27205\"]]"); - p = add_epsg_def (filter, first, last, 27206, "epsg", 27206, - "NZGD49 / Bay of Plenty Circuit"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]"); + p = add_epsg_def (filter, first, last, 20354, "epsg", 20354, + "AGD84 / AMG zone 54"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972"); + "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); - add_proj4text (p, 2, - "o_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4"); + "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",-37.76124980555556],PARAMETER[\""); + "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\""); add_srs_wkt (p, 9, - "central_meridian\",176.46619725],PARAMETER[\"scale_facto"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27206\"]]"); - p = add_epsg_def (filter, first, last, 27207, "epsg", 27207, - "NZGD49 / Poverty Bay Circuit"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]"); + p = add_epsg_def (filter, first, last, 20355, "epsg", 20355, + "AGD84 / AMG zone 55"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362"); + "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-38.62470277777778],PARAMETER[\""); + "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\""); add_srs_wkt (p, 9, - "central_meridian\",177.8856362777778],PARAMETER[\"scale_"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); - add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27207\"]]"); - p = add_epsg_def (filter, first, last, 27208, "epsg", 27208, - "NZGD49 / Hawkes Bay Circuit"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]"); + p = add_epsg_def (filter, first, last, 20356, "epsg", 20356, + "AGD84 / AMG zone 56"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805"); + "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "277778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-39.65092930555556],PARAMETER[\""); + "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\""); add_srs_wkt (p, 9, - "central_meridian\",176.6736805277778],PARAMETER[\"scale_"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); - add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27208\"]]"); - p = add_epsg_def (filter, first, last, 27209, "epsg", 27209, - "NZGD49 / Taranaki Circuit"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]"); + p = add_epsg_def (filter, first, last, 20357, "epsg", 20357, + "AGD84 / AMG zone 57 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117"); + "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); - add_proj4text (p, 2, - "o_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D"); + "PROJCS[\"AGD84 / AMG zone 57 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, - "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); + "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, - "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\""); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, - "latitude_of_origin\",-39.13575830555556],PARAMETER[\"cen"); + "ude_of_origin\",0],PARAMETER[\"central_meridian\",159],P"); add_srs_wkt (p, 9, - "tral_meridian\",174.22801175],PARAMETER[\"scale_factor\""); + "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); + "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 11, - "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, - "ST],AUTHORITY[\"EPSG\",\"27209\"]]"); - p = add_epsg_def (filter, first, last, 27210, "epsg", 27210, - "NZGD49 / Tuhirangi Circuit"); + "20357\"]]"); + p = add_epsg_def (filter, first, last, 20358, "epsg", 20358, + "AGD84 / AMG zone 58 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368"); + "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, - "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\","); + "PROJCS[\"AGD84 / AMG zone 58 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, - "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); + "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\""); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, - "latitude_of_origin\",-39.51247038888889],PARAMETER[\"cen"); + "ude_of_origin\",0],PARAMETER[\"central_meridian\",165],P"); add_srs_wkt (p, 9, - "tral_meridian\",175.6400368055556],PARAMETER[\"scale_fac"); + "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27210\"]]"); - p = add_epsg_def (filter, first, last, 27211, "epsg", 27211, - "NZGD49 / Wanganui Circuit"); + "20358\"]]"); + p = add_epsg_def (filter, first, last, 20436, "epsg", 20436, + "Ain el Abd / UTM zone 36N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996"); + "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D"); + "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "latitude_of_origin\",-40.24194713888889],PARAMETER[\"cen"); + "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "tral_meridian\",175.4880996111111],PARAMETER[\"scale_fac"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27211\"]]"); - p = add_epsg_def (filter, first, last, 27212, "epsg", 27212, - "NZGD49 / Wairarapa Circuit"); + "UTHORITY[\"EPSG\",\"20436\"]]"); + p = add_epsg_def (filter, first, last, 20437, "epsg", 20437, + "Ain el Abd / UTM zone 37N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496"); + "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\","); + "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "latitude_of_origin\",-40.92553263888889],PARAMETER[\"cen"); + "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "tral_meridian\",175.6473496666667],PARAMETER[\"scale_fac"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27212\"]]"); + "UTHORITY[\"EPSG\",\"20437\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_33.c b/src/spatialite/src/srsinit/epsg_inlined_33.c index 2f35125..320ccf8 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_33.c +++ b/src/spatialite/src/srsinit/epsg_inlined_33.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3562 +52,3278 @@ initialize_epsg_33 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 27213, "epsg", 27213, - "NZGD49 / Wellington Circuit"); + p = add_epsg_def (filter, first, last, 20438, "epsg", 20438, + "Ain el Abd / UTM zone 38N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231"); + "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-41.30131963888888],PARAMETER[\""); + "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "central_meridian\",174.7766231111111],PARAMETER[\"scale_"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); - add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27213\"]]"); - p = add_epsg_def (filter, first, last, 27214, "epsg", 27214, - "NZGD49 / Collingwood Circuit"); + "UTHORITY[\"EPSG\",\"20438\"]]"); + p = add_epsg_def (filter, first, last, 20439, "epsg", 20439, + "Ain el Abd / UTM zone 39N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465"); + "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-40.71475905555556],PARAMETER[\""); + "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "central_meridian\",172.6720465],PARAMETER[\"scale_factor"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 13, - "EAST],AUTHORITY[\"EPSG\",\"27214\"]]"); - p = add_epsg_def (filter, first, last, 27215, "epsg", 27215, - "NZGD49 / Nelson Circuit"); + "UTHORITY[\"EPSG\",\"20439\"]]"); + p = add_epsg_def (filter, first, last, 20440, "epsg", 20440, + "Ain el Abd / UTM zone 40N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168"); + "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - "055555 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT"); + "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "atitude_of_origin\",-41.27454472222222],PARAMETER[\"cent"); + "\"central_meridian\",57],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "ral_meridian\",173.2993168055555],PARAMETER[\"scale_fact"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27215\"]]"); - p = add_epsg_def (filter, first, last, 27216, "epsg", 27216, - "NZGD49 / Karamea Circuit"); + "UTHORITY[\"EPSG\",\"20440\"]]"); + p = add_epsg_def (filter, first, last, 20499, "epsg", 20499, + "Ain el Abd / Bahrain Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281"); + "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, - "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA"); + "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, - "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); + "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, - "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); + "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, - "latitude_of_origin\",-41.28991152777778],PARAMETER[\"cen"); + "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "tral_meridian\",172.1090281944444],PARAMETER[\"scale_fac"); + "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27216\"]]"); - p = add_epsg_def (filter, first, last, 27217, "epsg", 27217, - "NZGD49 / Buller Circuit"); + "UTHORITY[\"EPSG\",\"20499\"]]"); + p = add_epsg_def (filter, first, last, 20538, "epsg", 20538, + "Afgooye / UTM zone 38N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600"); + "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, - "555556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT"); + "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, - "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); + "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, - "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); + "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, - ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); + "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, - "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, - "atitude_of_origin\",-41.81080286111111],PARAMETER[\"cent"); + "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "ral_meridian\",171.5812600555556],PARAMETER[\"scale_fact"); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27217\"]]"); - p = add_epsg_def (filter, first, last, 27218, "epsg", 27218, - "NZGD49 / Grey Circuit"); + ",\"20538\"]]"); + p = add_epsg_def (filter, first, last, 20539, "epsg", 20539, + "Afgooye / UTM zone 39N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713"); + "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, - "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM"); + "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, - "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); + "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, - "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); + "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, - "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); + "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); + "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, - "itude_of_origin\",-42.33369427777778],PARAMETER[\"centra"); + "ian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "l_meridian\",171.5497713055556],PARAMETER[\"scale_factor"); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 13, - "EAST],AUTHORITY[\"EPSG\",\"27218\"]]"); - p = add_epsg_def (filter, first, last, 27219, "epsg", 27219, - "NZGD49 / Amuri Circuit"); + ",\"20539\"]]"); + p = add_epsg_def (filter, first, last, 20790, "epsg", 20790, + "Lisbon (Lisbon) / Portuguese National Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333"); + "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, - "888889 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576"); add_proj4text (p, 2, - "=m +no_defs"); + ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU"); + "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE"); add_srs_wkt (p, 1, - "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); + "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); + "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319"); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, - "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); + "ITY[\"EPSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, - "titude_of_origin\",-42.68911658333333],PARAMETER[\"centr"); + "\"],PARAMETER[\"latitude_of_origin\",39.66666666666666],"); add_srs_wkt (p, 9, - "al_meridian\",173.0101333888889],PARAMETER[\"scale_facto"); + "PARAMETER[\"central_meridian\",1],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); + "or\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 11, - "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27219\"]]"); - p = add_epsg_def (filter, first, last, 27220, "epsg", 27220, - "NZGD49 / Marlborough Circuit"); + "RITY[\"EPSG\",\"20790\"]]"); + p = add_epsg_def (filter, first, last, 20791, "epsg", 20791, + "Lisbon (Lisbon) / Portuguese Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741"); + "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, - "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,"); add_proj4text (p, 2, - "=m +no_defs"); + "0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li"); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\""); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "SG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-41.54448666666666],PARAMETER[\""); + "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE"); add_srs_wkt (p, 9, - "central_meridian\",173.8020741111111],PARAMETER[\"scale_"); + "R[\"central_meridian\",1],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); + "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20"); add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27220\"]]"); - p = add_epsg_def (filter, first, last, 27221, "epsg", 27221, - "NZGD49 / Hokitika Circuit"); + "791\"]]"); + p = add_epsg_def (filter, first, last, 20822, "epsg", 20822, + "Aratu / UTM zone 22S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935"); + "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, - " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D"); + "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); + "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, - "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, - "latitude_of_origin\",-42.88632236111111],PARAMETER[\"cen"); + "meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "tral_meridian\",170.9799935],PARAMETER[\"scale_factor\","); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); - add_srs_wkt (p, 13, - "T],AUTHORITY[\"EPSG\",\"27221\"]]"); - p = add_epsg_def (filter, first, last, 27222, "epsg", 27222, - "NZGD49 / Okarito Circuit"); + "HORITY[\"EPSG\",\"20822\"]]"); + p = add_epsg_def (filter, first, last, 20823, "epsg", 20823, + "Aratu / UTM zone 23S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258"); + "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, - "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA"); + "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); + "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, - "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); + "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, - "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, - "latitude_of_origin\",-43.11012813888889],PARAMETER[\"cen"); + "meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "tral_meridian\",170.2609258333333],PARAMETER[\"scale_fac"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27222\"]]"); - p = add_epsg_def (filter, first, last, 27223, "epsg", 27223, - "NZGD49 / Jacksons Bay Circuit"); + "HORITY[\"EPSG\",\"20823\"]]"); + p = add_epsg_def (filter, first, last, 20824, "epsg", 20824, + "Aratu / UTM zone 24S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 "); + "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, - "+k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no_"); - add_proj4text (p, 2, - "defs"); + "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49"); + "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, - "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); + "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",-43.97780288888889],PARAMETER[\""); + "meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "central_meridian\",168.606267],PARAMETER[\"scale_factor\""); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); - add_srs_wkt (p, 13, - "ST],AUTHORITY[\"EPSG\",\"27223\"]]"); - p = add_epsg_def (filter, first, last, 27224, "epsg", 27224, - "NZGD49 / Mount Pleasant Circuit"); + "HORITY[\"EPSG\",\"20824\"]]"); + p = add_epsg_def (filter, first, last, 20934, "epsg", 20934, + "Arc 1950 / UTM zone 34S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935"); + "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD"); + "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, - "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); + "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, - "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); + ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, - "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); + "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, - "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",-43.59063758333333],PARAMETE"); + "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "R[\"central_meridian\",172.7271935833333],PARAMETER[\"sc"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 13, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"27224\"]]"); - p = add_epsg_def (filter, first, last, 27225, "epsg", 27225, - "NZGD49 / Gawler Circuit"); + ",NORTH],AUTHORITY[\"EPSG\",\"20934\"]]"); + p = add_epsg_def (filter, first, last, 20935, "epsg", 20935, + "Arc 1950 / UTM zone 35S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484"); + "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "722222 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT"); + "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, - "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); + "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, - "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); + ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, - ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); + "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "atitude_of_origin\",-43.74871155555556],PARAMETER[\"cent"); + "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "ral_meridian\",171.3607484722222],PARAMETER[\"scale_fact"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27225\"]]"); - p = add_epsg_def (filter, first, last, 27226, "epsg", 27226, - "NZGD49 / Timaru Circuit"); + ",NORTH],AUTHORITY[\"EPSG\",\"20935\"]]"); + p = add_epsg_def (filter, first, last, 20936, "epsg", 20936, + "Arc 1950 / UTM zone 36S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508"); + "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT"); + "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, - "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); + "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, - "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); + ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, - ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); + "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "atitude_of_origin\",-44.40222036111111],PARAMETER[\"cent"); + "R[\"central_meridian\",33],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "ral_meridian\",171.0572508333333],PARAMETER[\"scale_fact"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); - add_srs_wkt (p, 13, - ",EAST],AUTHORITY[\"EPSG\",\"27226\"]]"); - p = add_epsg_def (filter, first, last, 27227, "epsg", 27227, - "NZGD49 / Lindis Peak Circuit"); + ",NORTH],AUTHORITY[\"EPSG\",\"20936\"]]"); + p = add_epsg_def (filter, first, last, 21035, "epsg", 21035, + "Arc 1960 / UTM zone 35S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550"); + "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, - "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-44.73526797222222],PARAMETER[\""); + "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "central_meridian\",169.4677550833333],PARAMETER[\"scale_"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); - add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27227\"]]"); - p = add_epsg_def (filter, first, last, 27228, "epsg", 27228, - "NZGD49 / Mount Nicholas Circuit"); + "H],AUTHORITY[\"EPSG\",\"21035\"]]"); + p = add_epsg_def (filter, first, last, 21036, "epsg", 21036, + "Arc 1960 / UTM zone 36S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411"); + "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, - "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD"); + "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",-45.13290258333333],PARAMETE"); + "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "R[\"central_meridian\",168.3986411944444],PARAMETER[\"sc"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); + "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 13, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"27228\"]]"); - p = add_epsg_def (filter, first, last, 27229, "epsg", 27229, - "NZGD49 / Mount York Circuit"); + "H],AUTHORITY[\"EPSG\",\"21036\"]]"); + p = add_epsg_def (filter, first, last, 21037, "epsg", 21037, + "Arc 1960 / UTM zone 37S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617"); + "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, - "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\""); + "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",-45.56372616666666],PARAMETER[\""); + "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "central_meridian\",167.7388617777778],PARAMETER[\"scale_"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); + "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); - add_srs_wkt (p, 13, - "ing\",EAST],AUTHORITY[\"EPSG\",\"27229\"]]"); - p = add_epsg_def (filter, first, last, 27230, "epsg", 27230, - "NZGD49 / Observation Point Circuit"); + "H],AUTHORITY[\"EPSG\",\"21037\"]]"); + p = add_epsg_def (filter, first, last, 21095, "epsg", 21095, + "Arc 1960 / UTM zone 35N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951"); + "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, - "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); - add_proj4text (p, 2, - "=m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N"); + "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO"); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "EPSG\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",-45.81619661111111],PARAM"); + "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "ETER[\"central_meridian\",170.6285951666667],PARAMETER[\""); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "scale_factor\",1],PARAMETER[\"false_easting\",300000],PA"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); - add_srs_wkt (p, 13, - "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27230\"]]"); - p = add_epsg_def (filter, first, last, 27231, "epsg", 27231, - "NZGD49 / North Taieri Circuit"); + "RITY[\"EPSG\",\"21095\"]]"); + p = add_epsg_def (filter, first, last, 21096, "epsg", 21096, + "Arc 1960 / UTM zone 36N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891"); + "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, - "111111 +k=0.99996 +x_0=300000 +y_0=700000 +datum=nzgd49 "); - add_proj4text (p, 2, - "+units=m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49"); + "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",-45.86151336111111],PARAMETER[\""); + "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "central_meridian\",170.2825891111111],PARAMETER[\"scale_"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "factor\",0.99996],PARAMETER[\"false_easting\",300000],PA"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); - add_srs_wkt (p, 13, - "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27231\"]]"); - p = add_epsg_def (filter, first, last, 27232, "epsg", 27232, - "NZGD49 / Bluff Circuit"); + "RITY[\"EPSG\",\"21096\"]]"); + p = add_epsg_def (filter, first, last, 21097, "epsg", 21097, + "Arc 1960 / UTM zone 37N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 "); + "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, - "+k=1 +x_0=300002.66 +y_0=699999.58 +datum=nzgd49 +units="); - add_proj4text (p, 2, - "m +no_defs"); + ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU"); + "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, - "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); + "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, - "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); + "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); + "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "titude_of_origin\",-46.60000961111111],PARAMETER[\"centr"); + "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "al_meridian\",168.342872],PARAMETER[\"scale_factor\",1],"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",300002.66],PARAMETER[\"false"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "_northing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); - add_srs_wkt (p, 13, - "EAST],AUTHORITY[\"EPSG\",\"27232\"]]"); - p = add_epsg_def (filter, first, last, 27258, "epsg", 27258, - "NZGD49 / UTM zone 58S"); + "RITY[\"EPSG\",\"21097\"]]"); + p = add_epsg_def (filter, first, last, 21100, "epsg", 21100, + "Batavia (Jakarta) / NEIEZ (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +datum=nzgd49 +units=m +no_def"); + "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, - "s"); + "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta "); + add_proj4text (p, 2, + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM"); + "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, - "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); + "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI"); add_srs_wkt (p, 2, - "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); + "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); + "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "\",\"4813\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"c"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); + "entral_meridian\",110],PARAMETER[\"scale_factor\",0.997]"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + ",PARAMETER[\"false_easting\",3900000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"27258\"]]"); - p = add_epsg_def (filter, first, last, 27259, "epsg", 27259, - "NZGD49 / UTM zone 59S"); + "EPSG\",\"21100\"]]"); + p = add_epsg_def (filter, first, last, 21148, "epsg", 21148, + "Batavia / UTM zone 48S"); add_proj4text (p, 0, - "+proj=utm +zone=59 +south +datum=nzgd49 +units=m +no_def"); + "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, - "s"); + "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM"); + "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, - "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); + "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, - "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); + "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, - "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); + "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); + "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); + "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"27259\"]]"); - p = add_epsg_def (filter, first, last, 27260, "epsg", 27260, - "NZGD49 / UTM zone 60S"); + "UTHORITY[\"EPSG\",\"21148\"]]"); + p = add_epsg_def (filter, first, last, 21149, "epsg", 21149, + "Batavia / UTM zone 49S"); add_proj4text (p, 0, - "+proj=utm +zone=60 +south +datum=nzgd49 +units=m +no_def"); + "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, - "s"); + "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM"); + "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, - "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); + "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, - "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); + "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, - "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); + "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); + "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]"); + "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"27260\"]]"); - p = add_epsg_def (filter, first, last, 27291, "epsg", 27291, - "NZGD49 / North Island Grid"); + "UTHORITY[\"EPSG\",\"21149\"]]"); + p = add_epsg_def (filter, first, last, 21150, "epsg", 21150, + "Batavia / UTM zone 50S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524"); + "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, - "3848086 +y_0=365759.3658464114 +datum=nzgd49 +to_meter=0"); - add_proj4text (p, 2, - ".9143984146160287 +no_defs"); + "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\","); + "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, - "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); + "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",-39],PARAMETER[\"central_meridian\""); + "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",175.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "easting\",300000],PARAMETER[\"false_northing\",400000],U"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 13, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]"); - p = add_epsg_def (filter, first, last, 27292, "epsg", 27292, - "NZGD49 / South Island Grid"); + "UTHORITY[\"EPSG\",\"21150\"]]"); + p = add_epsg_def (filter, first, last, 21291, "epsg", 21291, + "Barbados 1938 / British West Indies Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207"); + "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, - "3080143 +y_0=457199.2073080143 +datum=nzgd49 +to_meter=0"); + "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419"); add_proj4text (p, 2, - ".9143984146160287 +no_defs"); + ".19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\","); + "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, - "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); + "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\""); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); + "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212"); add_srs_wkt (p, 7, - "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",-44],PARAMETER[\"central_meridian\""); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-62]"); add_srs_wkt (p, 9, - ",171.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); + ",PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "easting\",500000],PARAMETER[\"false_northing\",500000],U"); + "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, - "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2129"); add_srs_wkt (p, 13, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]"); - p = add_epsg_def (filter, first, last, 27391, "epsg", 27391, - "NGO 1948 (Oslo) / NGO zone I"); + "1\"]]"); + p = add_epsg_def (filter, first, last, 21292, "epsg", 21292, + "Barbados 1938 / Barbados National Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_"); + "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222"); add_proj4text (p, 1, - "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); + "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 "); add_proj4text (p, 2, - "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); - add_proj4text (p, 3, - "no_defs"); + "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194"); + "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS"); add_srs_wkt (p, 1, - "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); + "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, - "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); + "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); + ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); + "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, - "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); + "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, - "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); + "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212\""); add_srs_wkt (p, 7, - "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); + "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, - "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); + "ude_of_origin\",13.17638888888889],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "ridian\",-4.666666666666667],PARAMETER[\"scale_factor\","); + "eridian\",-59.55972222222222],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); + ",0.9999986],PARAMETER[\"false_easting\",30000],PARAMETER"); add_srs_wkt (p, 11, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "[\"false_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, - "27391\"]]"); - p = add_epsg_def (filter, first, last, 27392, "epsg", 27392, - "NGO 1948 (Oslo) / NGO zone II"); + "\",NORTH],AUTHORITY[\"EPSG\",\"21292\"]]"); + p = add_epsg_def (filter, first, last, 21413, "epsg", 21413, + "Beijing 1954 / Gauss-Kruger zone 13"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, - "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); + " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, - "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); - add_proj4text (p, 3, - "no_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, - "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); + "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "eridian\",-2.333333333333333],PARAMETER[\"scale_factor\""); + "factor\",1],PARAMETER[\"false_easting\",13500000],PARAME"); add_srs_wkt (p, 10, - ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); - add_srs_wkt (p, 12, - "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"27392\"]]"); - p = add_epsg_def (filter, first, last, 27393, "epsg", 27393, - "NGO 1948 (Oslo) / NGO zone III"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21413\"]]"); + p = add_epsg_def (filter, first, last, 21414, "epsg", 21414, + "Beijing 1954 / Gauss-Kruger zone 14"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, - "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7."); + " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, - "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, - "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); + "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "eridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); + "factor\",1],PARAMETER[\"false_easting\",14500000],PARAME"); add_srs_wkt (p, 10, - "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH"); - add_srs_wkt (p, 12, - "],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27393\"]]"); - p = add_epsg_def (filter, first, last, 27394, "epsg", 27394, - "NGO 1948 (Oslo) / NGO zone IV"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21414\"]]"); + p = add_epsg_def (filter, first, last, 21415, "epsg", 21415, + "Beijing 1954 / Gauss-Kruger zone 15"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, - "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,"); + " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, - "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, - "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); + "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "eridian\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "factor\",1],PARAMETER[\"false_easting\",15500000],PARAME"); add_srs_wkt (p, 10, - "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NOR"); - add_srs_wkt (p, 12, - "TH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27394\"]]"); - p = add_epsg_def (filter, first, last, 27395, "epsg", 27395, - "NGO 1948 (Oslo) / NGO zone V"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21415\"]]"); + p = add_epsg_def (filter, first, last, 21416, "epsg", 21416, + "Beijing 1954 / Gauss-Kruger zone 16"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, - "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, - "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); - add_proj4text (p, 3, - "o_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, - "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); + "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "ridian\",6.166666666666667],PARAMETER[\"scale_factor\",1"); + "factor\",1],PARAMETER[\"false_easting\",16500000],PARAME"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 12, - "AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "27395\"]]"); - p = add_epsg_def (filter, first, last, 27396, "epsg", 27396, - "NGO 1948 (Oslo) / NGO zone VI"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21416\"]]"); + p = add_epsg_def (filter, first, last, 21417, "epsg", 21417, + "Beijing 1954 / Gauss-Kruger zone 17"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, - "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, - "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); - add_proj4text (p, 3, - "o_defs"); + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, - "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); + "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "eridian\",10.16666666666667],PARAMETER[\"scale_factor\","); + "factor\",1],PARAMETER[\"false_easting\",17500000],PARAME"); add_srs_wkt (p, 10, - "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); - add_srs_wkt (p, 12, - ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "27396\"]]"); - p = add_epsg_def (filter, first, last, 27397, "epsg", 27397, - "NGO 1948 (Oslo) / NGO zone VII"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21417\"]]"); + p = add_epsg_def (filter, first, last, 21418, "epsg", 21418, + "Beijing 1954 / Gauss-Kruger zone 18"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, - "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, - "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); - add_proj4text (p, 3, - "o_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, - "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); + "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "eridian\",14.16666666666667],PARAMETER[\"scale_factor\","); + "_factor\",1],PARAMETER[\"false_easting\",18500000],PARAM"); add_srs_wkt (p, 10, - "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); - add_srs_wkt (p, 12, - ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "27397\"]]"); - p = add_epsg_def (filter, first, last, 27398, "epsg", 27398, - "NGO 1948 (Oslo) / NGO zone VIII"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21418\"]]"); + p = add_epsg_def (filter, first, last, 21419, "epsg", 21419, + "Beijing 1954 / Gauss-Kruger zone 19"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, - "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, - "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); - add_proj4text (p, 3, - "o_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO "); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, - "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel "); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "\"EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"central"); + "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "_meridian\",18.33333333333333],PARAMETER[\"scale_factor\""); + "_factor\",1],PARAMETER[\"false_easting\",19500000],PARAM"); add_srs_wkt (p, 10, - ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); - add_srs_wkt (p, 12, - "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"27398\"]]"); - p = add_epsg_def (filter, first, last, 27429, "epsg", 27429, - "Datum 73 / UTM zone 29N"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21419\"]]"); + p = add_epsg_def (filter, first, last, 21420, "epsg", 21420, + "Beijing 1954 / Gauss-Kruger zone 20"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, - ",36.649,0,0,0,0 +units=m +no_defs"); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_M"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9"); + "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + "_factor\",1],PARAMETER[\"false_easting\",20500000],PARAM"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"27429\"]]"); - p = add_epsg_def (filter, first, last, 27492, "epsg", 27492, - "Datum 73 / Modified Portuguese Grid (deprecated)"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21420\"]]"); + p = add_epsg_def (filter, first, last, 21421, "epsg", 21421, + "Beijing 1954 / Gauss-Kruger zone 21"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, - "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, - "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); - add_proj4text (p, 3, - "no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, - ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "_of_origin\",39.66666666666666],PARAMETER[\"central_meri"); + "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "dian\",-8.131906111111112],PARAMETER[\"scale_factor\",1]"); + "_factor\",1],PARAMETER[\"false_easting\",21500000],PARAM"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",180.598],PARAMETER[\"false_"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "northing\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 12, - "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"27492\"]]"); - p = add_epsg_def (filter, first, last, 27493, "epsg", 27493, - "Datum 73 / Modified Portuguese Grid"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21421\"]]"); + p = add_epsg_def (filter, first, last, 21422, "epsg", 21422, + "Beijing 1954 / Gauss-Kruger zone 22"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, - "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, - "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); - add_proj4text (p, 3, - "no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, - "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"T"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "9.66666666666666],PARAMETER[\"central_meridian\",-8.1319"); + "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "06111111112],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); + "_factor\",1],PARAMETER[\"false_easting\",22500000],PARAM"); add_srs_wkt (p, 10, - "alse_easting\",180.598],PARAMETER[\"false_northing\",-86"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ".99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); - add_srs_wkt (p, 12, - "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2749"); - add_srs_wkt (p, 13, - "3\"]]"); - p = add_epsg_def (filter, first, last, 27500, "epsg", 27500, - "ATF (Paris) / Nord de Guerre"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21422\"]]"); + p = add_epsg_def (filter, first, last, 21423, "epsg", 21423, + "Beijing 1954 / Gauss-Kruger zone 23"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, - "001 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +"); + "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, - "a=6376523 +b=6355862.933255573 +pm=2.337208333333333 +un"); - add_proj4text (p, 3, - "its=m +no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, - "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\","); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\""); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "9105\"]],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lamb"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "n\",55],PARAMETER[\"central_meridian\",6],PARAMETER[\"sc"); + "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "ale_factor\",0.99950908],PARAMETER[\"false_easting\",500"); + "_factor\",1],PARAMETER[\"false_easting\",23500000],PARAM"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",300000],UNIT[\"metre\""); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"27500\"]]"); - p = add_epsg_def (filter, first, last, 27561, "epsg", 27561, - "NTF (Paris) / Lambert Nord France"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21423\"]]"); + p = add_epsg_def (filter, first, last, 21453, "epsg", 21453, + "Beijing 1954 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); - add_proj4text (p, 3, - "paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B"); add_srs_wkt (p, 1, - "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); + "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); + "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); + "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME"); + "],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY["); - add_srs_wkt (p, 12, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); - add_srs_wkt (p, 13, - "UTHORITY[\"EPSG\",\"27561\"]]"); - p = add_epsg_def (filter, first, last, 27562, "epsg", 27562, - "NTF (Paris) / Lambert Centre France"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21453\"]]"); + p = add_epsg_def (filter, first, last, 21454, "epsg", 21454, + "Beijing 1954 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B"); add_srs_wkt (p, 1, - "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); + "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); + "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); + "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); + "],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY"); - add_srs_wkt (p, 12, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 13, - "AUTHORITY[\"EPSG\",\"27562\"]]"); - p = add_epsg_def (filter, first, last, 27563, "epsg", 27563, - "NTF (Paris) / Lambert Sud France"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21454\"]]"); + p = add_epsg_def (filter, first, last, 21455, "epsg", 21455, + "Beijing 1954 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); - add_proj4text (p, 3, - "paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B"); add_srs_wkt (p, 1, - " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); + "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); + "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); + "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); + "],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\""); - add_srs_wkt (p, 12, - "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); - add_srs_wkt (p, 13, - "HORITY[\"EPSG\",\"27563\"]]"); - p = add_epsg_def (filter, first, last, 27564, "epsg", 27564, - "NTF (Paris) / Lambert Corse"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21455\"]]"); + p = add_epsg_def (filter, first, last, 21456, "epsg", 21456, + "Beijing 1954 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); - add_proj4text (p, 3, - "+pm=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B"); add_srs_wkt (p, 1, - "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S"); + "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "9,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0"); + "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3"); + "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY["); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETE"); + "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9"); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "9994471],PARAMETER[\"false_easting\",234.358],PARAMETER["); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "\"false_northing\",185861.369],UNIT[\"metre\",1,AUTHORIT"); - add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 13, - ",AUTHORITY[\"EPSG\",\"27564\"]]"); - p = add_epsg_def (filter, first, last, 27571, "epsg", 27571, - "NTF (Paris) / Lambert zone I"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21456\"]]"); + p = add_epsg_def (filter, first, last, 21457, "epsg", 21457, + "Beijing 1954 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); - add_proj4text (p, 3, - "=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B"); add_srs_wkt (p, 1, - "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","); + "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "69,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,"); + "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2."); + "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Coni"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "c_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER["); + "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "\"central_meridian\",0],PARAMETER[\"scale_factor\",0.999"); + "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "877341],PARAMETER[\"false_easting\",600000],PARAMETER[\""); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E"); - add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); - add_srs_wkt (p, 13, - "ORITY[\"EPSG\",\"27571\"]]"); - p = add_epsg_def (filter, first, last, 27572, "epsg", 27572, - "NTF (Paris) / Lambert zone II"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21457\"]]"); + p = add_epsg_def (filter, first, last, 21458, "epsg", 21458, + "Beijing 1954 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, - "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); + "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E"); - add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); - add_srs_wkt (p, 13, - "ORITY[\"EPSG\",\"27572\"]]"); - p = add_epsg_def (filter, first, last, 27573, "epsg", 27573, - "NTF (Paris) / Lambert zone III"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21458\"]]"); + p = add_epsg_def (filter, first, last, 21459, "epsg", 21459, + "Beijing 1954 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); - add_proj4text (p, 3, - "=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF ("); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, - "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "ic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER"); + "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - "9877499],PARAMETER[\"false_easting\",600000],PARAMETER[\""); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"E"); - add_srs_wkt (p, 12, - "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); - add_srs_wkt (p, 13, - "ORITY[\"EPSG\",\"27573\"]]"); - p = add_epsg_def (filter, first, last, 27574, "epsg", 27574, - "NTF (Paris) / Lambert zone IV"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21459\"]]"); + p = add_epsg_def (filter, first, last, 21460, "epsg", 21460, + "Beijing 1954 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); - add_proj4text (p, 3, - " +pm=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, - "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME"); + "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO"); - add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); - add_srs_wkt (p, 13, - "TH],AUTHORITY[\"EPSG\",\"27574\"]]"); - p = add_epsg_def (filter, first, last, 27581, "epsg", 27581, - "NTF (Paris) / France I (deprecated)"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21460\"]]"); + p = add_epsg_def (filter, first, last, 21461, "epsg", 21461, + "Beijing 1954 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); - add_proj4text (p, 3, - "=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, - "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PAR"); + "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - ",0.999877341],PARAMETER[\"false_easting\",600000],PARAME"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "TER[\"false_northing\",1200000],UNIT[\"metre\",1,AUTHORI"); - add_srs_wkt (p, 12, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); - add_srs_wkt (p, 13, - "],AUTHORITY[\"EPSG\",\"27581\"]]"); - p = add_epsg_def (filter, first, last, 27582, "epsg", 27582, - "NTF (Paris) / France II (deprecated)"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21461\"]]"); + p = add_epsg_def (filter, first, last, 21462, "epsg", 21462, + "Beijing 1954 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, - "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); + "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "ER[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORIT"); - add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 13, - ",AUTHORITY[\"EPSG\",\"27582\"]]"); - p = add_epsg_def (filter, first, last, 27583, "epsg", 27583, - "NTF (Paris) / France III (deprecated)"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21462\"]]"); + p = add_epsg_def (filter, first, last, 21463, "epsg", 21463, + "Beijing 1954 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); - add_proj4text (p, 3, - "=paris +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS["); + "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, - "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); + "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); + "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); + "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); + "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); + "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "AMETER[\"false_northing\",3200000],UNIT[\"metre\",1,AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); - add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"27583\"]]"); - p = add_epsg_def (filter, first, last, 27584, "epsg", 27584, - "NTF (Paris) / France IV (deprecated)"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21463\"]]"); + p = add_epsg_def (filter, first, last, 21473, "epsg", 21473, + "Beijing 1954 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); - add_proj4text (p, 3, - " +pm=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, - "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],"); + "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE"); add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "or\",0.99994471],PARAMETER[\"false_easting\",234.358],PA"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",4185861.369],UNIT[\"metre\",1"); - add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); - add_srs_wkt (p, 13, - "\",NORTH],AUTHORITY[\"EPSG\",\"27584\"]]"); - p = add_epsg_def (filter, first, last, 27591, "epsg", 27591, - "NTF (Paris) / Nord France (deprecated)"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21473\"]]"); + p = add_epsg_def (filter, first, last, 21474, "epsg", 21474, + "Beijing 1954 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); - add_proj4text (p, 3, - "paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, - "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\""); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\""); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conf"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],"); + "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE"); add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "or\",0.999877341],PARAMETER[\"false_easting\",600000],PA"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); - add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"27591\"]]"); - p = add_epsg_def (filter, first, last, 27592, "epsg", 27592, - "NTF (Paris) / Centre France (deprecated)"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21474\"]]"); + p = add_epsg_def (filter, first, last, 21475, "epsg", 21475, + "Beijing 1954 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, - "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ".4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM["); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT["); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\""); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "]],AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Co"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52"); + "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE"); add_srs_wkt (p, 9, - "],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fa"); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "ctor\",0.99987742],PARAMETER[\"false_easting\",600000],P"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUT"); - add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); - add_srs_wkt (p, 13, - "ORTH],AUTHORITY[\"EPSG\",\"27592\"]]"); - p = add_epsg_def (filter, first, last, 27593, "epsg", 27593, - "NTF (Paris) / Sud France (deprecated)"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21475\"]]"); + p = add_epsg_def (filter, first, last, 21476, "epsg", 21476, + "Beijing 1954 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); - add_proj4text (p, 3, - "paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS["); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, - "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); + "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE"); add_srs_wkt (p, 9, - "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "AMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHO"); - add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); - add_srs_wkt (p, 13, - "TH],AUTHORITY[\"EPSG\",\"27593\"]]"); - p = add_epsg_def (filter, first, last, 27594, "epsg", 27594, - "NTF (Paris) / Corse (deprecated)"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21476\"]]"); + p = add_epsg_def (filter, first, last, 21477, "epsg", 21477, + "Beijing 1954 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); + "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, - "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); - add_proj4text (p, 3, - "+pm=paris +units=m +no_defs"); + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, - " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARA"); + "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE"); add_srs_wkt (p, 9, - "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); + "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - ",0.99994471],PARAMETER[\"false_easting\",234.358],PARAME"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "TER[\"false_northing\",185861.369],UNIT[\"metre\",1,AUTH"); - add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); - add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"27594\"]]"); - p = add_epsg_def (filter, first, last, 27700, "epsg", 27700, - "OSGB 1936 / British National Grid"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21477\"]]"); + p = add_epsg_def (filter, first, last, 21478, "epsg", 21478, + "Beijing 1954 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, - "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6277\"]],P"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "\"]],AUTHORITY[\"EPSG\",\"4277\"]],PROJECTION[\"Transver"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "se_Mercator\"],PARAMETER[\"latitude_of_origin\",49],PARA"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",-2],PARAMETER[\"scale_factor\""); + "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET"); add_srs_wkt (p, 9, - ",0.9996012717],PARAMETER[\"false_easting\",400000],PARAM"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",-100000],UNIT[\"metre\",1,AUTHOR"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); - add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"27700\"]]"); - p = add_epsg_def (filter, first, last, 28191, "epsg", 28191, - "Palestine 1923 / Palestine Grid"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21478\"]]"); + p = add_epsg_def (filter, first, last, 21479, "epsg", 21479, + "Beijing 1954 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, - "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.4"); - add_proj4text (p, 3, - "2,-11.821,1 +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, - "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sold"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "ner\"],PARAMETER[\"latitude_of_origin\",31.7340969444444"); + "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET"); add_srs_wkt (p, 9, - "5],PARAMETER[\"central_meridian\",35.21208055555556],PAR"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "AMETER[\"false_easting\",170251.555],PARAMETER[\"false_n"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "orthing\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 12, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); - add_srs_wkt (p, 13, - "TH],AUTHORITY[\"EPSG\",\"28191\"]]"); - p = add_epsg_def (filter, first, last, 28192, "epsg", 28192, - "Palestine 1923 / Palestine Belt"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21479\"]]"); + p = add_epsg_def (filter, first, last, 21480, "epsg", 21480, + "Beijing 1954 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "89 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.0"); - add_proj4text (p, 3, - "01,-4.42,-11.821,1 +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, - "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_M"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "ercator\"],PARAMETER[\"latitude_of_origin\",31.734096944"); + "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET"); add_srs_wkt (p, 9, - "44445],PARAMETER[\"central_meridian\",35.21208055555556]"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\",170251.555],PARAMETER[\"false_northing\",1126867.909]"); - add_srs_wkt (p, 12, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); - add_srs_wkt (p, 13, - "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"28192\"]]"); - p = add_epsg_def (filter, first, last, 28193, "epsg", 28193, - "Palestine 1923 / Israeli CS Grid"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21480\"]]"); + p = add_epsg_def (filter, first, last, 21481, "epsg", 21481, + "Beijing 1954 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, - "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b="); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, - "6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4."); - add_proj4text (p, 3, - "42,-11.821,1 +units=m +no_defs"); + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, - "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - " 1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - ".001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIM"); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "],AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sol"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "dner\"],PARAMETER[\"latitude_of_origin\",31.734096944444"); + "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET"); add_srs_wkt (p, 9, - "45],PARAMETER[\"central_meridian\",35.21208055555556],PA"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "RAMETER[\"false_easting\",170251.555],PARAMETER[\"false_"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "northing\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPS"); - add_srs_wkt (p, 12, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); - add_srs_wkt (p, 13, - "NORTH],AUTHORITY[\"EPSG\",\"28193\"]]"); - p = add_epsg_def (filter, first, last, 28232, "epsg", 28232, - "Pointe Noire / UTM zone 32S"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21481\"]]"); + p = add_epsg_def (filter, first, last, 21482, "epsg", 21482, + "Beijing 1954 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "84=-148,51,-291,0,0,0,0 +units=m +no_defs"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N"); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, - "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "ke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4282\"]]"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); + "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); - add_srs_wkt (p, 12, - "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2823"); - add_srs_wkt (p, 13, - "2\"]]"); - p = add_epsg_def (filter, first, last, 28348, "epsg", 28348, - "GDA94 / MGA zone 48"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21482\"]]"); + p = add_epsg_def (filter, first, last, 21483, "epsg", 21483, + "Beijing 1954 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0"); + "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); - add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28348\"]]"); - p = add_epsg_def (filter, first, last, 28349, "epsg", 28349, - "GDA94 / MGA zone 49"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21483\"]]"); + p = add_epsg_def (filter, first, last, 21500, "epsg", 21500, + "Belge 1950 (Brussels) / Belge Lambert 50"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i"); + add_proj4text (p, 2, + "ntl +pm=brussels +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]],PRO"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 8, - "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",0"); + "ndard_parallel_1\",49.83333333333334],PARAMETER[\"standa"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "rd_parallel_2\",51.16666666666666],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "of_origin\",90],PARAMETER[\"central_meridian\",0],PARAME"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "TER[\"false_easting\",150000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28349\"]]"); - p = add_epsg_def (filter, first, last, 28350, "epsg", 28350, - "GDA94 / MGA zone 50"); + "\",5400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 13, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"21500\"]]"); + p = add_epsg_def (filter, first, last, 21780, "epsg", 21780, + "Bern 1898 (Bern) / LV03C"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,"); + add_proj4text (p, 2, + "0,0 +pm=bern +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 ("); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4801\"]],PROJE"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "CTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAME"); add_srs_wkt (p, 8, - "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",0"); + "TER[\"latitude_of_center\",46.95240555555556],PARAMETER["); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "\"longitude_of_center\",0],PARAMETER[\"azimuth\",90],PAR"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "AMETER[\"rectified_grid_angle\",90],PARAMETER[\"scale_fa"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "ctor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fal"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28350\"]]"); - p = add_epsg_def (filter, first, last, 28351, "epsg", 28351, - "GDA94 / MGA zone 51"); + "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 13, + "001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 14, + "PSG\",\"21780\"]]"); + p = add_epsg_def (filter, first, last, 21781, "epsg", 21781, + "CH1903 / LV03"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow"); + add_proj4text (p, 2, + "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "G\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azim"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "uth_Center\"],PARAMETER[\"latitude_of_center\",46.952405"); add_srs_wkt (p, 8, - "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",0"); + "55555556],PARAMETER[\"longitude_of_center\",7.4395833333"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "33333],PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_g"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "rid_angle\",90],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "\"false_easting\",600000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28351\"]]"); - p = add_epsg_def (filter, first, last, 28352, "epsg", 28352, - "GDA94 / MGA zone 52"); + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 13, + "IS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21"); + add_srs_wkt (p, 14, + "781\"]]"); + p = add_epsg_def (filter, first, last, 21782, "epsg", 21782, + "CH1903 / LV03C-G"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4"); + add_proj4text (p, 2, + ",15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "EPSG\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_A"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "zimuth_Center\"],PARAMETER[\"latitude_of_center\",46.952"); add_srs_wkt (p, 8, - "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",0"); + "40555555556],PARAMETER[\"longitude_of_center\",7.4395833"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "33333333],PARAMETER[\"azimuth\",90],PARAMETER[\"rectifie"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "d_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28352\"]]"); - p = add_epsg_def (filter, first, last, 28353, "epsg", 28353, - "GDA94 / MGA zone 53"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]"); + p = add_epsg_def (filter, first, last, 21817, "epsg", 21817, + "Bogota 1975 / UTM zone 17N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",0"); + "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28353\"]]"); - p = add_epsg_def (filter, first, last, 28354, "epsg", 28354, - "GDA94 / MGA zone 54"); + "ng\",NORTH],AUTHORITY[\"EPSG\",\"21817\"]]"); + p = add_epsg_def (filter, first, last, 21818, "epsg", 21818, + "Bogota 1975 / UTM zone 18N"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM["); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0"); + "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28354\"]]"); - p = add_epsg_def (filter, first, last, 28355, "epsg", 28355, - "GDA94 / MGA zone 55"); + "THORITY[\"EPSG\",\"21818\"]]"); + p = add_epsg_def (filter, first, last, 21891, "epsg", 21891, + "Bogota 1975 / Colombia West zone (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + add_proj4text (p, 2, + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\""); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTIO"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0"); + "n\",4.599047222222222],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "7.08091666666667],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "R[\"false_easting\",1000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28355\"]]"); - p = add_epsg_def (filter, first, last, 28356, "epsg", 28356, - "GDA94 / MGA zone 56"); + ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "21891\"]]"); + p = add_epsg_def (filter, first, last, 21892, "epsg", 21892, + "Bogota 1975 / Colombia Bogota zone (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + add_proj4text (p, 2, + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTI"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0"); + "in\",4.599047222222222],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "74.08091666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "ER[\"false_easting\",1000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]"); - p = add_epsg_def (filter, first, last, 28357, "epsg", 28357, - "GDA94 / MGA zone 57"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"21892\"]]"); + p = add_epsg_def (filter, first, last, 21893, "epsg", 21893, + "Bogota 1975 / Colombia East Central zone (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + add_proj4text (p, 2, + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "R[\"central_meridian\",159],PARAMETER[\"scale_factor\",0"); + "_of_origin\",4.599047222222222],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "dian\",-71.08091666666667],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28357\"]]"); - p = add_epsg_def (filter, first, last, 28358, "epsg", 28358, - "GDA94 / MGA zone 58"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"21893\"]]"); + p = add_epsg_def (filter, first, last, 21894, "epsg", 21894, + "Bogota 1975 / Colombia East (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); + add_proj4text (p, 2, + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\""); + "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG"); add_srs_wkt (p, 1, - "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); + "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); + "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, - "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0"); + ".599047222222222],PARAMETER[\"central_meridian\",-68.080"); add_srs_wkt (p, 9, - ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, - "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); + "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"28358\"]]"); - p = add_epsg_def (filter, first, last, 28402, "epsg", 28402, - "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218"); + add_srs_wkt (p, 13, + "94\"]]"); + p = add_epsg_def (filter, first, last, 21896, "epsg", 21896, + "Bogota 1975 / Colombia West zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); + "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog"); add_srs_wkt (p, 1, - "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); + "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, - "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); + "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, - "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); + "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P"); add_srs_wkt (p, 4, - "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, - ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "se_Mercator\"],PARAMETER[\"latitude_of_origin\",4.599047"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "222222222],PARAMETER[\"central_meridian\",-77.0809166666"); add_srs_wkt (p, 9, - "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); + "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); + "sting\",1000000],PARAMETER[\"false_northing\",1000000],U"); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY["); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28402\"]]"); - p = add_epsg_def (filter, first, last, 28403, "epsg", 28403, - "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); + "\"EPSG\",\"21896\"]]"); + p = add_epsg_def (filter, first, last, 21897, "epsg", 21897, + "Bogota 1975 / Colombia Bogota zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); + "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B"); add_srs_wkt (p, 1, - "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); + "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio"); add_srs_wkt (p, 2, - "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); + "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 3, - "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); + "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]"); add_srs_wkt (p, 4, - "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); + ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "22\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, - ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.5990"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "47222222222],PARAMETER[\"central_meridian\",-74.08091666"); add_srs_wkt (p, 9, - "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); + "666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "asting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); + "easting\",1000000],PARAMETER[\"false_northing\",1000000]"); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); add_srs_wkt (p, 12, - "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28403\"]]"); - p = add_epsg_def (filter, first, last, 28404, "epsg", 28404, - "Pulkovo 1942 / Gauss-Kruger zone 4"); + "Y[\"EPSG\",\"21897\"]]"); + p = add_epsg_def (filter, first, last, 21898, "epsg", 21898, + "Bogota 1975 / Colombia East Central zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P"); + "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM"); + ".599047222222222],PARAMETER[\"central_meridian\",-71.080"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",450"); + "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28404\"]]"); - p = add_epsg_def (filter, first, last, 28405, "epsg", 28405, - "Pulkovo 1942 / Gauss-Kruger zone 5"); + "HORITY[\"EPSG\",\"21898\"]]"); + p = add_epsg_def (filter, first, last, 21899, "epsg", 21899, + "Bogota 1975 / Colombia East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); + "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P"); + "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30"); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM"); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + "AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "rcator\"],PARAMETER[\"latitude_of_origin\",4.59904722222"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM"); + "2222],PARAMETER[\"central_meridian\",-68.08091666666667]"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",550"); + ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "\",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\""); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28405\"]]"); - p = add_epsg_def (filter, first, last, 28406, "epsg", 28406, - "Pulkovo 1942 / Gauss-Kruger zone 6"); + "\",\"21899\"]]"); + p = add_epsg_def (filter, first, last, 22032, "epsg", 22032, + "Camacupa / UTM zone 32S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); + "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P"); + "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM"); + "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",650"); + "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28406\"]]"); - p = add_epsg_def (filter, first, last, 28407, "epsg", 28407, - "Pulkovo 1942 / Gauss-Kruger zone 7"); + "NORTH],AUTHORITY[\"EPSG\",\"22032\"]]"); + p = add_epsg_def (filter, first, last, 22033, "epsg", 22033, + "Camacupa / UTM zone 33S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); + "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P"); + "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM"); + "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",750"); + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28407\"]]"); - p = add_epsg_def (filter, first, last, 28408, "epsg", 28408, - "Pulkovo 1942 / Gauss-Kruger zone 8"); + ",NORTH],AUTHORITY[\"EPSG\",\"22033\"]]"); + p = add_epsg_def (filter, first, last, 22091, "epsg", 22091, + "Camacupa / TM 11.30 SE"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P"); + "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,"); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME"); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + ",AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM"); + "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",850"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28408\"]]"); - p = add_epsg_def (filter, first, last, 28409, "epsg", 28409, - "Pulkovo 1942 / Gauss-Kruger zone 9"); + ",NORTH],AUTHORITY[\"EPSG\",\"22091\"]]"); + p = add_epsg_def (filter, first, last, 22092, "epsg", 22092, + "Camacupa / TM 12 SE"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); + "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P"); + "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM"); add_srs_wkt (p, 1, - "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); + "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, - "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); + ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34"); add_srs_wkt (p, 3, - "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); + "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); + "HORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM"); + "entral_meridian\",12],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, - "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",950"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - ",EAST],AUTHORITY[\"EPSG\",\"28409\"]]"); - p = add_epsg_def (filter, first, last, 28410, "epsg", 28410, - "Pulkovo 1942 / Gauss-Kruger zone 10"); + "H],AUTHORITY[\"EPSG\",\"22092\"]]"); + p = add_epsg_def (filter, first, last, 22171, "epsg", 22171, + "POSGAR 98 / Argentina 1"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); + "90],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10"); + "e_factor\",1],PARAMETER[\"false_easting\",1500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28410\"]]"); - p = add_epsg_def (filter, first, last, 28411, "epsg", 28411, - "Pulkovo 1942 / Gauss-Kruger zone 11"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22171\"]]"); + p = add_epsg_def (filter, first, last, 22172, "epsg", 22172, + "POSGAR 98 / Argentina 2"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); + "90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11"); + "e_factor\",1],PARAMETER[\"false_easting\",2500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28411\"]]"); - p = add_epsg_def (filter, first, last, 28412, "epsg", 28412, - "Pulkovo 1942 / Gauss-Kruger zone 12"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22172\"]]"); + p = add_epsg_def (filter, first, last, 22173, "epsg", 22173, + "POSGAR 98 / Argentina 3"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); + "90],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12"); + "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28412\"]]"); - p = add_epsg_def (filter, first, last, 28413, "epsg", 28413, - "Pulkovo 1942 / Gauss-Kruger zone 13"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22173\"]]"); + p = add_epsg_def (filter, first, last, 22174, "epsg", 22174, + "POSGAR 98 / Argentina 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); + "90],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13"); + "e_factor\",1],PARAMETER[\"false_easting\",4500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28413\"]]"); - p = add_epsg_def (filter, first, last, 28414, "epsg", 28414, - "Pulkovo 1942 / Gauss-Kruger zone 14"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22174\"]]"); + p = add_epsg_def (filter, first, last, 22175, "epsg", 22175, + "POSGAR 98 / Argentina 5"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); + "90],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14"); + "e_factor\",1],PARAMETER[\"false_easting\",5500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28414\"]]"); - p = add_epsg_def (filter, first, last, 28415, "epsg", 28415, - "Pulkovo 1942 / Gauss-Kruger zone 15"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22175\"]]"); + p = add_epsg_def (filter, first, last, 22176, "epsg", 22176, + "POSGAR 98 / Argentina 6"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); + "90],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); + "e_factor\",1],PARAMETER[\"false_easting\",6500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28415\"]]"); - p = add_epsg_def (filter, first, last, 28416, "epsg", 28416, - "Pulkovo 1942 / Gauss-Kruger zone 16"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22176\"]]"); + p = add_epsg_def (filter, first, last, 22177, "epsg", 22177, + "POSGAR 98 / Argentina 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\""); + "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); + "90],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16"); + "e_factor\",1],PARAMETER[\"false_easting\",7500000],PARAM"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28416\"]]"); - p = add_epsg_def (filter, first, last, 28417, "epsg", 28417, - "Pulkovo 1942 / Gauss-Kruger zone 17"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22177\"]]"); + p = add_epsg_def (filter, first, last, 22181, "epsg", 22181, + "POSGAR 94 / Argentina 1"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); + "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); + "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17"); + "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28417\"]]"); - p = add_epsg_def (filter, first, last, 28418, "epsg", 28418, - "Pulkovo 1942 / Gauss-Kruger zone 18"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22181\"]]"); + p = add_epsg_def (filter, first, last, 22182, "epsg", 22182, + "POSGAR 94 / Argentina 2"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); + "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); + "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME"); add_srs_wkt (p, 10, - "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28418\"]]"); - p = add_epsg_def (filter, first, last, 28419, "epsg", 28419, - "Pulkovo 1942 / Gauss-Kruger zone 19"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22182\"]]"); + p = add_epsg_def (filter, first, last, 22183, "epsg", 22183, + "POSGAR 94 / Argentina 3"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); + "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); + "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME"); add_srs_wkt (p, 10, - "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28419\"]]"); - p = add_epsg_def (filter, first, last, 28420, "epsg", 28420, - "Pulkovo 1942 / Gauss-Kruger zone 20"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22183\"]]"); + p = add_epsg_def (filter, first, last, 22184, "epsg", 22184, + "POSGAR 94 / Argentina 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); + "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME"); add_srs_wkt (p, 10, - "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28420\"]]"); - p = add_epsg_def (filter, first, last, 28421, "epsg", 28421, - "Pulkovo 1942 / Gauss-Kruger zone 21"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22184\"]]"); + p = add_epsg_def (filter, first, last, 22185, "epsg", 22185, + "POSGAR 94 / Argentina 5"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); + "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME"); add_srs_wkt (p, 10, - "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28421\"]]"); - p = add_epsg_def (filter, first, last, 28422, "epsg", 28422, - "Pulkovo 1942 / Gauss-Kruger zone 22"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22185\"]]"); + p = add_epsg_def (filter, first, last, 22186, "epsg", 22186, + "POSGAR 94 / Argentina 6"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); + "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME"); add_srs_wkt (p, 10, - "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28422\"]]"); - p = add_epsg_def (filter, first, last, 28423, "epsg", 28423, - "Pulkovo 1942 / Gauss-Kruger zone 23"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22186\"]]"); + p = add_epsg_def (filter, first, last, 22187, "epsg", 22187, + "POSGAR 94 / Argentina 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); - add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\""); + "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); + "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME"); add_srs_wkt (p, 10, - "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28423\"]]"); - p = add_epsg_def (filter, first, last, 28424, "epsg", 28424, - "Pulkovo 1942 / Gauss-Kruger zone 24"); + "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22187\"]]"); + p = add_epsg_def (filter, first, last, 22191, "epsg", 22191, + "Campo Inchauspe / Argentina 1"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); + ",PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",1500000],PARAMETE"); add_srs_wkt (p, 10, - "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28424\"]]"); - p = add_epsg_def (filter, first, last, 28425, "epsg", 28425, - "Pulkovo 1942 / Gauss-Kruger zone 25"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22191\"]]"); + p = add_epsg_def (filter, first, last, 22192, "epsg", 22192, + "Campo Inchauspe / Argentina 2"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); + ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",2500000],PARAMETE"); add_srs_wkt (p, 10, - "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28425\"]]"); - p = add_epsg_def (filter, first, last, 28426, "epsg", 28426, - "Pulkovo 1942 / Gauss-Kruger zone 26"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22192\"]]"); + p = add_epsg_def (filter, first, last, 22193, "epsg", 22193, + "Campo Inchauspe / Argentina 3"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); + ",PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE"); add_srs_wkt (p, 10, - "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28426\"]]"); - p = add_epsg_def (filter, first, last, 28427, "epsg", 28427, - "Pulkovo 1942 / Gauss-Kruger zone 27"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22193\"]]"); + p = add_epsg_def (filter, first, last, 22194, "epsg", 22194, + "Campo Inchauspe / Argentina 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); + ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE"); add_srs_wkt (p, 10, - "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28427\"]]"); - p = add_epsg_def (filter, first, last, 28428, "epsg", 28428, - "Pulkovo 1942 / Gauss-Kruger zone 28"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22194\"]]"); + p = add_epsg_def (filter, first, last, 22195, "epsg", 22195, + "Campo Inchauspe / Argentina 5"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); + ",PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",5500000],PARAMETE"); add_srs_wkt (p, 10, - "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28428\"]]"); - p = add_epsg_def (filter, first, last, 28429, "epsg", 28429, - "Pulkovo 1942 / Gauss-Kruger zone 29"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22195\"]]"); + p = add_epsg_def (filter, first, last, 22196, "epsg", 22196, + "Campo Inchauspe / Argentina 6"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); + ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); + "actor\",1],PARAMETER[\"false_easting\",6500000],PARAMETE"); add_srs_wkt (p, 10, - "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28429\"]]"); - p = add_epsg_def (filter, first, last, 28430, "epsg", 28430, - "Pulkovo 1942 / Gauss-Kruger zone 30"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22196\"]]"); + p = add_epsg_def (filter, first, last, 22197, "epsg", 22197, + "Campo Inchauspe / Argentina 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); + "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, - "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, - ",-0.12 +units=m +no_defs"); + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\""); + "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); + ",PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); + "actor\",1],PARAMETER[\"false_easting\",7500000],PARAMETE"); add_srs_wkt (p, 10, - "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"28430\"]]"); - p = add_epsg_def (filter, first, last, 28431, "epsg", 28431, - "Pulkovo 1942 / Gauss-Kruger zone 31"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22197\"]]"); + p = add_epsg_def (filter, first, last, 22234, "epsg", 22234, + "Cape / UTM zone 34S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); + "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); - add_proj4text (p, 2, - "2,-0.12 +units=m +no_defs"); + "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\""); + "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); + "_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28431\"]]"); - p = add_epsg_def (filter, first, last, 28432, "epsg", 28432, - "Pulkovo 1942 / Gauss-Kruger zone 32"); + "HORITY[\"EPSG\",\"22234\"]]"); + p = add_epsg_def (filter, first, last, 22235, "epsg", 22235, + "Cape / UTM zone 35S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); + "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); - add_proj4text (p, 2, - "2,-0.12 +units=m +no_defs"); + "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\""); + "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, - "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); + "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, - "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); + "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, - "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); + "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); + "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, - "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); + "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28432\"]]"); - p = add_epsg_def (filter, first, last, 28462, "epsg", 28462, - "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)"); + "HORITY[\"EPSG\",\"22235\"]]"); + p = add_epsg_def (filter, first, last, 22236, "epsg", 22236, + "Cape / UTM zone 36S (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); + "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, - "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0."); - add_proj4text (p, 2, - "12 +units=m +no_defs"); + "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G"); + "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84["); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "]],AUTHORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); + "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28462\"]]"); + ",NORTH],AUTHORITY[\"EPSG\",\"22236\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_34.c b/src/spatialite/src/srsinit/epsg_inlined_34.c index a059653..acf6211 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_34.c +++ b/src/spatialite/src/srsinit/epsg_inlined_34.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3434 +52,3336 @@ initialize_epsg_34 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 28463, "epsg", 28463, - "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)"); + p = add_epsg_def (filter, first, last, 22275, "epsg", 22275, + "Cape / Lo15"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G"); + "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "central_meridian\",15],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28463\"]]"); - p = add_epsg_def (filter, first, last, 28464, "epsg", 28464, - "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22277, "epsg", 22277, + "Cape / Lo17"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G"); + "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); + "central_meridian\",17],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28464\"]]"); - p = add_epsg_def (filter, first, last, 28465, "epsg", 28465, - "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22279, "epsg", 22279, + "Cape / Lo19"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G"); + "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); + "central_meridian\",19],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28465\"]]"); - p = add_epsg_def (filter, first, last, 28466, "epsg", 28466, - "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22281, "epsg", 22281, + "Cape / Lo21"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G"); + "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); + "central_meridian\",21],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28466\"]]"); - p = add_epsg_def (filter, first, last, 28467, "epsg", 28467, - "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22283, "epsg", 22283, + "Cape / Lo23"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G"); + "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); + "central_meridian\",23],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28467\"]]"); - p = add_epsg_def (filter, first, last, 28468, "epsg", 28468, - "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22285, "epsg", 22285, + "Cape / Lo25"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G"); + "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); + "central_meridian\",25],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28468\"]]"); - p = add_epsg_def (filter, first, last, 28469, "epsg", 28469, - "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22287, "epsg", 22287, + "Cape / Lo27"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G"); + "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); + "central_meridian\",27],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28469\"]]"); - p = add_epsg_def (filter, first, last, 28470, "epsg", 28470, - "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22289, "epsg", 22289, + "Cape / Lo29"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\","); + "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); + "central_meridian\",29],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28470\"]]"); - p = add_epsg_def (filter, first, last, 28471, "epsg", 28471, - "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22291, "epsg", 22291, + "Cape / Lo31"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\","); + "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); + "central_meridian\",31],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28471\"]]"); - p = add_epsg_def (filter, first, last, 28472, "epsg", 28472, - "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22293, "epsg", 22293, + "Cape / Lo33"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\","); + "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); + "central_meridian\",33],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, - "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28472\"]]"); - p = add_epsg_def (filter, first, last, 28473, "epsg", 28473, - "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)"); + "\"]]"); + p = add_epsg_def (filter, first, last, 22332, "epsg", 22332, + "Carthage / UTM zone 32N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); - add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); - add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "+proj=utm +zone=32 +datum=carthage +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\","); + "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ".2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); + "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28473\"]]"); - p = add_epsg_def (filter, first, last, 28474, "epsg", 28474, - "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)"); + "AUTHORITY[\"EPSG\",\"22332\"]]"); + p = add_epsg_def (filter, first, last, 22391, "epsg", 22391, + "Carthage / Nord Tunisie"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554"); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "4 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_d"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\","); + "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ".2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36]"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); + ",PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "actor\",0.999625544],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28474\"]]"); - p = add_epsg_def (filter, first, last, 28475, "epsg", 28475, - "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"22391\"]]"); + p = add_epsg_def (filter, first, last, 22392, "epsg", 22392, + "Carthage / Sud Tunisie"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996"); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + "25769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +"); add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\","); + "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33."); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); + "3],PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + "_factor\",0.999625769],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "0],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28475\"]]"); - p = add_epsg_def (filter, first, last, 28476, "epsg", 28476, - "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"22392\"]]"); + p = add_epsg_def (filter, first, last, 22521, "epsg", 22521, + "Corrego Alegre 1970-72 / UTM zone 21S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); - add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\","); + "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28476\"]]"); - p = add_epsg_def (filter, first, last, 28477, "epsg", 28477, - "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"22521\"]]"); + p = add_epsg_def (filter, first, last, 22522, "epsg", 22522, + "Corrego Alegre 1970-72 / UTM zone 22S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, - "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); - add_proj4text (p, 2, - ".12 +units=m +no_defs"); + "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\","); + "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 9, - "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28477\"]]"); - p = add_epsg_def (filter, first, last, 28478, "epsg", 28478, - "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"22522\"]]"); + p = add_epsg_def (filter, first, last, 22523, "epsg", 22523, + "Corrego Alegre 1970-72 / UTM zone 23S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\","); + "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 9, - "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28478\"]]"); - p = add_epsg_def (filter, first, last, 28479, "epsg", 28479, - "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"22523\"]]"); + p = add_epsg_def (filter, first, last, 22524, "epsg", 22524, + "Corrego Alegre 1970-72 / UTM zone 24S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\","); + "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 9, - "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28479\"]]"); - p = add_epsg_def (filter, first, last, 28480, "epsg", 28480, - "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"22524\"]]"); + p = add_epsg_def (filter, first, last, 22525, "epsg", 22525, + "Corrego Alegre 1970-72 / UTM zone 25S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\","); + "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS["); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 9, - "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28480\"]]"); - p = add_epsg_def (filter, first, last, 28481, "epsg", 28481, - "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"22525\"]]"); + p = add_epsg_def (filter, first, last, 22700, "epsg", 22700, + "Deir ez Zor / Levant Zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\","); + "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PROJE"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "ude_of_origin\",34.65],PARAMETER[\"central_meridian\",37"); add_srs_wkt (p, 9, - "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ".35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"f"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "alse_easting\",300000],PARAMETER[\"false_northing\",3000"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28481\"]]"); - p = add_epsg_def (filter, first, last, 28482, "epsg", 28482, - "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)"); + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 22770, "epsg", 22770, + "Deir ez Zor / Syria Lambert"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); + "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\","); + "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez "); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PR"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "titude_of_origin\",34.65],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",37.35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER["); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "\"false_easting\",300000],PARAMETER[\"false_northing\",3"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28482\"]]"); - p = add_epsg_def (filter, first, last, 28483, "epsg", 28483, - "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)"); + "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); + add_srs_wkt (p, 13, + "770\"]]"); + p = add_epsg_def (filter, first, last, 22780, "epsg", 22780, + "Deir ez Zor / Levant Stereographic"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); + "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0="); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + ",238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\","); + "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "atitude_of_origin\",34.2],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + ",39.15],PARAMETER[\"scale_factor\",0.9995341],PARAMETER["); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28483\"]]"); - p = add_epsg_def (filter, first, last, 28484, "epsg", 28484, - "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)"); + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]"); + p = add_epsg_def (filter, first, last, 22832, "epsg", 22832, + "Douala / UTM zone 32N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\","); + "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + ",\"4228\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, - "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28484\"]]"); - p = add_epsg_def (filter, first, last, 28485, "epsg", 28485, - "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)"); + "22832\"]]"); + p = add_epsg_def (filter, first, last, 22991, "epsg", 22991, + "Egypt 1907 / Blue Belt"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\","); + "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\","); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "eridian\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 9, - "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "false_easting\",300000],PARAMETER[\"false_northing\",110"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28485\"]]"); - p = add_epsg_def (filter, first, last, 28486, "epsg", 28486, - "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)"); + "EPSG\",\"22991\"]]"); + p = add_epsg_def (filter, first, last, 22992, "epsg", 22992, + "Egypt 1907 / Red Belt"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\","); + "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "eridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 9, - "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "false_easting\",615000],PARAMETER[\"false_northing\",810"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28486\"]]"); - p = add_epsg_def (filter, first, last, 28487, "epsg", 28487, - "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)"); + "EPSG\",\"22992\"]]"); + p = add_epsg_def (filter, first, last, 22993, "epsg", 22993, + "Egypt 1907 / Purple Belt"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\","); + "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\""); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 9, - "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "\"false_easting\",700000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28487\"]]"); - p = add_epsg_def (filter, first, last, 28488, "epsg", 28488, - "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)"); + "\"EPSG\",\"22993\"]]"); + p = add_epsg_def (filter, first, last, 22994, "epsg", 22994, + "Egypt 1907 / Extended Purple Belt"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); + "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + "s=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\","); + "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\""); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM["); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "UTHORITY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "cator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER["); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 9, - "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "thing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28488\"]]"); - p = add_epsg_def (filter, first, last, 28489, "epsg", 28489, - "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)"); + "AUTHORITY[\"EPSG\",\"22994\"]]"); + p = add_epsg_def (filter, first, last, 23028, "epsg", 23028, + "ED50 / UTM zone 28N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\","); + "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "l_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28489\"]]"); - p = add_epsg_def (filter, first, last, 28490, "epsg", 28490, - "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)"); + "Y[\"EPSG\",\"23028\"]]"); + p = add_epsg_def (filter, first, last, 23029, "epsg", 23029, + "ED50 / UTM zone 29N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); + "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); - add_proj4text (p, 2, - "0.12 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\","); + "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "l_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28490\"]]"); - p = add_epsg_def (filter, first, last, 28491, "epsg", 28491, - "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)"); + "[\"EPSG\",\"23029\"]]"); + p = add_epsg_def (filter, first, last, 23030, "epsg", 23030, + "ED50 / UTM zone 30N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); + "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\","); + "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "l_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28491\"]]"); - p = add_epsg_def (filter, first, last, 28492, "epsg", 28492, - "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)"); + "[\"EPSG\",\"23030\"]]"); + p = add_epsg_def (filter, first, last, 23031, "epsg", 23031, + "ED50 / UTM zone 31N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); + "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); - add_proj4text (p, 2, - "-0.12 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\","); + "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "l_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28492\"]]"); - p = add_epsg_def (filter, first, last, 28600, "epsg", 28600, - "Qatar 1974 / Qatar National Grid"); + "\"EPSG\",\"23031\"]]"); + p = add_epsg_def (filter, first, last, 23032, "epsg", 23032, + "ED50 / UTM zone 32N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); + "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1"); - add_proj4text (p, 2, - "6,-282.42,21.93,0,0,0,0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat"); + "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International "); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"T"); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "4.45],PARAMETER[\"central_meridian\",51.21666666666667],"); + "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_ea"); + "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, - "sting\",200000],PARAMETER[\"false_northing\",300000],UNI"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "28600\"]]"); - p = add_epsg_def (filter, first, last, 28991, "epsg", 28991, - "Amersfoort / RD Old"); + "\"EPSG\",\"23032\"]]"); + p = add_epsg_def (filter, first, last, 23033, "epsg", 23033, + "ED50 / UTM zone 33N"); add_proj4text (p, 0, - "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); + "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84="); - add_proj4text (p, 2, - "565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.072"); - add_proj4text (p, 3, - "5 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT"); + "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); + "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "r\",0.9999079],PARAMETER[\"false_easting\",0],PARAMETER["); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); - add_srs_wkt (p, 13, - "[\"EPSG\",\"28991\"]]"); - p = add_epsg_def (filter, first, last, 28992, "epsg", 28992, - "Amersfoort / RD New"); + "[\"EPSG\",\"23033\"]]"); + p = add_epsg_def (filter, first, last, 23034, "epsg", 23034, + "ED50 / UTM zone 34N"); add_proj4text (p, 0, - "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); + "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel"); - add_proj4text (p, 2, - " +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1."); - add_proj4text (p, 3, - "8774,4.0725 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT"); + "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); + "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "r\",0.9999079],PARAMETER[\"false_easting\",155000],PARAM"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "ETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORI"); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); - add_srs_wkt (p, 13, - "],AUTHORITY[\"EPSG\",\"28992\"]]"); - p = add_epsg_def (filter, first, last, 29100, "epsg", 29100, - "SAD69 / Brazil Polyconic (deprecated)"); + "[\"EPSG\",\"23034\"]]"); + p = add_epsg_def (filter, first, last, 23035, "epsg", 23035, + "ED50 / UTM zone 35N"); add_proj4text (p, 0, - "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); + "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d"); - add_proj4text (p, 2, - "efs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS["); + "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",-54],PARAMETER[\"false_easting\""); + "l_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - ",5000000],PARAMETER[\"false_northing\",10000000],UNIT[\""); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]"); - p = add_epsg_def (filter, first, last, 29101, "epsg", 29101, - "SAD69 / Brazil Polyconic"); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"23035\"]]"); + p = add_epsg_def (filter, first, last, 23036, "epsg", 23036, + "ED50 / UTM zone 36N"); add_proj4text (p, 0, - "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); + "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - "0 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT"); + "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR"); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polyconic\""); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-54],PARAMETER[\"false_easting\",5000000],P"); + "l_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - ",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]"); - p = add_epsg_def (filter, first, last, 29118, "epsg", 29118, - "SAD69 / UTM zone 18N (deprecated)"); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"23036\"]]"); + p = add_epsg_def (filter, first, last, 23037, "epsg", 23037, + "ED50 / UTM zone 37N"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); + "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - ",0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); + "l_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29118\"]]"); - p = add_epsg_def (filter, first, last, 29119, "epsg", 29119, - "SAD69 / UTM zone 19N (deprecated)"); + "[\"EPSG\",\"23037\"]]"); + p = add_epsg_def (filter, first, last, 23038, "epsg", 23038, + "ED50 / UTM zone 38N"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); + "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, - ",0 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); + "l_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29119\"]]"); - p = add_epsg_def (filter, first, last, 29120, "epsg", 29120, - "SAD69 / UTM zone 20N (deprecated)"); + "[\"EPSG\",\"23038\"]]"); + p = add_epsg_def (filter, first, last, 23090, "epsg", 23090, + "ED50 / TM 0 N"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); + "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, - ",0 +units=m +no_defs"); + "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); + add_proj4text (p, 2, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,"); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "SG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); + "dian\",0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29120\"]]"); - p = add_epsg_def (filter, first, last, 29121, "epsg", 29121, - "SAD69 / UTM zone 21N (deprecated)"); + ",\"23090\"]]"); + p = add_epsg_def (filter, first, last, 23095, "epsg", 23095, + "ED50 / TM 5 NE"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); + "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, - ",0 +units=m +no_defs"); + "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); + add_proj4text (p, 2, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); + "ridian\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29121\"]]"); - p = add_epsg_def (filter, first, last, 29122, "epsg", 29122, - "SAD69 / UTM zone 22N (deprecated)"); + "G\",\"23095\"]]"); + p = add_epsg_def (filter, first, last, 23239, "epsg", 23239, + "Fahud / UTM zone 39N"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); + "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, - ",0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); + "dian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29122\"]]"); - p = add_epsg_def (filter, first, last, 29168, "epsg", 29168, - "SAD69 / UTM zone 18N"); + "G\",\"23239\"]]"); + p = add_epsg_def (filter, first, last, 23240, "epsg", 23240, + "Fahud / UTM zone 40N"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); + "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, - "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); + "dian\",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"29168\"]]"); - p = add_epsg_def (filter, first, last, 29169, "epsg", 29169, - "SAD69 / UTM zone 19N"); + "G\",\"23240\"]]"); + p = add_epsg_def (filter, first, last, 23433, "epsg", 23433, + "Garoua / UTM zone 33N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); + "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + ",\"4234\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); + "\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"29169\"]]"); - p = add_epsg_def (filter, first, last, 29170, "epsg", 29170, - "SAD69 / UTM zone 20N"); + "\"23433\"]]"); + p = add_epsg_def (filter, first, last, 23700, "epsg", 23700, + "HD72 / EOV"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); + "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67"); + add_proj4text (p, 2, + " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14."); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "[\"EPSG\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercato"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "r_Azimuth_Center\"],PARAMETER[\"latitude_of_center\",47."); add_srs_wkt (p, 8, - "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); + "14439372222222],PARAMETER[\"longitude_of_center\",19.048"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "57177777778],PARAMETER[\"azimuth\",90],PARAMETER[\"recti"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "fied_grid_angle\",90],PARAMETER[\"scale_factor\",0.99993"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "],PARAMETER[\"false_easting\",650000],PARAMETER[\"false_"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"29170\"]]"); - p = add_epsg_def (filter, first, last, 29171, "epsg", 29171, - "SAD69 / UTM zone 21N"); + "northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 14, + "EPSG\",\"23700\"]]"); + p = add_epsg_def (filter, first, last, 23830, "epsg", 23830, + "DGN95 / Indonesia TM-3 zone 46.2"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); + "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",94.5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"29171\"]]"); - p = add_epsg_def (filter, first, last, 29172, "epsg", 29172, - "SAD69 / UTM zone 22N"); + "AUTHORITY[\"EPSG\",\"23830\"]]"); + p = add_epsg_def (filter, first, last, 23831, "epsg", 23831, + "DGN95 / Indonesia TM-3 zone 47.1"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); + "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, - ",0,0 +units=m +no_defs"); + "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",97.5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"29172\"]]"); - p = add_epsg_def (filter, first, last, 29177, "epsg", 29177, - "SAD69 / UTM zone 17S (deprecated)"); + "AUTHORITY[\"EPSG\",\"23831\"]]"); + p = add_epsg_def (filter, first, last, 23832, "epsg", 23832, + "DGN95 / Indonesia TM-3 zone 47.2"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",100.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]"); - p = add_epsg_def (filter, first, last, 29178, "epsg", 29178, - "SAD69 / UTM zone 18S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23832\"]]"); + p = add_epsg_def (filter, first, last, 23833, "epsg", 23833, + "DGN95 / Indonesia TM-3 zone 48.1"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",103.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]"); - p = add_epsg_def (filter, first, last, 29179, "epsg", 29179, - "SAD69 / UTM zone 19S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23833\"]]"); + p = add_epsg_def (filter, first, last, 23834, "epsg", 23834, + "DGN95 / Indonesia TM-3 zone 48.2"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",106.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]"); - p = add_epsg_def (filter, first, last, 29180, "epsg", 29180, - "SAD69 / UTM zone 20S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23834\"]]"); + p = add_epsg_def (filter, first, last, 23835, "epsg", 23835, + "DGN95 / Indonesia TM-3 zone 49.1"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",109.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]"); - p = add_epsg_def (filter, first, last, 29181, "epsg", 29181, - "SAD69 / UTM zone 21S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23835\"]]"); + p = add_epsg_def (filter, first, last, 23836, "epsg", 23836, + "DGN95 / Indonesia TM-3 zone 49.2"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",112.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]"); - p = add_epsg_def (filter, first, last, 29182, "epsg", 29182, - "SAD69 / UTM zone 22S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23836\"]]"); + p = add_epsg_def (filter, first, last, 23837, "epsg", 23837, + "DGN95 / Indonesia TM-3 zone 50.1"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",115.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]"); - p = add_epsg_def (filter, first, last, 29183, "epsg", 29183, - "SAD69 / UTM zone 23S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23837\"]]"); + p = add_epsg_def (filter, first, last, 23838, "epsg", 23838, + "DGN95 / Indonesia TM-3 zone 50.2"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",118.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]"); - p = add_epsg_def (filter, first, last, 29184, "epsg", 29184, - "SAD69 / UTM zone 24S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23838\"]]"); + p = add_epsg_def (filter, first, last, 23839, "epsg", 23839, + "DGN95 / Indonesia TM-3 zone 51.1"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",121.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]"); - p = add_epsg_def (filter, first, last, 29185, "epsg", 29185, - "SAD69 / UTM zone 25S (deprecated)"); + ",AUTHORITY[\"EPSG\",\"23839\"]]"); + p = add_epsg_def (filter, first, last, 23840, "epsg", 23840, + "DGN95 / Indonesia TM-3 zone 51.2"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4"); + "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "1,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA"); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac"); + "METER[\"central_meridian\",124.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]"); - p = add_epsg_def (filter, first, last, 29187, "epsg", 29187, - "SAD69 / UTM zone 17S"); + ",AUTHORITY[\"EPSG\",\"23840\"]]"); + p = add_epsg_def (filter, first, last, 23841, "epsg", 23841, + "DGN95 / Indonesia TM-3 zone 52.1"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",127.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29187\"]]"); - p = add_epsg_def (filter, first, last, 29188, "epsg", 29188, - "SAD69 / UTM zone 18S"); + ",AUTHORITY[\"EPSG\",\"23841\"]]"); + p = add_epsg_def (filter, first, last, 23842, "epsg", 23842, + "DGN95 / Indonesia TM-3 zone 52.2"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",130.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29188\"]]"); - p = add_epsg_def (filter, first, last, 29189, "epsg", 29189, - "SAD69 / UTM zone 19S"); + ",AUTHORITY[\"EPSG\",\"23842\"]]"); + p = add_epsg_def (filter, first, last, 23843, "epsg", 23843, + "DGN95 / Indonesia TM-3 zone 53.1"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",133.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29189\"]]"); - p = add_epsg_def (filter, first, last, 29190, "epsg", 29190, - "SAD69 / UTM zone 20S"); + ",AUTHORITY[\"EPSG\",\"23843\"]]"); + p = add_epsg_def (filter, first, last, 23844, "epsg", 23844, + "DGN95 / Indonesia TM-3 zone 53.2"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",136.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29190\"]]"); - p = add_epsg_def (filter, first, last, 29191, "epsg", 29191, - "SAD69 / UTM zone 21S"); + ",AUTHORITY[\"EPSG\",\"23844\"]]"); + p = add_epsg_def (filter, first, last, 23845, "epsg", 23845, + "DGN95 / Indonesia TM-3 zone 54.1"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",139.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29191\"]]"); - p = add_epsg_def (filter, first, last, 29192, "epsg", 29192, - "SAD69 / UTM zone 22S"); + ",AUTHORITY[\"EPSG\",\"23845\"]]"); + p = add_epsg_def (filter, first, last, 23846, "epsg", 23846, + "ID74 / UTM zone 46N"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29192\"]]"); - p = add_epsg_def (filter, first, last, 29193, "epsg", 29193, - "SAD69 / UTM zone 23S"); + "H],AUTHORITY[\"EPSG\",\"23846\"]]"); + p = add_epsg_def (filter, first, last, 23847, "epsg", 23847, + "ID74 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29193\"]]"); - p = add_epsg_def (filter, first, last, 29194, "epsg", 29194, - "SAD69 / UTM zone 24S"); + "H],AUTHORITY[\"EPSG\",\"23847\"]]"); + p = add_epsg_def (filter, first, last, 23848, "epsg", 23848, + "ID74 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-39],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29194\"]]"); - p = add_epsg_def (filter, first, last, 29195, "epsg", 29195, - "SAD69 / UTM zone 25S"); + "ORTH],AUTHORITY[\"EPSG\",\"23848\"]]"); + p = add_epsg_def (filter, first, last, 23849, "epsg", 23849, + "ID74 / UTM zone 49N"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,"); + "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "-41,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\""); + "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "central_meridian\",-33],PARAMETER[\"scale_factor\",0.999"); + "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"29195\"]]"); - p = add_epsg_def (filter, first, last, 29220, "epsg", 29220, - "Sapper Hill 1943 / UTM zone 20S"); + "ORTH],AUTHORITY[\"EPSG\",\"23849\"]]"); + p = add_epsg_def (filter, first, last, 23850, "epsg", 23850, + "ID74 / UTM zone 50N"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7"); + "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "2,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp"); + "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]"); - p = add_epsg_def (filter, first, last, 29221, "epsg", 29221, - "Sapper Hill 1943 / UTM zone 21S"); + "ORTH],AUTHORITY[\"EPSG\",\"23850\"]]"); + p = add_epsg_def (filter, first, last, 23851, "epsg", 23851, + "ID74 / UTM zone 51N"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7"); + "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "2,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp"); + "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]"); - p = add_epsg_def (filter, first, last, 29333, "epsg", 29333, - "Schwarzeck / UTM zone 33S"); + "ORTH],AUTHORITY[\"EPSG\",\"23851\"]]"); + p = add_epsg_def (filter, first, last, 23852, "epsg", 23852, + "ID74 / UTM zone 52N"); add_proj4text (p, 0, - "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9"); + "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "7,-251,0,0,0,0 +units=m +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck"); + "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\""); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\""); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_"); + "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]"); - p = add_epsg_def (filter, first, last, 29371, "epsg", 29371, - "Schwarzeck / Lo22/11"); + "ORTH],AUTHORITY[\"EPSG\",\"23852\"]]"); + p = add_epsg_def (filter, first, last, 23853, "epsg", 23853, + "ID74 / UTM zone 53N (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",11],PAR"); + "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29373, "epsg", 29373, - "Schwarzeck / Lo22/13"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]"); + p = add_epsg_def (filter, first, last, 23866, "epsg", 23866, + "DGN95 / UTM zone 46N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",13],PAR"); + "l_meridian\",93],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29375, "epsg", 29375, - "Schwarzeck / Lo22/15"); + "[\"EPSG\",\"23866\"]]"); + p = add_epsg_def (filter, first, last, 23867, "epsg", 23867, + "DGN95 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",15],PAR"); + "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29377, "epsg", 29377, - "Schwarzeck / Lo22/17"); + "[\"EPSG\",\"23867\"]]"); + p = add_epsg_def (filter, first, last, 23868, "epsg", 23868, + "DGN95 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",17],PAR"); + "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29379, "epsg", 29379, - "Schwarzeck / Lo22/19"); + "Y[\"EPSG\",\"23868\"]]"); + p = add_epsg_def (filter, first, last, 23869, "epsg", 23869, + "DGN95 / UTM zone 49N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",19],PAR"); + "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29381, "epsg", 29381, - "Schwarzeck / Lo22/21"); + "Y[\"EPSG\",\"23869\"]]"); + p = add_epsg_def (filter, first, last, 23870, "epsg", 23870, + "DGN95 / UTM zone 50N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",21],PAR"); + "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29383, "epsg", 29383, - "Schwarzeck / Lo22/23"); + "Y[\"EPSG\",\"23870\"]]"); + p = add_epsg_def (filter, first, last, 23871, "epsg", 23871, + "DGN95 / UTM zone 51N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",23],PAR"); + "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29385, "epsg", 29385, - "Schwarzeck / Lo22/25"); + "Y[\"EPSG\",\"23871\"]]"); + p = add_epsg_def (filter, first, last, 23872, "epsg", 23872, + "DGN95 / UTM zone 52N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi"); + "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); - add_proj4text (p, 2, - "eter=1.0000135965 +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA"); + "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "_of_origin\",-22],PARAMETER[\"central_meridian\",25],PAR"); + "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29635, "epsg", 29635, - "Sudan / UTM zone 35N (deprecated)"); + "Y[\"EPSG\",\"23872\"]]"); + p = add_epsg_def (filter, first, last, 23877, "epsg", 23877, + "DGN95 / UTM zone 47S"); add_proj4text (p, 0, - "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_"); + "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su"); + "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); + "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, - "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); + "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "35\"]]"); - p = add_epsg_def (filter, first, last, 29636, "epsg", 29636, - "Sudan / UTM zone 36N (deprecated)"); + "THORITY[\"EPSG\",\"23877\"]]"); + p = add_epsg_def (filter, first, last, 23878, "epsg", 23878, + "DGN95 / UTM zone 48S"); add_proj4text (p, 0, - "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_"); + "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su"); + "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); + "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "36\"]]"); - p = add_epsg_def (filter, first, last, 29700, "epsg", 29700, - "Tananarive (Paris) / Laborde Grid (deprecated)"); + "UTHORITY[\"EPSG\",\"23878\"]]"); + p = add_epsg_def (filter, first, last, 23879, "epsg", 23879, + "DGN95 / UTM zone 49S"); add_proj4text (p, 0, - "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); + "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); - add_proj4text (p, 2, - "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); - add_proj4text (p, 3, - "ris +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\""); + "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PA"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "RAMETER[\"latitude_of_center\",-21],PARAMETER[\"longitud"); + "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "e_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER[\""); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "rectified_grid_angle\",21],PARAMETER[\"scale_factor\",0."); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "9995],PARAMETER[\"false_easting\",400000],PARAMETER[\"fa"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "lse_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); - add_srs_wkt (p, 13, - "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); - add_srs_wkt (p, 14, - "TY[\"EPSG\",\"29700\"]]"); - p = add_epsg_def (filter, first, last, 29702, "epsg", 29702, - "Tananarive (Paris) / Laborde Grid approximation"); + "UTHORITY[\"EPSG\",\"23879\"]]"); + p = add_epsg_def (filter, first, last, 23880, "epsg", 23880, + "DGN95 / UTM zone 50S"); add_proj4text (p, 0, - "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); + "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); - add_proj4text (p, 2, - "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); - add_proj4text (p, 3, - "ris +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation"); + "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "SG\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "PARAMETER[\"latitude_of_center\",-21],PARAMETER[\"longit"); + "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "ude_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER["); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "\"rectified_grid_angle\",21],PARAMETER[\"scale_factor\","); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "0.9995],PARAMETER[\"false_easting\",400000],PARAMETER[\""); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "false_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EP"); - add_srs_wkt (p, 13, - "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); - add_srs_wkt (p, 14, - "RITY[\"EPSG\",\"29702\"]]"); - p = add_epsg_def (filter, first, last, 29738, "epsg", 29738, - "Tananarive / UTM zone 38S"); + "UTHORITY[\"EPSG\",\"23880\"]]"); + p = add_epsg_def (filter, first, last, 23881, "epsg", 23881, + "DGN95 / UTM zone 51S"); add_proj4text (p, 0, - "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242"); + "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - ",-91,0,0,0,0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive"); + "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0."); + "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29738\"]]"); - p = add_epsg_def (filter, first, last, 29739, "epsg", 29739, - "Tananarive / UTM zone 39S"); + "UTHORITY[\"EPSG\",\"23881\"]]"); + p = add_epsg_def (filter, first, last, 23882, "epsg", 23882, + "DGN95 / UTM zone 52S"); add_proj4text (p, 0, - "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242"); + "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - ",-91,0,0,0,0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive"); + "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "R[\"central_meridian\",51],PARAMETER[\"scale_factor\",0."); + "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"29739\"]]"); - p = add_epsg_def (filter, first, last, 29849, "epsg", 29849, - "Timbalai 1948 / UTM zone 49N"); + "UTHORITY[\"EPSG\",\"23882\"]]"); + p = add_epsg_def (filter, first, last, 23883, "epsg", 23883, + "DGN95 / UTM zone 53S"); add_proj4text (p, 0, - "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-533.4,669.2,"); + "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "-52.5,0,0,4.28,9.4 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala"); + "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "29849\"]]"); - p = add_epsg_def (filter, first, last, 29850, "epsg", 29850, - "Timbalai 1948 / UTM zone 50N"); + "UTHORITY[\"EPSG\",\"23883\"]]"); + p = add_epsg_def (filter, first, last, 23884, "epsg", 23884, + "DGN95 / UTM zone 54S"); add_proj4text (p, 0, - "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-533.4,669.2,"); + "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "-52.5,0,0,4.28,9.4 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala"); + "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, - "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); + "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, - " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); + "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "29850\"]]"); - p = add_epsg_def (filter, first, last, 29871, "epsg", 29871, - "Timbalai 1948 / RSO Borneo (ch)"); + "UTHORITY[\"EPSG\",\"23884\"]]"); + p = add_epsg_def (filter, first, last, 23886, "epsg", 23886, + "ID74 / UTM zone 46S (deprecated)"); add_proj4text (p, 0, - "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 "); - add_proj4text (p, 2, - "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4,"); - add_proj4text (p, 3, - "669.2,-52.5,0,0,4.28,9.4 +to_meter=20.11676512155263 +no"); - add_proj4text (p, 4, - "_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb"); + "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, - "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); + "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, - "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); + ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); + ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); add_srs_wkt (p, 7, - ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); + "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 9, - "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); + "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, - "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, - "ing\",29352.4763],PARAMETER[\"false_northing\",22014.357"); - add_srs_wkt (p, 13, - "2],UNIT[\"British chain (Sears 1922)\",20.11676512155263"); - add_srs_wkt (p, 14, - ",AUTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST],AX"); - add_srs_wkt (p, 15, - "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]]"); - p = add_epsg_def (filter, first, last, 29872, "epsg", 29872, - "Timbalai 1948 / RSO Borneo (ft)"); + "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]"); + p = add_epsg_def (filter, first, last, 23887, "epsg", 23887, + "ID74 / UTM zone 47S"); add_proj4text (p, 0, - "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985"); - add_proj4text (p, 2, - " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4"); - add_proj4text (p, 3, - ",669.2,-52.5,0,0,4.28,9.4 +to_meter=0.3047994715386762 +"); - add_proj4text (p, 4, - "no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb"); + "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); + "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, - "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); + ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); + "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "ing\",1937263.44],PARAMETER[\"false_northing\",1452947.5"); - add_srs_wkt (p, 13, - "8],UNIT[\"British foot (Sears 1922)\",0.3047994715386762"); - add_srs_wkt (p, 14, - ",AUTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST],AX"); - add_srs_wkt (p, 15, - "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]]"); - p = add_epsg_def (filter, first, last, 29873, "epsg", 29873, - "Timbalai 1948 / RSO Borneo (m)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"23887\"]]"); + p = add_epsg_def (filter, first, last, 23888, "epsg", 23888, + "ID74 / UTM zone 48S"); add_proj4text (p, 0, - "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010"); - add_proj4text (p, 2, - "236111111 +ellps=evrstSS +towgs84=-533.4,669.2,-52.5,0,0"); - add_proj4text (p, 3, - ",4.28,9.4 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba"); + "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); + "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "ing\",590476.87],PARAMETER[\"false_northing\",442857.65]"); - add_srs_wkt (p, 13, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); - add_srs_wkt (p, 14, - "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 15, - "\",\"29873\"]]"); - p = add_epsg_def (filter, first, last, 29900, "epsg", 29900, - "TM65 / Irish National Grid (deprecated)"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23888\"]]"); + p = add_epsg_def (filter, first, last, 23889, "epsg", 23889, + "ID74 / UTM zone 49S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC"); + "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\""); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "99\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "atitude_of_origin\",53.5],PARAMETER[\"central_meridian\""); + "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - ",-8],PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"fa"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "lse_easting\",200000],PARAMETER[\"false_northing\",25000"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 13, - "G\",\"29900\"]]"); - p = add_epsg_def (filter, first, last, 29901, "epsg", 29901, - "OSNI 1952 / Irish National Grid"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23889\"]]"); + p = add_epsg_def (filter, first, last, 23890, "epsg", 23890, + "ID74 / UTM zone 50S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0="); + "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0"); - add_proj4text (p, 2, - ".214,-0.631,8.15 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI"); + "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4188\"]]"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P"); + "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - ",200000],PARAMETER[\"false_northing\",250000],UNIT[\"met"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 29902, "epsg", 29902, - "TM65 / Irish Grid"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23890\"]]"); + p = add_epsg_def (filter, first, last, 23891, "epsg", 23891, + "ID74 / UTM zone 51S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6"); + "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"T"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "3.5],PARAMETER[\"central_meridian\",-8],PARAMETER[\"scal"); + "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "e_factor\",1.000035],PARAMETER[\"false_easting\",200000]"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,A"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]"); - p = add_epsg_def (filter, first, last, 29903, "epsg", 29903, - "TM75 / Irish Grid"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23891\"]]"); + p = add_epsg_def (filter, first, last, 23892, "epsg", 23892, + "ID74 / UTM zone 52S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); - add_proj4text (p, 2, - "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo"); + "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4300\""); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "ude_of_origin\",53.5],PARAMETER[\"central_meridian\",-8]"); + "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - ",PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "easting\",200000],PARAMETER[\"false_northing\",250000],U"); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"29903\"]]"); - p = add_epsg_def (filter, first, last, 30161, "epsg", 30161, - "Tokyo / Japan Plane Rectangular CS I"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23892\"]]"); + p = add_epsg_def (filter, first, last, 23893, "epsg", 23893, + "ID74 / UTM zone 53S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); + "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); - add_proj4text (p, 2, - ",0 +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\""); + "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - "3],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"sca"); + "METER[\"central_meridian\",135],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30161\"]]"); - p = add_epsg_def (filter, first, last, 30162, "epsg", 30162, - "Tokyo / Japan Plane Rectangular CS II"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23893\"]]"); + p = add_epsg_def (filter, first, last, 23894, "epsg", 23894, + "ID74 / UTM zone 54S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS["); + "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, - ",33],PARAMETER[\"central_meridian\",131],PARAMETER[\"sca"); + "METER[\"central_meridian\",141],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30162\"]]"); - p = add_epsg_def (filter, first, last, 30163, "epsg", 30163, - "Tokyo / Japan Plane Rectangular CS III"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"23894\"]]"); + p = add_epsg_def (filter, first, last, 23946, "epsg", 23946, + "Indian 1954 / UTM zone 46N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); + "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); - add_proj4text (p, 2, - "80.507,0,0,0,0 +units=m +no_defs"); + "owgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS"); + "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - ",36],PARAMETER[\"central_meridian\",132.1666666666667],P"); + "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 9, - "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"30163\"]]"); - p = add_epsg_def (filter, first, last, 30164, "epsg", 30164, - "Tokyo / Japan Plane Rectangular CS IV"); + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]"); + p = add_epsg_def (filter, first, last, 23947, "epsg", 23947, + "Indian 1954 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); + "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); - add_proj4text (p, 2, - ",0 +units=m +no_defs"); + "owgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS["); + "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - ",33],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"s"); + "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 9, - "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"30164\"]]"); - p = add_epsg_def (filter, first, last, 30165, "epsg", 30165, - "Tokyo / Japan Plane Rectangular CS V"); + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]"); + p = add_epsg_def (filter, first, last, 23948, "epsg", 23948, + "Indian 1954 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); + "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); - add_proj4text (p, 2, - "80.507,0,0,0,0 +units=m +no_defs"); + "owgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\""); + "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, - "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, - ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "6],PARAMETER[\"central_meridian\",134.3333333333333],PAR"); + "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"30165\"]]"); - p = add_epsg_def (filter, first, last, 30166, "epsg", 30166, - "Tokyo / Japan Plane Rectangular CS VI"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]"); + p = add_epsg_def (filter, first, last, 24047, "epsg", 24047, + "Indian 1975 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "owgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS["); + "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - ",36],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca"); + "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30166\"]]"); - p = add_epsg_def (filter, first, last, 30167, "epsg", 30167, - "Tokyo / Japan Plane Rectangular CS VII"); + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]"); + p = add_epsg_def (filter, first, last, 24048, "epsg", 24048, + "Indian 1975 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); + "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); - add_proj4text (p, 2, - "80.507,0,0,0,0 +units=m +no_defs"); + "owgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS"); + "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - ",36],PARAMETER[\"central_meridian\",137.1666666666667],P"); + "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, - "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"30167\"]]"); - p = add_epsg_def (filter, first, last, 30168, "epsg", 30168, - "Tokyo / Japan Plane Rectangular CS VIII"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]"); + p = add_epsg_def (filter, first, last, 24100, "epsg", 24100, + "Jamaica 1875 / Jamaica (Old Grid)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); + "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167"); add_proj4text (p, 1, - "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); + "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356"); add_proj4text (p, 2, - ",0 +units=m +no_defs"); + "514.966204134 +to_meter=0.3047972654 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC"); + "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja"); add_srs_wkt (p, 1, - "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, - "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + "80\",6378249.144808011,293.4663076556349,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + "ITY[\"EPSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, - "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMET"); add_srs_wkt (p, 8, - "n\",36],PARAMETER[\"central_meridian\",138.5],PARAMETER["); + "ER[\"central_meridian\",-77],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],"); + "1],PARAMETER[\"false_easting\",550000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); + "_northing\",400000],UNIT[\"Clarke's foot\",0.3047972654,"); add_srs_wkt (p, 11, - "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); + "AUTHORITY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, - "],AUTHORITY[\"EPSG\",\"30168\"]]"); - p = add_epsg_def (filter, first, last, 30169, "epsg", 30169, - "Tokyo / Japan Plane Rectangular CS IX"); + "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]"); + p = add_epsg_def (filter, first, last, 24200, "epsg", 24200, + "JAD69 / Jamaica National Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); + "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250"); add_proj4text (p, 1, - " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,"); add_proj4text (p, 2, - "80.507,0,0,0,0 +units=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS["); + "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\""); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + ".4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS"); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "\"]],AUTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - ",36],PARAMETER[\"central_meridian\",139.8333333333333],P"); + "18],PARAMETER[\"central_meridian\",-77],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 10, - "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "TER[\"false_northing\",150000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"30169\"]]"); - p = add_epsg_def (filter, first, last, 30170, "epsg", 30170, - "Tokyo / Japan Plane Rectangular CS X"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]"); + p = add_epsg_def (filter, first, last, 24305, "epsg", 24305, + "Kalianpur 1937 / UTM zone 45N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); + "+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); - add_proj4text (p, 2, - "80.507,0,0,0,0 +units=m +no_defs"); + "owgs84=214,804,268,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\""); + "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, - "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, - "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); add_srs_wkt (p, 7, - "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - "0],PARAMETER[\"central_meridian\",140.8333333333333],PAR"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 9, - "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); + "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "\",EAST],AUTHORITY[\"EPSG\",\"30170\"]]"); - p = add_epsg_def (filter, first, last, 30171, "epsg", 30171, - "Tokyo / Japan Plane Rectangular CS XI"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]"); + p = add_epsg_def (filter, first, last, 24306, "epsg", 24306, + "Kalianpur 1937 / UTM zone 46N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); + "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +t"); add_proj4text (p, 1, - "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); - add_proj4text (p, 2, - "0,0 +units=m +no_defs"); + "owgs84=214,804,268,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS["); + "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",44],PARAMETER[\"central_meridian\",140.25],PARAMETER[\""); + "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30171\"]]"); - p = add_epsg_def (filter, first, last, 30172, "epsg", 30172, - "Tokyo / Japan Plane Rectangular CS XII"); + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]"); + p = add_epsg_def (filter, first, last, 24311, "epsg", 24311, + "Kalianpur 1962 / UTM zone 41N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); + "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +"); add_proj4text (p, 1, - "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); - add_proj4text (p, 2, - "0,0 +units=m +no_defs"); + "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS"); + "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",44],PARAMETER[\"central_meridian\",142.25],PARAMETER[\""); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30172\"]]"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311"); + add_srs_wkt (p, 13, + "\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_35.c b/src/spatialite/src/srsinit/epsg_inlined_35.c index 92a424c..0ced151 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_35.c +++ b/src/spatialite/src/srsinit/epsg_inlined_35.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3450 +52,3344 @@ initialize_epsg_35 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 30173, "epsg", 30173, - "Tokyo / Japan Plane Rectangular CS XIII"); + p = add_epsg_def (filter, first, last, 24312, "epsg", 24312, + "Kalianpur 1962 / UTM zone 42N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); + "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +"); add_proj4text (p, 1, - "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); - add_proj4text (p, 2, - "0,0 +units=m +no_defs"); + "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC"); + "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, - "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "n\",44],PARAMETER[\"central_meridian\",144.25],PARAMETER"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, - "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "T],AUTHORITY[\"EPSG\",\"30173\"]]"); - p = add_epsg_def (filter, first, last, 30174, "epsg", 30174, - "Tokyo / Japan Plane Rectangular CS XIV"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24313, "epsg", 24313, + "Kalianpur 1962 / UTM zone 43N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS"); + "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",26],PARAMETER[\"central_meridian\",142],PARAMETER[\"sca"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30174\"]]"); - p = add_epsg_def (filter, first, last, 30175, "epsg", 30175, - "Tokyo / Japan Plane Rectangular CS XV"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24342, "epsg", 24342, + "Kalianpur 1975 / UTM zone 42N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); + "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); - add_proj4text (p, 2, - ",0 +units=m +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS["); + "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",26],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"s"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, - "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"30175\"]]"); - p = add_epsg_def (filter, first, last, 30176, "epsg", 30176, - "Tokyo / Japan Plane Rectangular CS XVI"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24343, "epsg", 24343, + "Kalianpur 1975 / UTM zone 43N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS"); + "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",26],PARAMETER[\"central_meridian\",124],PARAMETER[\"sca"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30176\"]]"); - p = add_epsg_def (filter, first, last, 30177, "epsg", 30177, - "Tokyo / Japan Plane Rectangular CS XVII"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24344, "epsg", 24344, + "Kalianpur 1975 / UTM zone 44N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC"); + "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "n\",26],PARAMETER[\"central_meridian\",131],PARAMETER[\""); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30177\"]]"); - p = add_epsg_def (filter, first, last, 30178, "epsg", 30178, - "Tokyo / Japan Plane Rectangular CS XVIII"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24345, "epsg", 24345, + "Kalianpur 1975 / UTM zone 45N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG"); + "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\""); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTI"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "in\",20],PARAMETER[\"central_meridian\",136],PARAMETER[\""); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); add_srs_wkt (p, 9, - "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30178\"]]"); - p = add_epsg_def (filter, first, last, 30179, "epsg", 30179, - "Tokyo / Japan Plane Rectangular CS XIX"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24346, "epsg", 24346, + "Kalianpur 1975 / UTM zone 46N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); + "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS"); + "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",26],PARAMETER[\"central_meridian\",154],PARAMETER[\"sca"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"30179\"]]"); - p = add_epsg_def (filter, first, last, 30200, "epsg", 30200, - "Trinidad 1903 / Trinidad Grid"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 24347, "epsg", 24347, + "Kalianpur 1975 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); + "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, - "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782"); - add_proj4text (p, 2, - "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); - add_proj4text (p, 3, - "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs"); + "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid"); + "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "\",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\""); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT"); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "02\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - "ude_of_origin\",10.44166666666667],PARAMETER[\"central_m"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); add_srs_wkt (p, 9, - "eridian\",-61.33333333333334],PARAMETER[\"false_easting\""); + "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - ",430000],PARAMETER[\"false_northing\",325000],UNIT[\"Cla"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "rke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, - "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); + "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347"); add_srs_wkt (p, 13, - "ITY[\"EPSG\",\"30200\"]]"); - p = add_epsg_def (filter, first, last, 30339, "epsg", 30339, - "TC(1948) / UTM zone 39N"); + "\"]]"); + p = add_epsg_def (filter, first, last, 24370, "epsg", 24370, + "Kalianpur 1880 / India zone 0"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs"); + "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846"); + add_proj4text (p, 1, + "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377"); + add_proj4text (p, 2, + "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307"); + add_proj4text (p, 3, + "444408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D"); + "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); + "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, - "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); + "1830 Definition)\",6377299.36559538,300.8017255433552,AU"); add_srs_wkt (p, 3, - "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "rigin\",0],PARAMETER[\"central_meridian\",51],PARAMETER["); + "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 8, - "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + "\",39.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); add_srs_wkt (p, 9, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "scale_factor\",0.99846154],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + "355500],PARAMETER[\"false_northing\",2590000],UNIT[\"Ind"); add_srs_wkt (p, 11, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]"); - p = add_epsg_def (filter, first, last, 30340, "epsg", 30340, - "TC(1948) / UTM zone 40N"); + "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"24370\"]]"); + p = add_epsg_def (filter, first, last, 24371, "epsg", 24371, + "Kalianpur 1880 / India zone I"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs"); + "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); + add_proj4text (p, 1, + "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637"); + add_proj4text (p, 2, + "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530"); + add_proj4text (p, 3, + "7444408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D"); + "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); + "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, - "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); + "1830 Definition)\",6377299.36559538,300.8017255433552,AU"); add_srs_wkt (p, 3, - "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "rigin\",0],PARAMETER[\"central_meridian\",57],PARAMETER["); + "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 8, - "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + "\",32.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); add_srs_wkt (p, 9, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind"); add_srs_wkt (p, 11, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]"); - p = add_epsg_def (filter, first, last, 30491, "epsg", 30491, - "Voirol 1875 / Nord Algerie (ancienne)"); + "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"24371\"]]"); + p = add_epsg_def (filter, first, last, 24372, "epsg", 24372, + "Kalianpur 1880 / India zone IIa"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, - "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs"); + "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, - "84=-73,-247,227,0,0,0,0 +units=m +no_defs"); + ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); + add_proj4text (p, 3, + "408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS["); + "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke "); + "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); + " (1830 Definition)\",6377299.36559538,300.8017255433552,"); add_srs_wkt (p, 3, - "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\""); + "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, - "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PR"); + "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); + "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "titude_of_origin\",36],PARAMETER[\"central_meridian\",2."); + "n\",26],PARAMETER[\"central_meridian\",74],PARAMETER[\"s"); add_srs_wkt (p, 9, - "7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"f"); + "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, - "alse_easting\",500000],PARAMETER[\"false_northing\",3000"); + "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, - "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 30492, "epsg", 30492, - "Voirol 1875 / Sud Algerie (ancienne)"); + "RITY[\"EPSG\",\"24372\"]]"); + p = add_epsg_def (filter, first, last, 24373, "epsg", 24373, + "Kalianpur 1880 / India zone IIIa"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, - "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t"); + "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, - "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"); + ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); + add_proj4text (p, 3, + "408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\""); + "PROJCS[\"Kalianpur 1880 / India zone IIIa\",GEOGCS[\"Kal"); add_srs_wkt (p, 1, - "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18"); + "ianpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everes"); add_srs_wkt (p, 2, - "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + "t (1830 Definition)\",6377299.36559538,300.8017255433552"); add_srs_wkt (p, 3, - ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP"); + ",AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243"); add_srs_wkt (p, 4, - "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PROJE"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"La"); add_srs_wkt (p, 7, - "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); + "mbert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 8, - "ude_of_origin\",33.3],PARAMETER[\"central_meridian\",2.7"); + "gin\",19],PARAMETER[\"central_meridian\",80],PARAMETER[\""); add_srs_wkt (p, 9, - "],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"fa"); + "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, - "lse_easting\",500000],PARAMETER[\"false_northing\",30000"); + "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind"); add_srs_wkt (p, 11, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\""); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 30493, "epsg", 30493, - "Voirol 1879 / Nord Algerie (ancienne)"); + "RITY[\"EPSG\",\"24373\"]]"); + p = add_epsg_def (filter, first, last, 24374, "epsg", 24374, + "Kalianpur 1880 / India zone IVa"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, - "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units"); + "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, - "=m +no_defs"); + ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); + add_proj4text (p, 3, + "408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS["); + "PROJCS[\"Kalianpur 1880 / India zone IVa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke "); + "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); + " (1830 Definition)\",6377299.36559538,300.8017255433552,"); add_srs_wkt (p, 3, - "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr"); + "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_C"); + "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAMET"); + "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); + "n\",12],PARAMETER[\"central_meridian\",80],PARAMETER[\"s"); add_srs_wkt (p, 9, - "0.999625544],PARAMETER[\"false_easting\",500000],PARAMET"); + "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, - "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); + "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30493\"]]"); - p = add_epsg_def (filter, first, last, 30494, "epsg", 30494, - "Voirol 1879 / Sud Algerie (ancienne)"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"24374\"]]"); + p = add_epsg_def (filter, first, last, 24375, "epsg", 24375, + "Kalianpur 1937 / India zone IIb"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, - "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u"); + "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075"); add_proj4text (p, 2, - "nits=m +no_defs"); + ".41314024 +towgs84=214,804,268,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\""); + "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18"); + "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); + " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY"); add_srs_wkt (p, 3, - ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green"); + "[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Con"); + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\""); add_srs_wkt (p, 7, - "ic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMET"); + "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER"); add_srs_wkt (p, 8, - "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); + "[\"latitude_of_origin\",26],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, - "0.999625769],PARAMETER[\"false_easting\",500000],PARAMET"); + "\",90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER["); add_srs_wkt (p, 10, - "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); + "\"false_easting\",2743185.69],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "\",914395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"30494\"]]"); - p = add_epsg_def (filter, first, last, 30729, "epsg", 30729, - "Nord Sahara 1959 / UTM zone 29N"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"24375\"]]"); + p = add_epsg_def (filter, first, last, 24376, "epsg", 24376, + "Kalianpur 1962 / India zone I"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-186,-93,310,0"); + "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561"); + add_proj4text (p, 2, + "00.230165384 +towgs84=283,682,231,0,0,0,0 +units=m +no_d"); + add_proj4text (p, 3, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord"); + "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-9],PARAMETER["); + "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30729\"]]"); - p = add_epsg_def (filter, first, last, 30730, "epsg", 30730, - "Nord Sahara 1959 / UTM zone 30N"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"24376\"]]"); + p = add_epsg_def (filter, first, last, 24377, "epsg", 24377, + "Kalianpur 1962 / India zone IIa"); add_proj4text (p, 0, - "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-186,-93,310,0"); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2"); + add_proj4text (p, 2, + "30165384 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord"); + "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR"); add_srs_wkt (p, 3, - "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); + "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "45\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",-3],PARAMETER["); + "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30730\"]]"); - p = add_epsg_def (filter, first, last, 30731, "epsg", 30731, - "Nord Sahara 1959 / UTM zone 31N"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"24377\"]]"); + p = add_epsg_def (filter, first, last, 24378, "epsg", 24378, + "Kalianpur 1975 / India zone I"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-186,-93,310,0"); + "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560"); + add_proj4text (p, 2, + "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d"); + add_proj4text (p, 3, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord"); + "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, - " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, - "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, - "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); + "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, - "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\""); + "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30731\"]]"); - p = add_epsg_def (filter, first, last, 30732, "epsg", 30732, - "Nord Sahara 1959 / UTM zone 32N"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"24378\"]]"); + p = add_epsg_def (filter, first, last, 24379, "epsg", 24379, + "Kalianpur 1975 / India zone IIa"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-186,-93,310,0"); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + add_proj4text (p, 2, + "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord"); + "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, - "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); + "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, - "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); + "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30732\"]]"); - p = add_epsg_def (filter, first, last, 30791, "epsg", 30791, - "Nord Sahara 1959 / Voirol Unifie Nord"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"24379\"]]"); + p = add_epsg_def (filter, first, last, 24380, "epsg", 24380, + "Kalianpur 1975 / India zone IIb"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, - "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-186,-9"); + "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, - "3,310,0,0,0,0 +units=m +no_defs"); + "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Nord\",GEOGCS["); + "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID"); + "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"E"); + " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, - "PSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY"); + "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]]"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); + "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, - "latitude_of_origin\",36],PARAMETER[\"central_meridian\","); + "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "2.7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\""); + "dian\",90],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "false_easting\",500135],PARAMETER[\"false_northing\",300"); + "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, - "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079"); + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, - "1\"]]"); - p = add_epsg_def (filter, first, last, 30792, "epsg", 30792, - "Nord Sahara 1959 / Voirol Unifie Sud"); + "UTHORITY[\"EPSG\",\"24380\"]]"); + p = add_epsg_def (filter, first, last, 24381, "epsg", 24381, + "Kalianpur 1975 / India zone IIIa"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, - "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-18"); + "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, - "6,-93,310,0,0,0,0 +units=m +no_defs"); + "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Sud\",GEOGCS[\""); + "PROJCS[\"Kalianpur 1975 / India zone IIIa\",GEOGCS[\"Kal"); add_srs_wkt (p, 1, - "Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\""); + "ianpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everes"); add_srs_wkt (p, 2, - "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); + "t 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHO"); add_srs_wkt (p, 3, - "\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\""); + "RITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AU"); add_srs_wkt (p, 4, - "EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + "THORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PR"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); + "146\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARA"); add_srs_wkt (p, 8, - "titude_of_origin\",33.3],PARAMETER[\"central_meridian\","); + "METER[\"latitude_of_origin\",19],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, - "2.7],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\""); + "idian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAM"); add_srs_wkt (p, 10, - "false_easting\",500135],PARAMETER[\"false_northing\",300"); + "ETER[\"false_easting\",2743195.5],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "hing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, - "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079"); + "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, - "2\"]]"); - p = add_epsg_def (filter, first, last, 30800, "epsg", 30800, - "RT38 2.5 gon W (deprecated)"); + "AUTHORITY[\"EPSG\",\"24381\"]]"); + p = add_epsg_def (filter, first, last, 24382, "epsg", 24382, + "Kalianpur 1880 / India zone IIb"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); + "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, - "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); + "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); + add_proj4text (p, 2, + ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); + add_proj4text (p, 3, + "408 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D"); + "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397"); + "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY"); + " (1830 Definition)\",6377299.36559538,300.8017255433552,"); add_srs_wkt (p, 3, - "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, - "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]]"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "e_of_origin\",0],PARAMETER[\"central_meridian\",15.80827"); + "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - "777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); + "n\",26],PARAMETER[\"central_meridian\",90],PARAMETER[\"s"); add_srs_wkt (p, 9, - "se_easting\",1500000],PARAMETER[\"false_northing\",0],UN"); + "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, - "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"30800\"]]"); - p = add_epsg_def (filter, first, last, 31028, "epsg", 31028, - "Yoff / UTM zone 28N"); + "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"24382\"]]"); + p = add_epsg_def (filter, first, last, 24383, "epsg", 24383, + "Kalianpur 1975 / India zone IVa"); add_proj4text (p, 0, - "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_"); + "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, - "defs"); + "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); + add_proj4text (p, 2, + "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y"); + "PROJCS[\"Kalianpur 1975 / India zone IVa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, - "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); + "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, - "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); + " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, - ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, - "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTI"); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, - "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\""); + "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, - "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + "ETER[\"latitude_of_origin\",12],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "dian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]"); - p = add_epsg_def (filter, first, last, 31121, "epsg", 31121, - "Zanderij / UTM zone 21N"); + "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + add_srs_wkt (p, 12, + "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"24383\"]]"); + p = add_epsg_def (filter, first, last, 24500, "epsg", 24500, + "Kertau 1968 / Singapore Grid"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,"); + "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038"); + add_proj4text (p, 2, + "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D"); + "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau "); add_srs_wkt (p, 1, - "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838"); + "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod"); add_srs_wkt (p, 2, - "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35"); + "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\""); add_srs_wkt (p, 3, - "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw"); + "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\""); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"]"); + "9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cass"); add_srs_wkt (p, 7, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",1.287646"); add_srs_wkt (p, 8, - "_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PARA"); + "666666667],PARAMETER[\"central_meridian\",103.8530022222"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "222],PARAMETER[\"false_easting\",30000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "e_northing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "[\"EPSG\",\"31121\"]]"); - p = add_epsg_def (filter, first, last, 31154, "epsg", 31154, - "Zanderij / TM 54 NW"); + "H],AUTHORITY[\"EPSG\",\"24500\"]]"); + p = add_epsg_def (filter, first, last, 24547, "epsg", 24547, + "Kertau 1968 / UTM zone 47N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y"); + "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, - "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM"); + "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, - "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29"); + "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, - "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,"); + "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, - "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\""); + ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "SG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "dian\",-54],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); + "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "[\"false_easting\",500000],PARAMETER[\"false_northing\","); + "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, - "G\",\"31154\"]]"); - p = add_epsg_def (filter, first, last, 31170, "epsg", 31170, - "Zanderij / Suriname Old TM"); + "NORTH],AUTHORITY[\"EPSG\",\"24547\"]]"); + p = add_epsg_def (filter, first, last, 24548, "epsg", 24548, + "Kertau 1968 / UTM zone 48N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996"); + "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, - " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); - add_proj4text (p, 2, - ",0,0,0 +units=m +no_defs"); + "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\""); + "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, - ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378"); + "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, - "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-"); + "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, - "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree"); + ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\""); + "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, - "l_meridian\",-55.68333333333333],PARAMETER[\"scale_facto"); + "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, - "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "NORTH],AUTHORITY[\"EPSG\",\"31170\"]]"); - p = add_epsg_def (filter, first, last, 31171, "epsg", 31171, - "Zanderij / Suriname TM"); + ",NORTH],AUTHORITY[\"EPSG\",\"24548\"]]"); + p = add_epsg_def (filter, first, last, 24571, "epsg", 24571, + "Kertau / R.S.O. Malaya (ch) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999"); + "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, - " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); + "0.99984 +x_0=804671.2997750348 +y_0=0 +no_uoff +gamma=32"); add_proj4text (p, 2, - ",0,0,0 +units=m +no_defs"); + "3.1301023611111 +a=6377304.063 +b=6356103.038993155 +tow"); + add_proj4text (p, 3, + "gs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_d"); + add_proj4text (p, 4, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA"); + "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG"); add_srs_wkt (p, 1, - "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388"); + "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever"); add_srs_wkt (p, 2, - ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358"); + "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi"); + "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJE"); add_srs_wkt (p, 7, - "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, - "meridian\",-55.68333333333333],PARAMETER[\"scale_factor\""); + "of_center\",4],PARAMETER[\"longitude_of_center\",102.25]"); add_srs_wkt (p, 9, - ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + ",PARAMETER[\"azimuth\",323.0257905],PARAMETER[\"rectifie"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + "or\",0.99984],PARAMETER[\"false_easting\",40000],PARAMET"); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"31171\"]]"); - p = add_epsg_def (filter, first, last, 31251, "epsg", 31251, - "MGI (Ferro) / Austria GK West Zone"); + "ER[\"false_northing\",0],UNIT[\"British chain (Benoit 18"); + add_srs_wkt (p, 13, + "95 B)\",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],"); + add_srs_wkt (p, 14, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 15, + "Y[\"EPSG\",\"24571\"]]"); + p = add_epsg_def (filter, first, last, 24600, "epsg", 24600, + "KOC Lambert"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000"); + "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); + "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, - "units=m +no_defs"); + "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M"); + "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil"); add_srs_wkt (p, 1, - "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29"); add_srs_wkt (p, 2, - "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200."); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "HORITY[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "ral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMET"); + "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P"); add_srs_wkt (p, 10, - "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); + "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, - "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31"); - add_srs_wkt (p, 13, - "251\"]]"); - p = add_epsg_def (filter, first, last, 31252, "epsg", 31252, - "MGI (Ferro) / Austria GK Central Zone"); + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]"); + p = add_epsg_def (filter, first, last, 24718, "epsg", 24718, + "La Canoa / UTM zone 18N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000"); + "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); - add_proj4text (p, 2, - "units=m +no_defs"); + "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS["); + "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, - "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F"); + "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, - "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); + "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0"); + ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre"); - add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "HORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Merca"); - add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 8, + "entral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "entral_meridian\",31],PARAMETER[\"scale_factor\",1],PARA"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31252\"]]"); - p = add_epsg_def (filter, first, last, 31253, "epsg", 31253, - "MGI (Ferro) / Austria GK East Zone"); + "HORITY[\"EPSG\",\"24718\"]]"); + p = add_epsg_def (filter, first, last, 24719, "epsg", 24719, + "La Canoa / UTM zone 19N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000"); + "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, - " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); - add_proj4text (p, 2, - "units=m +no_defs"); + "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M"); + "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, - "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, - "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "entral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "ral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMET"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31"); - add_srs_wkt (p, 13, - "253\"]]"); - p = add_epsg_def (filter, first, last, 31254, "epsg", 31254, - "MGI / Austria GK West"); + "HORITY[\"EPSG\",\"24719\"]]"); + p = add_epsg_def (filter, first, last, 24720, "epsg", 24720, + "La Canoa / UTM zone 20N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, - "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, - "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31254\"]]"); - p = add_epsg_def (filter, first, last, 31255, "epsg", 31255, - "MGI / Austria GK Central"); + "HORITY[\"EPSG\",\"24720\"]]"); + p = add_epsg_def (filter, first, last, 24817, "epsg", 24817, + "PSAD56 / UTM zone 17N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, - "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM"); + "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "an\",13.33333333333333],PARAMETER[\"scale_factor\",1],PA"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31255\"]]"); - p = add_epsg_def (filter, first, last, 31256, "epsg", 31256, - "MGI / Austria GK East"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]"); + p = add_epsg_def (filter, first, last, 24818, "epsg", 24818, + "PSAD56 / UTM zone 18N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, - "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31256\"]]"); - p = add_epsg_def (filter, first, last, 31257, "epsg", 31257, - "MGI / Austria GK M28"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]"); + p = add_epsg_def (filter, first, last, 24819, "epsg", 24819, + "PSAD56 / UTM zone 19N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, - "150000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); - add_proj4text (p, 2, - "efs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M"); + "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31257\"]]"); - p = add_epsg_def (filter, first, last, 31258, "epsg", 31258, - "MGI / Austria GK M31"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]"); + p = add_epsg_def (filter, first, last, 24820, "epsg", 24820, + "PSAD56 / UTM zone 20N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, - "450000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); - add_proj4text (p, 2, - "efs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M"); + "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31258\"]]"); - p = add_epsg_def (filter, first, last, 31259, "epsg", 31259, - "MGI / Austria GK M34"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]"); + p = add_epsg_def (filter, first, last, 24821, "epsg", 24821, + "PSAD56 / UTM zone 21N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, - "750000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); - add_proj4text (p, 2, - "efs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M"); + "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31259\"]]"); - p = add_epsg_def (filter, first, last, 31265, "epsg", 31265, - "MGI / 3-degree Gauss zone 5 (deprecated)"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]"); + p = add_epsg_def (filter, first, last, 24877, "epsg", 24877, + "PSAD56 / UTM zone 17S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "+datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG"); + "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31265\"]]"); - p = add_epsg_def (filter, first, last, 31266, "epsg", 31266, - "MGI / 3-degree Gauss zone 6 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]"); + p = add_epsg_def (filter, first, last, 24878, "epsg", 24878, + "PSAD56 / UTM zone 18S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); + "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "+datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG"); + "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "[\"central_meridian\",18],PARAMETER[\"scale_factor\",1],"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31266\"]]"); - p = add_epsg_def (filter, first, last, 31267, "epsg", 31267, - "MGI / 3-degree Gauss zone 7 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]"); + p = add_epsg_def (filter, first, last, 24879, "epsg", 24879, + "PSAD56 / UTM zone 19S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); + "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "+datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG"); + "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31267\"]]"); - p = add_epsg_def (filter, first, last, 31268, "epsg", 31268, - "MGI / 3-degree Gauss zone 8 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]"); + p = add_epsg_def (filter, first, last, 24880, "epsg", 24880, + "PSAD56 / UTM zone 20S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); + "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "+datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG"); + "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "[\"central_meridian\",24],PARAMETER[\"scale_factor\",1],"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_n"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31268\"]]"); - p = add_epsg_def (filter, first, last, 31275, "epsg", 31275, - "MGI / Balkans zone 5 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]"); + p = add_epsg_def (filter, first, last, 24881, "epsg", 24881, + "PSAD56 / UTM zone 21S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); + "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "_0=0 +datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG"); + "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "METER[\"false_easting\",5500000],PARAMETER[\"false_north"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31275\"]]"); - p = add_epsg_def (filter, first, last, 31276, "epsg", 31276, - "MGI / Balkans zone 6 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]"); + p = add_epsg_def (filter, first, last, 24882, "epsg", 24882, + "PSAD56 / UTM zone 22S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); + "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, - "_0=0 +datum=hermannskogel +units=m +no_defs"); + "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG"); + "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, - "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, - "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal"); add_srs_wkt (p, 9, - "l_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARA"); + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "METER[\"false_easting\",6500000],PARAMETER[\"false_north"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31276\"]]"); - p = add_epsg_def (filter, first, last, 31277, "epsg", 31277, - "MGI / Balkans zone 7 (deprecated)"); + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]"); + p = add_epsg_def (filter, first, last, 24891, "epsg", 24891, + "PSAD56 / Peru west zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); + "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22"); add_proj4text (p, 1, - "_0=0 +datum=hermannskogel +units=m +no_defs"); + "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376"); + add_proj4text (p, 2, + ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG"); + "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, - "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); add_srs_wkt (p, 7, - "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "in\",-6],PARAMETER[\"central_meridian\",-80.5],PARAMETER"); add_srs_wkt (p, 9, - "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); + "[\"scale_factor\",0.99983008],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); + ",222000],PARAMETER[\"false_northing\",1426834.743],UNIT["); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31277\"]]"); - p = add_epsg_def (filter, first, last, 31278, "epsg", 31278, - "MGI / Balkans zone 8 (deprecated)"); + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]"); + p = add_epsg_def (filter, first, last, 24892, "epsg", 24892, + "PSAD56 / Peru central zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); + "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72"); add_proj4text (p, 1, - "_0=0 +datum=hermannskogel +units=m +no_defs"); + "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376"); + add_proj4text (p, 2, + ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); + "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\","); add_srs_wkt (p, 1, - "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID"); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, - ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJEC"); add_srs_wkt (p, 7, - "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "igin\",-9.5],PARAMETER[\"central_meridian\",-76],PARAMET"); add_srs_wkt (p, 9, - "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); + "ER[\"scale_factor\",0.99932994],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); + "g\",720000],PARAMETER[\"false_northing\",1039979.159],UN"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31278\"]]"); - p = add_epsg_def (filter, first, last, 31279, "epsg", 31279, - "MGI / Balkans zone 8 (deprecated)"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]"); + p = add_epsg_def (filter, first, last, 24893, "epsg", 24893, + "PSAD56 / Peru east zone"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); + "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0="); add_proj4text (p, 1, - "_0=0 +datum=hermannskogel +units=m +no_defs"); + "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-"); + add_proj4text (p, 2, + "376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); + "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, - "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); add_srs_wkt (p, 7, - "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "in\",-9.5],PARAMETER[\"central_meridian\",-70.5],PARAMET"); add_srs_wkt (p, 9, - "l_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARA"); + "ER[\"scale_factor\",0.99952992],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "METER[\"false_easting\",8500000],PARAMETER[\"false_north"); + "g\",1324000],PARAMETER[\"false_northing\",1040084.558],U"); add_srs_wkt (p, 11, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, - "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31279\"]]"); - p = add_epsg_def (filter, first, last, 31281, "epsg", 31281, - "MGI (Ferro) / Austria West Zone"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]"); + p = add_epsg_def (filter, first, last, 25000, "epsg", 25000, + "Leigon / Ghana Metre Grid"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3"); add_proj4text (p, 2, - " +no_defs"); + "64,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI "); + "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D"); add_srs_wkt (p, 1, - "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); + "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1"); add_srs_wkt (p, 2, - ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); + "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); + ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "ITY[\"EPSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); + "\"],PARAMETER[\"latitude_of_origin\",4.666666666666667],"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "PARAMETER[\"central_meridian\",-1],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMETER["); + "tor\",0.99975],PARAMETER[\"false_easting\",274319.51],PA"); add_srs_wkt (p, 10, - "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31281\"]]"); - p = add_epsg_def (filter, first, last, 31282, "epsg", 31282, - "MGI (Ferro) / Austria Central Zone"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"25000\"]]"); + p = add_epsg_def (filter, first, last, 25231, "epsg", 25231, + "Lome / UTM zone 31N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M"); + "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L"); add_srs_wkt (p, 1, - "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); add_srs_wkt (p, 2, - "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + "12936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, - "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTI"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); add_srs_wkt (p, 8, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, - "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET"); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, - "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); - add_srs_wkt (p, 12, - ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31282\"]]"); - p = add_epsg_def (filter, first, last, 31283, "epsg", 31283, - "MGI (Ferro) / Austria East Zone"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]"); + p = add_epsg_def (filter, first, last, 25391, "epsg", 25391, + "Luzon 1911 / Philippines zone I"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, - " +no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI "); + "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, - "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); + "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); + ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMETER["); + "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31283\"]]"); - p = add_epsg_def (filter, first, last, 31284, "epsg", 31284, - "MGI / Austria M28"); + "UTHORITY[\"EPSG\",\"25391\"]]"); + p = add_epsg_def (filter, first, last, 25392, "epsg", 25392, + "Luzon 1911 / Philippines zone II"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, - "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili"); + "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, - "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31284"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 31285, "epsg", 31285, - "MGI / Austria M31"); + "AUTHORITY[\"EPSG\",\"25392\"]]"); + p = add_epsg_def (filter, first, last, 25393, "epsg", 25393, + "Luzon 1911 / Philippines zone III"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, - "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili"); + "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu"); add_srs_wkt (p, 1, - "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); - add_srs_wkt (p, 12, - "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31285"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 31286, "epsg", 31286, - "MGI / Austria M34"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"25393\"]]"); + p = add_epsg_def (filter, first, last, 25394, "epsg", 25394, + "Luzon 1911 / Philippines zone IV"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, - "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili"); + "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, - "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31286"); - add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 31287, "epsg", 31287, - "MGI / Austria Lambert"); + "AUTHORITY[\"EPSG\",\"25394\"]]"); + p = add_epsg_def (filter, first, last, 25395, "epsg", 25395, + "Luzon 1911 / Philippines zone V"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); + "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, - "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); + "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, - "+units=m +no_defs"); + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, - "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa"); + ",PARAMETER[\"central_meridian\",125],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",47."); + "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "5],PARAMETER[\"central_meridian\",13.33333333333333],PAR"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "AMETER[\"false_easting\",400000],PARAMETER[\"false_north"); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "ing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); - add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"31287\"]]"); - p = add_epsg_def (filter, first, last, 31288, "epsg", 31288, - "MGI (Ferro) / M28"); + "UTHORITY[\"EPSG\",\"25395\"]]"); + p = add_epsg_def (filter, first, last, 25700, "epsg", 25700, + "Makassar (Jakarta) / NEIEZ (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +"); + "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, - "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); + "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm="); add_proj4text (p, 2, - "its=m +no_defs"); + "jakarta +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU"); + "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC"); add_srs_wkt (p, 1, - "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); + "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE"); add_srs_wkt (p, 2, - "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); + "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, - "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); + "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],"); add_srs_wkt (p, 4, - ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); + "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807"); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); + "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ITY[\"EPSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PAR"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",28],"); + "AMETER[\"central_meridian\",110],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + "r\",0.997],PARAMETER[\"false_easting\",3900000],PARAMETE"); add_srs_wkt (p, 10, - ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "R[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"31288\"]]"); - p = add_epsg_def (filter, first, last, 31289, "epsg", 31289, - "MGI (Ferro) / M31"); + "UTHORITY[\"EPSG\",\"25700\"]]"); + p = add_epsg_def (filter, first, last, 25828, "epsg", 25828, + "ETRS89 / UTM zone 28N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +"); + "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); - add_proj4text (p, 2, - "its=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU"); + "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",31],"); + "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - ",450000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"31289\"]]"); - p = add_epsg_def (filter, first, last, 31290, "epsg", 31290, - "MGI (Ferro) / M34"); + "ng\",NORTH],AUTHORITY[\"EPSG\",\"25828\"]]"); + p = add_epsg_def (filter, first, last, 25829, "epsg", 25829, + "ETRS89 / UTM zone 29N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +"); + "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); - add_proj4text (p, 2, - "its=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU"); + "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "itude_of_origin\",0],PARAMETER[\"central_meridian\",34],"); + "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - ",750000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "Y\",EAST],AUTHORITY[\"EPSG\",\"31290\"]]"); - p = add_epsg_def (filter, first, last, 31291, "epsg", 31291, - "MGI (Ferro) / Austria West Zone (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25829\"]]"); + p = add_epsg_def (filter, first, last, 25830, "epsg", 25830, + "ETRS89 / UTM zone 30N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 13, - "1291\"]]"); - p = add_epsg_def (filter, first, last, 31292, "epsg", 31292, - "MGI (Ferro) / Austria Central Zone (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25830\"]]"); + p = add_epsg_def (filter, first, last, 25831, "epsg", 25831, + "ETRS89 / UTM zone 31N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)"); + "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "22\"]],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transv"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); + "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "AMETER[\"central_meridian\",31],PARAMETER[\"scale_factor"); + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, - "\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31292\"]]"); - p = add_epsg_def (filter, first, last, 31293, "epsg", 31293, - "MGI (Ferro) / Austria East Zone (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25831\"]]"); + p = add_epsg_def (filter, first, last, 25832, "epsg", 25832, + "ETRS89 / UTM zone 32N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); + "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); - add_proj4text (p, 2, - " +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\","); + "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "R[\"central_meridian\",34],PARAMETER[\"scale_factor\",1]"); + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 13, - "1293\"]]"); - p = add_epsg_def (filter, first, last, 31294, "epsg", 31294, - "MGI / M28 (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25832\"]]"); + p = add_epsg_def (filter, first, last, 25833, "epsg", 25833, + "ETRS89 / UTM zone 33N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "METER[\"false_easting\",150000],PARAMETER[\"false_northi"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 13, - "1294\"]]"); - p = add_epsg_def (filter, first, last, 31295, "epsg", 31295, - "MGI / M31 (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25833\"]]"); + p = add_epsg_def (filter, first, last, 25834, "epsg", 25834, + "ETRS89 / UTM zone 34N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "\",13.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "METER[\"false_easting\",450000],PARAMETER[\"false_northi"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 13, - "1295\"]]"); - p = add_epsg_def (filter, first, last, 31296, "epsg", 31296, - "MGI / M34 (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25834\"]]"); + p = add_epsg_def (filter, first, last, 25835, "epsg", 25835, + "ETRS89 / UTM zone 35N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "METER[\"false_easting\",750000],PARAMETER[\"false_northi"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 13, - "1296\"]]"); - p = add_epsg_def (filter, first, last, 31297, "epsg", 31297, - "MGI / Austria Lambert (deprecated)"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25835\"]]"); + p = add_epsg_def (filter, first, last, 25836, "epsg", 25836, + "ETRS89 / UTM zone 36N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); + "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); - add_proj4text (p, 2, - "+units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M"); + "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID["); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_C"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "onic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAME"); + "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "origin\",47.5],PARAMETER[\"central_meridian\",13.3333333"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "3333333],PARAMETER[\"false_easting\",400000],PARAMETER[\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP"); - add_srs_wkt (p, 13, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); - add_srs_wkt (p, 14, - "RITY[\"EPSG\",\"31297\"]]"); - p = add_epsg_def (filter, first, last, 31300, "epsg", 31300, - "Belge 1972 / Belge Lambert 72"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25836\"]]"); + p = add_epsg_def (filter, first, last, 25837, "epsg", 25837, + "ETRS89 / UTM zone 37N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); + "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256"); - add_proj4text (p, 2, - " +y_0=5400088.4378 +ellps=intl +towgs84=-106.869,52.2978"); - add_proj4text (p, 3, - ",-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge "); + "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, - "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I"); + "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, - "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); + "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "2\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1."); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gre"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - "onic_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49"); + "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - ".83333333333334],PARAMETER[\"standard_parallel_2\",51.16"); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "666666666666],PARAMETER[\"latitude_of_origin\",90],PARAM"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "ETER[\"central_meridian\",4.356939722222222],PARAMETER[\""); + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, - "false_easting\",150000.01256],PARAMETER[\"false_northing"); - add_srs_wkt (p, 13, - "\",5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); - add_srs_wkt (p, 14, - "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 15, - "PSG\",\"31300\"]]"); - p = add_epsg_def (filter, first, last, 31370, "epsg", 31370, - "Belge 1972 / Belgian Lambert 72"); + "\",NORTH],AUTHORITY[\"EPSG\",\"25837\"]]"); + p = add_epsg_def (filter, first, last, 25838, "epsg", 25838, + "ETRS89 / UTM zone 38N (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la"); + "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, - "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540"); - add_proj4text (p, 2, - "0088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,"); - add_proj4text (p, 3, - "0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg"); + "PROJCS[\"ETRS89 / UTM zone 38N (deprecated)\",GEOGCS[\"E"); add_srs_wkt (p, 1, - "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\""); + "TRS89\",DATUM[\"European_Terrestrial_Reference_System_19"); add_srs_wkt (p, 2, - "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + "89\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, - "22\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1"); + "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, - ".8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gr"); + "\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],"); add_srs_wkt (p, 7, - "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - "onic_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672"); + "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM"); add_srs_wkt (p, 9, - "3333333],PARAMETER[\"standard_parallel_2\",49.8333339],P"); + "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ARAMETER[\"latitude_of_origin\",90],PARAMETER[\"central_"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "meridian\",4.367486666666666],PARAMETER[\"false_easting\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, - ",150000.013],PARAMETER[\"false_northing\",5400088.438],U"); - add_srs_wkt (p, 13, - "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); - add_srs_wkt (p, 14, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]"); - p = add_epsg_def (filter, first, last, 31461, "epsg", 31461, - "DHDN / 3-degree Gauss zone 1 (deprecated)"); + "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]"); + p = add_epsg_def (filter, first, last, 25884, "epsg", 25884, + "ETRS89 / TM Baltic93"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); + "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, - "datum=potsdam +units=m +no_defs"); + "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); + add_proj4text (p, 2, + "s"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO"); + "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, - "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, - "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, - "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, - "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); - add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]"); - add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 31462, "epsg", 31462, - "DHDN / 3-degree Gauss zone 2 (deprecated)"); + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"25884\"]]"); + p = add_epsg_def (filter, first, last, 25932, "epsg", 25932, + "Malongo 1987 / UTM zone 32S"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); + "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5"); add_proj4text (p, 1, - "datum=potsdam +units=m +no_defs"); + ".36,-100.29,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO"); + "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo "); add_srs_wkt (p, 1, - "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, - "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\""); add_srs_wkt (p, 4, - "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "9122\"]],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, - "false_easting\",2500000],PARAMETER[\"false_northing\",0]"); + "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]"); - add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 31463, "epsg", 31463, - "DHDN / 3-degree Gauss zone 3 (deprecated)"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]"); + p = add_epsg_def (filter, first, last, 26191, "epsg", 26191, + "Merchich / Nord Maroc"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); + "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, - "datum=potsdam +units=m +no_defs"); + "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +"); + add_proj4text (p, 2, + "towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO"); + "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, - "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, - "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, - "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3]"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + "factor\",0.999625769],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "false_easting\",3500000],PARAMETER[\"false_northing\",0]"); + "],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]"); - add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 31464, "epsg", 31464, - "DHDN / 3-degree Gauss zone 4 (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"26191\"]]"); + p = add_epsg_def (filter, first, last, 26192, "epsg", 26192, + "Merchich / Sud Maroc"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); + "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, - "+datum=potsdam +units=m +no_defs"); + "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63"); + add_proj4text (p, 2, + "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO"); + "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU"); add_srs_wkt (p, 1, - "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 2, - "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + "293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84["); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM["); add_srs_wkt (p, 4, - "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "UTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER["); + "actor\",0.999615596],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "\"false_easting\",4500000],PARAMETER[\"false_northing\","); + ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 31465, "epsg", 31465, - "DHDN / 3-degree Gauss zone 5 (deprecated)"); + ",NORTH],AUTHORITY[\"EPSG\",\"26192\"]]"); + p = add_epsg_def (filter, first, last, 26193, "epsg", 26193, + "Merchich / Sahara (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, - "+datum=potsdam +units=m +no_defs"); + "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg"); + add_proj4text (p, 2, + "s84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO"); + "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch"); add_srs_wkt (p, 1, - "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, - "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, - "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\""); add_srs_wkt (p, 4, - "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "9122\"]],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + "n\",26.1],PARAMETER[\"central_meridian\",-5.4],PARAMETER"); add_srs_wkt (p, 9, - "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER["); + "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",12"); add_srs_wkt (p, 10, - "\"false_easting\",5500000],PARAMETER[\"false_northing\","); + "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); add_srs_wkt (p, 11, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\""); - add_srs_wkt (p, 13, - "]]"); - p = add_epsg_def (filter, first, last, 31466, "epsg", 31466, - "DHDN / 3-degree Gauss-Kruger zone 2"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]"); + p = add_epsg_def (filter, first, last, 26194, "epsg", 26194, + "Merchich / Sahara Nord"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); + "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, - "datum=potsdam +units=m +no_defs"); + "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 "); + add_proj4text (p, 2, + "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\""); + "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA"); add_srs_wkt (p, 1, - "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME"); add_srs_wkt (p, 4, - "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + ",AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, - "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + "],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); + "_factor\",0.999616304],PARAMETER[\"false_easting\",12000"); add_srs_wkt (p, 10, - "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT"); + "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\","); add_srs_wkt (p, 11, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31466\"]]"); - p = add_epsg_def (filter, first, last, 31467, "epsg", 31467, - "DHDN / 3-degree Gauss-Kruger zone 3"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26194\"]]"); + p = add_epsg_def (filter, first, last, 26195, "epsg", 26195, + "Merchich / Sahara Sud"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); + "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, - "datum=potsdam +units=m +no_defs"); + "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 "); + add_proj4text (p, 2, + "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); + "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, - "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, - "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, - "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5]"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); + "factor\",0.999616437],PARAMETER[\"false_easting\",150000"); add_srs_wkt (p, 10, - "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT"); + "0],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, - "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31467\"]]"); - p = add_epsg_def (filter, first, last, 31468, "epsg", 31468, - "DHDN / 3-degree Gauss-Kruger zone 4"); + "\",NORTH],AUTHORITY[\"EPSG\",\"26195\"]]"); + p = add_epsg_def (filter, first, last, 26237, "epsg", 26237, + "Massawa / UTM zone 37N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); + "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0"); add_proj4text (p, 1, - "+datum=potsdam +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); + "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT"); add_srs_wkt (p, 1, - "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "\"EPSG\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + "meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 9, - "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 10, - "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); + "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31468\"]]"); - p = add_epsg_def (filter, first, last, 31469, "epsg", 31469, - "DHDN / 3-degree Gauss-Kruger zone 5"); + "EPSG\",\"26237\"]]"); + p = add_epsg_def (filter, first, last, 26331, "epsg", 26331, + "Minna / UTM zone 31N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, - "+datum=potsdam +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); + "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, - "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, - "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, - ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, - "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + "dian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31469\"]]"); - p = add_epsg_def (filter, first, last, 31528, "epsg", 31528, - "Conakry 1905 / UTM zone 28N"); + ",\"26331\"]]"); + p = add_epsg_def (filter, first, last, 26332, "epsg", 26332, + "Minna / UTM zone 32N"); add_proj4text (p, 0, - "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); + "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, - "259,-9,0,0,0,0 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry "); + "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, - "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); + "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, - "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); + "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, - "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); + ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); + "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal"); + "dian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, - "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "hing\",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]"); - p = add_epsg_def (filter, first, last, 31529, "epsg", 31529, - "Conakry 1905 / UTM zone 29N"); + ",\"26332\"]]"); + p = add_epsg_def (filter, first, last, 26391, "epsg", 26391, + "Minna / Nigeria West Belt"); add_proj4text (p, 0, - "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); + "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2"); add_proj4text (p, 1, - "259,-9,0,0,0,0 +units=m +no_defs"); + "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); + add_proj4text (p, 2, + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry "); + "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, - "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); + "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, - "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); + ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, - "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); + "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); + "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); add_srs_wkt (p, 8, - ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale"); + "l_meridian\",4.5],PARAMETER[\"scale_factor\",0.99975],PA"); add_srs_wkt (p, 9, - "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); + "RAMETER[\"false_easting\",230738.26],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "ing\",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]"); - p = add_epsg_def (filter, first, last, 31600, "epsg", 31600, - "Dealul Piscului 1930 / Stereo 33"); + "RITY[\"EPSG\",\"26391\"]]"); + p = add_epsg_def (filter, first, last, 26392, "epsg", 26392, + "Minna / Nigeria Mid Belt"); add_proj4text (p, 0, - "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9"); + "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9"); add_proj4text (p, 1, - "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103."); + "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); add_proj4text (p, 2, - "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs"); + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea"); + "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT"); add_srs_wkt (p, 1, - "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER"); + "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, - "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); + "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12"); add_srs_wkt (p, 3, - ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO"); + "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4316"); + "[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, - "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); + ",PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"central"); add_srs_wkt (p, 8, - "atitude_of_origin\",45.9],PARAMETER[\"central_meridian\""); + "_meridian\",8.5],PARAMETER[\"scale_factor\",0.99975],PAR"); add_srs_wkt (p, 9, - ",25.39246588888889],PARAMETER[\"scale_factor\",0.9996667"); + "AMETER[\"false_easting\",670553.98],PARAMETER[\"false_no"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"31600\"]]"); - p = add_epsg_def (filter, first, last, 31700, "epsg", 31700, - "Dealul Piscului 1970/ Stereo 70 (deprecated)"); + "RITY[\"EPSG\",\"26392\"]]"); + p = add_epsg_def (filter, first, last, 26393, "epsg", 26393, + "Minna / Nigeria East Belt"); add_proj4text (p, 0, - "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); + "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369"); add_proj4text (p, 1, - "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u"); + ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un"); add_proj4text (p, 2, - "nits=m +no_defs"); + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\","); + "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, - "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); + "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, - "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); + ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, - "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); + "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); + "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "17\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); + "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "latitude_of_origin\",46],PARAMETER[\"central_meridian\","); + "l_meridian\",12.5],PARAMETER[\"scale_factor\",0.99975],P"); add_srs_wkt (p, 9, - "25],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"fals"); + "ARAMETER[\"false_easting\",1110369.7],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "e_easting\",500000],PARAMETER[\"false_northing\",500000]"); + "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, - "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31700\"]"); - add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 31838, "epsg", 31838, - "NGN / UTM zone 38N"); + "HORITY[\"EPSG\",\"26393\"]]"); + p = add_epsg_def (filter, first, last, 26432, "epsg", 26432, + "Mhast / UTM zone 32S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); + "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-"); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "4.11,-96.38,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat"); + "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh"); add_srs_wkt (p, 1, - "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); + "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63"); add_srs_wkt (p, 2, - ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); + "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,"); add_srs_wkt (p, 3, - ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); + "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); + "],AUTHORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],"); + "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"31838\"]]"); - p = add_epsg_def (filter, first, last, 31839, "epsg", 31839, - "NGN / UTM zone 39N"); + "NORTH],AUTHORITY[\"EPSG\",\"26432\"]]"); + p = add_epsg_def (filter, first, last, 26591, "epsg", 26591, + "Monte Mario (Rome) / Italy zone 1 (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); + "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 "); add_proj4text (p, 1, - ",0,0,0 +units=m +no_defs"); + "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9"); + add_proj4text (p, 2, + ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat"); + "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\""); add_srs_wkt (p, 1, - "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); + ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, - ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); + ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, - ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); + "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, - "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, - "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + "METER[\"central_meridian\",-3.45233333333333],PARAMETER["); add_srs_wkt (p, 10, - "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"31839\"]]"); - p = add_epsg_def (filter, first, last, 31900, "epsg", 31900, - "KUDAMS / KTM (deprecated)"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"26591\"]]"); + p = add_epsg_def (filter, first, last, 26592, "epsg", 26592, + "Monte Mario (Rome) / Italy zone 2 (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_"); + "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +"); add_proj4text (p, 1, - "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units="); + "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9."); add_proj4text (p, 2, - "m +no_defs"); + "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D"); + "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\""); add_srs_wkt (p, 1, - "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29"); + ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,"); + ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, - "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\""); + "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Merca"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, - "entral_meridian\",48],PARAMETER[\"scale_factor\",0.9996]"); + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + "METER[\"central_meridian\",2.54766666666666],PARAMETER[\""); add_srs_wkt (p, 10, - "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + "scale_factor\",0.9996],PARAMETER[\"false_easting\",25200"); add_srs_wkt (p, 11, - "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"31900\"]]"); - p = add_epsg_def (filter, first, last, 31901, "epsg", 31901, - "KUDAMS / KTM"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"26592\"]]"); + p = add_epsg_def (filter, first, last, 26632, "epsg", 26632, + "M'poraloko / UTM zone 32N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); + "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,"); add_proj4text (p, 1, - "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + "-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait"); + "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, - "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); + "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, - "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,"); + "378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, - "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\","); + ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "G\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - "ian\",48],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, - "31901\"]]"); - p = add_epsg_def (filter, first, last, 31965, "epsg", 31965, - "SIRGAS 2000 / UTM zone 11N"); + "NORTH],AUTHORITY[\"EPSG\",\"26632\"]]"); + p = add_epsg_def (filter, first, last, 26692, "epsg", 26692, + "M'poraloko / UTM zone 32S"); add_proj4text (p, 0, - "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, - "units=m +no_defs"); + "84=-74,-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, - ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31965\"]]"); - p = add_epsg_def (filter, first, last, 31966, "epsg", 31966, - "SIRGAS 2000 / UTM zone 12N"); + "hing\",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]"); + p = add_epsg_def (filter, first, last, 26701, "epsg", 26701, + "NAD27 / UTM zone 1N"); add_proj4text (p, 0, - "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31966\"]]"); - p = add_epsg_def (filter, first, last, 31967, "epsg", 31967, - "SIRGAS 2000 / UTM zone 13N"); + "26701\"]]"); + p = add_epsg_def (filter, first, last, 26702, "epsg", 26702, + "NAD27 / UTM zone 2N"); add_proj4text (p, 0, - "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 13, - "\"31967\"]]"); - p = add_epsg_def (filter, first, last, 31968, "epsg", 31968, - "SIRGAS 2000 / UTM zone 14N"); + "26702\"]]"); + p = add_epsg_def (filter, first, last, 26703, "epsg", 26703, + "NAD27 / UTM zone 3N"); add_proj4text (p, 0, - "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31968\"]]"); - p = add_epsg_def (filter, first, last, 31969, "epsg", 31969, - "SIRGAS 2000 / UTM zone 15N"); + "26703\"]]"); + p = add_epsg_def (filter, first, last, 26704, "epsg", 26704, + "NAD27 / UTM zone 4N"); add_proj4text (p, 0, - "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31969\"]]"); - p = add_epsg_def (filter, first, last, 31970, "epsg", 31970, - "SIRGAS 2000 / UTM zone 16N"); + "26704\"]]"); + p = add_epsg_def (filter, first, last, 26705, "epsg", 26705, + "NAD27 / UTM zone 5N"); add_proj4text (p, 0, - "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31970\"]]"); - p = add_epsg_def (filter, first, last, 31971, "epsg", 31971, - "SIRGAS 2000 / UTM zone 17N"); + "26705\"]]"); + p = add_epsg_def (filter, first, last, 26706, "epsg", 26706, + "NAD27 / UTM zone 6N"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31971\"]]"); - p = add_epsg_def (filter, first, last, 31972, "epsg", 31972, - "SIRGAS 2000 / UTM zone 18N"); + "26706\"]]"); + p = add_epsg_def (filter, first, last, 26707, "epsg", 26707, + "NAD27 / UTM zone 7N"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31972\"]]"); - p = add_epsg_def (filter, first, last, 31973, "epsg", 31973, - "SIRGAS 2000 / UTM zone 19N"); + "26707\"]]"); + p = add_epsg_def (filter, first, last, 26708, "epsg", 26708, + "NAD27 / UTM zone 8N"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31973\"]]"); - p = add_epsg_def (filter, first, last, 31974, "epsg", 31974, - "SIRGAS 2000 / UTM zone 20N"); + "26708\"]]"); + p = add_epsg_def (filter, first, last, 26709, "epsg", 26709, + "NAD27 / UTM zone 9N"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31974\"]]"); - p = add_epsg_def (filter, first, last, 31975, "epsg", 31975, - "SIRGAS 2000 / UTM zone 21N"); + "26709\"]]"); + p = add_epsg_def (filter, first, last, 26710, "epsg", 26710, + "NAD27 / UTM zone 10N"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31975\"]]"); - p = add_epsg_def (filter, first, last, 31976, "epsg", 31976, - "SIRGAS 2000 / UTM zone 22N"); + "26710\"]]"); + p = add_epsg_def (filter, first, last, 26711, "epsg", 26711, + "NAD27 / UTM zone 11N"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 13, - "31976\"]]"); - p = add_epsg_def (filter, first, last, 31977, "epsg", 31977, - "SIRGAS 2000 / UTM zone 17S"); + "26711\"]]"); + p = add_epsg_def (filter, first, last, 26712, "epsg", 26712, + "NAD27 / UTM zone 12N"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31977\"]]"); - p = add_epsg_def (filter, first, last, 31978, "epsg", 31978, - "SIRGAS 2000 / UTM zone 18S"); + "26712\"]]"); + p = add_epsg_def (filter, first, last, 26713, "epsg", 26713, + "NAD27 / UTM zone 13N"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, - ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31978\"]]"); - p = add_epsg_def (filter, first, last, 31979, "epsg", 31979, - "SIRGAS 2000 / UTM zone 19S"); + "26713\"]]"); + p = add_epsg_def (filter, first, last, 26714, "epsg", 26714, + "NAD27 / UTM zone 14N"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31979\"]]"); - p = add_epsg_def (filter, first, last, 31980, "epsg", 31980, - "SIRGAS 2000 / UTM zone 20S"); + "6714\"]]"); + p = add_epsg_def (filter, first, last, 26715, "epsg", 26715, + "NAD27 / UTM zone 15N"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31980\"]]"); - p = add_epsg_def (filter, first, last, 31981, "epsg", 31981, - "SIRGAS 2000 / UTM zone 21S"); + "6715\"]]"); + p = add_epsg_def (filter, first, last, 26716, "epsg", 26716, + "NAD27 / UTM zone 16N"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31981\"]]"); - p = add_epsg_def (filter, first, last, 31982, "epsg", 31982, - "SIRGAS 2000 / UTM zone 22S"); + "6716\"]]"); + p = add_epsg_def (filter, first, last, 26717, "epsg", 26717, + "NAD27 / UTM zone 17N"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31982\"]]"); - p = add_epsg_def (filter, first, last, 31983, "epsg", 31983, - "SIRGAS 2000 / UTM zone 23S"); + "6717\"]]"); + p = add_epsg_def (filter, first, last, 26718, "epsg", 26718, + "NAD27 / UTM zone 18N"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31983\"]]"); - p = add_epsg_def (filter, first, last, 31984, "epsg", 31984, - "SIRGAS 2000 / UTM zone 24S"); + "6718\"]]"); + p = add_epsg_def (filter, first, last, 26719, "epsg", 26719, + "NAD27 / UTM zone 19N"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31984\"]]"); - p = add_epsg_def (filter, first, last, 31985, "epsg", 31985, - "SIRGAS 2000 / UTM zone 25S"); + "6719\"]]"); + p = add_epsg_def (filter, first, last, 26720, "epsg", 26720, + "NAD27 / UTM zone 20N"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); - add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20"); + "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); - add_srs_wkt (p, 13, - "PSG\",\"31985\"]]"); + "6720\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_36.c b/src/spatialite/src/srsinit/epsg_inlined_36.c index 30b96c1..ff68c40 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_36.c +++ b/src/spatialite/src/srsinit/epsg_inlined_36.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,712 +52,742 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 31986, "epsg", 31986, - "SIRGAS 1995 / UTM zone 17N"); + p = add_epsg_def (filter, first, last, 26721, "epsg", 26721, + "NAD27 / UTM zone 21N"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31986\"]]"); - p = add_epsg_def (filter, first, last, 31987, "epsg", 31987, - "SIRGAS 1995 / UTM zone 18N"); + "6721\"]]"); + p = add_epsg_def (filter, first, last, 26722, "epsg", 26722, + "NAD27 / UTM zone 22N"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); - add_proj4text (p, 1, - "units=m +no_defs"); + "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, - "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31987\"]]"); - p = add_epsg_def (filter, first, last, 31988, "epsg", 31988, - "SIRGAS 1995 / UTM zone 19N"); + "6722\"]]"); + p = add_epsg_def (filter, first, last, 26729, "epsg", 26729, + "NAD27 / Alabama East"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, - "units=m +no_defs"); + "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "latitude_of_origin\",30.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]"); add_srs_wkt (p, 9, - "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31988\"]]"); - p = add_epsg_def (filter, first, last, 31989, "epsg", 31989, - "SIRGAS 1995 / UTM zone 20N"); + ",NORTH],AUTHORITY[\"EPSG\",\"26729\"]]"); + p = add_epsg_def (filter, first, last, 26730, "epsg", 26730, + "NAD27 / Alabama West"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1"); add_proj4text (p, 1, - "units=m +no_defs"); + "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "-87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER"); add_srs_wkt (p, 9, - "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31989\"]]"); - p = add_epsg_def (filter, first, last, 31990, "epsg", 31990, - "SIRGAS 1995 / UTM zone 21N"); + "UTHORITY[\"EPSG\",\"26730\"]]"); + p = add_epsg_def (filter, first, last, 26731, "epsg", 26731, + "NAD27 / Alaska zone 1"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, - "units=m +no_defs"); + "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5"); + add_proj4text (p, 2, + "000000.001016002 +no_uoff +gamma=323.1301023611111 +datu"); + add_proj4text (p, 3, + "m=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAM"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "ETER[\"latitude_of_center\",57],PARAMETER[\"longitude_of"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "_center\",-133.6666666666667],PARAMETER[\"azimuth\",323."); add_srs_wkt (p, 9, - "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "1301023611111],PARAMETER[\"rectified_grid_angle\",323.13"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + "01023611111],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "R[\"false_easting\",16404166.67],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + "ing\",-16404166.67],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, - ",\"31990\"]]"); - p = add_epsg_def (filter, first, last, 31991, "epsg", 31991, - "SIRGAS 1995 / UTM zone 22N"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 14, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]"); + p = add_epsg_def (filter, first, last, 26732, "epsg", 26732, + "NAD27 / Alaska zone 2"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, - "units=m +no_defs"); + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); + add_srs_wkt (p, 11, + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 12, + "ORITY[\"EPSG\",\"26732\"]]"); + p = add_epsg_def (filter, first, last, 26733, "epsg", 26733, + "NAD27 / Alaska zone 3"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400."); + add_proj4text (p, 1, + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); + add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 10, + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"31991\"]]"); - p = add_epsg_def (filter, first, last, 31992, "epsg", 31992, - "SIRGAS 1995 / UTM zone 17S"); + "ORITY[\"EPSG\",\"26733\"]]"); + p = add_epsg_def (filter, first, last, 26734, "epsg", 26734, + "NAD27 / Alaska zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31992\"]]"); - p = add_epsg_def (filter, first, last, 31993, "epsg", 31993, - "SIRGAS 1995 / UTM zone 18S"); + "ORITY[\"EPSG\",\"26734\"]]"); + p = add_epsg_def (filter, first, last, 26735, "epsg", 26735, + "NAD27 / Alaska zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31993\"]]"); - p = add_epsg_def (filter, first, last, 31994, "epsg", 31994, - "SIRGAS 1995 / UTM zone 19S"); + "ORITY[\"EPSG\",\"26735\"]]"); + p = add_epsg_def (filter, first, last, 26736, "epsg", 26736, + "NAD27 / Alaska zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31994\"]]"); - p = add_epsg_def (filter, first, last, 31995, "epsg", 31995, - "SIRGAS 1995 / UTM zone 20S"); + "ORITY[\"EPSG\",\"26736\"]]"); + p = add_epsg_def (filter, first, last, 26737, "epsg", 26737, + "NAD27 / Alaska zone 7"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",700000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31995\"]]"); - p = add_epsg_def (filter, first, last, 31996, "epsg", 31996, - "SIRGAS 1995 / UTM zone 21S"); + "ORITY[\"EPSG\",\"26737\"]]"); + p = add_epsg_def (filter, first, last, 26738, "epsg", 26738, + "NAD27 / Alaska zone 8"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31996\"]]"); - p = add_epsg_def (filter, first, last, 31997, "epsg", 31997, - "SIRGAS 1995 / UTM zone 22S"); + "ORITY[\"EPSG\",\"26738\"]]"); + p = add_epsg_def (filter, first, last, 26739, "epsg", 26739, + "NAD27 / Alaska zone 9"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880."); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "\",-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, - "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); - add_srs_wkt (p, 13, - "\"EPSG\",\"31997\"]]"); - p = add_epsg_def (filter, first, last, 31998, "epsg", 31998, - "SIRGAS 1995 / UTM zone 23S"); + "ORITY[\"EPSG\",\"26739\"]]"); + p = add_epsg_def (filter, first, last, 26740, "epsg", 26740, + "NAD27 / Alaska zone 10"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 "); + add_proj4text (p, 2, + "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "PARAMETER[\"standard_parallel_1\",53.83333333333334],PAR"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "AMETER[\"standard_parallel_2\",51.83333333333334],PARAME"); add_srs_wkt (p, 9, - "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "TER[\"latitude_of_origin\",51],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "ian\",-176],PARAMETER[\"false_easting\",3000000],PARAMET"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, - "\"EPSG\",\"31998\"]]"); - p = add_epsg_def (filter, first, last, 31999, "epsg", 31999, - "SIRGAS 1995 / UTM zone 24S"); + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]"); + p = add_epsg_def (filter, first, last, 26741, "epsg", 26741, + "NAD27 / California zone I"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 "); + add_proj4text (p, 2, + "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "],PARAMETER[\"standard_parallel_1\",41.66666666666666],P"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud"); add_srs_wkt (p, 9, - "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "idian\",-122],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, - "\"EPSG\",\"31999\"]]"); - p = add_epsg_def (filter, first, last, 32000, "epsg", 32000, - "SIRGAS 1995 / UTM zone 25S"); + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]"); + p = add_epsg_def (filter, first, last, 26742, "epsg", 26742, + "NAD27 / California zone II"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, - "0,0,0 +units=m +no_defs"); + "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219"); + add_proj4text (p, 2, + "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19"); + "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, - "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, - "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, - "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + "\"],PARAMETER[\"standard_parallel_1\",39.83333333333334]"); add_srs_wkt (p, 8, - "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + ",PARAMETER[\"standard_parallel_2\",38.33333333333334],PA"); add_srs_wkt (p, 9, - "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + "RAMETER[\"latitude_of_origin\",37.66666666666666],PARAME"); add_srs_wkt (p, 10, - "false_easting\",500000],PARAMETER[\"false_northing\",100"); + "TER[\"central_meridian\",-122],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, - "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, - "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, - "\"EPSG\",\"32000\"]]"); - p = add_epsg_def (filter, first, last, 32001, "epsg", 32001, - "NAD27 / Montana North"); + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"26742\"]]"); + p = add_epsg_def (filter, first, last, 26743, "epsg", 26743, + "NAD27 / California zone III"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, - "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); + "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, - "27 +units=us-ft +no_defs"); + "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "ARAMETER[\"standard_parallel_1\",48.71666666666667],PARA"); + "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]"); add_srs_wkt (p, 8, - "METER[\"standard_parallel_2\",47.85],PARAMETER[\"latitud"); + ",PARAMETER[\"standard_parallel_2\",37.06666666666667],PA"); add_srs_wkt (p, 9, - "e_of_origin\",47],PARAMETER[\"central_meridian\",-109.5]"); + "RAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"central"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_"); + "_meridian\",-120.5],PARAMETER[\"false_easting\",2000000]"); add_srs_wkt (p, 11, - "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, - "\",NORTH],AUTHORITY[\"EPSG\",\"32001\"]]"); - p = add_epsg_def (filter, first, last, 32002, "epsg", 32002, - "NAD27 / Montana Central"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 26744, "epsg", 26744, + "NAD27 / California zone IV"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4"); + "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, - "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y"); + "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27"); add_proj4text (p, 2, - "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",47.88333333333333],PAR"); + "\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\""); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",46.45],PARAMETER[\"latitu"); + "standard_parallel_2\",36],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, - "de_of_origin\",45.83333333333334],PARAMETER[\"central_me"); + "\",35.33333333333334],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 10, - "ridian\",-109.5],PARAMETER[\"false_easting\",2000000],PA"); + "9],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 12, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]"); - p = add_epsg_def (filter, first, last, 32003, "epsg", 32003, - "NAD27 / Montana South"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26744\"]]"); + p = add_epsg_def (filter, first, last, 26745, "epsg", 26745, + "NAD27 / California zone V"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44"); + "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, - " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); + "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, - "7 +units=us-ft +no_defs"); + "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, - "ARAMETER[\"standard_parallel_1\",46.4],PARAMETER[\"stand"); + "],PARAMETER[\"standard_parallel_1\",35.46666666666667],P"); add_srs_wkt (p, 8, - "ard_parallel_2\",44.86666666666667],PARAMETER[\"latitude"); + "ARAMETER[\"standard_parallel_2\",34.03333333333333],PARA"); add_srs_wkt (p, 9, - "_of_origin\",44],PARAMETER[\"central_meridian\",-109.5],"); + "METER[\"latitude_of_origin\",33.5],PARAMETER[\"central_m"); add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); + "eridian\",-118],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 11, - "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); + "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32003\"]]"); - p = add_epsg_def (filter, first, last, 32005, "epsg", 32005, - "NAD27 / Nebraska North"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]"); + p = add_epsg_def (filter, first, last, 26746, "epsg", 26746, + "NAD27 / California zone VI"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4"); + "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, - "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0"); + "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601."); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",41.85],PARAMETER[\"sta"); + "\"],PARAMETER[\"standard_parallel_1\",33.88333333333333]"); add_srs_wkt (p, 8, - "ndard_parallel_2\",42.81666666666667],PARAMETER[\"latitu"); + ",PARAMETER[\"standard_parallel_2\",32.78333333333333],PA"); add_srs_wkt (p, 9, - "de_of_origin\",41.33333333333334],PARAMETER[\"central_me"); + "RAMETER[\"latitude_of_origin\",32.16666666666666],PARAME"); add_srs_wkt (p, 10, - "ridian\",-100],PARAMETER[\"false_easting\",2000000],PARA"); + "TER[\"central_meridian\",-116.25],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]"); - p = add_epsg_def (filter, first, last, 32006, "epsg", 32006, - "NAD27 / Nebraska South"); + "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 14, + "PSG\",\"26746\"]]"); + p = add_epsg_def (filter, first, last, 26747, "epsg", 26747, + "NAD27 / California zone VII (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666"); + "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, - "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21"); + "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27"); + add_proj4text (p, 3, + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY["); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",40.28333333333333],PAR"); + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",41.71666666666667],PARAME"); + "1666666666666],PARAMETER[\"standard_parallel_2\",33.8666"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",39.66666666666666],PARAMETER["); + "6666666667],PARAMETER[\"latitude_of_origin\",34.13333333"); add_srs_wkt (p, 10, - "\"central_meridian\",-99.5],PARAMETER[\"false_easting\","); + "333333],PARAMETER[\"central_meridian\",-118.333333333333"); add_srs_wkt (p, 11, - "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + "3],PARAMETER[\"false_easting\",4186692.58],PARAMETER[\"f"); add_srs_wkt (p, 12, - "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + "alse_northing\",416926.74],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, - "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, - "\"32006\"]]"); - p = add_epsg_def (filter, first, last, 32007, "epsg", 32007, - "NAD27 / Nevada East"); + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]"); + p = add_epsg_def (filter, first, last, 26748, "epsg", 26748, + "NAD27 / Arizona East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, - "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, - "s-ft +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -767,65 +797,65 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); + "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, - "\",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999"); + "-110.1666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32007\"]]"); - p = add_epsg_def (filter, first, last, 32008, "epsg", 32008, - "NAD27 / Nevada Central"); + "NORTH],AUTHORITY[\"EPSG\",\"26748\"]]"); + p = add_epsg_def (filter, first, last, 26749, "epsg", 26749, + "NAD27 / Arizona Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, - "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, - "s-ft +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri"); + "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, - "dian\",-116.6666666666667],PARAMETER[\"scale_factor\",0."); + "n\",-111.9166666666667],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]"); - p = add_epsg_def (filter, first, last, 32009, "epsg", 32009, - "NAD27 / Nevada West"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26749\"]]"); + p = add_epsg_def (filter, first, last, 26750, "epsg", 26750, + "NAD27 / Arizona West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, - "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); add_proj4text (p, 2, - "s-ft +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -835,451 +865,459 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); + "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, - "\",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999"); + "-113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMET"); add_srs_wkt (p, 9, - "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, - "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, - ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32009\"]]"); - p = add_epsg_def (filter, first, last, 32010, "epsg", 32010, - "NAD27 / New Hampshire"); + "AUTHORITY[\"EPSG\",\"26750\"]]"); + p = add_epsg_def (filter, first, last, 26751, "epsg", 26751, + "NAD27 / Arkansas North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, - "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192"); add_proj4text (p, 2, - "ts=us-ft +no_defs"); + "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",42.5],PARAMETER[\"central_meridi"); + "PARAMETER[\"standard_parallel_1\",36.23333333333333],PAR"); add_srs_wkt (p, 8, - "an\",-71.66666666666667],PARAMETER[\"scale_factor\",0.99"); + "AMETER[\"standard_parallel_2\",34.93333333333333],PARAME"); add_srs_wkt (p, 9, - "9966667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "TER[\"latitude_of_origin\",34.33333333333334],PARAMETER["); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "\"central_meridian\",-92],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]"); - p = add_epsg_def (filter, first, last, 32011, "epsg", 32011, - "NAD27 / New Jersey"); - add_proj4text (p, 0, - "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666"); - add_proj4text (p, 1, - "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0"); + "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + add_srs_wkt (p, 13, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "26751\"]]"); + p = add_epsg_def (filter, first, last, 26752, "epsg", 26752, + "NAD27 / Arkansas South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); + add_proj4text (p, 1, + ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent"); + "PARAMETER[\"standard_parallel_1\",34.76666666666667],PAR"); add_srs_wkt (p, 8, - "ral_meridian\",-74.66666666666667],PARAMETER[\"scale_fac"); + "AMETER[\"standard_parallel_2\",33.3],PARAMETER[\"latitud"); add_srs_wkt (p, 9, - "tor\",0.999975],PARAMETER[\"false_easting\",2000000],PAR"); + "e_of_origin\",32.66666666666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); + "idian\",-92],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 11, - "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]"); - p = add_epsg_def (filter, first, last, 32012, "epsg", 32012, - "NAD27 / New Mexico East"); + "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]"); + p = add_epsg_def (filter, first, last, 26753, "epsg", 26753, + "NAD27 / Colorado North"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333"); add_proj4text (p, 1, - "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, - "=us-ft +no_defs"); + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); + "PARAMETER[\"standard_parallel_1\",39.71666666666667],PAR"); add_srs_wkt (p, 8, - "n\",-104.3333333333333],PARAMETER[\"scale_factor\",0.999"); + "AMETER[\"standard_parallel_2\",40.78333333333333],PARAME"); add_srs_wkt (p, 9, - "909091],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER["); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]"); - p = add_epsg_def (filter, first, last, 32013, "epsg", 32013, - "NAD27 / New Mexico Central"); + "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + add_srs_wkt (p, 13, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"26753\"]]"); + p = add_epsg_def (filter, first, last, 26754, "epsg", 26754, + "NAD27 / Colorado Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524"); + "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, - "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum="); + add_proj4text (p, 2, + "NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer"); + "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta"); add_srs_wkt (p, 8, - "idian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARA"); + "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, - "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + "\",37.83333333333334],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 10, - "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); + "5.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"32013\"]]"); - p = add_epsg_def (filter, first, last, 32014, "epsg", 32014, - "NAD27 / New Mexico West"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 13, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]"); + p = add_epsg_def (filter, first, last, 26755, "epsg", 26755, + "NAD27 / Colorado South"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, - "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, - "=us-ft +no_defs"); + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); + "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR"); add_srs_wkt (p, 8, - "n\",-107.8333333333333],PARAMETER[\"scale_factor\",0.999"); + "AMETER[\"standard_parallel_2\",37.23333333333333],PARAME"); add_srs_wkt (p, 9, - "916667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "TER[\"latitude_of_origin\",36.66666666666666],PARAMETER["); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]"); - p = add_epsg_def (filter, first, last, 32015, "epsg", 32015, - "NAD27 / New York East"); + "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + add_srs_wkt (p, 13, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"26755\"]]"); + p = add_epsg_def (filter, first, last, 26756, "epsg", 26756, + "NAD27 / Connecticut"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999"); + "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, - "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_"); add_proj4text (p, 2, - "=us-ft +no_defs"); + "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); + "AMETER[\"standard_parallel_1\",41.86666666666667],PARAME"); add_srs_wkt (p, 8, - "\",-74.33333333333333],PARAMETER[\"scale_factor\",0.9999"); + "TER[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, - "66667],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + "f_origin\",40.83333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, - "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); + "an\",-72.75],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, - "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); + "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]"); - p = add_epsg_def (filter, first, last, 32016, "epsg", 32016, - "NAD27 / New York Central"); + "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]"); + p = add_epsg_def (filter, first, last, 26757, "epsg", 26757, + "NAD27 / Delaware"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, - "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, - "s-ft +no_defs"); + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia"); + "titude_of_origin\",38],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 8, - "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999"); + "5.41666666666667],PARAMETER[\"scale_factor\",0.999995],P"); add_srs_wkt (p, 9, - "9375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, - "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, - "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]"); - p = add_epsg_def (filter, first, last, 32017, "epsg", 32017, - "NAD27 / New York West"); + "NORTH],AUTHORITY[\"EPSG\",\"26757\"]]"); + p = add_epsg_def (filter, first, last, 26758, "epsg", 26758, + "NAD27 / Florida East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, - "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, - "s-ft +no_defs"); + "=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); + "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "\",-78.58333333333333],PARAMETER[\"scale_factor\",0.9999"); + "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9999411"); add_srs_wkt (p, 9, - "375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32017\"]]"); - p = add_epsg_def (filter, first, last, 32018, "epsg", 32018, - "NAD27 / New York Long Island (deprecated)"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26758\"]]"); + p = add_epsg_def (filter, first, last, 26759, "epsg", 26759, + "NAD27 / Florida West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, - "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0"); + "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO"); + "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conf"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); + "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "03333333333333],PARAMETER[\"standard_parallel_2\",40.666"); + "ral_meridian\",-82],PARAMETER[\"scale_factor\",0.9999411"); add_srs_wkt (p, 9, - "66666666666],PARAMETER[\"latitude_of_origin\",40.5],PARA"); + "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "METER[\"central_meridian\",-74],PARAMETER[\"false_eastin"); + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, - "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); - add_srs_wkt (p, 13, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 14, - "G\",\"32018\"]]"); - p = add_epsg_def (filter, first, last, 32019, "epsg", 32019, - "NAD27 / North Carolina"); + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26759\"]]"); + p = add_epsg_def (filter, first, last, 26760, "epsg", 26760, + "NAD27 / Florida North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666"); + "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, - "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); + "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",34.33333333333334],PAR"); + "ARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"stan"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",36.16666666666666],PARAME"); + "dard_parallel_2\",29.58333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",33.75],PARAMETER[\"central_me"); + "e_of_origin\",29],PARAMETER[\"central_meridian\",-84.5],"); add_srs_wkt (p, 10, - "ridian\",-79],PARAMETER[\"false_easting\",2000000],PARAM"); + "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]"); - p = add_epsg_def (filter, first, last, 32020, "epsg", 32020, - "NAD27 / North Dakota North"); + ",NORTH],AUTHORITY[\"EPSG\",\"26760\"]]"); + p = add_epsg_def (filter, first, last, 26766, "epsg", 26766, + "NAD27 / Georgia East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333"); + "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, - "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0="); + "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",47.43333333333333]"); + "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",48.73333333333333],PA"); + "-82.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m"); + "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, - "eridian\",-100.5],PARAMETER[\"false_easting\",2000000],P"); + "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); - add_srs_wkt (p, 13, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]"); - add_srs_wkt (p, 14, - "]"); - p = add_epsg_def (filter, first, last, 32021, "epsg", 32021, - "NAD27 / North Dakota South"); + "NORTH],AUTHORITY[\"EPSG\",\"26766\"]]"); + p = add_epsg_def (filter, first, last, 26767, "epsg", 26767, + "NAD27 / Georgia West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333"); + "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, - "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2"); + "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",46.18333333333333]"); + "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",47.48333333333333],PA"); + "-84.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",45.66666666666666],PARAME"); + "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-100.5],PARAMETER[\"false_easti"); + "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, - "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US "); + "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); - add_srs_wkt (p, 13, - "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); - add_srs_wkt (p, 14, - "SG\",\"32021\"]]"); - p = add_epsg_def (filter, first, last, 32022, "epsg", 32022, - "NAD27 / Ohio North"); + "NORTH],AUTHORITY[\"EPSG\",\"26767\"]]"); + p = add_epsg_def (filter, first, last, 26768, "epsg", 26768, + "NAD27 / Idaho East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, - ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0"); + "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, @@ -1287,181 +1325,175 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",40.43333333333333],PARAMET"); + "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",41.7],PARAMETER[\"latitude_of"); + "ral_meridian\",-112.1666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "_origin\",39.66666666666666],PARAMETER[\"central_meridia"); + "tor\",0.999947368],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "n\",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]"); add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]"); - p = add_epsg_def (filter, first, last, 32023, "epsg", 32023, - "NAD27 / Ohio South"); + "]"); + p = add_epsg_def (filter, first, last, 26769, "epsg", 26769, + "NAD27 / Idaho Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, - "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0"); + "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",38.73333333333333],PARAMET"); + "[\"latitude_of_origin\",41.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",40.03333333333333],PARAMETER["); + "entral_meridian\",-114],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "\"latitude_of_origin\",38],PARAMETER[\"central_meridian\""); + "947368],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - ",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); - add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); - add_srs_wkt (p, 12, + add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); - add_srs_wkt (p, 13, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]"); - p = add_epsg_def (filter, first, last, 32024, "epsg", 32024, - "NAD27 / Oklahoma North"); + add_srs_wkt (p, 12, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]"); + p = add_epsg_def (filter, first, last, 26770, "epsg", 26770, + "NAD27 / Idaho West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, - "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +"); + ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); add_proj4text (p, 2, - "datum=NAD27 +units=us-ft +no_defs"); + "nits=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",35.56666666666667],PAR"); + "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",36.76666666666667],PARAME"); + "ral_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",35],PARAMETER[\"central_merid"); + "933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "ian\",-98],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); - add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]"); - p = add_epsg_def (filter, first, last, 32025, "epsg", 32025, - "NAD27 / Oklahoma South"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]"); + p = add_epsg_def (filter, first, last, 26771, "epsg", 26771, + "NAD27 / Illinois East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, - "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192"); + "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, - "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",33.93333333333333],PAR"); + "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",35.23333333333333],PARAME"); + "entral_meridian\",-88.33333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",33.33333333333334],PARAMETER["); + "factor\",0.999975],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "\"central_meridian\",-98],PARAMETER[\"false_easting\",20"); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, - "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]"); add_srs_wkt (p, 13, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 14, - "32025\"]]"); - p = add_epsg_def (filter, first, last, 32026, "epsg", 32026, - "NAD27 / Oregon North"); + "]"); + p = add_epsg_def (filter, first, last, 26772, "epsg", 26772, + "NAD27 / Illinois West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, - "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); + "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",44.33333333333334],PARAME"); + "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); + "entral_meridian\",-90.16666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "origin\",43.66666666666666],PARAMETER[\"central_meridian"); + "factor\",0.999941177],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, - "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\""); add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]"); - p = add_epsg_def (filter, first, last, 32027, "epsg", 32027, - "NAD27 / Oregon South"); + "]]"); + p = add_epsg_def (filter, first, last, 26773, "epsg", 26773, + "NAD27 / Indiana East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6"); + "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, - "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); + "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, @@ -1469,741 +1501,689 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",42.33333333333334],PARAME"); + "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_"); + ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 9, - "origin\",41.66666666666666],PARAMETER[\"central_meridian"); + "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); - add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]"); - p = add_epsg_def (filter, first, last, 32028, "epsg", 32028, - "NAD27 / Pennsylvania North"); + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]"); + p = add_epsg_def (filter, first, last, 26774, "epsg", 26774, + "NAD27 / Indiana West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4"); + "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, - "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y"); + "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",40.88333333333333]"); + "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",41.95],PARAMETER[\"la"); + ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 9, - "titude_of_origin\",40.16666666666666],PARAMETER[\"centra"); + "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "l_meridian\",-77.75],PARAMETER[\"false_easting\",2000000"); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, - "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, - ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); - add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\""); - add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32029, "epsg", 32029, - "NAD27 / Pennsylvania South (deprecated)"); + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]"); + p = add_epsg_def (filter, first, last, 26775, "epsg", 26775, + "NAD27 / Iowa North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39"); + "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, - ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_"); + "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, - "0=0 +datum=NAD27 +units=us-ft +no_defs"); + "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC"); + "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, - "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID"); + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, - "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\""); + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conforma"); + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333"); + "METER[\"standard_parallel_1\",43.26666666666667],PARAMET"); add_srs_wkt (p, 8, - "3333333333],PARAMETER[\"standard_parallel_2\",40.8],PARA"); + "ER[\"standard_parallel_2\",42.06666666666667],PARAMETER["); add_srs_wkt (p, 9, - "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); + "\"latitude_of_origin\",41.5],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting"); + "n\",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, - "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, - "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); - add_srs_wkt (p, 14, - "\",\"32029\"]]"); - p = add_epsg_def (filter, first, last, 32030, "epsg", 32030, - "NAD27 / Rhode Island"); - add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); - add_proj4text (p, 1, - "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); - add_proj4text (p, 2, - "=us-ft +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\""); - add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); - add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); - add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); - add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); - add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); - add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); - add_srs_wkt (p, 7, - "latitude_of_origin\",41.08333333333334],PARAMETER[\"cent"); - add_srs_wkt (p, 8, - "ral_meridian\",-71.5],PARAMETER[\"scale_factor\",0.99999"); - add_srs_wkt (p, 9, - "38],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); - add_srs_wkt (p, 10, - "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); - add_srs_wkt (p, 11, - "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32030\"]]"); - p = add_epsg_def (filter, first, last, 32031, "epsg", 32031, - "NAD27 / South Carolina North"); + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]"); + p = add_epsg_def (filter, first, last, 26776, "epsg", 26776, + "NAD27 / Iowa South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666"); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, - "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); + "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, - "datum=NAD27 +units=us-ft +no_defs"); + " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\""); + "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, - "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",33.7666666666666"); + "METER[\"standard_parallel_1\",41.78333333333333],PARAMET"); add_srs_wkt (p, 8, - "7],PARAMETER[\"standard_parallel_2\",34.96666666666667],"); + "ER[\"standard_parallel_2\",40.61666666666667],PARAMETER["); add_srs_wkt (p, 9, - "PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"central"); + "\"latitude_of_origin\",40],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, - "_meridian\",-81],PARAMETER[\"false_easting\",2000000],PA"); + ",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]"); - p = add_epsg_def (filter, first, last, 32033, "epsg", 32033, - "NAD27 / South Carolina South"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]"); + p = add_epsg_def (filter, first, last, 26777, "epsg", 26777, + "NAD27 / Kansas North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666"); + "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, - "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192"); + "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\""); + "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",32.3333333333333"); + "AMETER[\"standard_parallel_1\",39.78333333333333],PARAME"); add_srs_wkt (p, 8, - "4],PARAMETER[\"standard_parallel_2\",33.66666666666666],"); + "TER[\"standard_parallel_2\",38.71666666666667],PARAMETER"); add_srs_wkt (p, 9, - "PARAMETER[\"latitude_of_origin\",31.83333333333333],PARA"); + "[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 10, - "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); + "entral_meridian\",-98],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, - "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); add_srs_wkt (p, 14, - "G\",\"32033\"]]"); - p = add_epsg_def (filter, first, last, 32034, "epsg", 32034, - "NAD27 / South Dakota North"); + "77\"]]"); + p = add_epsg_def (filter, first, last, 26778, "epsg", 26778, + "NAD27 / Kansas South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333"); + "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, - "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219"); + "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21"); add_proj4text (p, 2, - "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",44.41666666666666]"); + "AMETER[\"standard_parallel_1\",38.56666666666667],PARAME"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",45.68333333333333],PA"); + "TER[\"standard_parallel_2\",37.26666666666667],PARAMETER"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",43.83333333333334],PARAME"); + "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-100],PARAMETER[\"false_easting"); + "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 11, - "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, - "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, - "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, - "\",\"32034\"]]"); - p = add_epsg_def (filter, first, last, 32035, "epsg", 32035, - "NAD27 / South Dakota South"); + "6778\"]]"); + p = add_epsg_def (filter, first, last, 26779, "epsg", 26779, + "NAD27 / Kentucky North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, - ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21"); + "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",42.83333333333334]"); + "PARAMETER[\"standard_parallel_1\",37.96666666666667],PAR"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",44.4],PARAMETER[\"lat"); + "AMETER[\"standard_parallel_2\",38.96666666666667],PARAME"); add_srs_wkt (p, 9, - "itude_of_origin\",42.33333333333334],PARAMETER[\"central"); + "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - "_meridian\",-100.3333333333333],PARAMETER[\"false_eastin"); + "idian\",-84.25],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 11, - "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 14, - "G\",\"32035\"]]"); - p = add_epsg_def (filter, first, last, 32036, "epsg", 32036, - "NAD27 / Tennessee (deprecated)"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]"); + p = add_epsg_def (filter, first, last, 26780, "epsg", 26780, + "NAD27 / Kentucky South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); + "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333"); add_proj4text (p, 1, - "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0="); + "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2"); add_proj4text (p, 2, - "0 +datum=NAD27 +units=us-ft +no_defs"); + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27"); + "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, - "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, - " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, - "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",35.25],PARAMETER"); + "PARAMETER[\"standard_parallel_1\",36.73333333333333],PAR"); add_srs_wkt (p, 8, - "[\"standard_parallel_2\",36.41666666666666],PARAMETER[\""); + "AMETER[\"standard_parallel_2\",37.93333333333333],PARAME"); add_srs_wkt (p, 9, - "latitude_of_origin\",34.66666666666666],PARAMETER[\"cent"); + "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); add_srs_wkt (p, 10, - "ral_meridian\",-86],PARAMETER[\"false_easting\",100000],"); + "\"central_meridian\",-85.75],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); + ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, - "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\""); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32037, "epsg", 32037, - "NAD27 / Texas North"); + ",\"26780\"]]"); + p = add_epsg_def (filter, first, last, 26781, "epsg", 26781, + "NAD27 / Louisiana North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3"); + "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666"); add_proj4text (p, 1, - "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); + "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21"); add_proj4text (p, 2, - "27 +units=us-ft +no_defs"); + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",34.65],PARAMETER[\"standa"); + "PARAMETER[\"standard_parallel_1\",31.16666666666667],PAR"); add_srs_wkt (p, 8, - "rd_parallel_2\",36.18333333333333],PARAMETER[\"latitude_"); + "AMETER[\"standard_parallel_2\",32.66666666666666],PARAME"); add_srs_wkt (p, 9, - "of_origin\",34],PARAMETER[\"central_meridian\",-101.5],P"); + "TER[\"latitude_of_origin\",30.66666666666667],PARAMETER["); add_srs_wkt (p, 10, - "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); + "\"central_meridian\",-92.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, - "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); + "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32037\"]]"); - p = add_epsg_def (filter, first, last, 32038, "epsg", 32038, - "NAD27 / Texas North Central"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"26781\"]]"); + p = add_epsg_def (filter, first, last, 26782, "epsg", 26782, + "NAD27 / Louisiana South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666"); + "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666"); add_proj4text (p, 1, - "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21"); + "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",32.13333333333333]"); + "PARAMETER[\"standard_parallel_1\",29.3],PARAMETER[\"stan"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",33.96666666666667],PA"); + "dard_parallel_2\",30.7],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",31.66666666666667],PARAME"); + ",28.66666666666667],PARAMETER[\"central_meridian\",-91.3"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-97.5],PARAMETER[\"false_eastin"); + "3333333333333],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, - "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, - "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, - "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 14, - "G\",\"32038\"]]"); - p = add_epsg_def (filter, first, last, 32039, "epsg", 32039, - "NAD27 / Texas Central"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]"); + p = add_epsg_def (filter, first, last, 26783, "epsg", 26783, + "NAD27 / Maine East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333"); + "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); + "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, - "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); - add_proj4text (p, 3, - "no_defs"); + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM["); + "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, - "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "ARAMETER[\"standard_parallel_1\",30.11666666666667],PARA"); + "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, - "METER[\"standard_parallel_2\",31.88333333333333],PARAMET"); + "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "ER[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "central_meridian\",-100.3333333333333],PARAMETER[\"false"); + "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 11, - "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT"); + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, - "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 13, - ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); - add_srs_wkt (p, 14, - "[\"EPSG\",\"32039\"]]"); - p = add_epsg_def (filter, first, last, 32040, "epsg", 32040, - "NAD27 / Texas South Central"); + ",NORTH],AUTHORITY[\"EPSG\",\"26783\"]]"); + p = add_epsg_def (filter, first, last, 26784, "epsg", 26784, + "NAD27 / Maine West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192"); + "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, - "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",28.38333333333333]"); + "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",30.28333333333333],PA"); + "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",27.83333333333333],PARAME"); + "tor\",0.999966667],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-99],PARAMETER[\"false_easting\""); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, - "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]"); add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 14, - ",\"32040\"]]"); - p = add_epsg_def (filter, first, last, 32041, "epsg", 32041, - "NAD27 / Texas South"); + "]"); + p = add_epsg_def (filter, first, last, 26785, "epsg", 26785, + "NAD27 / Maryland"); add_proj4text (p, 0, - "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333"); + "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333"); add_proj4text (p, 1, - "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21"); + "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",26.16666666666667],PARAME"); + "TER[\"standard_parallel_1\",38.3],PARAMETER[\"standard_p"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",27.83333333333333],PARAMETER"); + "arallel_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8"); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c"); + "3333333333334],PARAMETER[\"central_meridian\",-77],PARAM"); add_srs_wkt (p, 10, - "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); + "ETER[\"false_easting\",800000.0000000002],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, - "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 14, - "2041\"]]"); - p = add_epsg_def (filter, first, last, 32042, "epsg", 32042, - "NAD27 / Utah North"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26785\"]]"); + p = add_epsg_def (filter, first, last, 26786, "epsg", 26786, + "NAD27 / Massachusetts Mainland"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333"); + "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333"); add_proj4text (p, 1, - "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2"); + "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0"); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + " 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",40.71666666666667],PARAMET"); + "SP\"],PARAMETER[\"standard_parallel_1\",41.7166666666666"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",41.78333333333333],PARAMETER["); + "7],PARAMETER[\"standard_parallel_2\",42.68333333333333],"); add_srs_wkt (p, 9, - "\"latitude_of_origin\",40.33333333333334],PARAMETER[\"ce"); + "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); add_srs_wkt (p, 10, - "ntral_meridian\",-111.5],PARAMETER[\"false_easting\",200"); + "_meridian\",-71.5],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, - "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]"); add_srs_wkt (p, 14, - "2042\"]]"); - p = add_epsg_def (filter, first, last, 32043, "epsg", 32043, - "NAD27 / Utah Central"); + "]"); + p = add_epsg_def (filter, first, last, 26787, "epsg", 26787, + "NAD27 / Massachusetts Island"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3"); + "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333"); add_proj4text (p, 1, - "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y"); + "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0"); add_proj4text (p, 2, - "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, - "AMETER[\"standard_parallel_1\",39.01666666666667],PARAME"); + "SP\"],PARAMETER[\"standard_parallel_1\",41.2833333333333"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",40.65],PARAMETER[\"latitude_"); + "3],PARAMETER[\"standard_parallel_2\",41.48333333333333],"); add_srs_wkt (p, 9, - "of_origin\",38.33333333333334],PARAMETER[\"central_merid"); + "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); add_srs_wkt (p, 10, - "ian\",-111.5],PARAMETER[\"false_easting\",2000000],PARAM"); + "_meridian\",-70.5],PARAMETER[\"false_easting\",200000],P"); add_srs_wkt (p, 11, - "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, - "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]"); - p = add_epsg_def (filter, first, last, 32044, "epsg", 32044, - "NAD27 / Utah South"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 26791, "epsg", 26791, + "NAD27 / Minnesota North"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3"); + "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333"); add_proj4text (p, 1, - "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21"); add_proj4text (p, 2, - "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "METER[\"standard_parallel_1\",37.21666666666667],PARAMET"); + "PARAMETER[\"standard_parallel_1\",47.03333333333333],PAR"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",38.35],PARAMETER[\"latitude_o"); + "AMETER[\"standard_parallel_2\",48.63333333333333],PARAME"); add_srs_wkt (p, 9, - "f_origin\",36.66666666666666],PARAMETER[\"central_meridi"); + "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, - "an\",-111.5],PARAMETER[\"false_easting\",2000000],PARAME"); + "idian\",-93.1],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, - "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, - "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, - "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]"); - p = add_epsg_def (filter, first, last, 32045, "epsg", 32045, - "NAD27 / Vermont"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]"); + p = add_epsg_def (filter, first, last, 26792, "epsg", 26792, + "NAD27 / Minnesota Central"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); + "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4"); add_proj4text (p, 1, - "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); + "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, - "defs"); + "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort"); + "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, - "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206"); + "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, - ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO"); + "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, - "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, - "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, - ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, - "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-"); + "],PARAMETER[\"standard_parallel_1\",45.61666666666667],P"); add_srs_wkt (p, 8, - "72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER["); + "ARAMETER[\"standard_parallel_2\",47.05],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); + "tude_of_origin\",45],PARAMETER[\"central_meridian\",-94."); add_srs_wkt (p, 10, - "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); + "25],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, - "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"32045\"]]"); - p = add_epsg_def (filter, first, last, 32046, "epsg", 32046, - "NAD27 / Virginia North"); + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 13, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]"); + p = add_epsg_def (filter, first, last, 26793, "epsg", 26793, + "NAD27 / Minnesota South"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37"); + "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666"); add_proj4text (p, 1, - ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0"); + "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, - "=0 +datum=NAD27 +units=us-ft +no_defs"); + "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",38.03333333333333],PAR"); + "PARAMETER[\"standard_parallel_1\",43.78333333333333],PAR"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",39.2],PARAMETER[\"latitud"); + "AMETER[\"standard_parallel_2\",45.21666666666667],PARAME"); add_srs_wkt (p, 9, - "e_of_origin\",37.66666666666666],PARAMETER[\"central_mer"); + "TER[\"latitude_of_origin\",43],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, - "idian\",-78.5],PARAMETER[\"false_easting\",2000000],PARA"); + "ian\",-94],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]"); - p = add_epsg_def (filter, first, last, 32047, "epsg", 32047, - "NAD27 / Virginia South"); + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]"); + p = add_epsg_def (filter, first, last, 26794, "epsg", 26794, + "NAD27 / Mississippi East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666"); + "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333"); add_proj4text (p, 1, - "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21"); + "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N"); add_proj4text (p, 2, - "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "AD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",36.76666666666667],PAR"); + "R[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",37.96666666666667],PARAME"); + "central_meridian\",-88.83333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); + "_factor\",0.99996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "\"central_meridian\",-78.5],PARAMETER[\"false_easting\","); + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, - "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, - "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]"); add_srs_wkt (p, 13, - "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); - add_srs_wkt (p, 14, - "\"32047\"]]"); - p = add_epsg_def (filter, first, last, 32048, "epsg", 32048, - "NAD27 / Washington North"); + "]"); + p = add_epsg_def (filter, first, last, 26795, "epsg", 26795, + "NAD27 / Mississippi West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47"); + "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, - " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0"); + "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - " +datum=NAD27 +units=us-ft +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, @@ -2211,1371 +2191,1519 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",47.5],PARAMETER[\"stan"); + "R[\"latitude_of_origin\",30.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, - "dard_parallel_2\",48.73333333333333],PARAMETER[\"latitud"); + "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83"); + "99941177],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 10, - "33333333333],PARAMETER[\"false_easting\",2000000],PARAME"); + "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 11, - "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); + "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, - "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); - add_srs_wkt (p, 13, - "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]"); - p = add_epsg_def (filter, first, last, 32049, "epsg", 32049, - "NAD27 / Washington South"); + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]"); + p = add_epsg_def (filter, first, last, 26796, "epsg", 26796, + "NAD27 / Missouri East"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333"); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, - "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2"); + "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT"); + "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",45.83333333333334],PAR"); + "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",47.33333333333334],PARAME"); + "entral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER["); + "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, - ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); - add_srs_wkt (p, 13, - "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); - add_srs_wkt (p, 14, - ",\"32049\"]]"); - p = add_epsg_def (filter, first, last, 32050, "epsg", 32050, - "NAD27 / West Virginia North"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]"); + p = add_epsg_def (filter, first, last, 26797, "epsg", 26797, + "NAD27 / Missouri Central"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79."); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, - "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f"); + "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "t +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",39],PARAMETER[\"st"); + "R[\"latitude_of_origin\",35.83333333333334],PARAMETER[\""); add_srs_wkt (p, 8, - "andard_parallel_2\",40.25],PARAMETER[\"latitude_of_origi"); + "central_meridian\",-92.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "n\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETE"); + "99933333],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 10, - "R[\"false_easting\",2000000],PARAMETER[\"false_northing\""); + "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 11, - ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, - "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 13, - "AUTHORITY[\"EPSG\",\"32050\"]]"); - p = add_epsg_def (filter, first, last, 32051, "epsg", 32051, - "NAD27 / West Virginia South"); + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]"); + p = add_epsg_def (filter, first, last, 26798, "epsg", 26798, + "NAD27 / Missouri West"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333"); + "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); + "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, - "datum=NAD27 +units=us-ft +no_defs"); + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\","); + "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, - "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, - "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",37.48333333333333]"); + "[\"latitude_of_origin\",36.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",38.88333333333333],PA"); + "entral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",37],PARAMETER[\"central_m"); + "9941177],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA"); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, - "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, - "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); - add_srs_wkt (p, 13, - "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]"); - p = add_epsg_def (filter, first, last, 32052, "epsg", 32052, - "NAD27 / Wisconsin North"); + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]"); + p = add_epsg_def (filter, first, last, 26799, "epsg", 26799, + "NAD27 / California zone VII"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666"); + "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, - "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192"); + "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, - "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2"); + add_proj4text (p, 3, + "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",45.56666666666667],PAR"); + "\"],PARAMETER[\"standard_parallel_1\",34.41666666666666]"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",46.76666666666667],PARAME"); + ",PARAMETER[\"standard_parallel_2\",33.86666666666667],PA"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",45.16666666666666],PARAMETER["); + "RAMETER[\"latitude_of_origin\",34.13333333333333],PARAME"); add_srs_wkt (p, 10, - "\"central_meridian\",-90],PARAMETER[\"false_easting\",20"); + "TER[\"central_meridian\",-118.3333333333333],PARAMETER[\""); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); + "false_easting\",4186692.58],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + ",4160926.74],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, - "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, - "32052\"]]"); - p = add_epsg_def (filter, first, last, 32053, "epsg", 32053, - "NAD27 / Wisconsin Central"); + ",NORTH],AUTHORITY[\"EPSG\",\"26799\"]]"); + p = add_epsg_def (filter, first, last, 26801, "epsg", 26801, + "NAD Michigan / Michigan East (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333"); + "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); add_proj4text (p, 1, - "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); + "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548"); add_proj4text (p, 2, - "7 +units=us-ft +no_defs"); + "896 +b=6356826.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA"); + "PROJCS[\"NAD Michigan / Michigan East (deprecated)\",GEO"); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); + "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID"); add_srs_wkt (p, 2, - "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); + "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716"); add_srs_wkt (p, 3, - "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); + "46739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION["); add_srs_wkt (p, 7, - "],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\"s"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "tandard_parallel_2\",45.5],PARAMETER[\"latitude_of_origi"); + ",41.5],PARAMETER[\"central_meridian\",-83.66666666666667"); add_srs_wkt (p, 9, - "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9"); + "],PARAMETER[\"scale_factor\",0.999942857],PARAMETER[\"fa"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, - "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32053\"]]"); - p = add_epsg_def (filter, first, last, 32054, "epsg", 32054, - "NAD27 / Wisconsin South"); + "ITY[\"EPSG\",\"26801\"]]"); + p = add_epsg_def (filter, first, last, 26802, "epsg", 26802, + "NAD Michigan / Michigan Old Central (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666"); + "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); add_proj4text (p, 1, - "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +"); + "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, - "datum=NAD27 +units=us-ft +no_defs"); + "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU"); + "PROJCS[\"NAD Michigan / Michigan Old Central (deprecated"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + ")\",GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",S"); add_srs_wkt (p, 2, - ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); + "PHEROID[\"Clarke 1866 Michigan\",6378450.047548896,294.9"); add_srs_wkt (p, 3, - "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + "786971646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"E"); add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + "PSG\",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, - "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PRO"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",42.73333333333333],PAR"); + "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, - "AMETER[\"standard_parallel_2\",44.06666666666667],PARAME"); + "_origin\",41.5],PARAMETER[\"central_meridian\",-85.75],P"); add_srs_wkt (p, 9, - "TER[\"latitude_of_origin\",42],PARAMETER[\"central_merid"); + "ARAMETER[\"scale_factor\",0.999909091],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ian\",-90],PARAMETER[\"false_easting\",2000000],PARAMETE"); + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, - "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, - "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]"); - p = add_epsg_def (filter, first, last, 32055, "epsg", 32055, - "NAD27 / Wyoming East"); + "[\"EPSG\",\"26802\"]]"); + p = add_epsg_def (filter, first, last, 26803, "epsg", 26803, + "NAD Michigan / Michigan West (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666"); + "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); add_proj4text (p, 1, - "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, - "um=NAD27 +units=us-ft +no_defs"); + "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD Michigan / Michigan West (deprecated)\",GEO"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "46739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION["); add_srs_wkt (p, 7, - "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - "ral_meridian\",-105.1666666666667],PARAMETER[\"scale_fac"); + ",41.5],PARAMETER[\"central_meridian\",-88.75],PARAMETER["); add_srs_wkt (p, 9, - "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); + "\"scale_factor\",0.999909091],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]"); + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 32056, "epsg", 32056, - "NAD27 / Wyoming East Central"); + "\"26803\"]]"); + p = add_epsg_def (filter, first, last, 26811, "epsg", 26811, + "NAD Michigan / Michigan North (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333"); + "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333"); add_proj4text (p, 1, - "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192"); add_proj4text (p, 2, - "um=NAD27 +units=us-ft +no_defs"); + "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 "); + add_proj4text (p, 3, + "+units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\""); + "PROJCS[\"NAD Michigan / Michigan North (deprecated)\",GE"); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971"); add_srs_wkt (p, 3, - "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + "646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTIO"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "TER[\"central_meridian\",-107.3333333333333],PARAMETER[\""); + "parallel_1\",45.48333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); + "allel_2\",47.08333333333334],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); + "gin\",44.78333333333333],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, - " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); + "-87],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, - ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, - "32056\"]]"); - p = add_epsg_def (filter, first, last, 32057, "epsg", 32057, - "NAD27 / Wyoming West Central"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26811\"]]"); + p = add_epsg_def (filter, first, last, 26812, "epsg", 26812, + "NAD Michigan / Michigan Central (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0"); + "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43"); add_proj4text (p, 1, - ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); + ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21"); add_proj4text (p, 2, - "nits=us-ft +no_defs"); + "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844"); + add_proj4text (p, 3, + "4 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\""); + "PROJCS[\"NAD Michigan / Michigan Central (deprecated)\","); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + "GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHER"); add_srs_wkt (p, 2, - "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); + "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869"); add_srs_wkt (p, 3, - "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + "71646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTI"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, - "TER[\"central_meridian\",-108.75],PARAMETER[\"scale_fact"); + "_parallel_1\",44.18333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, - "or\",0.999941177],PARAMETER[\"false_easting\",500000],PA"); + "rallel_2\",45.7],PARAMETER[\"latitude_of_origin\",43.316"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + "66666666667],PARAMETER[\"central_meridian\",-84.33333333"); add_srs_wkt (p, 11, - "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + "333333],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]"); - p = add_epsg_def (filter, first, last, 32058, "epsg", 32058, - "NAD27 / Wyoming West"); + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + add_srs_wkt (p, 13, + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 14, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26812\"]]"); + p = add_epsg_def (filter, first, last, 26813, "epsg", 26813, + "NAD Michigan / Michigan South (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333"); + "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41"); add_proj4text (p, 1, - "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, - "um=NAD27 +units=us-ft +no_defs"); + "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f"); + add_proj4text (p, 3, + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\""); + "PROJCS[\"NAD Michigan / Michigan South (deprecated)\",GE"); add_srs_wkt (p, 1, - "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI"); add_srs_wkt (p, 2, - "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); + "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971"); add_srs_wkt (p, 3, - "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + "646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTIO"); add_srs_wkt (p, 7, - "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "ral_meridian\",-110.0833333333333],PARAMETER[\"scale_fac"); + "parallel_1\",42.1],PARAMETER[\"standard_parallel_2\",43."); add_srs_wkt (p, 9, - "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); + "66666666666666],PARAMETER[\"latitude_of_origin\",41.5],P"); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + "ARAMETER[\"central_meridian\",-84.33333333333333],PARAME"); add_srs_wkt (p, 11, - ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + "TER[\"false_easting\",2000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]"); + "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, - "]"); - p = add_epsg_def (filter, first, last, 32061, "epsg", 32061, - "NAD27 / Guatemala Norte (deprecated)"); + "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + add_srs_wkt (p, 14, + "H],AUTHORITY[\"EPSG\",\"26813\"]]"); + p = add_epsg_def (filter, first, last, 26814, "epsg", 26814, + "NAD83 / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); - add_proj4text (p, 2, - "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); + "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, - "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",16.81666666"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, - "666667],PARAMETER[\"central_meridian\",-90.3333333333333"); + "3.66666666666666],PARAMETER[\"central_meridian\",-68.5],"); add_srs_wkt (p, 9, - "3],PARAMETER[\"scale_factor\",0.99992226],PARAMETER[\"fa"); + "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "lse_easting\",500000],PARAMETER[\"false_northing\",29220"); + "ting\",300000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "9.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, - "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32"); - add_srs_wkt (p, 13, - "061\"]]"); - p = add_epsg_def (filter, first, last, 32062, "epsg", 32062, - "NAD27 / Guatemala Sur (deprecated)"); + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]"); + p = add_epsg_def (filter, first, last, 26815, "epsg", 26815, + "NAD83 / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, - "AD27 +units=m +no_defs"); + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N"); + "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, - "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl"); + "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, - "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); + "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre"); + "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, - "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "onic_1SP\"],PARAMETER[\"latitude_of_origin\",14.9],PARAM"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-90.33333333333333],PARAMETER["); + "2.83333333333334],PARAMETER[\"central_meridian\",-70.166"); add_srs_wkt (p, 9, - "\"scale_factor\",0.99989906],PARAMETER[\"false_easting\""); + "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR"); add_srs_wkt (p, 10, - ",500000],PARAMETER[\"false_northing\",325992.681],UNIT[\""); + "AMETER[\"false_easting\",900000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, - ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]"); - p = add_epsg_def (filter, first, last, 32064, "epsg", 32064, - "NAD27 / BLM 14N (ftUS)"); + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "26815\"]]"); + p = add_epsg_def (filter, first, last, 26819, "epsg", 26819, + "NAD83 / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + add_proj4text (p, 2, + "00101601 +y_0=99999.99998984 +datum=NAD83 +units=m +no_d"); + add_proj4text (p, 3, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "parallel_1\",48.63333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + "allel_2\",47.03333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "gin\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAME"); add_srs_wkt (p, 11, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "TER[\"false_easting\",800000.0000101601],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32064\"]]"); - p = add_epsg_def (filter, first, last, 32065, "epsg", 32065, - "NAD27 / BLM 15N (ftUS)"); + "se_northing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"26819\"]]"); + p = add_epsg_def (filter, first, last, 26820, "epsg", 26820, + "NAD83 / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); + add_proj4text (p, 2, + "84 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, - "\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, - "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + "5.61666666666667],PARAMETER[\"latitude_of_origin\",45],P"); add_srs_wkt (p, 10, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "ARAMETER[\"central_meridian\",-94.25],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "easting\",800000.0000101601],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32065\"]]"); - p = add_epsg_def (filter, first, last, 32066, "epsg", 32066, - "NAD27 / BLM 16N (ftUS)"); + ",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 13, + "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 14, + "PSG\",\"26820\"]]"); + p = add_epsg_def (filter, first, last, 26821, "epsg", 26821, + "NAD83 / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); + add_proj4text (p, 2, + "99.99998984 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, - "\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "parallel_1\",45.21666666666667],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + "allel_2\",43.78333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "gin\",43],PARAMETER[\"central_meridian\",-94],PARAMETER["); add_srs_wkt (p, 11, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "\"false_easting\",800000.0000101601],PARAMETER[\"false_n"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32066\"]]"); - p = add_epsg_def (filter, first, last, 32067, "epsg", 32067, - "NAD27 / BLM 17N (ftUS)"); + "orthing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 14, + "ORITY[\"EPSG\",\"26821\"]]"); + p = add_epsg_def (filter, first, last, 26822, "epsg", 26822, + "NAD83 / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + "_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER"); add_srs_wkt (p, 9, - "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + "[\"latitude_of_origin\",39.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 10, - "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + "entral_meridian\",-100],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, - "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "00.0000101601],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32067\"]]"); - p = add_epsg_def (filter, first, last, 32074, "epsg", 32074, - "NAD27 / BLM 14N (feet) (deprecated)"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 13, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]"); + p = add_epsg_def (filter, first, last, 26823, "epsg", 26823, + "NAD83 / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "5 +x_0=1968500 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)"); add_srs_wkt (p, 1, - "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "ral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],P"); + "ard_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + ",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\""); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + "central_meridian\",-79.5],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 11, - "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32074\"]]"); - p = add_epsg_def (filter, first, last, 32075, "epsg", 32075, - "NAD27 / BLM 15N (feet) (deprecated)"); + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"26823\"]]"); + p = add_epsg_def (filter, first, last, 26824, "epsg", 26824, + "NAD83 / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +datum=NAD8"); + add_proj4text (p, 2, + "3 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)"); add_srs_wkt (p, 1, - "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "ral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],P"); + "ard_parallel_1\",38.88333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + "_parallel_2\",37.48333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + "_origin\",37],PARAMETER[\"central_meridian\",-81],PARAME"); add_srs_wkt (p, 11, - "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32075\"]]"); - p = add_epsg_def (filter, first, last, 32076, "epsg", 32076, - "NAD27 / BLM 16N (feet) (deprecated)"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 13, + "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); + add_srs_wkt (p, 14, + "824\"]]"); + p = add_epsg_def (filter, first, last, 26825, "epsg", 26825, + "NAD83(HARN) / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\","); add_srs_wkt (p, 1, - "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "ral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],P"); + "latitude_of_origin\",43.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32076\"]]"); - p = add_epsg_def (filter, first, last, 32077, "epsg", 32077, - "NAD27 / BLM 17N (feet) (deprecated)"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"26825\"]]"); + p = add_epsg_def (filter, first, last, 26826, "epsg", 26826, + "NAD83(HARN) / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); + add_proj4text (p, 2, + "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\""); + "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\","); add_srs_wkt (p, 1, - "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, - "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); + "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P"); + "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + "tor\",0.999966667],PARAMETER[\"false_easting\",900000],P"); add_srs_wkt (p, 11, - "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32077\"]]"); - p = add_epsg_def (filter, first, last, 32081, "epsg", 32081, - "NAD27 / MTM zone 1"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"26826\"]]"); + p = add_epsg_def (filter, first, last, 26830, "epsg", 26830, + "NAD83(HARN) / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "_0=0 +datum=NAD27 +units=m +no_defs"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + add_proj4text (p, 2, + "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); + add_proj4text (p, 3, + ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, - "53],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); + "],PARAMETER[\"standard_parallel_1\",48.63333333333333],P"); add_srs_wkt (p, 9, - "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); + "ARAMETER[\"standard_parallel_2\",47.03333333333333],PARA"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "METER[\"latitude_of_origin\",46.5],PARAMETER[\"central_m"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + "eridian\",-93.1],PARAMETER[\"false_easting\",800000.0000"); add_srs_wkt (p, 12, - "2081\"]]"); - p = add_epsg_def (filter, first, last, 32082, "epsg", 32082, - "NAD27 / MTM zone 2"); + "101601],PARAMETER[\"false_northing\",99999.99998984],UNI"); + add_srs_wkt (p, 13, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 14, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]"); + p = add_epsg_def (filter, first, last, 26831, "epsg", 26831, + "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "_0=0 +datum=NAD27 +units=m +no_defs"); + "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); + add_proj4text (p, 2, + "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "SG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "56],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); + "\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\""); add_srs_wkt (p, 9, - "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); + "standard_parallel_2\",45.61666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "itude_of_origin\",45],PARAMETER[\"central_meridian\",-94"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + ".25],PARAMETER[\"false_easting\",800000.0000101601],PARA"); add_srs_wkt (p, 12, - "2082\"]]"); - p = add_epsg_def (filter, first, last, 32083, "epsg", 32083, - "NAD27 / MTM zone 3"); + "METER[\"false_northing\",99999.99998984],UNIT[\"metre\","); + add_srs_wkt (p, 13, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 14, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26831\"]]"); + p = add_epsg_def (filter, first, last, 26832, "epsg", 26832, + "NAD83(HARN) / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD27 +units=m +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); + add_proj4text (p, 2, + "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, - "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + "],PARAMETER[\"standard_parallel_1\",45.21666666666667],P"); add_srs_wkt (p, 9, - "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + "ARAMETER[\"standard_parallel_2\",43.78333333333333],PARA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "METER[\"latitude_of_origin\",43],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "idian\",-94],PARAMETER[\"false_easting\",800000.00001016"); add_srs_wkt (p, 12, - "32083\"]]"); - p = add_epsg_def (filter, first, last, 32084, "epsg", 32084, - "NAD27 / MTM zone 4"); + "01],PARAMETER[\"false_northing\",99999.99998984],UNIT[\""); + add_srs_wkt (p, 13, + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 14, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]"); + p = add_epsg_def (filter, first, last, 26833, "epsg", 26833, + "NAD83(HARN) / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD27 +units=m +no_defs"); + "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); + add_proj4text (p, 2, + "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 8, - "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + "METER[\"standard_parallel_1\",43],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, - "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + "arallel_2\",40],PARAMETER[\"latitude_of_origin\",39.8333"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "3333333334],PARAMETER[\"central_meridian\",-100],PARAMET"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ER[\"false_easting\",500000.0000101601],PARAMETER[\"fals"); add_srs_wkt (p, 12, - "32084\"]]"); - p = add_epsg_def (filter, first, last, 32085, "epsg", 32085, - "NAD27 / MTM zone 5"); + "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); + add_srs_wkt (p, 13, + "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); + add_srs_wkt (p, 14, + "SG\",\"26833\"]]"); + p = add_epsg_def (filter, first, last, 26834, "epsg", 26834, + "NAD83(HARN) / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "+y_0=0 +datum=NAD27 +units=m +no_defs"); + "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); + add_proj4text (p, 2, + "0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, - "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + "SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER"); add_srs_wkt (p, 9, - "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + "[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "gin\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAME"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, - "32085\"]]"); - p = add_epsg_def (filter, first, last, 32086, "epsg", 32086, - "NAD27 / MTM zone 6"); + "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 13, + "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); + add_srs_wkt (p, 14, + "834\"]]"); + p = add_epsg_def (filter, first, last, 26835, "epsg", 26835, + "NAD83(HARN) / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD27 +units=m +no_defs"); + "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); + add_proj4text (p, 2, + "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre"); add_srs_wkt (p, 1, - "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, - "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, - "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, - "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, - "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, - "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, - "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + "SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333333"); add_srs_wkt (p, 9, - "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + "3],PARAMETER[\"standard_parallel_2\",37.48333333333333],"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"central"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "_meridian\",-81],PARAMETER[\"false_easting\",1968500],PA"); add_srs_wkt (p, 12, - "32086\"]]"); - p = add_epsg_def (filter, first, last, 32098, "epsg", 32098, - "NAD27 / Quebec Lambert"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"26835\"]]"); + p = add_epsg_def (filter, first, last, 26836, "epsg", 26836, + "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); + "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM"); + "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, - "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); + "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, - "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, - "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, - "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, - ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, - "PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"standa"); + "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, - "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",44]"); + "\"],PARAMETER[\"latitude_of_origin\",43.66666666666666],"); add_srs_wkt (p, 9, - ",PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"false"); + "PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); + "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); add_srs_wkt (p, 11, - "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]"); - p = add_epsg_def (filter, first, last, 32099, "epsg", 32099, - "NAD27 / Louisiana Offshore"); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"26836\"]]"); + p = add_epsg_def (filter, first, last, 26837, "epsg", 26837, + "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, - "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); - add_proj4text (p, 3, - "no_defs"); + "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D"); + "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, - "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); + "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, - "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, - ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, - "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, - "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"standard_parallel_1\",27.83333333333333]"); + "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",26.16666666666667],PA"); + "\"],PARAMETER[\"latitude_of_origin\",42.83333333333334],"); add_srs_wkt (p, 9, - "RAMETER[\"latitude_of_origin\",25.66666666666667],PARAME"); + "PARAMETER[\"central_meridian\",-70.16666666666667],PARAM"); add_srs_wkt (p, 10, - "TER[\"central_meridian\",-91.33333333333333],PARAMETER[\""); + "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, - "false_easting\",2000000],PARAMETER[\"false_northing\",0]"); + "ting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, - ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, - "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); - add_srs_wkt (p, 14, - "HORITY[\"EPSG\",\"32099\"]]"); - p = add_epsg_def (filter, first, last, 32100, "epsg", 32100, - "NAD83 / Montana"); + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]"); + p = add_epsg_def (filter, first, last, 26841, "epsg", 26841, + "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - " +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + add_proj4text (p, 2, + "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); + add_proj4text (p, 3, + ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort"); + "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre"); add_srs_wkt (p, 1, - "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); + "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, - "EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, - "SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\""); + "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, - "standard_parallel_2\",45],PARAMETER[\"latitude_of_origin"); + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6"); add_srs_wkt (p, 9, - "\",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMET"); + "3333333333333],PARAMETER[\"standard_parallel_2\",47.0333"); add_srs_wkt (p, 10, - "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); + "3333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAM"); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "ETER[\"central_meridian\",-93.1],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, - "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100"); + "ng\",800000.0000101601],PARAMETER[\"false_northing\",999"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 32104, "epsg", 32104, - "NAD83 / Nebraska"); + "99.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 14, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 15, + ",\"26841\"]]"); + p = add_epsg_def (filter, first, last, 26842, "epsg", 26842, + "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "lon_0=-100 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_"); + "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, - "defs"); + "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor"); + "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep"); add_srs_wkt (p, 1, - "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); + "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati"); add_srs_wkt (p, 2, - "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); + "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, - ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, - "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM"); add_srs_wkt (p, 5, - "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, - "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, - "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER["); + "],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, - "\"standard_parallel_2\",40],PARAMETER[\"latitude_of_orig"); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47"); add_srs_wkt (p, 9, - "in\",39.83333333333334],PARAMETER[\"central_meridian\",-"); + ".05],PARAMETER[\"standard_parallel_2\",45.61666666666667"); add_srs_wkt (p, 10, - "100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + "],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centr"); add_srs_wkt (p, 11, - "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + "al_meridian\",-94.25],PARAMETER[\"false_easting\",800000"); add_srs_wkt (p, 12, - "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + ".0000101601],PARAMETER[\"false_northing\",99999.99998984"); add_srs_wkt (p, 13, - "PSG\",\"32104\"]]"); - p = add_epsg_def (filter, first, last, 32107, "epsg", 32107, - "NAD83 / Nevada East"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 14, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\""); + add_srs_wkt (p, 15, + "]]"); + p = add_epsg_def (filter, first, last, 26843, "epsg", 26843, + "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "9999 +x_0=200000 +y_0=8000000 +datum=NAD83 +units=m +no_"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, - "defs"); + "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); + add_proj4text (p, 3, + " +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); + "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, - "ntral_meridian\",-115.5833333333333],PARAMETER[\"scale_f"); + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2"); add_srs_wkt (p, 9, - "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); + "1666666666667],PARAMETER[\"standard_parallel_2\",43.7833"); add_srs_wkt (p, 10, - "METER[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHO"); + "3333333333],PARAMETER[\"latitude_of_origin\",43],PARAMET"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "ER[\"central_meridian\",-94],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"32107\"]]"); - p = add_epsg_def (filter, first, last, 32108, "epsg", 32108, - "NAD83 / Nevada Central"); + ",800000.0000101601],PARAMETER[\"false_northing\",99999.9"); + add_srs_wkt (p, 13, + "9998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 14, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 15, + "26843\"]]"); + p = add_epsg_def (filter, first, last, 26844, "epsg", 26844, + "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "9999 +x_0=500000 +y_0=6000000 +datum=NAD83 +units=m +no_"); + "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, - "defs"); + "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER["); + "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, - "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca"); + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETE"); add_srs_wkt (p, 9, - "le_factor\",0.9999],PARAMETER[\"false_easting\",500000],"); + "R[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, - "PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,A"); + "igin\",39.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + ",-100],PARAMETER[\"false_easting\",500000.0000101601],PA"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"32108\"]]"); - p = add_epsg_def (filter, first, last, 32109, "epsg", 32109, - "NAD83 / Nevada West"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"26844\"]]"); + p = add_epsg_def (filter, first, last, 26845, "epsg", 26845, + "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "9999 +x_0=800000 +y_0=4000000 +datum=NAD83 +units=m +no_"); + "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, - "defs"); + "0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); + "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, - "ntral_meridian\",-118.5833333333333],PARAMETER[\"scale_f"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, - "actor\",0.9999],PARAMETER[\"false_easting\",800000],PARA"); + "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\""); add_srs_wkt (p, 10, - "METER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHO"); + "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"32109\"]]"); - p = add_epsg_def (filter, first, last, 32110, "epsg", 32110, - "NAD83 / New Hampshire"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + add_srs_wkt (p, 14, + "\"EPSG\",\"26845\"]]"); + p = add_epsg_def (filter, first, last, 26846, "epsg", 26846, + "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "99966667 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_de"); + "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, - "fs"); + "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"c"); + "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, - "entral_meridian\",-71.66666666666667],PARAMETER[\"scale_"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, - "factor\",0.999966667],PARAMETER[\"false_easting\",300000"); + "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4"); add_srs_wkt (p, 10, - "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, - "TH],AUTHORITY[\"EPSG\",\"32110\"]]"); - p = add_epsg_def (filter, first, last, 32111, "epsg", 32111, - "NAD83 / New Jersey"); + "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"metr"); + add_srs_wkt (p, 13, + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 14, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]"); + p = add_epsg_def (filter, first, last, 26847, "epsg", 26847, + "NAD83 / Maine East (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "999 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=us"); + add_proj4text (p, 2, + "-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA"); + "cator\"],PARAMETER[\"latitude_of_origin\",43.66666666666"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa"); + "666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"s"); add_srs_wkt (p, 9, - "ctor\",0.9999],PARAMETER[\"false_easting\",150000],PARAM"); + "cale_factor\",0.9999],PARAMETER[\"false_easting\",984250"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + ".0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"32111\"]]"); - p = add_epsg_def (filter, first, last, 32112, "epsg", 32112, - "NAD83 / New Mexico East"); + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"26847\"]]"); + p = add_epsg_def (filter, first, last, 26848, "epsg", 26848, + "NAD83 / Maine West (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); + "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333"); add_srs_wkt (p, 8, - "central_meridian\",-104.3333333333333],PARAMETER[\"scale"); + "334],PARAMETER[\"central_meridian\",-70.16666666666667],"); add_srs_wkt (p, 9, - "_factor\",0.999909091],PARAMETER[\"false_easting\",16500"); + "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "e_easting\",2952750],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "RTH],AUTHORITY[\"EPSG\",\"32112\"]]"); - p = add_epsg_def (filter, first, last, 32113, "epsg", 32113, - "NAD83 / New Mexico Central"); + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 13, + "TY[\"EPSG\",\"26848\"]]"); + p = add_epsg_def (filter, first, last, 26849, "epsg", 26849, + "NAD83 / Minnesota North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "00 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); + add_proj4text (p, 2, + "00101599 +y_0=99999.99998983997 +datum=NAD83 +units=us-f"); + add_proj4text (p, 3, + "t +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); + "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\""); + "8.63333333333333],PARAMETER[\"standard_parallel_2\",47.0"); add_srs_wkt (p, 9, - ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + "3333333333333],PARAMETER[\"latitude_of_origin\",46.5],PA"); add_srs_wkt (p, 10, - "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + "RAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, - "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + "sting\",2624666.6667],PARAMETER[\"false_northing\",32808"); add_srs_wkt (p, 12, - "\"EPSG\",\"32113\"]]"); - p = add_epsg_def (filter, first, last, 32114, "epsg", 32114, - "NAD83 / New Mexico West"); + "3.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 14, + "TH],AUTHORITY[\"EPSG\",\"26849\"]]"); + p = add_epsg_def (filter, first, last, 26850, "epsg", 26850, + "NAD83 / Minnesota Central (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "916667 +x_0=830000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); + add_proj4text (p, 2, + "83997 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, - "central_meridian\",-107.8333333333333],PARAMETER[\"scale"); + ",47.05],PARAMETER[\"standard_parallel_2\",45.61666666666"); add_srs_wkt (p, 9, - "_factor\",0.999916667],PARAMETER[\"false_easting\",83000"); + "667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"ce"); add_srs_wkt (p, 10, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "ntral_meridian\",-94.25],PARAMETER[\"false_easting\",262"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + "4666.6667],PARAMETER[\"false_northing\",328083.3333],UNI"); add_srs_wkt (p, 12, - "RTH],AUTHORITY[\"EPSG\",\"32114\"]]"); - p = add_epsg_def (filter, first, last, 32115, "epsg", 32115, - "NAD83 / New York East"); + "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 13, + "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); + add_srs_wkt (p, 14, + "TY[\"EPSG\",\"26850\"]]"); + p = add_epsg_def (filter, first, last, 26851, "epsg", 26851, + "NAD83 / Minnesota South (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); + add_proj4text (p, 2, + "99.99998983997 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",38.83333333333334],"); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - "PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_"); + "5.21666666666667],PARAMETER[\"standard_parallel_2\",43.7"); add_srs_wkt (p, 9, - "factor\",0.9999],PARAMETER[\"false_easting\",150000],PAR"); + "8333333333333],PARAMETER[\"latitude_of_origin\",43],PARA"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "METER[\"central_meridian\",-94],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + "g\",2624666.6667],PARAMETER[\"false_northing\",328083.33"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32115\"]]"); - p = add_epsg_def (filter, first, last, 32116, "epsg", 32116, - "NAD83 / New York Central"); + "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 14, + "AUTHORITY[\"EPSG\",\"26851\"]]"); + p = add_epsg_def (filter, first, last, 26852, "epsg", 26852, + "NAD83 / Nebraska (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "9375 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "lon_0=-100 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +uni"); + add_proj4text (p, 2, + "ts=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "tor\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR"); add_srs_wkt (p, 8, - "central_meridian\",-76.58333333333333],PARAMETER[\"scale"); + "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, - "_factor\",0.9999375],PARAMETER[\"false_easting\",250000]"); + "of_origin\",39.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, - ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + "ian\",-100],PARAMETER[\"false_easting\",1640416.6667],PA"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, - "H],AUTHORITY[\"EPSG\",\"32116\"]]"); + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_37.c b/src/spatialite/src/srsinit/epsg_inlined_37.c index 2bac4ec..e5b52b3 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_37.c +++ b/src/spatialite/src/srsinit/epsg_inlined_37.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,1318 +52,1282 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 32117, "epsg", 32117, - "NAD83 / New York West"); + p = add_epsg_def (filter, first, last, 26853, "epsg", 26853, + "NAD83 / West Virginia North (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "9375 +x_0=350000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - "tral_meridian\",-78.58333333333333],PARAMETER[\"scale_fa"); + "1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAMET"); add_srs_wkt (p, 9, - "ctor\",0.9999375],PARAMETER[\"false_easting\",350000],PA"); + "ER[\"latitude_of_origin\",38.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "dian\",-79.5],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"32117\"]]"); - p = add_epsg_def (filter, first, last, 32118, "epsg", 32118, - "NAD83 / New York Long Island"); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 13, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]"); + p = add_epsg_def (filter, first, last, 26854, "epsg", 26854, + "NAD83 / West Virginia South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, - "=0 +datum=NAD83 +units=m +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\""); + "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); + "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, - "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); + "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, - ".03333333333333],PARAMETER[\"standard_parallel_2\",40.66"); + "1\",38.88333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "666666666666],PARAMETER[\"latitude_of_origin\",40.166666"); + ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]"); add_srs_wkt (p, 10, - "66666666],PARAMETER[\"central_meridian\",-74],PARAMETER["); + ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "\"false_easting\",300000],PARAMETER[\"false_northing\",0"); + "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\""); + "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32119, "epsg", 32119, - "NAD83 / North Carolina"); + "EPSG\",\"26854\"]]"); + p = add_epsg_def (filter, first, last, 26855, "epsg", 26855, + "NAD83(HARN) / Maine East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +datum"); + "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, - "=NAD83 +units=m +no_defs"); + "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666"); + "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, - "666666666],PARAMETER[\"standard_parallel_2\",34.33333333"); + "rigin\",43.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE"); + ",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); add_srs_wkt (p, 10, - "R[\"central_meridian\",-79],PARAMETER[\"false_easting\","); + "alse_easting\",984250.0000000002],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, - ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32119\"]]"); - p = add_epsg_def (filter, first, last, 32120, "epsg", 32120, - "NAD83 / North Dakota North"); + "ORTH],AUTHORITY[\"EPSG\",\"26855\"]]"); + p = add_epsg_def (filter, first, last, 26856, "epsg", 26856, + "NAD83(HARN) / Maine West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +datum=NA"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, - "D83 +units=m +no_defs"); + "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7"); + "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, - "3333333333333],PARAMETER[\"standard_parallel_2\",47.4333"); + "rigin\",42.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",47],PARAMET"); + ",-70.16666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 10, - "ER[\"central_meridian\",-100.5],PARAMETER[\"false_eastin"); + "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, - "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, - "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]"); - p = add_epsg_def (filter, first, last, 32121, "epsg", 32121, - "NAD83 / North Dakota South"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]"); + p = add_epsg_def (filter, first, last, 26857, "epsg", 26857, + "NAD83(HARN) / Minnesota North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, - "y_0=0 +datum=NAD83 +units=m +no_defs"); + "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); + add_proj4text (p, 3, + "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4"); + ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, - "8333333333333],PARAMETER[\"standard_parallel_2\",46.1833"); + "standard_parallel_1\",48.63333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",45.66666666"); + "ndard_parallel_2\",47.03333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, - "666666],PARAMETER[\"central_meridian\",-100.5],PARAMETER"); + "de_of_origin\",46.5],PARAMETER[\"central_meridian\",-93."); add_srs_wkt (p, 11, - "[\"false_easting\",600000],PARAMETER[\"false_northing\","); + "1],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\""); add_srs_wkt (p, 12, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\""); + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32122, "epsg", 32122, - "NAD83 / Ohio North"); + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]"); + p = add_epsg_def (filter, first, last, 26858, "epsg", 26858, + "NAD83(HARN) / Minnesota Central (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N"); + "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, - "AD83 +units=m +no_defs"); + "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAME"); + "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, - "TER[\"standard_parallel_2\",40.43333333333333],PARAMETER"); + "[\"standard_parallel_1\",47.05],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",39.66666666666666],PARAMETER[\"c"); + "allel_2\",45.61666666666667],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, - "entral_meridian\",-82.5],PARAMETER[\"false_easting\",600"); + "gin\",45],PARAMETER[\"central_meridian\",-94.25],PARAMET"); add_srs_wkt (p, 11, - "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + "ER[\"false_easting\",2624666.6667],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, - "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + "thing\",328083.3333],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, - "NORTH],AUTHORITY[\"EPSG\",\"32122\"]]"); - p = add_epsg_def (filter, first, last, 32123, "epsg", 32123, - "NAD83 / Ohio South"); + "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 14, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]"); + p = add_epsg_def (filter, first, last, 26859, "epsg", 26859, + "NAD83(HARN) / Minnesota South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, - "83 +units=m +no_defs"); + "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); + add_proj4text (p, 3, + "s=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",40.033333333"); + ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, - "33333],PARAMETER[\"standard_parallel_2\",38.733333333333"); + "standard_parallel_1\",45.21666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, - "33],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); + "ndard_parallel_2\",43.78333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, - "tral_meridian\",-82.5],PARAMETER[\"false_easting\",60000"); + "de_of_origin\",43],PARAMETER[\"central_meridian\",-94],P"); add_srs_wkt (p, 11, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "ARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + "se_northing\",328083.3333],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"32123\"]]"); - p = add_epsg_def (filter, first, last, 32124, "epsg", 32124, - "NAD83 / Oklahoma North"); + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 14, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]"); + p = add_epsg_def (filter, first, last, 26860, "epsg", 26860, + "NAD83(HARN) / Nebraska (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83"); + "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, - " +units=m +no_defs"); + "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666"); + "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, - "666666667],PARAMETER[\"standard_parallel_2\",35.56666666"); + "ard_parallel_1\",43],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, - "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\""); + "0],PARAMETER[\"latitude_of_origin\",39.83333333333334],P"); add_srs_wkt (p, 10, - "central_meridian\",-98],PARAMETER[\"false_easting\",6000"); + "ARAMETER[\"central_meridian\",-100],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, - "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + "sting\",1640416.6667],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, - "ORTH],AUTHORITY[\"EPSG\",\"32124\"]]"); - p = add_epsg_def (filter, first, last, 32125, "epsg", 32125, - "NAD83 / Oklahoma South"); + "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 14, + "ITY[\"EPSG\",\"26860\"]]"); + p = add_epsg_def (filter, first, last, 26861, "epsg", 26861, + "NAD83(HARN) / West Virginia North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); + "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, - "=0 +datum=NAD83 +units=m +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333"); + "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, - "333333333],PARAMETER[\"standard_parallel_2\",33.93333333"); + "TER[\"standard_parallel_1\",40.25],PARAMETER[\"standard_"); add_srs_wkt (p, 9, - "333333],PARAMETER[\"latitude_of_origin\",33.333333333333"); + "parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5],"); add_srs_wkt (p, 10, - "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); + "PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); + "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); + "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, - "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]"); - p = add_epsg_def (filter, first, last, 32126, "epsg", 32126, - "NAD83 / Oregon North"); + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 14, + "[\"EPSG\",\"26861\"]]"); + p = add_epsg_def (filter, first, last, 26862, "epsg", 26862, + "NAD83(HARN) / West Virginia South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +datum=N"); + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "AD83 +units=m +no_defs"); + " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET"); + "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER["); + "TER[\"standard_parallel_1\",38.88333333333333],PARAMETER"); add_srs_wkt (p, 9, - "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce"); + "[\"standard_parallel_2\",37.48333333333333],PARAMETER[\""); add_srs_wkt (p, 10, - "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",250"); + "latitude_of_origin\",37],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "-81],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32126\"]]"); - p = add_epsg_def (filter, first, last, 32127, "epsg", 32127, - "NAD83 / Oregon South"); + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 14, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]"); + p = add_epsg_def (filter, first, last, 26863, "epsg", 26863, + "NAD83(NSRS2007) / Maine East (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +datum=N"); + "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, - "AD83 +units=m +no_defs"); + "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET"); + ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER["); + "R[\"latitude_of_origin\",43.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, - "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce"); + "central_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, - "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",150"); + "999],PARAMETER[\"false_easting\",984250.0000000002],PARA"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32127\"]]"); - p = add_epsg_def (filter, first, last, 32128, "epsg", 32128, - "NAD83 / Pennsylvania North"); + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]"); + p = add_epsg_def (filter, first, last, 26864, "epsg", 26864, + "NAD83(NSRS2007) / Maine West (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, - "=NAD83 +units=m +no_defs"); + "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9"); + ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],"); + "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, - "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA"); + "central_meridian\",-70.16666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, - "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas"); + "_factor\",0.999966667],PARAMETER[\"false_easting\",29527"); add_srs_wkt (p, 11, - "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + "50],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, - "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, - "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]"); - p = add_epsg_def (filter, first, last, 32129, "epsg", 32129, - "NAD83 / Pennsylvania South"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); + add_srs_wkt (p, 14, + "64\"]]"); + p = add_epsg_def (filter, first, last, 26865, "epsg", 26865, + "NAD83(NSRS2007) / Minnesota North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, - "y_0=0 +datum=NAD83 +units=m +no_defs"); + "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); + add_proj4text (p, 3, + "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333"); + "\"],PARAMETER[\"standard_parallel_1\",48.63333333333333]"); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333"); + ",PARAMETER[\"standard_parallel_2\",47.03333333333333],PA"); add_srs_wkt (p, 10, - "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER"); + "RAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"central"); add_srs_wkt (p, 11, - "[\"false_easting\",600000],PARAMETER[\"false_northing\","); + "_meridian\",-93.1],PARAMETER[\"false_easting\",2624666.6"); add_srs_wkt (p, 12, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US"); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\""); + " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32130, "epsg", 32130, - "NAD83 / Rhode Island"); + "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 15, + "PSG\",\"26865\"]]"); + p = add_epsg_def (filter, first, last, 26866, "epsg", 26866, + "NAD83(NSRS2007) / Minnesota Central (ftUS)"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "9999375 +x_0=100000 +y_0=0 +datum=NAD83 +units=m +no_def"); + "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, - "s"); + "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",41.08333333333334],PA"); + "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, - "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_fa"); + "SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER"); add_srs_wkt (p, 9, - "ctor\",0.99999375],PARAMETER[\"false_easting\",100000],P"); + "[\"standard_parallel_2\",45.61666666666667],PARAMETER[\""); add_srs_wkt (p, 10, - "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + "latitude_of_origin\",45],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + "-94.25],PARAMETER[\"false_easting\",2624666.6667],PARAME"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"32130\"]]"); - p = add_epsg_def (filter, first, last, 32133, "epsg", 32133, - "NAD83 / South Carolina"); + "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo"); + add_srs_wkt (p, 13, + "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); + add_srs_wkt (p, 14, + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); + add_srs_wkt (p, 15, + "66\"]]"); + p = add_epsg_def (filter, first, last, 26867, "epsg", 26867, + "NAD83(NSRS2007) / Minnesota South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, - "83 +units=m +no_defs"); + "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); + add_proj4text (p, 3, + "s=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333"); + "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, - "333333334],PARAMETER[\"standard_parallel_2\",32.5],PARAM"); + "\"],PARAMETER[\"standard_parallel_1\",45.21666666666667]"); add_srs_wkt (p, 9, - "ETER[\"latitude_of_origin\",31.83333333333333],PARAMETER"); + ",PARAMETER[\"standard_parallel_2\",43.78333333333333],PA"); add_srs_wkt (p, 10, - "[\"central_meridian\",-81],PARAMETER[\"false_easting\",6"); + "RAMETER[\"latitude_of_origin\",43],PARAMETER[\"central_m"); add_srs_wkt (p, 11, - "09600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + "eridian\",-94],PARAMETER[\"false_easting\",2624666.6667]"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + ",PARAMETER[\"false_northing\",328083.3333],UNIT[\"US sur"); add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32133\"]]"); - p = add_epsg_def (filter, first, last, 32134, "epsg", 32134, - "NAD83 / South Dakota North"); + "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + add_srs_wkt (p, 14, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 15, + ",\"26867\"]]"); + p = add_epsg_def (filter, first, last, 26868, "epsg", 26868, + "NAD83(NSRS2007) / Nebraska (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, - "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); + "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, - "0=0 +datum=NAD83 +units=m +no_defs"); + "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6"); + "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, - "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166"); + "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_"); add_srs_wkt (p, 9, - "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333"); + "parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.833"); add_srs_wkt (p, 10, - "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); + "33333333334],PARAMETER[\"central_meridian\",-100],PARAME"); add_srs_wkt (p, 11, - "false_easting\",600000],PARAMETER[\"false_northing\",0],"); + "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no"); add_srs_wkt (p, 12, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]"); - p = add_epsg_def (filter, first, last, 32135, "epsg", 32135, - "NAD83 / South Dakota South"); + "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 14, + ",NORTH],AUTHORITY[\"EPSG\",\"26868\"]]"); + p = add_epsg_def (filter, first, last, 26869, "epsg", 26869, + "NAD83(NSRS2007) / West Virginia North (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, - ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); + "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, - "_0=0 +datum=NAD83 +units=m +no_defs"); + " +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\","); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4"); + "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, - "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P"); + "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAME"); add_srs_wkt (p, 9, - "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM"); + "TER[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, - "ETER[\"central_meridian\",-100.3333333333333],PARAMETER["); + "origin\",38.5],PARAMETER[\"central_meridian\",-79.5],PAR"); add_srs_wkt (p, 11, - "\"false_easting\",600000],PARAMETER[\"false_northing\",0"); + "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\""); + "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32136, "epsg", 32136, - "NAD83 / Tennessee"); + "ORTH],AUTHORITY[\"EPSG\",\"26869\"]]"); + p = add_epsg_def (filter, first, last, 26870, "epsg", 26870, + "NAD83(NSRS2007) / West Virginia South (ftUS)"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, - "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA"); + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, - "D83 +units=m +no_defs"); + " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No"); + "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\","); add_srs_wkt (p, 1, - "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); + "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, - "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); + "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, - "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); + "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, - "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, - "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, - "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, - "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666"); + "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, - "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER"); + "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333"); add_srs_wkt (p, 9, - "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); + "3333],PARAMETER[\"standard_parallel_2\",37.4833333333333"); add_srs_wkt (p, 10, - "entral_meridian\",-86],PARAMETER[\"false_easting\",60000"); + "3],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"cent"); add_srs_wkt (p, 11, - "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + "ral_meridian\",-81],PARAMETER[\"false_easting\",1968500]"); add_srs_wkt (p, 12, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, - "RTH],AUTHORITY[\"EPSG\",\"32136\"]]"); - p = add_epsg_def (filter, first, last, 32137, "epsg", 32137, - "NAD83 / Texas North"); + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + add_srs_wkt (p, 14, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\""); + add_srs_wkt (p, 15, + "]]"); + p = add_epsg_def (filter, first, last, 26891, "epsg", 26891, + "NAD83(CSRS) / MTM zone 11"); add_proj4text (p, 0, - "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); + "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, - "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +datum=NAD83 +u"); + "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, - "nits=m +no_defs"); + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",36.18333333"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "333333],PARAMETER[\"standard_parallel_2\",34.65],PARAMET"); + "in\",0],PARAMETER[\"central_meridian\",-82.5],PARAMETER["); add_srs_wkt (p, 9, - "ER[\"latitude_of_origin\",34],PARAMETER[\"central_meridi"); + "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, - "an\",-101.5],PARAMETER[\"false_easting\",200000],PARAMET"); + "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT"); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); - add_srs_wkt (p, 13, - ",AUTHORITY[\"EPSG\",\"32137\"]]"); - p = add_epsg_def (filter, first, last, 32138, "epsg", 32138, - "NAD83 / Texas North Central"); + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]"); + p = add_epsg_def (filter, first, last, 26892, "epsg", 26892, + "NAD83(CSRS) / MTM zone 12"); add_proj4text (p, 0, - "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); + "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "_0=2000000 +datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "6666666666667],PARAMETER[\"standard_parallel_2\",32.1333"); + "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",31.66666666"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER["); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "\"false_easting\",600000],PARAMETER[\"false_northing\",2"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); - add_srs_wkt (p, 13, - "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); - add_srs_wkt (p, 14, - "2138\"]]"); - p = add_epsg_def (filter, first, last, 32139, "epsg", 32139, - "NAD83 / Texas Central"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]"); + p = add_epsg_def (filter, first, last, 26893, "epsg", 26893, + "NAD83(CSRS) / MTM zone 13"); add_proj4text (p, 0, - "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); + "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "x_0=700000 +y_0=3000000 +datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM["); + "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "onic_2SP\"],PARAMETER[\"standard_parallel_1\",31.8833333"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "3333333],PARAMETER[\"standard_parallel_2\",30.1166666666"); + "in\",0],PARAMETER[\"central_meridian\",-84],PARAMETER[\""); add_srs_wkt (p, 9, - "6667],PARAMETER[\"latitude_of_origin\",29.66666666666667"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "],PARAMETER[\"central_meridian\",-100.3333333333333],PAR"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "ing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); - add_srs_wkt (p, 13, - "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); - add_srs_wkt (p, 14, - "G\",\"32139\"]]"); - p = add_epsg_def (filter, first, last, 32140, "epsg", 32140, - "NAD83 / Texas South Central"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]"); + p = add_epsg_def (filter, first, last, 26894, "epsg", 26894, + "NAD83(CSRS) / MTM zone 14"); add_proj4text (p, 0, - "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); + "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "=4000000 +datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "8333333333333],PARAMETER[\"standard_parallel_2\",28.3833"); + "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\""); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",27.83333333"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "333333],PARAMETER[\"central_meridian\",-99],PARAMETER[\""); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "false_easting\",600000],PARAMETER[\"false_northing\",400"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); - add_srs_wkt (p, 13, - "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"321"); - add_srs_wkt (p, 14, - "40\"]]"); - p = add_epsg_def (filter, first, last, 32141, "epsg", 32141, - "NAD83 / Texas South"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]"); + p = add_epsg_def (filter, first, last, 26895, "epsg", 26895, + "NAD83(CSRS) / MTM zone 15"); add_proj4text (p, 0, - "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "_0=5000000 +datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",27.83333333"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "333333],PARAMETER[\"standard_parallel_2\",26.16666666666"); + "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); add_srs_wkt (p, 9, - "667],PARAMETER[\"latitude_of_origin\",25.66666666666667]"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "_easting\",300000],PARAMETER[\"false_northing\",5000000]"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); - add_srs_wkt (p, 13, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]"); - add_srs_wkt (p, 14, - "]"); - p = add_epsg_def (filter, first, last, 32142, "epsg", 32142, - "NAD83 / Utah North"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]"); + p = add_epsg_def (filter, first, last, 26896, "epsg", 26896, + "NAD83(CSRS) / MTM zone 16"); add_proj4text (p, 0, - "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); + "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "y_0=1000000 +datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "33333],PARAMETER[\"standard_parallel_2\",40.716666666666"); + "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\""); add_srs_wkt (p, 9, - "67],PARAMETER[\"latitude_of_origin\",40.33333333333334],"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "_easting\",500000],PARAMETER[\"false_northing\",1000000]"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); - add_srs_wkt (p, 13, - "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]"); - add_srs_wkt (p, 14, - "]"); - p = add_epsg_def (filter, first, last, 32143, "epsg", 32143, - "NAD83 / Utah Central"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]"); + p = add_epsg_def (filter, first, last, 26897, "epsg", 26897, + "NAD83(CSRS) / MTM zone 17"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); + "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "+datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "METER[\"standard_parallel_2\",39.01666666666667],PARAMET"); + "in\",0],PARAMETER[\"central_meridian\",-96],PARAMETER[\""); add_srs_wkt (p, 9, - "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\""); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",2000000],UNIT[\"metr"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); - add_srs_wkt (p, 13, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]"); - p = add_epsg_def (filter, first, last, 32144, "epsg", 32144, - "NAD83 / Utah South"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]"); + p = add_epsg_def (filter, first, last, 26898, "epsg", 26898, + "NAD83(CSRS) / MTM zone 1"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); + "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, - "+datum=NAD83 +units=m +no_defs"); + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "ic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAM"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "ETER[\"standard_parallel_2\",37.21666666666667],PARAMETE"); + "in\",0],PARAMETER[\"central_meridian\",-53],PARAMETER[\""); add_srs_wkt (p, 9, - "R[\"latitude_of_origin\",36.66666666666666],PARAMETER[\""); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); add_srs_wkt (p, 12, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); - add_srs_wkt (p, 13, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]"); - p = add_epsg_def (filter, first, last, 32145, "epsg", 32145, - "NAD83 / Vermont"); + ")\",NORTH],AUTHORITY[\"EPSG\",\"26898\"]]"); + p = add_epsg_def (filter, first, last, 26899, "epsg", 26899, + "NAD83(CSRS) / MTM zone 2"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); + "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, - "=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort"); + "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, - "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); + "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, - "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); + "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, - "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, - "EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, - "RAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central"); + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, - "_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996428"); + "in\",0],PARAMETER[\"central_meridian\",-56],PARAMETER[\""); add_srs_wkt (p, 9, - "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, - "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); add_srs_wkt (p, 12, - "G\",\"32145\"]]"); - p = add_epsg_def (filter, first, last, 32146, "epsg", 32146, - "NAD83 / Virginia North"); + ")\",NORTH],AUTHORITY[\"EPSG\",\"26899\"]]"); + p = add_epsg_def (filter, first, last, 26901, "epsg", 26901, + "NAD83 / UTM zone 1N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); - add_proj4text (p, 1, - ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); - add_proj4text (p, 2, - "datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=1 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM"); + "l_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\""); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); - add_srs_wkt (p, 13, - "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]"); - p = add_epsg_def (filter, first, last, 32147, "epsg", 32147, - "NAD83 / Virginia South"); + "TY[\"EPSG\",\"26901\"]]"); + p = add_epsg_def (filter, first, last, 26902, "epsg", 26902, + "NAD83 / UTM zone 2N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); - add_proj4text (p, 1, - "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); - add_proj4text (p, 2, - "y_0=1000000 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=2 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "666666667],PARAMETER[\"standard_parallel_2\",36.76666666"); + "l_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "666667],PARAMETER[\"latitude_of_origin\",36.333333333333"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "lse_easting\",3500000],PARAMETER[\"false_northing\",1000"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); - add_srs_wkt (p, 13, - "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3214"); - add_srs_wkt (p, 14, - "7\"]]"); - p = add_epsg_def (filter, first, last, 32148, "epsg", 32148, - "NAD83 / Washington North"); + "TY[\"EPSG\",\"26902\"]]"); + p = add_epsg_def (filter, first, last, 26903, "epsg", 26903, + "NAD83 / UTM zone 3N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); - add_proj4text (p, 1, - " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +datum=NAD"); - add_proj4text (p, 2, - "83 +units=m +no_defs"); + "+proj=utm +zone=3 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "3333333333],PARAMETER[\"standard_parallel_2\",47.5],PARA"); + "l_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "METER[\"latitude_of_origin\",47],PARAMETER[\"central_mer"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "idian\",-120.8333333333333],PARAMETER[\"false_easting\","); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); - add_srs_wkt (p, 13, - "\",NORTH],AUTHORITY[\"EPSG\",\"32148\"]]"); - p = add_epsg_def (filter, first, last, 32149, "epsg", 32149, - "NAD83 / Washington South"); + "TY[\"EPSG\",\"26903\"]]"); + p = add_epsg_def (filter, first, last, 26904, "epsg", 26904, + "NAD83 / UTM zone 4N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); - add_proj4text (p, 1, - "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); - add_proj4text (p, 2, - "y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=4 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT"); + "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "3333333334],PARAMETER[\"standard_parallel_2\",45.8333333"); + "l_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "3333334],PARAMETER[\"latitude_of_origin\",45.33333333333"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "334],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); - add_srs_wkt (p, 13, - ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]"); - p = add_epsg_def (filter, first, last, 32150, "epsg", 32150, - "NAD83 / West Virginia North"); + "TY[\"EPSG\",\"26904\"]]"); + p = add_epsg_def (filter, first, last, 26905, "epsg", 26905, + "NAD83 / UTM zone 5N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); - add_proj4text (p, 1, - "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=5 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.2"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "5],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"lat"); + "l_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "itude_of_origin\",38.5],PARAMETER[\"central_meridian\",-"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); - add_srs_wkt (p, 13, - "EPSG\",\"32150\"]]"); - p = add_epsg_def (filter, first, last, 32151, "epsg", 32151, - "NAD83 / West Virginia South"); + "TY[\"EPSG\",\"26905\"]]"); + p = add_epsg_def (filter, first, last, 26906, "epsg", 26906, + "NAD83 / UTM zone 6N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); - add_proj4text (p, 1, - "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "+proj=utm +zone=6 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\","); + "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "8333333333333],PARAMETER[\"standard_parallel_2\",37.4833"); + "l_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "3333333333],PARAMETER[\"latitude_of_origin\",37],PARAMET"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "ER[\"central_meridian\",-81],PARAMETER[\"false_easting\""); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); - add_srs_wkt (p, 13, - "Y\",NORTH],AUTHORITY[\"EPSG\",\"32151\"]]"); - p = add_epsg_def (filter, first, last, 32152, "epsg", 32152, - "NAD83 / Wisconsin North"); + "TY[\"EPSG\",\"26906\"]]"); + p = add_epsg_def (filter, first, last, 26907, "epsg", 26907, + "NAD83 / UTM zone 7N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); - add_proj4text (p, 1, - "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); - add_proj4text (p, 2, - "=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=7 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666"); + "l_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); - add_srs_wkt (p, 13, - "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]"); - p = add_epsg_def (filter, first, last, 32153, "epsg", 32153, - "NAD83 / Wisconsin Central"); + "TY[\"EPSG\",\"26907\"]]"); + p = add_epsg_def (filter, first, last, 26908, "epsg", 26908, + "NAD83 / UTM zone 8N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); - add_proj4text (p, 1, - "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); - add_proj4text (p, 2, - "+no_defs"); + "+proj=utm +zone=8 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA"); + "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5]"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - ",PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"la"); + "l_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "titude_of_origin\",43.83333333333334],PARAMETER[\"centra"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "l_meridian\",-90],PARAMETER[\"false_easting\",600000],PA"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); - add_srs_wkt (p, 13, - "AUTHORITY[\"EPSG\",\"32153\"]]"); - p = add_epsg_def (filter, first, last, 32154, "epsg", 32154, - "NAD83 / Wisconsin South"); + "TY[\"EPSG\",\"26908\"]]"); + p = add_epsg_def (filter, first, last, 26909, "epsg", 26909, + "NAD83 / UTM zone 9N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); - add_proj4text (p, 1, - "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83"); - add_proj4text (p, 2, - " +units=m +no_defs"); + "+proj=utm +zone=9 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU"); + "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333"); + "l_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER["); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "\"central_meridian\",-90],PARAMETER[\"false_easting\",60"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); - add_srs_wkt (p, 13, - ",NORTH],AUTHORITY[\"EPSG\",\"32154\"]]"); - p = add_epsg_def (filter, first, last, 32155, "epsg", 32155, - "NAD83 / Wyoming East"); + "TY[\"EPSG\",\"26909\"]]"); + p = add_epsg_def (filter, first, last, 26910, "epsg", 26910, + "NAD83 / UTM zone 10N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); - add_proj4text (p, 1, - "999375 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=10 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, @@ -1377,93 +1341,83 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "tral_meridian\",-105.1666666666667],PARAMETER[\"scale_fa"); + "l_meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "ctor\",0.9999375],PARAMETER[\"false_easting\",200000],PA"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "AUTHORITY[\"EPSG\",\"32155\"]]"); - p = add_epsg_def (filter, first, last, 32156, "epsg", 32156, - "NAD83 / Wyoming East Central"); + "TY[\"EPSG\",\"26910\"]]"); + p = add_epsg_def (filter, first, last, 26911, "epsg", 26911, + "NAD83 / UTM zone 11N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); - add_proj4text (p, 1, - "999375 +x_0=400000 +y_0=100000 +datum=NAD83 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\""); + "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-107.3333333333333],PARAMETER["); + "l_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\","); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "400000],PARAMETER[\"false_northing\",100000],UNIT[\"metr"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]"); - p = add_epsg_def (filter, first, last, 32157, "epsg", 32157, - "NAD83 / Wyoming West Central"); + "TY[\"EPSG\",\"26911\"]]"); + p = add_epsg_def (filter, first, last, 26912, "epsg", 26912, + "NAD83 / UTM zone 12N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); - add_proj4text (p, 1, - "=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=12 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\""); + "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ETER[\"central_meridian\",-108.75],PARAMETER[\"scale_fac"); + "l_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "tor\",0.9999375],PARAMETER[\"false_easting\",600000],PAR"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "UTHORITY[\"EPSG\",\"32157\"]]"); - p = add_epsg_def (filter, first, last, 32158, "epsg", 32158, - "NAD83 / Wyoming West"); + "TY[\"EPSG\",\"26912\"]]"); + p = add_epsg_def (filter, first, last, 26913, "epsg", 26913, + "NAD83 / UTM zone 13N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); - add_proj4text (p, 1, - "999375 +x_0=800000 +y_0=100000 +datum=NAD83 +units=m +no"); - add_proj4text (p, 2, - "_defs"); + "+proj=utm +zone=13 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, @@ -1477,1983 +1431,2067 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "tral_meridian\",-110.0833333333333],PARAMETER[\"scale_fa"); + "l_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, - "ctor\",0.9999375],PARAMETER[\"false_easting\",800000],PA"); + "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, - "RAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTH"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, - "RTH],AUTHORITY[\"EPSG\",\"32158\"]]"); - p = add_epsg_def (filter, first, last, 32161, "epsg", 32161, - "NAD83 / Puerto Rico & Virgin Is."); + "TY[\"EPSG\",\"26913\"]]"); + p = add_epsg_def (filter, first, last, 26914, "epsg", 26914, + "NAD83 / UTM zone 14N"); add_proj4text (p, 0, - "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); - add_proj4text (p, 1, - "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); - add_proj4text (p, 2, - "x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=14 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD"); + "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - ",18.43333333333333],PARAMETER[\"standard_parallel_2\",18"); + "l_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ".03333333333333],PARAMETER[\"latitude_of_origin\",17.833"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "33333333333],PARAMETER[\"central_meridian\",-66.43333333"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "333334],PARAMETER[\"false_easting\",200000],PARAMETER[\""); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP"); - add_srs_wkt (p, 13, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); - add_srs_wkt (p, 14, - "RITY[\"EPSG\",\"32161\"]]"); - p = add_epsg_def (filter, first, last, 32164, "epsg", 32164, - "NAD83 / BLM 14N (ftUS)"); + "Y[\"EPSG\",\"26914\"]]"); + p = add_epsg_def (filter, first, last, 26915, "epsg", 26915, + "NAD83 / UTM zone 15N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); - add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=15 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]"); + "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32164\"]]"); - p = add_epsg_def (filter, first, last, 32165, "epsg", 32165, - "NAD83 / BLM 15N (ftUS)"); + "Y[\"EPSG\",\"26915\"]]"); + p = add_epsg_def (filter, first, last, 26916, "epsg", 26916, + "NAD83 / UTM zone 16N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); - add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=16 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]"); + "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32165\"]]"); - p = add_epsg_def (filter, first, last, 32166, "epsg", 32166, - "NAD83 / BLM 16N (ftUS)"); + "Y[\"EPSG\",\"26916\"]]"); + p = add_epsg_def (filter, first, last, 26917, "epsg", 26917, + "NAD83 / UTM zone 17N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); - add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=17 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]"); + "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32166\"]]"); - p = add_epsg_def (filter, first, last, 32167, "epsg", 32167, - "NAD83 / BLM 17N (ftUS)"); + "Y[\"EPSG\",\"26917\"]]"); + p = add_epsg_def (filter, first, last, 26918, "epsg", 26918, + "NAD83 / UTM zone 18N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); - add_proj4text (p, 1, - "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + "+proj=utm +zone=18 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]"); + "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32167\"]]"); - p = add_epsg_def (filter, first, last, 32180, "epsg", 32180, - "NAD83 / SCoPQ zone 2 (deprecated)"); + "Y[\"EPSG\",\"26918\"]]"); + p = add_epsg_def (filter, first, last, 26919, "epsg", 26919, + "NAD83 / UTM zone 19N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); - add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA"); + "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact"); + "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "RITY[\"EPSG\",\"32180\"]]"); - p = add_epsg_def (filter, first, last, 32181, "epsg", 32181, - "NAD83 / MTM zone 1"); + "Y[\"EPSG\",\"26919\"]]"); + p = add_epsg_def (filter, first, last, 26920, "epsg", 26920, + "NAD83 / UTM zone 20N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=20 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-53],PARAMETER[\"scale_factor\",0.9999],PAR"); + "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "G\",\"32181\"]]"); - p = add_epsg_def (filter, first, last, 32182, "epsg", 32182, - "NAD83 / MTM zone 2"); + "Y[\"EPSG\",\"26920\"]]"); + p = add_epsg_def (filter, first, last, 26921, "epsg", 26921, + "NAD83 / UTM zone 21N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); - add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=21 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-56],PARAMETER[\"scale_factor\",0.9999],PAR"); + "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "G\",\"32182\"]]"); - p = add_epsg_def (filter, first, last, 32183, "epsg", 32183, - "NAD83 / MTM zone 3"); + "Y[\"EPSG\",\"26921\"]]"); + p = add_epsg_def (filter, first, last, 26922, "epsg", 26922, + "NAD83 / UTM zone 22N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); - add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=22 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999],P"); + "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "PSG\",\"32183\"]]"); - p = add_epsg_def (filter, first, last, 32184, "epsg", 32184, - "NAD83 / MTM zone 4"); + "Y[\"EPSG\",\"26922\"]]"); + p = add_epsg_def (filter, first, last, 26923, "epsg", 26923, + "NAD83 / UTM zone 23N"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); - add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "+proj=utm +zone=23 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - "l_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999],P"); + "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, - "PSG\",\"32184\"]]"); - p = add_epsg_def (filter, first, last, 32185, "epsg", 32185, - "NAD83 / MTM zone 5"); + "Y[\"EPSG\",\"26923\"]]"); + p = add_epsg_def (filter, first, last, 26929, "epsg", 26929, + "NAD83 / Alabama East"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "9996 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999],P"); + "tral_meridian\",-85.83333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + "ctor\",0.99996],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, - "PSG\",\"32185\"]]"); - p = add_epsg_def (filter, first, last, 32186, "epsg", 32186, - "NAD83 / MTM zone 6"); + "HORITY[\"EPSG\",\"26929\"]]"); + p = add_epsg_def (filter, first, last, 26930, "epsg", 26930, + "NAD83 / Alabama West"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "00000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, - "l_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999],P"); + "al_meridian\",-87.5],PARAMETER[\"scale_factor\",0.999933"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + "333],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"32186\"]]"); - p = add_epsg_def (filter, first, last, 32187, "epsg", 32187, - "NAD83 / MTM zone 7"); + "PSG\",\"26930\"]]"); + p = add_epsg_def (filter, first, last, 26931, "epsg", 26931, + "NAD83 / Alaska zone 1"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); + "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, - "+y_0=0 +datum=NAD83 +units=m +no_defs"); + "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); + add_proj4text (p, 2, + "_uoff +gamma=323.1301023611111 +datum=NAD83 +units=m +no"); + add_proj4text (p, 3, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Merc"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "ator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER[\""); add_srs_wkt (p, 8, - "l_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999],P"); + "longitude_of_center\",-133.6666666666667],PARAMETER[\"az"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + "imuth\",323.1301023611111],PARAMETER[\"rectified_grid_an"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "gle\",323.1301023611111],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "99],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal"); add_srs_wkt (p, 12, - "PSG\",\"32187\"]]"); - p = add_epsg_def (filter, first, last, 32188, "epsg", 32188, - "NAD83 / MTM zone 8"); + "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); + add_srs_wkt (p, 14, + "ITY[\"EPSG\",\"26931\"]]"); + p = add_epsg_def (filter, first, last, 26932, "epsg", 26932, + "NAD83 / Alaska zone 2"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],P"); + "tral_meridian\",-142],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "PSG\",\"32188\"]]"); - p = add_epsg_def (filter, first, last, 32189, "epsg", 32189, - "NAD83 / MTM zone 9"); + ",\"26932\"]]"); + p = add_epsg_def (filter, first, last, 26933, "epsg", 26933, + "NAD83 / Alaska zone 3"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N"); + "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],P"); + "tral_meridian\",-146],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "PSG\",\"32189\"]]"); - p = add_epsg_def (filter, first, last, 32190, "epsg", 32190, - "NAD83 / MTM zone 10"); + ",\"26933\"]]"); + p = add_epsg_def (filter, first, last, 26934, "epsg", 26934, + "NAD83 / Alaska zone 4"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P"); + "tral_meridian\",-150],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "PSG\",\"32190\"]]"); - p = add_epsg_def (filter, first, last, 32191, "epsg", 32191, - "NAD83 / MTM zone 11"); + ",\"26934\"]]"); + p = add_epsg_def (filter, first, last, 26935, "epsg", 26935, + "NAD83 / Alaska zone 5"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); + "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P"); + "tral_meridian\",-154],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "ITY[\"EPSG\",\"32191\"]]"); - p = add_epsg_def (filter, first, last, 32192, "epsg", 32192, - "NAD83 / MTM zone 12"); + ",\"26935\"]]"); + p = add_epsg_def (filter, first, last, 26936, "epsg", 26936, + "NAD83 / Alaska zone 6"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR"); + "tral_meridian\",-158],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32192\"]]"); - p = add_epsg_def (filter, first, last, 32193, "epsg", 32193, - "NAD83 / MTM zone 13"); + ",\"26936\"]]"); + p = add_epsg_def (filter, first, last, 26937, "epsg", 26937, + "NAD83 / Alaska zone 7"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR"); + "tral_meridian\",-162],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32193\"]]"); - p = add_epsg_def (filter, first, last, 32194, "epsg", 32194, - "NAD83 / MTM zone 14"); + ",\"26937\"]]"); + p = add_epsg_def (filter, first, last, 26938, "epsg", 26938, + "NAD83 / Alaska zone 8"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR"); + "tral_meridian\",-166],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32194\"]]"); - p = add_epsg_def (filter, first, last, 32195, "epsg", 32195, - "NAD83 / MTM zone 15"); + ",\"26938\"]]"); + p = add_epsg_def (filter, first, last, 26939, "epsg", 26939, + "NAD83 / Alaska zone 9"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); + "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, - "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR"); + "tral_meridian\",-170],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32195\"]]"); - p = add_epsg_def (filter, first, last, 32196, "epsg", 32196, - "NAD83 / MTM zone 16"); + ",\"26939\"]]"); + p = add_epsg_def (filter, first, last, 26940, "epsg", 26940, + "NAD83 / Alaska zone 10"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); + "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333"); add_srs_wkt (p, 8, - "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR"); + "333333334],PARAMETER[\"standard_parallel_2\",51.83333333"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + "333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\""); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "central_meridian\",-176],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32196\"]]"); - p = add_epsg_def (filter, first, last, 32197, "epsg", 32197, - "NAD83 / MTM zone 17"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"26940\"]]"); + p = add_epsg_def (filter, first, last, 26941, "epsg", 26941, + "NAD83 / California zone 1"); add_proj4text (p, 0, - "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); + "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, - "_0=0 +datum=NAD83 +units=m +no_defs"); + "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +datu"); + add_proj4text (p, 2, + "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\""); + "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66"); add_srs_wkt (p, 8, - "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR"); + "666666666666],PARAMETER[\"standard_parallel_2\",40],PARA"); add_srs_wkt (p, 9, - "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); add_srs_wkt (p, 10, - "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + "R[\"central_meridian\",-122],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me"); add_srs_wkt (p, 12, - "Y[\"EPSG\",\"32197\"]]"); - p = add_epsg_def (filter, first, last, 32198, "epsg", 32198, - "NAD83 / Quebec Lambert"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 13, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]"); + p = add_epsg_def (filter, first, last, 26942, "epsg", 26942, + "NAD83 / California zone 2"); add_proj4text (p, 0, - "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); + "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, - "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); + "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); + add_proj4text (p, 2, + "_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM"); + "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83"); add_srs_wkt (p, 8, - "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o"); + "333333333334],PARAMETER[\"standard_parallel_2\",38.33333"); add_srs_wkt (p, 9, - "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR"); + "333333334],PARAMETER[\"latitude_of_origin\",37.666666666"); add_srs_wkt (p, 10, - "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + "66666],PARAMETER[\"central_meridian\",-122],PARAMETER[\""); add_srs_wkt (p, 11, - ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "false_easting\",2000000],PARAMETER[\"false_northing\",50"); add_srs_wkt (p, 12, - "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198"); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, - "\"]]"); - p = add_epsg_def (filter, first, last, 32199, "epsg", 32199, - "NAD83 / Louisiana Offshore"); + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); + add_srs_wkt (p, 14, + "42\"]]"); + p = add_epsg_def (filter, first, last, 26943, "epsg", 26943, + "NAD83 / California zone 3"); add_proj4text (p, 0, - "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, - "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +"); + "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, - "y_0=0 +datum=NAD83 +units=m +no_defs"); + "datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D"); + "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43"); add_srs_wkt (p, 8, - "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666"); + "333333333333],PARAMETER[\"standard_parallel_2\",37.06666"); add_srs_wkt (p, 9, - "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM"); + "666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAME"); add_srs_wkt (p, 10, - "ETER[\"central_meridian\",-91.33333333333333],PARAMETER["); + "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, - "\"false_easting\",1000000],PARAMETER[\"false_northing\","); + "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 12, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, - "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\""); - add_srs_wkt (p, 14, - "]]"); - p = add_epsg_def (filter, first, last, 32201, "epsg", 32201, - "WGS 72 / UTM zone 1N"); + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]"); + p = add_epsg_def (filter, first, last, 26944, "epsg", 26944, + "NAD83 / California zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +datum=NAD83 +uni"); + add_proj4text (p, 2, + "ts=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25"); add_srs_wkt (p, 8, - "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lati"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "tude_of_origin\",35.33333333333334],PARAMETER[\"central_"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "meridian\",-119],PARAMETER[\"false_easting\",2000000],PA"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "RAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "32201\"]]"); - p = add_epsg_def (filter, first, last, 32202, "epsg", 32202, - "WGS 72 / UTM zone 2N"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"26944\"]]"); + p = add_epsg_def (filter, first, last, 26945, "epsg", 26945, + "NAD83 / California zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +da"); + add_proj4text (p, 2, + "tum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46"); add_srs_wkt (p, 8, - "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "666666666667],PARAMETER[\"standard_parallel_2\",34.03333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAME"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "TER[\"central_meridian\",-118],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 12, - "32202\"]]"); - p = add_epsg_def (filter, first, last, 32203, "epsg", 32203, - "WGS 72 / UTM zone 3N"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]"); + p = add_epsg_def (filter, first, last, 26946, "epsg", 26946, + "NAD83 / California zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); + add_proj4text (p, 2, + " +y_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88"); add_srs_wkt (p, 8, - "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333333333],PARAMETER[\"standard_parallel_2\",32.78333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333333],PARAMETER[\"latitude_of_origin\",32.166666666"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "66666],PARAMETER[\"central_meridian\",-116.25],PARAMETER"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "32203\"]]"); - p = add_epsg_def (filter, first, last, 32204, "epsg", 32204, - "WGS 72 / UTM zone 4N"); + ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 13, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "26946\"]]"); + p = add_epsg_def (filter, first, last, 26948, "epsg", 26948, + "NAD83 / Arizona East"); add_proj4text (p, 0, - "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 8, - "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "or\",0.9999],PARAMETER[\"false_easting\",213360],PARAMET"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "32204\"]]"); - p = add_epsg_def (filter, first, last, 32205, "epsg", 32205, - "WGS 72 / UTM zone 5N"); + "RITY[\"EPSG\",\"26948\"]]"); + p = add_epsg_def (filter, first, last, 26949, "epsg", 26949, + "NAD83 / Arizona Central"); add_proj4text (p, 0, - "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 8, - "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "central_meridian\",-111.9166666666667],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "_factor\",0.9999],PARAMETER[\"false_easting\",213360],PA"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "32205\"]]"); - p = add_epsg_def (filter, first, last, 32206, "epsg", 32206, - "WGS 72 / UTM zone 6N"); + "AUTHORITY[\"EPSG\",\"26949\"]]"); + p = add_epsg_def (filter, first, last, 26950, "epsg", 26950, + "NAD83 / Arizona West"); add_proj4text (p, 0, - "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 8, - "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "33333],PARAMETER[\"false_easting\",213360],PARAMETER[\"f"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, - "32206\"]]"); - p = add_epsg_def (filter, first, last, 32207, "epsg", 32207, - "WGS 72 / UTM zone 7N"); + "EPSG\",\"26950\"]]"); + p = add_epsg_def (filter, first, last, 26951, "epsg", 26951, + "NAD83 / Arkansas North"); add_proj4text (p, 0, - "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333"); add_srs_wkt (p, 8, - "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333333],PARAMETER[\"standard_parallel_2\",34.93333333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333],PARAMETER[\"latitude_of_origin\",34.333333333333"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, - "32207\"]]"); - p = add_epsg_def (filter, first, last, 32208, "epsg", 32208, - "WGS 72 / UTM zone 8N"); + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]"); + p = add_epsg_def (filter, first, last, 26952, "epsg", 26952, + "NAD83 / Arkansas South"); add_proj4text (p, 0, - "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +datu"); + add_proj4text (p, 2, + "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666"); add_srs_wkt (p, 8, - "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "[\"central_meridian\",-92],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); add_srs_wkt (p, 12, - "32208\"]]"); - p = add_epsg_def (filter, first, last, 32209, "epsg", 32209, - "WGS 72 / UTM zone 9N"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 13, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26952\"]]"); + p = add_epsg_def (filter, first, last, 26953, "epsg", 26953, + "NAD83 / Colorado North"); add_proj4text (p, 0, - "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, - "4,0.2263 +units=m +no_defs"); + "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); + add_proj4text (p, 2, + "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333"); add_srs_wkt (p, 8, - "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333333],PARAMETER[\"standard_parallel_2\",39.71666666"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "666667],PARAMETER[\"latitude_of_origin\",39.333333333333"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "32209\"]]"); - p = add_epsg_def (filter, first, last, 32210, "epsg", 32210, - "WGS 72 / UTM zone 10N"); + ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + add_srs_wkt (p, 13, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"26953\"]]"); + p = add_epsg_def (filter, first, last, 26954, "epsg", 26954, + "NAD83 / Colorado Central"); add_proj4text (p, 0, - "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +da"); + add_proj4text (p, 2, + "tum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],"); add_srs_wkt (p, 8, - ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"lat"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "itude_of_origin\",37.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8"); add_srs_wkt (p, 11, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me"); add_srs_wkt (p, 12, - "\"32210\"]]"); - p = add_epsg_def (filter, first, last, 32211, "epsg", 32211, - "WGS 72 / UTM zone 11N"); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 13, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]"); + p = add_epsg_def (filter, first, last, 26955, "epsg", 26955, + "NAD83 / Colorado South"); add_proj4text (p, 0, - "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); + add_proj4text (p, 2, + "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333"); add_srs_wkt (p, 8, - ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "333333333],PARAMETER[\"standard_parallel_2\",37.23333333"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "333333],PARAMETER[\"latitude_of_origin\",36.666666666666"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 11, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, - "\"32211\"]]"); - p = add_epsg_def (filter, first, last, 32212, "epsg", 32212, - "WGS 72 / UTM zone 12N"); + ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + add_srs_wkt (p, 13, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"26955\"]]"); + p = add_epsg_def (filter, first, last, 26956, "epsg", 26956, + "NAD83 / Connecticut"); add_proj4text (p, 0, - "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); + add_proj4text (p, 2, + "00.3048 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.86666666"); add_srs_wkt (p, 8, - ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMETE"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "R[\"latitude_of_origin\",40.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "central_meridian\",-72.75],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + "04800.6096],PARAMETER[\"false_northing\",152400.3048],UN"); add_srs_wkt (p, 12, - "\"32212\"]]"); - p = add_epsg_def (filter, first, last, 32213, "epsg", 32213, - "WGS 72 / UTM zone 13N"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]"); + p = add_epsg_def (filter, first, last, 26957, "epsg", 26957, + "NAD83 / Delaware"); add_proj4text (p, 0, - "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "995 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"central"); add_srs_wkt (p, 8, - ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "_meridian\",-75.41666666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + "\",0.999995],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "\"32213\"]]"); - p = add_epsg_def (filter, first, last, 32214, "epsg", 32214, - "WGS 72 / UTM zone 14N"); + "RITY[\"EPSG\",\"26957\"]]"); + p = add_epsg_def (filter, first, last, 26958, "epsg", 26958, + "NAD83 / Florida East"); add_proj4text (p, 0, - "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); add_srs_wkt (p, 8, - ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "RAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "32214\"]]"); - p = add_epsg_def (filter, first, last, 32215, "epsg", 32215, - "WGS 72 / UTM zone 15N"); + "AUTHORITY[\"EPSG\",\"26958\"]]"); + p = add_epsg_def (filter, first, last, 26959, "epsg", 26959, + "NAD83 / Florida West"); add_proj4text (p, 0, - "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); add_srs_wkt (p, 8, - ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "RAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, - "32215\"]]"); - p = add_epsg_def (filter, first, last, 32216, "epsg", 32216, - "WGS 72 / UTM zone 16N"); + "AUTHORITY[\"EPSG\",\"26959\"]]"); + p = add_epsg_def (filter, first, last, 26960, "epsg", 26960, + "NAD83 / Florida North"); add_proj4text (p, 0, - "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],PAR"); add_srs_wkt (p, 8, - ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "AMETER[\"standard_parallel_2\",29.58333333333333],PARAME"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "TER[\"latitude_of_origin\",29],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ian\",-84.5],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "32216\"]]"); - p = add_epsg_def (filter, first, last, 32217, "epsg", 32217, - "WGS 72 / UTM zone 17N"); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"26960\"]]"); + p = add_epsg_def (filter, first, last, 26961, "epsg", 26961, + "NAD83 / Hawaii zone 1"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "999966667 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_d"); + add_proj4text (p, 2, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",18.83333333333333],"); add_srs_wkt (p, 8, - ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.999966667],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, - "32217\"]]"); - p = add_epsg_def (filter, first, last, 32218, "epsg", 32218, - "WGS 72 / UTM zone 18N"); + "RTH],AUTHORITY[\"EPSG\",\"26961\"]]"); + p = add_epsg_def (filter, first, last, 26962, "epsg", 26962, + "NAD83 / Hawaii zone 2"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666667 +k=0.999966667 +x_0=500000 +y_0=0 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",20.33333333333333],"); add_srs_wkt (p, 8, - ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-156.6666666666667],PARAM"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, - "32218\"]]"); - p = add_epsg_def (filter, first, last, 32219, "epsg", 32219, - "WGS 72 / UTM zone 19N"); + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]"); + p = add_epsg_def (filter, first, last, 26963, "epsg", 26963, + "NAD83 / Hawaii zone 3"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",21.16666666666667],"); add_srs_wkt (p, 8, - ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "actor\",0.99999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, - "32219\"]]"); - p = add_epsg_def (filter, first, last, 32220, "epsg", 32220, - "WGS 72 / UTM zone 20N"); + "UTHORITY[\"EPSG\",\"26963\"]]"); + p = add_epsg_def (filter, first, last, 26964, "epsg", 26964, + "NAD83 / Hawaii zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",21.83333333333333],"); add_srs_wkt (p, 8, - ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, - "32220\"]]"); - p = add_epsg_def (filter, first, last, 32221, "epsg", 32221, - "WGS 72 / UTM zone 21N"); + ",AUTHORITY[\"EPSG\",\"26964\"]]"); + p = add_epsg_def (filter, first, last, 26965, "epsg", 26965, + "NAD83 / Hawaii zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666667 +k=1 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no"); + add_proj4text (p, 2, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",21.66666666666667],"); add_srs_wkt (p, 8, - ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-160.1666666666667],PARAM"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "32221\"]]"); - p = add_epsg_def (filter, first, last, 32222, "epsg", 32222, - "WGS 72 / UTM zone 22N"); + "NORTH],AUTHORITY[\"EPSG\",\"26965\"]]"); + p = add_epsg_def (filter, first, last, 26966, "epsg", 26966, + "NAD83 / Georgia East"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "9 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, - ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "al_meridian\",-82.16666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "32222\"]]"); - p = add_epsg_def (filter, first, last, 32223, "epsg", 32223, - "WGS 72 / UTM zone 23N"); + "RITY[\"EPSG\",\"26966\"]]"); + p = add_epsg_def (filter, first, last, 26967, "epsg", 26967, + "NAD83 / Georgia West"); add_proj4text (p, 0, - "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "9 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, - ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "al_meridian\",-84.16666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, - "32223\"]]"); - p = add_epsg_def (filter, first, last, 32224, "epsg", 32224, - "WGS 72 / UTM zone 24N"); + "RITY[\"EPSG\",\"26967\"]]"); + p = add_epsg_def (filter, first, last, 26968, "epsg", 26968, + "NAD83 / Idaho East"); add_proj4text (p, 0, - "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +datum=N"); + add_proj4text (p, 2, + "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 8, - ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "32224\"]]"); - p = add_epsg_def (filter, first, last, 32225, "epsg", 32225, - "WGS 72 / UTM zone 25N"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]"); + p = add_epsg_def (filter, first, last, 26969, "epsg", 26969, + "NAD83 / Idaho Central"); add_proj4text (p, 0, - "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99473679999999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",41.66666666666666],"); add_srs_wkt (p, 8, - ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "actor\",0.999947368],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, - "32225\"]]"); - p = add_epsg_def (filter, first, last, 32226, "epsg", 32226, - "WGS 72 / UTM zone 26N"); + "H],AUTHORITY[\"EPSG\",\"26969\"]]"); + p = add_epsg_def (filter, first, last, 26970, "epsg", 26970, + "NAD83 / Idaho West"); add_proj4text (p, 0, - "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + ".999933333 +x_0=800000 +y_0=0 +datum=NAD83 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 8, - ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "factor\",0.999933333],PARAMETER[\"false_easting\",800000"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, - "32226\"]]"); - p = add_epsg_def (filter, first, last, 32227, "epsg", 32227, - "WGS 72 / UTM zone 27N"); + "TH],AUTHORITY[\"EPSG\",\"26970\"]]"); + p = add_epsg_def (filter, first, last, 26971, "epsg", 26971, + "NAD83 / Illinois East"); add_proj4text (p, 0, - "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +datum=N"); + add_proj4text (p, 2, + "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); add_srs_wkt (p, 8, - ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-88.33333333333333],PARAM"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ETER[\"scale_factor\",0.999975],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, - "32227\"]]"); - p = add_epsg_def (filter, first, last, 32228, "epsg", 32228, - "WGS 72 / UTM zone 28N"); + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26971\"]]"); + p = add_epsg_def (filter, first, last, 26972, "epsg", 26972, + "NAD83 / Illinois West"); add_proj4text (p, 0, - "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666667 +k=0.999941177 +x_0=700000 +y_0=0 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); add_srs_wkt (p, 8, - ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-90.16666666666667],PARAM"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, - "32228\"]]"); - p = add_epsg_def (filter, first, last, 32229, "epsg", 32229, - "WGS 72 / UTM zone 29N"); + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]"); + p = add_epsg_def (filter, first, last, 26973, "epsg", 26973, + "NAD83 / Indiana East"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99966667 +x_0=100000 +y_0=250000 +datum=NAD83 +units=m +"); + add_proj4text (p, 2, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, - ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "tral_meridian\",-85.66666666666667],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ctor\",0.999966667],PARAMETER[\"false_easting\",100000],"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "32229\"]]"); - p = add_epsg_def (filter, first, last, 32230, "epsg", 32230, - "WGS 72 / UTM zone 30N"); + "NORTH],AUTHORITY[\"EPSG\",\"26973\"]]"); + p = add_epsg_def (filter, first, last, 26974, "epsg", 26974, + "NAD83 / Indiana West"); add_proj4text (p, 0, - "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99966667 +x_0=900000 +y_0=250000 +datum=NAD83 +units=m +"); + add_proj4text (p, 2, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, - ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "tral_meridian\",-87.08333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ctor\",0.999966667],PARAMETER[\"false_easting\",900000],"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "32230\"]]"); - p = add_epsg_def (filter, first, last, 32231, "epsg", 32231, - "WGS 72 / UTM zone 31N"); + "NORTH],AUTHORITY[\"EPSG\",\"26974\"]]"); + p = add_epsg_def (filter, first, last, 26975, "epsg", 26975, + "NAD83 / Iowa North"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); + add_proj4text (p, 2, + "datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.266666666"); add_srs_wkt (p, 8, - ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "66667],PARAMETER[\"standard_parallel_2\",42.066666666666"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "67],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"c"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "entral_meridian\",-93.5],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); add_srs_wkt (p, 12, - "2231\"]]"); - p = add_epsg_def (filter, first, last, 32232, "epsg", 32232, - "WGS 72 / UTM zone 32N"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 13, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]"); + p = add_epsg_def (filter, first, last, 26976, "epsg", 26976, + "NAD83 / Iowa South"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); add_srs_wkt (p, 8, - ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "33333],PARAMETER[\"standard_parallel_2\",40.616666666666"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + "67],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); add_srs_wkt (p, 10, - "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + "tral_meridian\",-93.5],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, - "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "2232\"]]"); - p = add_epsg_def (filter, first, last, 32233, "epsg", 32233, - "WGS 72 / UTM zone 33N"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"26976\"]]"); + p = add_epsg_def (filter, first, last, 26977, "epsg", 26977, + "NAD83 / Kansas North"); add_proj4text (p, 0, - "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333333"); add_srs_wkt (p, 8, - ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333],PARAMETER[\"standard_parallel_2\",38.71666666666"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "667],PARAMETER[\"latitude_of_origin\",38.33333333333334]"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + ",PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_e"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "asting\",400000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, - "32233\"]]"); - p = add_epsg_def (filter, first, last, 32234, "epsg", 32234, - "WGS 72 / UTM zone 34N"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 13, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]"); + p = add_epsg_def (filter, first, last, 26978, "epsg", 26978, + "NAD83 / Kansas South"); add_proj4text (p, 0, - "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); + add_proj4text (p, 2, + "_0=400000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666666"); add_srs_wkt (p, 8, - ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "666667],PARAMETER[\"standard_parallel_2\",37.26666666666"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "667],PARAMETER[\"latitude_of_origin\",36.66666666666666]"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "_easting\",400000],PARAMETER[\"false_northing\",400000],"); add_srs_wkt (p, 12, - "32234\"]]"); - p = add_epsg_def (filter, first, last, 32235, "epsg", 32235, - "WGS 72 / UTM zone 35N"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]"); + p = add_epsg_def (filter, first, last, 26979, "epsg", 26979, + "NAD83 / Kentucky North (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum="); + add_proj4text (p, 2, + "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, - ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "_1\",37.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + ",37.96666666666667],PARAMETER[\"latitude_of_origin\",37."); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, - "32235\"]]"); - p = add_epsg_def (filter, first, last, 32236, "epsg", 32236, - "WGS 72 / UTM zone 36N"); + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]"); + p = add_epsg_def (filter, first, last, 26980, "epsg", 26980, + "NAD83 / Kentucky South"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); + add_proj4text (p, 2, + "y_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333"); add_srs_wkt (p, 8, - ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333333],PARAMETER[\"standard_parallel_2\",36.73333333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "alse_easting\",500000],PARAMETER[\"false_northing\",5000"); add_srs_wkt (p, 12, - "32236\"]]"); + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 13, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980"); + add_srs_wkt (p, 14, + "\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_38.c b/src/spatialite/src/srsinit/epsg_inlined_38.c index 8d0eab0..431a1b4 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_38.c +++ b/src/spatialite/src/srsinit/epsg_inlined_38.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3238 +52,3516 @@ initialize_epsg_38 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 32237, "epsg", 32237, - "WGS 72 / UTM zone 37N"); + p = add_epsg_def (filter, first, last, 26981, "epsg", 26981, + "NAD83 / Louisiana North"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +datum="); + add_proj4text (p, 2, + "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666"); add_srs_wkt (p, 8, - ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, - "32237\"]]"); - p = add_epsg_def (filter, first, last, 32238, "epsg", 32238, - "WGS 72 / UTM zone 38N"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26981\"]]"); + p = add_epsg_def (filter, first, last, 26982, "epsg", 26982, + "NAD83 / Louisiana South"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + ".33333333333333 +x_0=1000000 +y_0=0 +datum=NAD83 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P"); add_srs_wkt (p, 8, - ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + ".33333333333333],PARAMETER[\"false_easting\",1000000],PA"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, - "32238\"]]"); - p = add_epsg_def (filter, first, last, 32239, "epsg", 32239, - "WGS 72 / UTM zone 39N"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"26982\"]]"); + p = add_epsg_def (filter, first, last, 26983, "epsg", 26983, + "NAD83 / Maine East"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA"); add_srs_wkt (p, 8, - ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ctor\",0.9999],PARAMETER[\"false_easting\",300000],PARAM"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, - "32239\"]]"); - p = add_epsg_def (filter, first, last, 32240, "epsg", 32240, - "WGS 72 / UTM zone 40N"); + "HORITY[\"EPSG\",\"26983\"]]"); + p = add_epsg_def (filter, first, last, 26984, "epsg", 26984, + "NAD83 / Maine West"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA"); add_srs_wkt (p, 8, - ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ng\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, - "32240\"]]"); - p = add_epsg_def (filter, first, last, 32241, "epsg", 32241, - "WGS 72 / UTM zone 41N"); + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]"); + p = add_epsg_def (filter, first, last, 26985, "epsg", 26985, + "NAD83 / Maryland"); add_proj4text (p, 0, - "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "666 +lon_0=-77 +x_0=400000 +y_0=0 +datum=NAD83 +units=m "); + add_proj4text (p, 2, + "+no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAMET"); add_srs_wkt (p, 8, - ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "_origin\",37.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "n\",-77],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "32241\"]]"); - p = add_epsg_def (filter, first, last, 32242, "epsg", 32242, - "WGS 72 / UTM zone 42N"); + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"26985\"]]"); + p = add_epsg_def (filter, first, last, 26986, "epsg", 26986, + "NAD83 / Massachusetts Mainland"); add_proj4text (p, 0, - "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +datu"); + add_proj4text (p, 2, + "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, - ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ing\",200000],PARAMETER[\"false_northing\",750000],UNIT["); add_srs_wkt (p, 12, - "32242\"]]"); - p = add_epsg_def (filter, first, last, 32243, "epsg", 32243, - "WGS 72 / UTM zone 43N"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); + add_srs_wkt (p, 13, + "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]"); + p = add_epsg_def (filter, first, last, 26987, "epsg", 26987, + "NAD83 / Massachusetts Island"); add_proj4text (p, 0, - "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); add_srs_wkt (p, 8, - ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + ".48333333333333],PARAMETER[\"standard_parallel_2\",41.28"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333333333],PARAMETER[\"latitude_of_origin\",41],PARAM"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ETER[\"central_meridian\",-70.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, - "32243\"]]"); - p = add_epsg_def (filter, first, last, 32244, "epsg", 32244, - "WGS 72 / UTM zone 44N"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]"); + p = add_epsg_def (filter, first, last, 26988, "epsg", 26988, + "NAD83 / Michigan North"); add_proj4text (p, 0, - "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); + add_proj4text (p, 2, + "0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333"); add_srs_wkt (p, 8, - ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "333333334],PARAMETER[\"standard_parallel_2\",45.48333333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "333333],PARAMETER[\"latitude_of_origin\",44.783333333333"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "33],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "e_easting\",8000000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, - "32244\"]]"); - p = add_epsg_def (filter, first, last, 32245, "epsg", 32245, - "WGS 72 / UTM zone 45N"); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 13, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]"); + p = add_epsg_def (filter, first, last, 26989, "epsg", 26989, + "NAD83 / Michigan Central"); add_proj4text (p, 0, - "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); + add_proj4text (p, 2, + "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],P"); add_srs_wkt (p, 8, - ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "ARAMETER[\"standard_parallel_2\",44.18333333333333],PARA"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "METER[\"latitude_of_origin\",43.31666666666667],PARAMETE"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "R[\"central_meridian\",-84.36666666666666],PARAMETER[\"f"); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "alse_easting\",6000000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, - "32245\"]]"); - p = add_epsg_def (filter, first, last, 32246, "epsg", 32246, - "WGS 72 / UTM zone 46N"); + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]"); + p = add_epsg_def (filter, first, last, 26990, "epsg", 26990, + "NAD83 / Michigan South"); add_proj4text (p, 0, - "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +datum="); + add_proj4text (p, 2, + "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666"); add_srs_wkt (p, 8, - ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "666666666],PARAMETER[\"standard_parallel_2\",42.1],PARAM"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "ETER[\"latitude_of_origin\",41.5],PARAMETER[\"central_me"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "ridian\",-84.36666666666666],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, - "32246\"]]"); - p = add_epsg_def (filter, first, last, 32247, "epsg", 32247, - "WGS 72 / UTM zone 47N"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26990\"]]"); + p = add_epsg_def (filter, first, last, 26991, "epsg", 26991, + "NAD83 / Minnesota North"); add_proj4text (p, 0, - "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); + add_proj4text (p, 2, + "_0=100000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333"); add_srs_wkt (p, 8, - ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE"); add_srs_wkt (p, 10, - "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, - "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + ",800000],PARAMETER[\"false_northing\",100000],UNIT[\"met"); add_srs_wkt (p, 12, - "32247\"]]"); - p = add_epsg_def (filter, first, last, 32248, "epsg", 32248, - "WGS 72 / UTM zone 48N"); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 13, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]"); + p = add_epsg_def (filter, first, last, 26992, "epsg", 26992, + "NAD83 / Minnesota Central"); add_proj4text (p, 0, - "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +datum=NAD83 +un"); + add_proj4text (p, 2, + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05"); add_srs_wkt (p, 8, - ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "],PARAMETER[\"standard_parallel_2\",45.61666666666667],P"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central_"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "meridian\",-94.25],PARAMETER[\"false_easting\",800000],P"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, - "32248\"]]"); - p = add_epsg_def (filter, first, last, 32249, "epsg", 32249, - "WGS 72 / UTM zone 49N"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"26992\"]]"); + p = add_epsg_def (filter, first, last, 26993, "epsg", 26993, + "NAD83 / Minnesota South"); add_proj4text (p, 0, - "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +datum="); + add_proj4text (p, 2, + "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166"); add_srs_wkt (p, 8, - ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER["); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "\"central_meridian\",-94],PARAMETER[\"false_easting\",80"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "0000],PARAMETER[\"false_northing\",100000],UNIT[\"metre\""); add_srs_wkt (p, 12, - "32249\"]]"); - p = add_epsg_def (filter, first, last, 32250, "epsg", 32250, - "WGS 72 / UTM zone 50N"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"26993\"]]"); + p = add_epsg_def (filter, first, last, 26994, "epsg", 26994, + "NAD83 / Mississippi East"); add_proj4text (p, 0, - "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "9995 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); add_srs_wkt (p, 8, - ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "\"central_meridian\",-88.83333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "le_factor\",0.99995],PARAMETER[\"false_easting\",300000]"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, - "32250\"]]"); - p = add_epsg_def (filter, first, last, 32251, "epsg", 32251, - "WGS 72 / UTM zone 51N"); + "H],AUTHORITY[\"EPSG\",\"26994\"]]"); + p = add_epsg_def (filter, first, last, 26995, "epsg", 26995, + "NAD83 / Mississippi West"); add_proj4text (p, 0, - "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "9995 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); add_srs_wkt (p, 8, - ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "\"central_meridian\",-90.33333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "le_factor\",0.99995],PARAMETER[\"false_easting\",700000]"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, - "32251\"]]"); - p = add_epsg_def (filter, first, last, 32252, "epsg", 32252, - "WGS 72 / UTM zone 52N"); + "H],AUTHORITY[\"EPSG\",\"26995\"]]"); + p = add_epsg_def (filter, first, last, 26996, "epsg", 26996, + "NAD83 / Missouri East"); add_proj4text (p, 0, - "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99933333 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",35.83333333333334],"); add_srs_wkt (p, 8, - ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "factor\",0.999933333],PARAMETER[\"false_easting\",250000"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, - "32252\"]]"); - p = add_epsg_def (filter, first, last, 32253, "epsg", 32253, - "WGS 72 / UTM zone 53N"); + "TH],AUTHORITY[\"EPSG\",\"26996\"]]"); + p = add_epsg_def (filter, first, last, 26997, "epsg", 26997, + "NAD83 / Missouri Central"); add_proj4text (p, 0, - "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99933333 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "tor\"],PARAMETER[\"latitude_of_origin\",35.8333333333333"); add_srs_wkt (p, 8, - ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "4],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "le_factor\",0.999933333],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, - "32253\"]]"); - p = add_epsg_def (filter, first, last, 32254, "epsg", 32254, - "WGS 72 / UTM zone 54N"); + "NORTH],AUTHORITY[\"EPSG\",\"26997\"]]"); + p = add_epsg_def (filter, first, last, 26998, "epsg", 26998, + "NAD83 / Missouri West"); add_proj4text (p, 0, - "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "99941177 +x_0=850000 +y_0=0 +datum=NAD83 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"],PARAMETER[\"latitude_of_origin\",36.16666666666666],"); add_srs_wkt (p, 8, - ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "factor\",0.999941177],PARAMETER[\"false_easting\",850000"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, - "32254\"]]"); - p = add_epsg_def (filter, first, last, 32255, "epsg", 32255, - "WGS 72 / UTM zone 55N"); + "TH],AUTHORITY[\"EPSG\",\"26998\"]]"); + p = add_epsg_def (filter, first, last, 27037, "epsg", 27037, + "Nahrwan 1967 / UTM zone 37N"); add_proj4text (p, 0, - "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + ",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "32255\"]]"); - p = add_epsg_def (filter, first, last, 32256, "epsg", 32256, - "WGS 72 / UTM zone 56N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]"); + p = add_epsg_def (filter, first, last, 27038, "epsg", 27038, + "Nahrwan 1967 / UTM zone 38N"); add_proj4text (p, 0, - "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + ",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "32256\"]]"); - p = add_epsg_def (filter, first, last, 32257, "epsg", 32257, - "WGS 72 / UTM zone 57N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]"); + p = add_epsg_def (filter, first, last, 27039, "epsg", 27039, + "Nahrwan 1967 / UTM zone 39N"); add_proj4text (p, 0, - "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + ",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "32257\"]]"); - p = add_epsg_def (filter, first, last, 32258, "epsg", 32258, - "WGS 72 / UTM zone 58N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]"); + p = add_epsg_def (filter, first, last, 27040, "epsg", 27040, + "Nahrwan 1967 / UTM zone 40N"); add_proj4text (p, 0, - "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, - ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + ",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "32258\"]]"); - p = add_epsg_def (filter, first, last, 32259, "epsg", 32259, - "WGS 72 / UTM zone 59N"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]"); + p = add_epsg_def (filter, first, last, 27120, "epsg", 27120, + "Naparima 1972 / UTM zone 20N"); add_proj4text (p, 0, - "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "]],AUTHORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, - "32259\"]]"); - p = add_epsg_def (filter, first, last, 32260, "epsg", 32260, - "WGS 72 / UTM zone 60N"); + "H],AUTHORITY[\"EPSG\",\"27120\"]]"); + p = add_epsg_def (filter, first, last, 27200, "epsg", 27200, + "NZGD49 / New Zealand Map Grid"); add_proj4text (p, 0, - "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231"); add_proj4text (p, 1, - "54,0.2263 +units=m +no_defs"); + "50 +datum=nzgd49 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + ",\"4272\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMET"); add_srs_wkt (p, 8, - ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ER[\"latitude_of_origin\",-41],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + "ian\",173],PARAMETER[\"false_easting\",2510000],PARAMETE"); add_srs_wkt (p, 10, - "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + "R[\"false_northing\",6023150],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, - "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, - "32260\"]]"); - p = add_epsg_def (filter, first, last, 32301, "epsg", 32301, - "WGS 72 / UTM zone 1S"); + "ing\",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]"); + p = add_epsg_def (filter, first, last, 27205, "epsg", 27205, + "NZGD49 / Mount Eden Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "611111 +k=0.9999 +x_0=300000 +y_0=700000 +datum=nzgd49 +"); + add_proj4text (p, 2, + "units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "[\"latitude_of_origin\",-36.87986527777778],PARAMETER[\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "central_meridian\",174.7643393611111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "AMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, - "G\",\"32301\"]]"); - p = add_epsg_def (filter, first, last, 32302, "epsg", 32302, - "WGS 72 / UTM zone 2S"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27205\"]]"); + p = add_epsg_def (filter, first, last, 27206, "epsg", 27206, + "NZGD49 / Bay of Plenty Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); + add_proj4text (p, 2, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "R[\"latitude_of_origin\",-37.76124980555556],PARAMETER[\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "central_meridian\",176.46619725],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "G\",\"32302\"]]"); - p = add_epsg_def (filter, first, last, 32303, "epsg", 32303, - "WGS 72 / UTM zone 3S"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"27206\"]]"); + p = add_epsg_def (filter, first, last, 27207, "epsg", 27207, + "NZGD49 / Poverty Bay Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "[\"latitude_of_origin\",-38.62470277777778],PARAMETER[\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "central_meridian\",177.8856362777778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "G\",\"32303\"]]"); - p = add_epsg_def (filter, first, last, 32304, "epsg", 32304, - "WGS 72 / UTM zone 4S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27207\"]]"); + p = add_epsg_def (filter, first, last, 27208, "epsg", 27208, + "NZGD49 / Hawkes Bay Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "277778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "[\"latitude_of_origin\",-39.65092930555556],PARAMETER[\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "central_meridian\",176.6736805277778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "G\",\"32304\"]]"); - p = add_epsg_def (filter, first, last, 32305, "epsg", 32305, - "WGS 72 / UTM zone 5S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27208\"]]"); + p = add_epsg_def (filter, first, last, 27209, "epsg", 27209, + "NZGD49 / Taranaki Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); + add_proj4text (p, 2, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "latitude_of_origin\",-39.13575830555556],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "tral_meridian\",174.22801175],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "G\",\"32305\"]]"); - p = add_epsg_def (filter, first, last, 32306, "epsg", 32306, - "WGS 72 / UTM zone 6S"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"27209\"]]"); + p = add_epsg_def (filter, first, last, 27210, "epsg", 27210, + "NZGD49 / Tuhirangi Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "latitude_of_origin\",-39.51247038888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "tral_meridian\",175.6400368055556],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "G\",\"32306\"]]"); - p = add_epsg_def (filter, first, last, 32307, "epsg", 32307, - "WGS 72 / UTM zone 7S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27210\"]]"); + p = add_epsg_def (filter, first, last, 27211, "epsg", 27211, + "NZGD49 / Wanganui Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "latitude_of_origin\",-40.24194713888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "tral_meridian\",175.4880996111111],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "G\",\"32307\"]]"); - p = add_epsg_def (filter, first, last, 32308, "epsg", 32308, - "WGS 72 / UTM zone 8S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27211\"]]"); + p = add_epsg_def (filter, first, last, 27212, "epsg", 27212, + "NZGD49 / Wairarapa Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "latitude_of_origin\",-40.92553263888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "tral_meridian\",175.6473496666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "G\",\"32308\"]]"); - p = add_epsg_def (filter, first, last, 32309, "epsg", 32309, - "WGS 72 / UTM zone 9S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27212\"]]"); + p = add_epsg_def (filter, first, last, 27213, "epsg", 27213, + "NZGD49 / Wellington Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231"); add_proj4text (p, 1, - ",0,0.554,0.2263 +units=m +no_defs"); + "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM["); + "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "[\"latitude_of_origin\",-41.30131963888888],PARAMETER[\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "central_meridian\",174.7766231111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "G\",\"32309\"]]"); - p = add_epsg_def (filter, first, last, 32310, "epsg", 32310, - "WGS 72 / UTM zone 10S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27213\"]]"); + p = add_epsg_def (filter, first, last, 27214, "epsg", 27214, + "NZGD49 / Collingwood Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); + add_proj4text (p, 2, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "[\"latitude_of_origin\",-40.71475905555556],PARAMETER[\""); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + "central_meridian\",172.6720465],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "EPSG\",\"32310\"]]"); - p = add_epsg_def (filter, first, last, 32311, "epsg", 32311, - "WGS 72 / UTM zone 11S"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27214\"]]"); + p = add_epsg_def (filter, first, last, 27215, "epsg", 27215, + "NZGD49 / Nelson Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "055555 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "atitude_of_origin\",-41.27454472222222],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + "ral_meridian\",173.2993168055555],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "EPSG\",\"32311\"]]"); - p = add_epsg_def (filter, first, last, 32312, "epsg", 32312, - "WGS 72 / UTM zone 12S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27215\"]]"); + p = add_epsg_def (filter, first, last, 27216, "epsg", 27216, + "NZGD49 / Karamea Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "latitude_of_origin\",-41.28991152777778],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + "tral_meridian\",172.1090281944444],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "EPSG\",\"32312\"]]"); - p = add_epsg_def (filter, first, last, 32313, "epsg", 32313, - "WGS 72 / UTM zone 13S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27216\"]]"); + p = add_epsg_def (filter, first, last, 27217, "epsg", 27217, + "NZGD49 / Buller Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "555556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + "atitude_of_origin\",-41.81080286111111],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + "ral_meridian\",171.5812600555556],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "EPSG\",\"32313\"]]"); - p = add_epsg_def (filter, first, last, 32314, "epsg", 32314, - "WGS 72 / UTM zone 14S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27217\"]]"); + p = add_epsg_def (filter, first, last, 27218, "epsg", 27218, + "NZGD49 / Grey Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "itude_of_origin\",-42.33369427777778],PARAMETER[\"centra"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "l_meridian\",171.5497713055556],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "PSG\",\"32314\"]]"); - p = add_epsg_def (filter, first, last, 32315, "epsg", 32315, - "WGS 72 / UTM zone 15S"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27218\"]]"); + p = add_epsg_def (filter, first, last, 27219, "epsg", 27219, + "NZGD49 / Amuri Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "888889 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, - ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "titude_of_origin\",-42.68911658333333],PARAMETER[\"centr"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "al_meridian\",173.0101333888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "PSG\",\"32315\"]]"); - p = add_epsg_def (filter, first, last, 32316, "epsg", 32316, - "WGS 72 / UTM zone 16S"); + "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"27219\"]]"); + p = add_epsg_def (filter, first, last, 27220, "epsg", 27220, + "NZGD49 / Marlborough Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "[\"latitude_of_origin\",-41.54448666666666],PARAMETER[\""); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "central_meridian\",173.8020741111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "PSG\",\"32316\"]]"); - p = add_epsg_def (filter, first, last, 32317, "epsg", 32317, - "WGS 72 / UTM zone 17S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27220\"]]"); + p = add_epsg_def (filter, first, last, 27221, "epsg", 27221, + "NZGD49 / Hokitika Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); + add_proj4text (p, 2, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "latitude_of_origin\",-42.88632236111111],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "tral_meridian\",170.9799935],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "PSG\",\"32317\"]]"); - p = add_epsg_def (filter, first, last, 32318, "epsg", 32318, - "WGS 72 / UTM zone 18S"); + "\"9001\"]],AUTHORITY[\"EPSG\",\"27221\"]]"); + p = add_epsg_def (filter, first, last, 27222, "epsg", 27222, + "NZGD49 / Okarito Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "latitude_of_origin\",-43.11012813888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "tral_meridian\",170.2609258333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "PSG\",\"32318\"]]"); - p = add_epsg_def (filter, first, last, 32319, "epsg", 32319, - "WGS 72 / UTM zone 19S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27222\"]]"); + p = add_epsg_def (filter, first, last, 27223, "epsg", 27223, + "NZGD49 / Jacksons Bay Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 "); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "+k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no_"); + add_proj4text (p, 2, + "defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "R[\"latitude_of_origin\",-43.97780288888889],PARAMETER[\""); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "central_meridian\",168.606267],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "PSG\",\"32319\"]]"); - p = add_epsg_def (filter, first, last, 32320, "epsg", 32320, - "WGS 72 / UTM zone 20S"); + ",\"9001\"]],AUTHORITY[\"EPSG\",\"27223\"]]"); + p = add_epsg_def (filter, first, last, 27224, "epsg", 27224, + "NZGD49 / Mount Pleasant Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, - ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ETER[\"latitude_of_origin\",-43.59063758333333],PARAMETE"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "R[\"central_meridian\",172.7271935833333],PARAMETER[\"sc"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, - "PSG\",\"32320\"]]"); - p = add_epsg_def (filter, first, last, 32321, "epsg", 32321, - "WGS 72 / UTM zone 21S"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27224\"]]"); + p = add_epsg_def (filter, first, last, 27225, "epsg", 27225, + "NZGD49 / Gawler Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "722222 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "atitude_of_origin\",-43.74871155555556],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ral_meridian\",171.3607484722222],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "PSG\",\"32321\"]]"); - p = add_epsg_def (filter, first, last, 32322, "epsg", 32322, - "WGS 72 / UTM zone 22S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27225\"]]"); + p = add_epsg_def (filter, first, last, 27226, "epsg", 27226, + "NZGD49 / Timaru Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "atitude_of_origin\",-44.40222036111111],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ral_meridian\",171.0572508333333],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "PSG\",\"32322\"]]"); - p = add_epsg_def (filter, first, last, 32323, "epsg", 32323, - "WGS 72 / UTM zone 23S"); + "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27226\"]]"); + p = add_epsg_def (filter, first, last, 27227, "epsg", 27227, + "NZGD49 / Lindis Peak Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "[\"latitude_of_origin\",-44.73526797222222],PARAMETER[\""); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "central_meridian\",169.4677550833333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "PSG\",\"32323\"]]"); - p = add_epsg_def (filter, first, last, 32324, "epsg", 32324, - "WGS 72 / UTM zone 24S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27227\"]]"); + p = add_epsg_def (filter, first, last, 27228, "epsg", 27228, + "NZGD49 / Mount Nicholas Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, - ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ETER[\"latitude_of_origin\",-45.13290258333333],PARAMETE"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "R[\"central_meridian\",168.3986411944444],PARAMETER[\"sc"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, - "PSG\",\"32324\"]]"); - p = add_epsg_def (filter, first, last, 32325, "epsg", 32325, - "WGS 72 / UTM zone 25S"); + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27228\"]]"); + p = add_epsg_def (filter, first, last, 27229, "epsg", 27229, + "NZGD49 / Mount York Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, - ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "[\"latitude_of_origin\",-45.56372616666666],PARAMETER[\""); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "central_meridian\",167.7388617777778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "PSG\",\"32325\"]]"); - p = add_epsg_def (filter, first, last, 32326, "epsg", 32326, - "WGS 72 / UTM zone 26S"); + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27229\"]]"); + p = add_epsg_def (filter, first, last, 27230, "epsg", 27230, + "NZGD49 / Observation Point Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); + add_proj4text (p, 2, + "=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "RAMETER[\"latitude_of_origin\",-45.81619661111111],PARAM"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ETER[\"central_meridian\",170.6285951666667],PARAMETER[\""); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "scale_factor\",1],PARAMETER[\"false_easting\",300000],PA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "PSG\",\"32326\"]]"); - p = add_epsg_def (filter, first, last, 32327, "epsg", 32327, - "WGS 72 / UTM zone 27S"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27230\"]]"); + p = add_epsg_def (filter, first, last, 27231, "epsg", 27231, + "NZGD49 / North Taieri Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "111111 +k=0.99996 +x_0=300000 +y_0=700000 +datum=nzgd49 "); + add_proj4text (p, 2, + "+units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "R[\"latitude_of_origin\",-45.86151336111111],PARAMETER[\""); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "central_meridian\",170.2825891111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "factor\",0.99996],PARAMETER[\"false_easting\",300000],PA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "PSG\",\"32327\"]]"); - p = add_epsg_def (filter, first, last, 32328, "epsg", 32328, - "WGS 72 / UTM zone 28S"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27231\"]]"); + p = add_epsg_def (filter, first, last, 27232, "epsg", 27232, + "NZGD49 / Bluff Circuit"); add_proj4text (p, 0, - "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 "); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "+k=1 +x_0=300002.66 +y_0=699999.58 +datum=nzgd49 +units="); + add_proj4text (p, 2, + "m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, - ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "titude_of_origin\",-46.60000961111111],PARAMETER[\"centr"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "al_meridian\",168.342872],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "PARAMETER[\"false_easting\",300002.66],PARAMETER[\"false"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "_northing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "PSG\",\"32328\"]]"); - p = add_epsg_def (filter, first, last, 32329, "epsg", 32329, - "WGS 72 / UTM zone 29S"); + "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27232\"]]"); + p = add_epsg_def (filter, first, last, 27258, "epsg", 27258, + "NZGD49 / UTM zone 58S"); add_proj4text (p, 0, - "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=utm +zone=58 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "G\",\"32329\"]]"); - p = add_epsg_def (filter, first, last, 32330, "epsg", 32330, - "WGS 72 / UTM zone 30S"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"27258\"]]"); + p = add_epsg_def (filter, first, last, 27259, "epsg", 27259, + "NZGD49 / UTM zone 59S"); add_proj4text (p, 0, - "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=utm +zone=59 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "G\",\"32330\"]]"); - p = add_epsg_def (filter, first, last, 32331, "epsg", 32331, - "WGS 72 / UTM zone 31S"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"27259\"]]"); + p = add_epsg_def (filter, first, last, 27260, "epsg", 27260, + "NZGD49 / UTM zone 60S"); add_proj4text (p, 0, - "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=utm +zone=60 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "s"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]"); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",10000000"); + ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, - "G\",\"32331\"]]"); - p = add_epsg_def (filter, first, last, 32332, "epsg", 32332, - "WGS 72 / UTM zone 32S"); + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"27260\"]]"); + p = add_epsg_def (filter, first, last, 27291, "epsg", 27291, + "NZGD49 / North Island Grid"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "3848086 +y_0=365759.3658464114 +datum=nzgd49 +to_meter=0"); + add_proj4text (p, 2, + ".9143984146160287 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + "latitude_of_origin\",-39],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "_easting\",500000],PARAMETER[\"false_northing\",10000000"); + ",175.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "easting\",300000],PARAMETER[\"false_northing\",400000],U"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); add_srs_wkt (p, 12, - "G\",\"32332\"]]"); - p = add_epsg_def (filter, first, last, 32333, "epsg", 32333, - "WGS 72 / UTM zone 33S"); + "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]"); + p = add_epsg_def (filter, first, last, 27292, "epsg", 27292, + "NZGD49 / South Island Grid"); add_proj4text (p, 0, - "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "3080143 +y_0=457199.2073080143 +datum=nzgd49 +to_meter=0"); + add_proj4text (p, 2, + ".9143984146160287 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "latitude_of_origin\",-44],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + ",171.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "easting\",500000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); add_srs_wkt (p, 12, - "G\",\"32333\"]]"); - p = add_epsg_def (filter, first, last, 32334, "epsg", 32334, - "WGS 72 / UTM zone 34S"); + "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]"); + p = add_epsg_def (filter, first, last, 27391, "epsg", 27391, + "NGO 1948 (Oslo) / NGO zone I"); add_proj4text (p, 0, - "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); + add_proj4text (p, 2, + "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, - ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "ridian\",-4.666666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "G\",\"32334\"]]"); - p = add_epsg_def (filter, first, last, 32335, "epsg", 32335, - "WGS 72 / UTM zone 35S"); + ",AUTHORITY[\"EPSG\",\"27391\"]]"); + p = add_epsg_def (filter, first, last, 27392, "epsg", 27392, + "NGO 1948 (Oslo) / NGO zone II"); add_proj4text (p, 0, - "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); + add_proj4text (p, 2, + "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "eridian\",-2.333333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, - "G\",\"32335\"]]"); - p = add_epsg_def (filter, first, last, 32336, "epsg", 32336, - "WGS 72 / UTM zone 36S"); + "],AUTHORITY[\"EPSG\",\"27392\"]]"); + p = add_epsg_def (filter, first, last, 27393, "epsg", 27393, + "NGO 1948 (Oslo) / NGO zone III"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7."); + add_proj4text (p, 2, + "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "eridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "G\",\"32336\"]]"); - p = add_epsg_def (filter, first, last, 32337, "epsg", 32337, - "WGS 72 / UTM zone 37S"); + "\",\"27393\"]]"); + p = add_epsg_def (filter, first, last, 27394, "epsg", 27394, + "NGO 1948 (Oslo) / NGO zone IV"); add_proj4text (p, 0, - "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,"); + add_proj4text (p, 2, + "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "eridian\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 12, - "G\",\"32337\"]]"); - p = add_epsg_def (filter, first, last, 32338, "epsg", 32338, - "WGS 72 / UTM zone 38S"); + "SG\",\"27394\"]]"); + p = add_epsg_def (filter, first, last, 27395, "epsg", 27395, + "NGO 1948 (Oslo) / NGO zone V"); add_proj4text (p, 0, - "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + add_proj4text (p, 2, + "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); + add_proj4text (p, 3, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, - ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "ridian\",6.166666666666667],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, - "G\",\"32338\"]]"); - p = add_epsg_def (filter, first, last, 32339, "epsg", 32339, - "WGS 72 / UTM zone 39S"); + "AUTHORITY[\"EPSG\",\"27395\"]]"); + p = add_epsg_def (filter, first, last, 27396, "epsg", 27396, + "NGO 1948 (Oslo) / NGO zone VI"); add_proj4text (p, 0, - "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + add_proj4text (p, 2, + "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); + add_proj4text (p, 3, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "eridian\",10.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "G\",\"32339\"]]"); - p = add_epsg_def (filter, first, last, 32340, "epsg", 32340, - "WGS 72 / UTM zone 40S"); + ",AUTHORITY[\"EPSG\",\"27396\"]]"); + p = add_epsg_def (filter, first, last, 27397, "epsg", 27397, + "NGO 1948 (Oslo) / NGO zone VII"); add_proj4text (p, 0, - "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + add_proj4text (p, 2, + "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); + add_proj4text (p, 3, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, - ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "eridian\",14.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, - "G\",\"32340\"]]"); - p = add_epsg_def (filter, first, last, 32341, "epsg", 32341, - "WGS 72 / UTM zone 41S"); + ",AUTHORITY[\"EPSG\",\"27397\"]]"); + p = add_epsg_def (filter, first, last, 27398, "epsg", 27398, + "NGO 1948 (Oslo) / NGO zone VIII"); add_proj4text (p, 0, - "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); + add_proj4text (p, 2, + "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); + add_proj4text (p, 3, + "o_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO "); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel "); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, - ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"central"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "_meridian\",18.33333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, - "G\",\"32341\"]]"); - p = add_epsg_def (filter, first, last, 32342, "epsg", 32342, - "WGS 72 / UTM zone 42S"); + "],AUTHORITY[\"EPSG\",\"27398\"]]"); + p = add_epsg_def (filter, first, last, 27429, "epsg", 27429, + "Datum 73 / UTM zone 29N"); add_proj4text (p, 0, - "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + ",36.649,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, - ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, - "G\",\"32342\"]]"); - p = add_epsg_def (filter, first, last, 32343, "epsg", 32343, - "WGS 72 / UTM zone 43S"); + "AUTHORITY[\"EPSG\",\"27429\"]]"); + p = add_epsg_def (filter, first, last, 27492, "epsg", 27492, + "Datum 73 / Modified Portuguese Grid (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); + add_proj4text (p, 2, + "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "_of_origin\",39.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "dian\",-8.131906111111112],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",PARAMETER[\"false_easting\",180.598],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "northing\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "G\",\"32343\"]]"); - p = add_epsg_def (filter, first, last, 32344, "epsg", 32344, - "WGS 72 / UTM zone 44S"); + "9001\"]],AUTHORITY[\"EPSG\",\"27492\"]]"); + p = add_epsg_def (filter, first, last, 27493, "epsg", 27493, + "Datum 73 / Modified Portuguese Grid"); add_proj4text (p, 0, - "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); + add_proj4text (p, 2, + "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); + add_proj4text (p, 3, + "no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 8, - ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "9.66666666666666],PARAMETER[\"central_meridian\",-8.1319"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "06111111112],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "alse_easting\",180.598],PARAMETER[\"false_northing\",-86"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + ".99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, - "G\",\"32344\"]]"); - p = add_epsg_def (filter, first, last, 32345, "epsg", 32345, - "WGS 72 / UTM zone 45S"); + "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2749"); + add_srs_wkt (p, 13, + "3\"]]"); + p = add_epsg_def (filter, first, last, 27500, "epsg", 27500, + "ATF (Paris) / Nord de Guerre"); add_proj4text (p, 0, - "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=5.399999999999999 +k_0=0.99950908 +x_0=500000"); + add_proj4text (p, 2, + " +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.33720"); + add_proj4text (p, 3, + "8333333333 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "9105\"]],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, - ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "n\",55],PARAMETER[\"central_meridian\",5.999999999999998"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "],PARAMETER[\"scale_factor\",0.99950908],PARAMETER[\"fal"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + "se_easting\",500000],PARAMETER[\"false_northing\",300000"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, - "G\",\"32345\"]]"); - p = add_epsg_def (filter, first, last, 32346, "epsg", 32346, - "WGS 72 / UTM zone 46S"); + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27500\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 27561, "epsg", 27561, + "NTF (Paris) / Lambert Nord France"); add_proj4text (p, 0, - "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); + add_proj4text (p, 2, + "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); + add_proj4text (p, 3, + "paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "2936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, - ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, - "G\",\"32346\"]]"); - p = add_epsg_def (filter, first, last, 32347, "epsg", 32347, - "WGS 72 / UTM zone 47S"); + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"27561\"]]"); + p = add_epsg_def (filter, first, last, 27562, "epsg", 27562, + "NTF (Paris) / Lambert Centre France"); add_proj4text (p, 0, - "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); + add_proj4text (p, 2, + "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, - ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); add_srs_wkt (p, 9, - "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, - "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, - "G\",\"32347\"]]"); - p = add_epsg_def (filter, first, last, 32348, "epsg", 32348, - "WGS 72 / UTM zone 48S"); + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"27562\"]]"); + p = add_epsg_def (filter, first, last, 27563, "epsg", 27563, + "NTF (Paris) / Lambert Sud France"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); + add_proj4text (p, 2, + "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); + add_proj4text (p, 3, + "paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, - ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, - "PSG\",\"32348\"]]"); - p = add_epsg_def (filter, first, last, 32349, "epsg", 32349, - "WGS 72 / UTM zone 49S"); + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 13, + "HORITY[\"EPSG\",\"27563\"]]"); + p = add_epsg_def (filter, first, last, 27564, "epsg", 27564, + "NTF (Paris) / Lambert Corse"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); + add_proj4text (p, 2, + "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); + add_proj4text (p, 3, + "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "5,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY["); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, - ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETE"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "9994471],PARAMETER[\"false_easting\",234.358],PARAMETER["); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "\"false_northing\",185861.369],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, - "PSG\",\"32349\"]]"); - p = add_epsg_def (filter, first, last, 32350, "epsg", 32350, - "WGS 72 / UTM zone 50S"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"27564\"]]"); + p = add_epsg_def (filter, first, last, 27571, "epsg", 27571, + "NTF (Paris) / Lambert zone I"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); + add_proj4text (p, 2, + "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); + add_proj4text (p, 3, + "=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "65,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2."); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, - ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "c_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER["); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "\"central_meridian\",0],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "877341],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"32350\"]]"); - p = add_epsg_def (filter, first, last, 32351, "epsg", 32351, - "WGS 72 / UTM zone 51S"); + "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"27571\"]]"); + p = add_epsg_def (filter, first, last, 27572, "epsg", 27572, + "NTF (Paris) / Lambert zone II"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); + add_proj4text (p, 2, + "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, - ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"32351\"]]"); - p = add_epsg_def (filter, first, last, 32352, "epsg", 32352, - "WGS 72 / UTM zone 52S"); + "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"27572\"]]"); + p = add_epsg_def (filter, first, last, 27573, "epsg", 27573, + "NTF (Paris) / Lambert zone III"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); + add_proj4text (p, 2, + "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); + add_proj4text (p, 3, + "=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF ("); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, - ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "9877499],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, - "PSG\",\"32352\"]]"); - p = add_epsg_def (filter, first, last, 32353, "epsg", 32353, - "WGS 72 / UTM zone 53S"); + "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); + add_srs_wkt (p, 13, + "ORITY[\"EPSG\",\"27573\"]]"); + p = add_epsg_def (filter, first, last, 27574, "epsg", 27574, + "NTF (Paris) / Lambert zone IV"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); + add_proj4text (p, 2, + "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); + add_proj4text (p, 3, + " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, - ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, - "PSG\",\"32353\"]]"); - p = add_epsg_def (filter, first, last, 32354, "epsg", 32354, - "WGS 72 / UTM zone 54S"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 13, + "TH],AUTHORITY[\"EPSG\",\"27574\"]]"); + p = add_epsg_def (filter, first, last, 27581, "epsg", 27581, + "NTF (Paris) / France I (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); + add_proj4text (p, 2, + "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); + add_proj4text (p, 3, + "=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, - ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PAR"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",0.999877341],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "TER[\"false_northing\",1200000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, - "PSG\",\"32354\"]]"); - p = add_epsg_def (filter, first, last, 32355, "epsg", 32355, - "WGS 72 / UTM zone 55S"); + "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); + add_srs_wkt (p, 13, + "],AUTHORITY[\"EPSG\",\"27581\"]]"); + p = add_epsg_def (filter, first, last, 27582, "epsg", 27582, + "NTF (Paris) / France II (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); + add_proj4text (p, 2, + "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, - ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "ER[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, - "PSG\",\"32355\"]]"); - p = add_epsg_def (filter, first, last, 32356, "epsg", 32356, - "WGS 72 / UTM zone 56S"); + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"27582\"]]"); + p = add_epsg_def (filter, first, last, 27583, "epsg", 27583, + "NTF (Paris) / France III (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); + add_proj4text (p, 2, + "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); + add_proj4text (p, 3, + "=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "60212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, - ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "AMETER[\"false_northing\",3200000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "PSG\",\"32356\"]]"); - p = add_epsg_def (filter, first, last, 32357, "epsg", 32357, - "WGS 72 / UTM zone 57S"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"27583\"]]"); + p = add_epsg_def (filter, first, last, 27584, "epsg", 27584, + "NTF (Paris) / France IV (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); + add_proj4text (p, 2, + "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); + add_proj4text (p, 3, + " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, - ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "or\",0.99994471],PARAMETER[\"false_easting\",234.358],PA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "RAMETER[\"false_northing\",4185861.369],UNIT[\"metre\",1"); add_srs_wkt (p, 12, - "PSG\",\"32357\"]]"); - p = add_epsg_def (filter, first, last, 32358, "epsg", 32358, - "WGS 72 / UTM zone 58S"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 13, + "\",NORTH],AUTHORITY[\"EPSG\",\"27584\"]]"); + p = add_epsg_def (filter, first, last, 27591, "epsg", 27591, + "NTF (Paris) / Nord France (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); + add_proj4text (p, 2, + "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); + add_proj4text (p, 3, + "paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\""); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\""); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + ",AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, - ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "or\",0.999877341],PARAMETER[\"false_easting\",600000],PA"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "PSG\",\"32358\"]]"); - p = add_epsg_def (filter, first, last, 32359, "epsg", 32359, - "WGS 72 / UTM zone 59S"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"27591\"]]"); + p = add_epsg_def (filter, first, last, 27592, "epsg", 27592, + "NTF (Paris) / Centre France (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); + add_proj4text (p, 2, + "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG"); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + ".4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM["); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT["); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\""); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "]],AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, - ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "ctor\",0.99987742],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "ARAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, - "PSG\",\"32359\"]]"); - p = add_epsg_def (filter, first, last, 32360, "epsg", 32360, - "WGS 72 / UTM zone 60S"); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"27592\"]]"); + p = add_epsg_def (filter, first, last, 27593, "epsg", 27593, + "NTF (Paris) / Sud France (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, - "0,0,0.554,0.2263 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); + add_proj4text (p, 2, + "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); + add_proj4text (p, 3, + "paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM"); + "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, - "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, - "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, - ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + "60212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, - "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, - "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, - "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, - "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, - ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); add_srs_wkt (p, 9, - "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 11, - "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + "AMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, - "PSG\",\"32360\"]]"); - p = add_epsg_def (filter, first, last, 32401, "epsg", 32401, - "WGS 72BE / UTM zone 1N"); + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 13, + "TH],AUTHORITY[\"EPSG\",\"27593\"]]"); + p = add_epsg_def (filter, first, last, 27594, "epsg", 27594, + "NTF (Paris) / Corse (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); + add_proj4text (p, 2, + "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); + add_proj4text (p, 3, + "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARA"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + ",0.99994471],PARAMETER[\"false_easting\",234.358],PARAME"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "TER[\"false_northing\",185861.369],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32401\"]]"); - p = add_epsg_def (filter, first, last, 32402, "epsg", 32402, - "WGS 72BE / UTM zone 2N"); + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"27594\"]]"); + p = add_epsg_def (filter, first, last, 27700, "epsg", 27700, + "OSGB 1936 / British National Grid"); add_proj4text (p, 0, - "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUT"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "HORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "77\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); + "atitude_of_origin\",49],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "2],PARAMETER[\"scale_factor\",0.9996012717],PARAMETER[\""); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "false_easting\",400000],PARAMETER[\"false_northing\",-10"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32402\"]]"); - p = add_epsg_def (filter, first, last, 32403, "epsg", 32403, - "WGS 72BE / UTM zone 3N"); + "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"27700\"]]"); + p = add_epsg_def (filter, first, last, 28191, "epsg", 28191, + "Palestine 1923 / Palestine Grid"); add_proj4text (p, 0, - "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6"); + add_proj4text (p, 2, + "356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.4"); + add_proj4text (p, 3, + "2,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sold"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); + "ner\"],PARAMETER[\"latitude_of_origin\",31.7340969444444"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "5],PARAMETER[\"central_meridian\",35.21208055555556],PAR"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "AMETER[\"false_easting\",170251.555],PARAMETER[\"false_n"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "orthing\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32403\"]]"); - p = add_epsg_def (filter, first, last, 32404, "epsg", 32404, - "WGS 72BE / UTM zone 4N"); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); + add_srs_wkt (p, 13, + "TH],AUTHORITY[\"EPSG\",\"28191\"]]"); + p = add_epsg_def (filter, first, last, 28192, "epsg", 28192, + "Palestine 1923 / Palestine Belt"); add_proj4text (p, 0, - "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7"); + add_proj4text (p, 2, + "89 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.0"); + add_proj4text (p, 3, + "01,-4.42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); + "ercator\"],PARAMETER[\"latitude_of_origin\",31.734096944"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "44445],PARAMETER[\"central_meridian\",35.21208055555556]"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "\",170251.555],PARAMETER[\"false_northing\",1126867.909]"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32404\"]]"); - p = add_epsg_def (filter, first, last, 32405, "epsg", 32405, - "WGS 72BE / UTM zone 5N"); + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); + add_srs_wkt (p, 13, + "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"28192\"]]"); + p = add_epsg_def (filter, first, last, 28193, "epsg", 28193, + "Palestine 1923 / Israeli CS Grid"); add_proj4text (p, 0, - "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b="); + add_proj4text (p, 2, + "6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4."); + add_proj4text (p, 3, + "42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + ".001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIM"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "],AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sol"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); + "dner\"],PARAMETER[\"latitude_of_origin\",31.734096944444"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "45],PARAMETER[\"central_meridian\",35.21208055555556],PA"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "RAMETER[\"false_easting\",170251.555],PARAMETER[\"false_"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "northing\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32405\"]]"); - p = add_epsg_def (filter, first, last, 32406, "epsg", 32406, - "WGS 72BE / UTM zone 6N"); + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + add_srs_wkt (p, 13, + "NORTH],AUTHORITY[\"EPSG\",\"28193\"]]"); + p = add_epsg_def (filter, first, last, 28232, "epsg", 28232, + "Pointe Noire / UTM zone 32S"); add_proj4text (p, 0, - "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "84=-148,51,-291,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N"); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4282\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32406\"]]"); - p = add_epsg_def (filter, first, last, 32407, "epsg", 32407, - "WGS 72BE / UTM zone 7N"); + "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2823"); + add_srs_wkt (p, 13, + "2\"]]"); + p = add_epsg_def (filter, first, last, 28348, "epsg", 28348, + "GDA94 / MGA zone 48"); add_proj4text (p, 0, - "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); + "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32407\"]]"); - p = add_epsg_def (filter, first, last, 32408, "epsg", 32408, - "WGS 72BE / UTM zone 8N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28348\"]]"); + p = add_epsg_def (filter, first, last, 28349, "epsg", 28349, + "GDA94 / MGA zone 49"); add_proj4text (p, 0, - "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); + "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32408\"]]"); - p = add_epsg_def (filter, first, last, 32409, "epsg", 32409, - "WGS 72BE / UTM zone 9N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28349\"]]"); + p = add_epsg_def (filter, first, last, 28350, "epsg", 28350, + "GDA94 / MGA zone 50"); add_proj4text (p, 0, - "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "4,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); + "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32409\"]]"); - p = add_epsg_def (filter, first, last, 32410, "epsg", 32410, - "WGS 72BE / UTM zone 10N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28350\"]]"); + p = add_epsg_def (filter, first, last, 28351, "epsg", 28351, + "GDA94 / MGA zone 51"); add_proj4text (p, 0, - "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); + "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32410\"]]"); - p = add_epsg_def (filter, first, last, 32411, "epsg", 32411, - "WGS 72BE / UTM zone 11N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28351\"]]"); + p = add_epsg_def (filter, first, last, 28352, "epsg", 28352, + "GDA94 / MGA zone 52"); add_proj4text (p, 0, - "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); + "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32411\"]]"); - p = add_epsg_def (filter, first, last, 32412, "epsg", 32412, - "WGS 72BE / UTM zone 12N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28352\"]]"); + p = add_epsg_def (filter, first, last, 28353, "epsg", 28353, + "GDA94 / MGA zone 53"); add_proj4text (p, 0, - "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); + "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32412\"]]"); - p = add_epsg_def (filter, first, last, 32413, "epsg", 32413, - "WGS 72BE / UTM zone 13N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28353\"]]"); + p = add_epsg_def (filter, first, last, 28354, "epsg", 28354, + "GDA94 / MGA zone 54"); add_proj4text (p, 0, - "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); + "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "ng\",NORTH],AUTHORITY[\"EPSG\",\"32413\"]]"); - p = add_epsg_def (filter, first, last, 32414, "epsg", 32414, - "WGS 72BE / UTM zone 14N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28354\"]]"); + p = add_epsg_def (filter, first, last, 28355, "epsg", 28355, + "GDA94 / MGA zone 55"); add_proj4text (p, 0, - "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); + "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32414\"]]"); - p = add_epsg_def (filter, first, last, 32415, "epsg", 32415, - "WGS 72BE / UTM zone 15N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28355\"]]"); + p = add_epsg_def (filter, first, last, 28356, "epsg", 28356, + "GDA94 / MGA zone 56"); add_proj4text (p, 0, - "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); + "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32415\"]]"); - p = add_epsg_def (filter, first, last, 32416, "epsg", 32416, - "WGS 72BE / UTM zone 16N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]"); + p = add_epsg_def (filter, first, last, 28357, "epsg", 28357, + "GDA94 / MGA zone 57"); add_proj4text (p, 0, - "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); + "R[\"central_meridian\",159],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32416\"]]"); - p = add_epsg_def (filter, first, last, 32417, "epsg", 32417, - "WGS 72BE / UTM zone 17N"); + ",NORTH],AUTHORITY[\"EPSG\",\"28357\"]]"); + p = add_epsg_def (filter, first, last, 28358, "epsg", 28358, + "GDA94 / MGA zone 58"); add_proj4text (p, 0, - "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); + "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32417\"]]"); + ",NORTH],AUTHORITY[\"EPSG\",\"28358\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_39.c b/src/spatialite/src/srsinit/epsg_inlined_39.c index c5f2582..ee0c11c 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_39.c +++ b/src/spatialite/src/srsinit/epsg_inlined_39.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,3070 +52,3210 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 32418, "epsg", 32418, - "WGS 72BE / UTM zone 18N"); + p = add_epsg_def (filter, first, last, 28402, "epsg", 28402, + "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32418\"]]"); - p = add_epsg_def (filter, first, last, 32419, "epsg", 32419, - "WGS 72BE / UTM zone 19N"); + "\",\"28402\"]]"); + p = add_epsg_def (filter, first, last, 28403, "epsg", 28403, + "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "asting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32419\"]]"); - p = add_epsg_def (filter, first, last, 32420, "epsg", 32420, - "WGS 72BE / UTM zone 20N"); + "\",\"28403\"]]"); + p = add_epsg_def (filter, first, last, 28404, "epsg", 28404, + "Pulkovo 1942 / Gauss-Kruger zone 4"); add_proj4text (p, 0, - "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",450"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28404\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32420\"]]"); - p = add_epsg_def (filter, first, last, 32421, "epsg", 32421, - "WGS 72BE / UTM zone 21N"); + "]]"); + p = add_epsg_def (filter, first, last, 28405, "epsg", 28405, + "Pulkovo 1942 / Gauss-Kruger zone 5"); add_proj4text (p, 0, - "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",550"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28405\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32421\"]]"); - p = add_epsg_def (filter, first, last, 32422, "epsg", 32422, - "WGS 72BE / UTM zone 22N"); + "]]"); + p = add_epsg_def (filter, first, last, 28406, "epsg", 28406, + "Pulkovo 1942 / Gauss-Kruger zone 6"); add_proj4text (p, 0, - "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",650"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28406\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32422\"]]"); - p = add_epsg_def (filter, first, last, 32423, "epsg", 32423, - "WGS 72BE / UTM zone 23N"); + "]]"); + p = add_epsg_def (filter, first, last, 28407, "epsg", 28407, + "Pulkovo 1942 / Gauss-Kruger zone 7"); add_proj4text (p, 0, - "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",750"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28407\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32423\"]]"); - p = add_epsg_def (filter, first, last, 32424, "epsg", 32424, - "WGS 72BE / UTM zone 24N"); + "]]"); + p = add_epsg_def (filter, first, last, 28408, "epsg", 28408, + "Pulkovo 1942 / Gauss-Kruger zone 8"); add_proj4text (p, 0, - "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",850"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28408\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32424\"]]"); - p = add_epsg_def (filter, first, last, 32425, "epsg", 32425, - "WGS 72BE / UTM zone 25N"); + "]]"); + p = add_epsg_def (filter, first, last, 28409, "epsg", 28409, + "Pulkovo 1942 / Gauss-Kruger zone 9"); add_proj4text (p, 0, - "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); + "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",950"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28409\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32425\"]]"); - p = add_epsg_def (filter, first, last, 32426, "epsg", 32426, - "WGS 72BE / UTM zone 26N"); + "]]"); + p = add_epsg_def (filter, first, last, 28410, "epsg", 28410, + "Pulkovo 1942 / Gauss-Kruger zone 10"); add_proj4text (p, 0, - "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32426\"]]"); - p = add_epsg_def (filter, first, last, 32427, "epsg", 32427, - "WGS 72BE / UTM zone 27N"); + "0\"]]"); + p = add_epsg_def (filter, first, last, 28411, "epsg", 28411, + "Pulkovo 1942 / Gauss-Kruger zone 11"); add_proj4text (p, 0, - "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32427\"]]"); - p = add_epsg_def (filter, first, last, 32428, "epsg", 32428, - "WGS 72BE / UTM zone 28N"); + "1\"]]"); + p = add_epsg_def (filter, first, last, 28412, "epsg", 28412, + "Pulkovo 1942 / Gauss-Kruger zone 12"); add_proj4text (p, 0, - "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32428\"]]"); - p = add_epsg_def (filter, first, last, 32429, "epsg", 32429, - "WGS 72BE / UTM zone 29N"); + "2\"]]"); + p = add_epsg_def (filter, first, last, 28413, "epsg", 28413, + "Pulkovo 1942 / Gauss-Kruger zone 13"); add_proj4text (p, 0, - "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32429\"]]"); - p = add_epsg_def (filter, first, last, 32430, "epsg", 32430, - "WGS 72BE / UTM zone 30N"); + "3\"]]"); + p = add_epsg_def (filter, first, last, 28414, "epsg", 28414, + "Pulkovo 1942 / Gauss-Kruger zone 14"); add_proj4text (p, 0, - "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32430\"]]"); - p = add_epsg_def (filter, first, last, 32431, "epsg", 32431, - "WGS 72BE / UTM zone 31N"); + "4\"]]"); + p = add_epsg_def (filter, first, last, 28415, "epsg", 28415, + "Pulkovo 1942 / Gauss-Kruger zone 15"); add_proj4text (p, 0, - "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"32431\"]]"); - p = add_epsg_def (filter, first, last, 32432, "epsg", 32432, - "WGS 72BE / UTM zone 32N"); + "5\"]]"); + p = add_epsg_def (filter, first, last, 28416, "epsg", 28416, + "Pulkovo 1942 / Gauss-Kruger zone 16"); add_proj4text (p, 0, - "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 10, - "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - ",NORTH],AUTHORITY[\"EPSG\",\"32432\"]]"); - p = add_epsg_def (filter, first, last, 32433, "epsg", 32433, - "WGS 72BE / UTM zone 33N"); + "6\"]]"); + p = add_epsg_def (filter, first, last, 28417, "epsg", 28417, + "Pulkovo 1942 / Gauss-Kruger zone 17"); add_proj4text (p, 0, - "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32433\"]]"); - p = add_epsg_def (filter, first, last, 32434, "epsg", 32434, - "WGS 72BE / UTM zone 34N"); + "7\"]]"); + p = add_epsg_def (filter, first, last, 28418, "epsg", 28418, + "Pulkovo 1942 / Gauss-Kruger zone 18"); add_proj4text (p, 0, - "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32434\"]]"); - p = add_epsg_def (filter, first, last, 32435, "epsg", 32435, - "WGS 72BE / UTM zone 35N"); + "18\"]]"); + p = add_epsg_def (filter, first, last, 28419, "epsg", 28419, + "Pulkovo 1942 / Gauss-Kruger zone 19"); add_proj4text (p, 0, - "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32435\"]]"); - p = add_epsg_def (filter, first, last, 32436, "epsg", 32436, - "WGS 72BE / UTM zone 36N"); + "19\"]]"); + p = add_epsg_def (filter, first, last, 28420, "epsg", 28420, + "Pulkovo 1942 / Gauss-Kruger zone 20"); add_proj4text (p, 0, - "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32436\"]]"); - p = add_epsg_def (filter, first, last, 32437, "epsg", 32437, - "WGS 72BE / UTM zone 37N"); + "20\"]]"); + p = add_epsg_def (filter, first, last, 28421, "epsg", 28421, + "Pulkovo 1942 / Gauss-Kruger zone 21"); add_proj4text (p, 0, - "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32437\"]]"); - p = add_epsg_def (filter, first, last, 32438, "epsg", 32438, - "WGS 72BE / UTM zone 38N"); + "21\"]]"); + p = add_epsg_def (filter, first, last, 28422, "epsg", 28422, + "Pulkovo 1942 / Gauss-Kruger zone 22"); add_proj4text (p, 0, - "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32438\"]]"); - p = add_epsg_def (filter, first, last, 32439, "epsg", 32439, - "WGS 72BE / UTM zone 39N"); + "22\"]]"); + p = add_epsg_def (filter, first, last, 28423, "epsg", 28423, + "Pulkovo 1942 / Gauss-Kruger zone 23"); add_proj4text (p, 0, - "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32439\"]]"); - p = add_epsg_def (filter, first, last, 32440, "epsg", 32440, - "WGS 72BE / UTM zone 40N"); + "23\"]]"); + p = add_epsg_def (filter, first, last, 28424, "epsg", 28424, + "Pulkovo 1942 / Gauss-Kruger zone 24"); add_proj4text (p, 0, - "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32440\"]]"); - p = add_epsg_def (filter, first, last, 32441, "epsg", 32441, - "WGS 72BE / UTM zone 41N"); + "24\"]]"); + p = add_epsg_def (filter, first, last, 28425, "epsg", 28425, + "Pulkovo 1942 / Gauss-Kruger zone 25"); add_proj4text (p, 0, - "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32441\"]]"); - p = add_epsg_def (filter, first, last, 32442, "epsg", 32442, - "WGS 72BE / UTM zone 42N"); + "25\"]]"); + p = add_epsg_def (filter, first, last, 28426, "epsg", 28426, + "Pulkovo 1942 / Gauss-Kruger zone 26"); add_proj4text (p, 0, - "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32442\"]]"); - p = add_epsg_def (filter, first, last, 32443, "epsg", 32443, - "WGS 72BE / UTM zone 43N"); + "26\"]]"); + p = add_epsg_def (filter, first, last, 28427, "epsg", 28427, + "Pulkovo 1942 / Gauss-Kruger zone 27"); add_proj4text (p, 0, - "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32443\"]]"); - p = add_epsg_def (filter, first, last, 32444, "epsg", 32444, - "WGS 72BE / UTM zone 44N"); + "27\"]]"); + p = add_epsg_def (filter, first, last, 28428, "epsg", 28428, + "Pulkovo 1942 / Gauss-Kruger zone 28"); add_proj4text (p, 0, - "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32444\"]]"); - p = add_epsg_def (filter, first, last, 32445, "epsg", 32445, - "WGS 72BE / UTM zone 45N"); + "28\"]]"); + p = add_epsg_def (filter, first, last, 28429, "epsg", 28429, + "Pulkovo 1942 / Gauss-Kruger zone 29"); add_proj4text (p, 0, - "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32445\"]]"); - p = add_epsg_def (filter, first, last, 32446, "epsg", 32446, - "WGS 72BE / UTM zone 46N"); + "29\"]]"); + p = add_epsg_def (filter, first, last, 28430, "epsg", 28430, + "Pulkovo 1942 / Gauss-Kruger zone 30"); add_proj4text (p, 0, - "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); + add_proj4text (p, 2, + ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32446\"]]"); - p = add_epsg_def (filter, first, last, 32447, "epsg", 32447, - "WGS 72BE / UTM zone 47N"); + "30\"]]"); + p = add_epsg_def (filter, first, last, 28431, "epsg", 28431, + "Pulkovo 1942 / Gauss-Kruger zone 31"); add_proj4text (p, 0, - "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); + add_proj4text (p, 2, + "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32447\"]]"); - p = add_epsg_def (filter, first, last, 32448, "epsg", 32448, - "WGS 72BE / UTM zone 48N"); + "431\"]]"); + p = add_epsg_def (filter, first, last, 28432, "epsg", 28432, + "Pulkovo 1942 / Gauss-Kruger zone 32"); add_proj4text (p, 0, - "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); + add_proj4text (p, 2, + "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); + "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32448\"]]"); - p = add_epsg_def (filter, first, last, 32449, "epsg", 32449, - "WGS 72BE / UTM zone 49N"); + "432\"]]"); + p = add_epsg_def (filter, first, last, 28462, "epsg", 28462, + "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0."); + add_proj4text (p, 2, + "12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32449\"]]"); - p = add_epsg_def (filter, first, last, 32450, "epsg", 32450, - "WGS 72BE / UTM zone 50N"); + "28462\"]]"); + p = add_epsg_def (filter, first, last, 28463, "epsg", 28463, + "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32450\"]]"); - p = add_epsg_def (filter, first, last, 32451, "epsg", 32451, - "WGS 72BE / UTM zone 51N"); + "28463\"]]"); + p = add_epsg_def (filter, first, last, 28464, "epsg", 28464, + "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32451\"]]"); - p = add_epsg_def (filter, first, last, 32452, "epsg", 32452, - "WGS 72BE / UTM zone 52N"); + "28464\"]]"); + p = add_epsg_def (filter, first, last, 28465, "epsg", 28465, + "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32452\"]]"); - p = add_epsg_def (filter, first, last, 32453, "epsg", 32453, - "WGS 72BE / UTM zone 53N"); + "28465\"]]"); + p = add_epsg_def (filter, first, last, 28466, "epsg", 28466, + "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32453\"]]"); - p = add_epsg_def (filter, first, last, 32454, "epsg", 32454, - "WGS 72BE / UTM zone 54N"); + "28466\"]]"); + p = add_epsg_def (filter, first, last, 28467, "epsg", 28467, + "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32454\"]]"); - p = add_epsg_def (filter, first, last, 32455, "epsg", 32455, - "WGS 72BE / UTM zone 55N"); + "28467\"]]"); + p = add_epsg_def (filter, first, last, 28468, "epsg", 28468, + "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32455\"]]"); - p = add_epsg_def (filter, first, last, 32456, "epsg", 32456, - "WGS 72BE / UTM zone 56N"); + "28468\"]]"); + p = add_epsg_def (filter, first, last, 28469, "epsg", 28469, + "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32456\"]]"); - p = add_epsg_def (filter, first, last, 32457, "epsg", 32457, - "WGS 72BE / UTM zone 57N"); + "28469\"]]"); + p = add_epsg_def (filter, first, last, 28470, "epsg", 28470, + "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32457\"]]"); - p = add_epsg_def (filter, first, last, 32458, "epsg", 32458, - "WGS 72BE / UTM zone 58N"); + "28470\"]]"); + p = add_epsg_def (filter, first, last, 28471, "epsg", 28471, + "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32458\"]]"); - p = add_epsg_def (filter, first, last, 32459, "epsg", 32459, - "WGS 72BE / UTM zone 59N"); + "28471\"]]"); + p = add_epsg_def (filter, first, last, 28472, "epsg", 28472, + "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32459\"]]"); - p = add_epsg_def (filter, first, last, 32460, "epsg", 32460, - "WGS 72BE / UTM zone 60N"); + "28472\"]]"); + p = add_epsg_def (filter, first, last, 28473, "epsg", 28473, + "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - "14,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "\",NORTH],AUTHORITY[\"EPSG\",\"32460\"]]"); - p = add_epsg_def (filter, first, last, 32501, "epsg", 32501, - "WGS 72BE / UTM zone 1S"); + "28473\"]]"); + p = add_epsg_def (filter, first, last, 28474, "epsg", 28474, + "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]"); - p = add_epsg_def (filter, first, last, 32502, "epsg", 32502, - "WGS 72BE / UTM zone 2S"); + "28474\"]]"); + p = add_epsg_def (filter, first, last, 28475, "epsg", 28475, + "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]"); - p = add_epsg_def (filter, first, last, 32503, "epsg", 32503, - "WGS 72BE / UTM zone 3S"); + "28475\"]]"); + p = add_epsg_def (filter, first, last, 28476, "epsg", 28476, + "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]"); - p = add_epsg_def (filter, first, last, 32504, "epsg", 32504, - "WGS 72BE / UTM zone 4S"); + "28476\"]]"); + p = add_epsg_def (filter, first, last, 28477, "epsg", 28477, + "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); + add_proj4text (p, 2, + ".12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]"); - p = add_epsg_def (filter, first, last, 32505, "epsg", 32505, - "WGS 72BE / UTM zone 5S"); + "28477\"]]"); + p = add_epsg_def (filter, first, last, 28478, "epsg", 28478, + "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]"); - p = add_epsg_def (filter, first, last, 32506, "epsg", 32506, - "WGS 72BE / UTM zone 6S"); + "\"28478\"]]"); + p = add_epsg_def (filter, first, last, 28479, "epsg", 28479, + "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]"); - p = add_epsg_def (filter, first, last, 32507, "epsg", 32507, - "WGS 72BE / UTM zone 7S"); + "\"28479\"]]"); + p = add_epsg_def (filter, first, last, 28480, "epsg", 28480, + "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]"); - p = add_epsg_def (filter, first, last, 32508, "epsg", 32508, - "WGS 72BE / UTM zone 8S"); + "\"28480\"]]"); + p = add_epsg_def (filter, first, last, 28481, "epsg", 28481, + "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]"); - p = add_epsg_def (filter, first, last, 32509, "epsg", 32509, - "WGS 72BE / UTM zone 9S"); + "\"28481\"]]"); + p = add_epsg_def (filter, first, last, 28482, "epsg", 28482, + "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - ",0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, - "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]"); - p = add_epsg_def (filter, first, last, 32510, "epsg", 32510, - "WGS 72BE / UTM zone 10S"); + "\"28482\"]]"); + p = add_epsg_def (filter, first, last, 28483, "epsg", 28483, + "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]"); - p = add_epsg_def (filter, first, last, 32511, "epsg", 32511, - "WGS 72BE / UTM zone 11S"); + "\"28483\"]]"); + p = add_epsg_def (filter, first, last, 28484, "epsg", 28484, + "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]"); - p = add_epsg_def (filter, first, last, 32512, "epsg", 32512, - "WGS 72BE / UTM zone 12S"); + "\"28484\"]]"); + p = add_epsg_def (filter, first, last, 28485, "epsg", 28485, + "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]"); - p = add_epsg_def (filter, first, last, 32513, "epsg", 32513, - "WGS 72BE / UTM zone 13S"); + "\"28485\"]]"); + p = add_epsg_def (filter, first, last, 28486, "epsg", 28486, + "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]"); - p = add_epsg_def (filter, first, last, 32514, "epsg", 32514, - "WGS 72BE / UTM zone 14S"); + "\"28486\"]]"); + p = add_epsg_def (filter, first, last, 28487, "epsg", 28487, + "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]"); - p = add_epsg_def (filter, first, last, 32515, "epsg", 32515, - "WGS 72BE / UTM zone 15S"); + "\"28487\"]]"); + p = add_epsg_def (filter, first, last, 28488, "epsg", 28488, + "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]"); - p = add_epsg_def (filter, first, last, 32516, "epsg", 32516, - "WGS 72BE / UTM zone 16S"); + "\"28488\"]]"); + p = add_epsg_def (filter, first, last, 28489, "epsg", 28489, + "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]"); - p = add_epsg_def (filter, first, last, 32517, "epsg", 32517, - "WGS 72BE / UTM zone 17S"); + "\"28489\"]]"); + p = add_epsg_def (filter, first, last, 28490, "epsg", 28490, + "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); + add_proj4text (p, 2, + "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]"); - p = add_epsg_def (filter, first, last, 32518, "epsg", 32518, - "WGS 72BE / UTM zone 18S"); + "\"28490\"]]"); + p = add_epsg_def (filter, first, last, 28491, "epsg", 28491, + "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]"); - p = add_epsg_def (filter, first, last, 32519, "epsg", 32519, - "WGS 72BE / UTM zone 19S"); + ",\"28491\"]]"); + p = add_epsg_def (filter, first, last, 28492, "epsg", 28492, + "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); + add_proj4text (p, 2, + "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]"); - p = add_epsg_def (filter, first, last, 32520, "epsg", 32520, - "WGS 72BE / UTM zone 20S"); + ",\"28492\"]]"); + p = add_epsg_def (filter, first, last, 28600, "epsg", 28600, + "Qatar 1974 / Qatar National Grid"); add_proj4text (p, 0, - "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1"); + add_proj4text (p, 2, + "6,-282.42,21.93,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International "); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + "4.45],PARAMETER[\"central_meridian\",51.21666666666667],"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "sting\",200000],PARAMETER[\"false_northing\",300000],UNI"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]"); - p = add_epsg_def (filter, first, last, 32521, "epsg", 32521, - "WGS 72BE / UTM zone 21S"); + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "28600\"]]"); + p = add_epsg_def (filter, first, last, 28991, "epsg", 28991, + "Amersfoort / RD Old"); add_proj4text (p, 0, - "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84="); + add_proj4text (p, 2, + "565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.072"); + add_proj4text (p, 3, + "5 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "r\",0.9999079],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]"); - p = add_epsg_def (filter, first, last, 32522, "epsg", 32522, - "WGS 72BE / UTM zone 22S"); + ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 13, + "[\"EPSG\",\"28991\"]]"); + p = add_epsg_def (filter, first, last, 28992, "epsg", 28992, + "Amersfoort / RD New"); add_proj4text (p, 0, - "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel"); + add_proj4text (p, 2, + " +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1."); + add_proj4text (p, 3, + "8774,4.0725 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); + "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "r\",0.9999079],PARAMETER[\"false_easting\",155000],PARAM"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "ETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]"); - p = add_epsg_def (filter, first, last, 32523, "epsg", 32523, - "WGS 72BE / UTM zone 23S"); + "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); + add_srs_wkt (p, 13, + "],AUTHORITY[\"EPSG\",\"28992\"]]"); + p = add_epsg_def (filter, first, last, 29100, "epsg", 29100, + "SAD69 / Brazil Polyconic (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d"); + add_proj4text (p, 2, + "efs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); + "ER[\"central_meridian\",-54],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + ",5000000],PARAMETER[\"false_northing\",10000000],UNIT[\""); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]"); - p = add_epsg_def (filter, first, last, 32524, "epsg", 32524, - "WGS 72BE / UTM zone 24S"); + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]"); + p = add_epsg_def (filter, first, last, 29101, "epsg", 29101, + "SAD69 / Brazil Polyconic"); add_proj4text (p, 0, - "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "0 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no"); + add_proj4text (p, 2, + "_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polyconic\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); + "l_meridian\",-54],PARAMETER[\"false_easting\",5000000],P"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); - add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]"); - p = add_epsg_def (filter, first, last, 32525, "epsg", 32525, - "WGS 72BE / UTM zone 25S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]"); + p = add_epsg_def (filter, first, last, 29118, "epsg", 29118, + "SAD69 / UTM zone 18N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); + "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]"); - p = add_epsg_def (filter, first, last, 32526, "epsg", 32526, - "WGS 72BE / UTM zone 26S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29118\"]]"); + p = add_epsg_def (filter, first, last, 29119, "epsg", 29119, + "SAD69 / UTM zone 19N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); + "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]"); - p = add_epsg_def (filter, first, last, 32527, "epsg", 32527, - "WGS 72BE / UTM zone 27S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29119\"]]"); + p = add_epsg_def (filter, first, last, 29120, "epsg", 29120, + "SAD69 / UTM zone 20N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); + "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]"); - p = add_epsg_def (filter, first, last, 32528, "epsg", 32528, - "WGS 72BE / UTM zone 28S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29120\"]]"); + p = add_epsg_def (filter, first, last, 29121, "epsg", 29121, + "SAD69 / UTM zone 21N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); + "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]"); - p = add_epsg_def (filter, first, last, 32529, "epsg", 32529, - "WGS 72BE / UTM zone 29S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29121\"]]"); + p = add_epsg_def (filter, first, last, 29122, "epsg", 29122, + "SAD69 / UTM zone 22N (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]"); - p = add_epsg_def (filter, first, last, 32530, "epsg", 32530, - "WGS 72BE / UTM zone 30S"); + ",NORTH],AUTHORITY[\"EPSG\",\"29122\"]]"); + p = add_epsg_def (filter, first, last, 29168, "epsg", 29168, + "SAD69 / UTM zone 18N"); add_proj4text (p, 0, - "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); + "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]"); - p = add_epsg_def (filter, first, last, 32531, "epsg", 32531, - "WGS 72BE / UTM zone 31S"); + "THORITY[\"EPSG\",\"29168\"]]"); + p = add_epsg_def (filter, first, last, 29169, "epsg", 29169, + "SAD69 / UTM zone 19N"); add_proj4text (p, 0, - "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); + "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]"); - p = add_epsg_def (filter, first, last, 32532, "epsg", 32532, - "WGS 72BE / UTM zone 32S"); + "THORITY[\"EPSG\",\"29169\"]]"); + p = add_epsg_def (filter, first, last, 29170, "epsg", 29170, + "SAD69 / UTM zone 20N"); add_proj4text (p, 0, - "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); + "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]"); - p = add_epsg_def (filter, first, last, 32533, "epsg", 32533, - "WGS 72BE / UTM zone 33S"); + "THORITY[\"EPSG\",\"29170\"]]"); + p = add_epsg_def (filter, first, last, 29171, "epsg", 29171, + "SAD69 / UTM zone 21N"); add_proj4text (p, 0, - "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); + "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]"); - p = add_epsg_def (filter, first, last, 32534, "epsg", 32534, - "WGS 72BE / UTM zone 34S"); + "THORITY[\"EPSG\",\"29171\"]]"); + p = add_epsg_def (filter, first, last, 29172, "epsg", 29172, + "SAD69 / UTM zone 22N"); add_proj4text (p, 0, - "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); + "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]"); - p = add_epsg_def (filter, first, last, 32535, "epsg", 32535, - "WGS 72BE / UTM zone 35S"); + "THORITY[\"EPSG\",\"29172\"]]"); + p = add_epsg_def (filter, first, last, 29177, "epsg", 29177, + "SAD69 / UTM zone 17S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]"); - p = add_epsg_def (filter, first, last, 32536, "epsg", 32536, - "WGS 72BE / UTM zone 36S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]"); + p = add_epsg_def (filter, first, last, 29178, "epsg", 29178, + "SAD69 / UTM zone 18S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]"); - p = add_epsg_def (filter, first, last, 32537, "epsg", 32537, - "WGS 72BE / UTM zone 37S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]"); + p = add_epsg_def (filter, first, last, 29179, "epsg", 29179, + "SAD69 / UTM zone 19S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]"); - p = add_epsg_def (filter, first, last, 32538, "epsg", 32538, - "WGS 72BE / UTM zone 38S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]"); + p = add_epsg_def (filter, first, last, 29180, "epsg", 29180, + "SAD69 / UTM zone 20S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]"); - p = add_epsg_def (filter, first, last, 32539, "epsg", 32539, - "WGS 72BE / UTM zone 39S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]"); + p = add_epsg_def (filter, first, last, 29181, "epsg", 29181, + "SAD69 / UTM zone 21S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]"); - p = add_epsg_def (filter, first, last, 32540, "epsg", 32540, - "WGS 72BE / UTM zone 40S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]"); + p = add_epsg_def (filter, first, last, 29182, "epsg", 29182, + "SAD69 / UTM zone 22S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]"); - p = add_epsg_def (filter, first, last, 32541, "epsg", 32541, - "WGS 72BE / UTM zone 41S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]"); + p = add_epsg_def (filter, first, last, 29183, "epsg", 29183, + "SAD69 / UTM zone 23S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]"); - p = add_epsg_def (filter, first, last, 32542, "epsg", 32542, - "WGS 72BE / UTM zone 42S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]"); + p = add_epsg_def (filter, first, last, 29184, "epsg", 29184, + "SAD69 / UTM zone 24S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]"); - p = add_epsg_def (filter, first, last, 32543, "epsg", 32543, - "WGS 72BE / UTM zone 43S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]"); + p = add_epsg_def (filter, first, last, 29185, "epsg", 29185, + "SAD69 / UTM zone 25S (deprecated)"); add_proj4text (p, 0, - "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); + "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]"); - p = add_epsg_def (filter, first, last, 32544, "epsg", 32544, - "WGS 72BE / UTM zone 44S"); + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]"); + p = add_epsg_def (filter, first, last, 29187, "epsg", 29187, + "SAD69 / UTM zone 17S"); add_proj4text (p, 0, - "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); + "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]"); - p = add_epsg_def (filter, first, last, 32545, "epsg", 32545, - "WGS 72BE / UTM zone 45S"); + "TH],AUTHORITY[\"EPSG\",\"29187\"]]"); + p = add_epsg_def (filter, first, last, 29188, "epsg", 29188, + "SAD69 / UTM zone 18S"); add_proj4text (p, 0, - "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); + "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]"); - p = add_epsg_def (filter, first, last, 32546, "epsg", 32546, - "WGS 72BE / UTM zone 46S"); + "TH],AUTHORITY[\"EPSG\",\"29188\"]]"); + p = add_epsg_def (filter, first, last, 29189, "epsg", 29189, + "SAD69 / UTM zone 19S"); add_proj4text (p, 0, - "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); + "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]"); - p = add_epsg_def (filter, first, last, 32547, "epsg", 32547, - "WGS 72BE / UTM zone 47S"); + "TH],AUTHORITY[\"EPSG\",\"29189\"]]"); + p = add_epsg_def (filter, first, last, 29190, "epsg", 29190, + "SAD69 / UTM zone 20S"); add_proj4text (p, 0, - "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); + "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]"); - p = add_epsg_def (filter, first, last, 32548, "epsg", 32548, - "WGS 72BE / UTM zone 48S"); + "TH],AUTHORITY[\"EPSG\",\"29190\"]]"); + p = add_epsg_def (filter, first, last, 29191, "epsg", 29191, + "SAD69 / UTM zone 21S"); add_proj4text (p, 0, - "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); + "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]"); - p = add_epsg_def (filter, first, last, 32549, "epsg", 32549, - "WGS 72BE / UTM zone 49S"); + "TH],AUTHORITY[\"EPSG\",\"29191\"]]"); + p = add_epsg_def (filter, first, last, 29192, "epsg", 29192, + "SAD69 / UTM zone 22S"); add_proj4text (p, 0, - "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); + "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]"); - p = add_epsg_def (filter, first, last, 32550, "epsg", 32550, - "WGS 72BE / UTM zone 50S"); + "TH],AUTHORITY[\"EPSG\",\"29192\"]]"); + p = add_epsg_def (filter, first, last, 29193, "epsg", 29193, + "SAD69 / UTM zone 23S"); add_proj4text (p, 0, - "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); + "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]"); - p = add_epsg_def (filter, first, last, 32551, "epsg", 32551, - "WGS 72BE / UTM zone 51S"); + "TH],AUTHORITY[\"EPSG\",\"29193\"]]"); + p = add_epsg_def (filter, first, last, 29194, "epsg", 29194, + "SAD69 / UTM zone 24S"); add_proj4text (p, 0, - "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); + "central_meridian\",-39],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]"); - p = add_epsg_def (filter, first, last, 32552, "epsg", 32552, - "WGS 72BE / UTM zone 52S"); + "TH],AUTHORITY[\"EPSG\",\"29194\"]]"); + p = add_epsg_def (filter, first, last, 29195, "epsg", 29195, + "SAD69 / UTM zone 25S"); add_proj4text (p, 0, - "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); + "central_meridian\",-33],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]"); - p = add_epsg_def (filter, first, last, 32553, "epsg", 32553, - "WGS 72BE / UTM zone 53S"); + "TH],AUTHORITY[\"EPSG\",\"29195\"]]"); + p = add_epsg_def (filter, first, last, 29220, "epsg", 29220, + "Sapper Hill 1943 / UTM zone 20S"); add_proj4text (p, 0, - "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); + ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, @@ -3123,31 +3263,31 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]"); - p = add_epsg_def (filter, first, last, 32554, "epsg", 32554, - "WGS 72BE / UTM zone 54S"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]"); + p = add_epsg_def (filter, first, last, 29221, "epsg", 29221, + "Sapper Hill 1943 / UTM zone 21S"); add_proj4text (p, 0, - "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); + ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, @@ -3155,135 +3295,147 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]"); - p = add_epsg_def (filter, first, last, 32555, "epsg", 32555, - "WGS 72BE / UTM zone 55S"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]"); + p = add_epsg_def (filter, first, last, 29333, "epsg", 29333, + "Schwarzeck / UTM zone 33S"); add_proj4text (p, 0, - "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "7,-251,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\""); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\""); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); + "0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]"); - p = add_epsg_def (filter, first, last, 32556, "epsg", 32556, - "WGS 72BE / UTM zone 56S"); + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]"); + p = add_epsg_def (filter, first, last, 29371, "epsg", 29371, + "Schwarzeck / Lo22/11"); add_proj4text (p, 0, - "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); + "_of_origin\",-22],PARAMETER[\"central_meridian\",11],PAR"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]"); - p = add_epsg_def (filter, first, last, 32557, "epsg", 32557, - "WGS 72BE / UTM zone 57S"); + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29373, "epsg", 29373, + "Schwarzeck / Lo22/13"); add_proj4text (p, 0, - "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); + "_of_origin\",-22],PARAMETER[\"central_meridian\",13],PAR"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]"); - p = add_epsg_def (filter, first, last, 32558, "epsg", 32558, - "WGS 72BE / UTM zone 58S"); + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29375, "epsg", 29375, + "Schwarzeck / Lo22/15"); add_proj4text (p, 0, - "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); + "_of_origin\",-22],PARAMETER[\"central_meridian\",15],PAR"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]"); + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\""); + add_srs_wkt (p, 13, + "]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_40.c b/src/spatialite/src/srsinit/epsg_inlined_40.c index e39d211..b3b41fc 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_40.c +++ b/src/spatialite/src/srsinit/epsg_inlined_40.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -52,70 +52,3456 @@ initialize_epsg_40 (int filter, struct epsg_defs **first, struct epsg_defs **las { /* initializing the EPSG defs list */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 32559, "epsg", 32559, - "WGS 72BE / UTM zone 59S"); + p = add_epsg_def (filter, first, last, 29377, "epsg", 29377, + "Schwarzeck / Lo22/17"); add_proj4text (p, 0, - "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); + "_of_origin\",-22],PARAMETER[\"central_meridian\",17],PAR"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29379, "epsg", 29379, + "Schwarzeck / Lo22/19"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi"); + add_proj4text (p, 1, + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA"); + add_srs_wkt (p, 1, + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + add_srs_wkt (p, 2, + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + add_srs_wkt (p, 4, + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + add_srs_wkt (p, 5, + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + add_srs_wkt (p, 7, + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",-22],PARAMETER[\"central_meridian\",19],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + add_srs_wkt (p, 11, + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29381, "epsg", 29381, + "Schwarzeck / Lo22/21"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi"); + add_proj4text (p, 1, + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA"); + add_srs_wkt (p, 1, + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + add_srs_wkt (p, 2, + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + add_srs_wkt (p, 4, + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + add_srs_wkt (p, 5, + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + add_srs_wkt (p, 7, + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",-22],PARAMETER[\"central_meridian\",21],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + add_srs_wkt (p, 11, + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29383, "epsg", 29383, + "Schwarzeck / Lo22/23"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi"); + add_proj4text (p, 1, + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA"); + add_srs_wkt (p, 1, + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + add_srs_wkt (p, 2, + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + add_srs_wkt (p, 4, + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + add_srs_wkt (p, 5, + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + add_srs_wkt (p, 7, + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",-22],PARAMETER[\"central_meridian\",23],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + add_srs_wkt (p, 11, + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29385, "epsg", 29385, + "Schwarzeck / Lo22/25"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi"); + add_proj4text (p, 1, + "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); + add_proj4text (p, 2, + "eter=1.0000135965 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA"); + add_srs_wkt (p, 1, + "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); + add_srs_wkt (p, 2, + "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); + add_srs_wkt (p, 4, + "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + add_srs_wkt (p, 5, + "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); + add_srs_wkt (p, 7, + "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",-22],PARAMETER[\"central_meridian\",25],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); + add_srs_wkt (p, 11, + "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29635, "epsg", 29635, + "Sudan / UTM zone 35N (deprecated)"); + add_proj4text (p, 0, + "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_"); + add_proj4text (p, 1, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su"); + add_srs_wkt (p, 1, + "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); + add_srs_wkt (p, 2, + "8249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); + add_srs_wkt (p, 8, + "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); + add_srs_wkt (p, 9, + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); + add_srs_wkt (p, 10, + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); + add_srs_wkt (p, 11, + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); + add_srs_wkt (p, 12, + "35\"]]"); + p = add_epsg_def (filter, first, last, 29636, "epsg", 29636, + "Sudan / UTM zone 36N (deprecated)"); + add_proj4text (p, 0, + "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_"); + add_proj4text (p, 1, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su"); + add_srs_wkt (p, 1, + "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); + add_srs_wkt (p, 2, + "8249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); + add_srs_wkt (p, 8, + "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); + add_srs_wkt (p, 9, + "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); + add_srs_wkt (p, 10, + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); + add_srs_wkt (p, 11, + ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); + add_srs_wkt (p, 12, + "36\"]]"); + p = add_epsg_def (filter, first, last, 29700, "epsg", 29700, + "Tananarive (Paris) / Laborde Grid (deprecated)"); + add_proj4text (p, 0, + "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); + add_proj4text (p, 1, + "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); + add_proj4text (p, 2, + "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); + add_proj4text (p, 3, + "ris +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\""); + add_srs_wkt (p, 1, + ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P"); + add_srs_wkt (p, 2, + "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); + add_srs_wkt (p, 3, + "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291"); + add_srs_wkt (p, 5, + "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796"); + add_srs_wkt (p, 6, + "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimu"); + add_srs_wkt (p, 8, + "th_Center\"],PARAMETER[\"latitude_of_center\",-21],PARAM"); + add_srs_wkt (p, 9, + "ETER[\"longitude_of_center\",49],PARAMETER[\"azimuth\",2"); + add_srs_wkt (p, 10, + "1],PARAMETER[\"rectified_grid_angle\",21],PARAMETER[\"sc"); + add_srs_wkt (p, 11, + "ale_factor\",0.9995],PARAMETER[\"false_easting\",400000]"); + add_srs_wkt (p, 12, + ",PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 13, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 14, + ",NORTH],AUTHORITY[\"EPSG\",\"29700\"]]"); + p = add_epsg_def (filter, first, last, 29702, "epsg", 29702, + "Tananarive (Paris) / Laborde Grid approximation"); + add_proj4text (p, 0, + "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); + add_proj4text (p, 1, + "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); + add_proj4text (p, 2, + "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); + add_proj4text (p, 3, + "ris +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation"); + add_srs_wkt (p, 1, + "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925"); + add_srs_wkt (p, 2, + "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT"); + add_srs_wkt (p, 3, + "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722"); + add_srs_wkt (p, 5, + "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); + add_srs_wkt (p, 6, + "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 7, + "SG\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azi"); + add_srs_wkt (p, 8, + "muth_Center\"],PARAMETER[\"latitude_of_center\",-21],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"longitude_of_center\",49],PARAMETER[\"azimuth\""); + add_srs_wkt (p, 10, + ",21],PARAMETER[\"rectified_grid_angle\",21],PARAMETER[\""); + add_srs_wkt (p, 11, + "scale_factor\",0.9995],PARAMETER[\"false_easting\",40000"); + add_srs_wkt (p, 12, + "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2970"); + add_srs_wkt (p, 14, + "2\"]]"); + p = add_epsg_def (filter, first, last, 29738, "epsg", 29738, + "Tananarive / UTM zone 38S"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242"); + add_proj4text (p, 1, + ",-91,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive"); + add_srs_wkt (p, 1, + "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); + add_srs_wkt (p, 2, + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + add_srs_wkt (p, 3, + "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); + add_srs_wkt (p, 4, + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + add_srs_wkt (p, 5, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 6, + "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 7, + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0."); + add_srs_wkt (p, 9, + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + add_srs_wkt (p, 11, + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 12, + ",NORTH],AUTHORITY[\"EPSG\",\"29738\"]]"); + p = add_epsg_def (filter, first, last, 29739, "epsg", 29739, + "Tananarive / UTM zone 39S"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242"); + add_proj4text (p, 1, + ",-91,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive"); + add_srs_wkt (p, 1, + "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); + add_srs_wkt (p, 2, + "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); + add_srs_wkt (p, 3, + "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); + add_srs_wkt (p, 4, + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + add_srs_wkt (p, 5, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 6, + "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 7, + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"central_meridian\",51],PARAMETER[\"scale_factor\",0."); + add_srs_wkt (p, 9, + "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + add_srs_wkt (p, 11, + "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 12, + ",NORTH],AUTHORITY[\"EPSG\",\"29739\"]]"); + p = add_epsg_def (filter, first, last, 29849, "epsg", 29849, + "Timbalai 1948 / UTM zone 49N"); + add_proj4text (p, 0, + "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-679,669,-48,"); + add_proj4text (p, 1, + "0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala"); + add_srs_wkt (p, 1, + "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); + add_srs_wkt (p, 2, + " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); + add_srs_wkt (p, 3, + "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["); + add_srs_wkt (p, 4, + "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + add_srs_wkt (p, 5, + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]],"); + add_srs_wkt (p, 7, + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); + add_srs_wkt (p, 9, + "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); + add_srs_wkt (p, 10, + "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + add_srs_wkt (p, 11, + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + add_srs_wkt (p, 12, + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29849\"]]"); + p = add_epsg_def (filter, first, last, 29850, "epsg", 29850, + "Timbalai 1948 / UTM zone 50N"); + add_proj4text (p, 0, + "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-679,669,-48,"); + add_proj4text (p, 1, + "0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala"); + add_srs_wkt (p, 1, + "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); + add_srs_wkt (p, 2, + " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); + add_srs_wkt (p, 3, + "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["); + add_srs_wkt (p, 4, + "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); + add_srs_wkt (p, 5, + "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]],"); + add_srs_wkt (p, 7, + "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); + add_srs_wkt (p, 8, + "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); + add_srs_wkt (p, 9, + "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); + add_srs_wkt (p, 10, + "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + add_srs_wkt (p, 11, + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); + add_srs_wkt (p, 12, + "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29850\"]]"); + p = add_epsg_def (filter, first, last, 29871, "epsg", 29871, + "Timbalai 1948 / RSO Borneo (ch)"); + add_proj4text (p, 0, + "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + add_proj4text (p, 1, + "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 "); + add_proj4text (p, 2, + "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,66"); + add_proj4text (p, 3, + "9,-48,0,0,0,0 +to_meter=20.11676512155263 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb"); + add_srs_wkt (p, 1, + "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); + add_srs_wkt (p, 2, + "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); + add_srs_wkt (p, 4, + "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]"); + add_srs_wkt (p, 7, + ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],"); + add_srs_wkt (p, 8, + "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); + add_srs_wkt (p, 9, + "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222"); + add_srs_wkt (p, 10, + "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111"); + add_srs_wkt (p, 11, + "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_"); + add_srs_wkt (p, 12, + "easting\",29352.4763],PARAMETER[\"false_northing\",22014"); + add_srs_wkt (p, 13, + ".3572],UNIT[\"British chain (Sears 1922)\",20.1167651215"); + add_srs_wkt (p, 14, + "5263,AUTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST"); + add_srs_wkt (p, 15, + "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]"); + add_srs_wkt (p, 16, + "]"); + p = add_epsg_def (filter, first, last, 29872, "epsg", 29872, + "Timbalai 1948 / RSO Borneo (ft)"); + add_proj4text (p, 0, + "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + add_proj4text (p, 1, + "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985"); + add_proj4text (p, 2, + " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,6"); + add_proj4text (p, 3, + "69,-48,0,0,0,0 +to_meter=0.3047994715386762 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb"); + add_srs_wkt (p, 1, + "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); + add_srs_wkt (p, 2, + "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); + add_srs_wkt (p, 4, + "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]"); + add_srs_wkt (p, 7, + ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],"); + add_srs_wkt (p, 8, + "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); + add_srs_wkt (p, 9, + "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222"); + add_srs_wkt (p, 10, + "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111"); + add_srs_wkt (p, 11, + "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_"); + add_srs_wkt (p, 12, + "easting\",1937263.44],PARAMETER[\"false_northing\",14529"); + add_srs_wkt (p, 13, + "47.58],UNIT[\"British foot (Sears 1922)\",0.304799471538"); + add_srs_wkt (p, 14, + "6762,AUTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST"); + add_srs_wkt (p, 15, + "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]"); + add_srs_wkt (p, 16, + "]"); + p = add_epsg_def (filter, first, last, 29873, "epsg", 29873, + "Timbalai 1948 / RSO Borneo (m)"); + add_proj4text (p, 0, + "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); + add_proj4text (p, 1, + "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010"); + add_proj4text (p, 2, + "236111111 +ellps=evrstSS +towgs84=-679,669,-48,0,0,0,0 +"); + add_proj4text (p, 3, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba"); + add_srs_wkt (p, 1, + "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18"); + add_srs_wkt (p, 2, + "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); + add_srs_wkt (p, 4, + "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]"); + add_srs_wkt (p, 7, + ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],"); + add_srs_wkt (p, 8, + "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); + add_srs_wkt (p, 9, + "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222"); + add_srs_wkt (p, 10, + "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111"); + add_srs_wkt (p, 11, + "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_"); + add_srs_wkt (p, 12, + "easting\",590476.87],PARAMETER[\"false_northing\",442857"); + add_srs_wkt (p, 13, + ".65],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 14, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 15, + "EPSG\",\"29873\"]]"); + p = add_epsg_def (filter, first, last, 29900, "epsg", 29900, + "TM65 / Irish National Grid (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + add_proj4text (p, 1, + "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC"); + add_srs_wkt (p, 1, + "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\""); + add_srs_wkt (p, 2, + ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + add_srs_wkt (p, 5, + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + add_srs_wkt (p, 6, + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); + add_srs_wkt (p, 7, + "99\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); + add_srs_wkt (p, 8, + "atitude_of_origin\",53.5],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-8],PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",200000],PARAMETER[\"false_northing\",25000"); + add_srs_wkt (p, 11, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 12, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 13, + "G\",\"29900\"]]"); + p = add_epsg_def (filter, first, last, 29901, "epsg", 29901, + "OSNI 1952 / Irish National Grid"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0="); + add_proj4text (p, 1, + "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0"); + add_proj4text (p, 2, + ".214,-0.631,8.15 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI"); + add_srs_wkt (p, 1, + " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775"); + add_srs_wkt (p, 2, + "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY"); + add_srs_wkt (p, 4, + "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4188\"]]"); + add_srs_wkt (p, 7, + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + add_srs_wkt (p, 8, + "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 10, + ",200000],PARAMETER[\"false_northing\",250000],UNIT[\"met"); + add_srs_wkt (p, 11, + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); + add_srs_wkt (p, 12, + "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 29902, "epsg", 29902, + "TM65 / Irish Grid"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + add_proj4text (p, 1, + "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6"); + add_srs_wkt (p, 1, + "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249"); + add_srs_wkt (p, 2, + "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5"); + add_srs_wkt (p, 3, + "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629"); + add_srs_wkt (p, 4, + "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + add_srs_wkt (p, 5, + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"T"); + add_srs_wkt (p, 7, + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); + add_srs_wkt (p, 8, + "3.5],PARAMETER[\"central_meridian\",-8],PARAMETER[\"scal"); + add_srs_wkt (p, 9, + "e_factor\",1.000035],PARAMETER[\"false_easting\",200000]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 11, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); + add_srs_wkt (p, 12, + "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]"); + p = add_epsg_def (filter, first, last, 29903, "epsg", 29903, + "TM75 / Irish Grid"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); + add_proj4text (p, 1, + "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); + add_proj4text (p, 2, + "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo"); + add_srs_wkt (p, 1, + "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63"); + add_srs_wkt (p, 2, + "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG"); + add_srs_wkt (p, 3, + "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR"); + add_srs_wkt (p, 4, + "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); + add_srs_wkt (p, 5, + "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4300\""); + add_srs_wkt (p, 7, + "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); + add_srs_wkt (p, 8, + "ude_of_origin\",53.5],PARAMETER[\"central_meridian\",-8]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_"); + add_srs_wkt (p, 10, + "easting\",200000],PARAMETER[\"false_northing\",250000],U"); + add_srs_wkt (p, 11, + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); + add_srs_wkt (p, 12, + "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"29903\"]]"); + p = add_epsg_def (filter, first, last, 30161, "epsg", 30161, + "Tokyo / Japan Plane Rectangular CS I"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); + add_proj4text (p, 1, + "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\""); + add_srs_wkt (p, 1, + "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + add_srs_wkt (p, 2, + ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + add_srs_wkt (p, 3, + "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + add_srs_wkt (p, 4, + "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + add_srs_wkt (p, 5, + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + add_srs_wkt (p, 7, + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); + add_srs_wkt (p, 8, + "3],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30161\"]]"); + p = add_epsg_def (filter, first, last, 30162, "epsg", 30162, + "Tokyo / Japan Plane Rectangular CS II"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",33],PARAMETER[\"central_meridian\",131],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30162\"]]"); + p = add_epsg_def (filter, first, last, 30163, "epsg", 30163, + "Tokyo / Japan Plane Rectangular CS III"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + add_proj4text (p, 2, + "80.507,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",36],PARAMETER[\"central_meridian\",132.1666666666667],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + add_srs_wkt (p, 10, + "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 11, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301"); + add_srs_wkt (p, 12, + "63\"]]"); + p = add_epsg_def (filter, first, last, 30164, "epsg", 30164, + "Tokyo / Japan Plane Rectangular CS IV"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); + add_proj4text (p, 1, + "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",33],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"s"); + add_srs_wkt (p, 9, + "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30164\"]]"); + p = add_epsg_def (filter, first, last, 30165, "epsg", 30165, + "Tokyo / Japan Plane Rectangular CS V"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + add_proj4text (p, 2, + "80.507,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\""); + add_srs_wkt (p, 1, + "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + add_srs_wkt (p, 2, + ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + add_srs_wkt (p, 3, + "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + add_srs_wkt (p, 4, + "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + add_srs_wkt (p, 5, + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + add_srs_wkt (p, 7, + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); + add_srs_wkt (p, 8, + "6],PARAMETER[\"central_meridian\",134.3333333333333],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 10, + "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + add_srs_wkt (p, 11, + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30165"); + add_srs_wkt (p, 12, + "\"]]"); + p = add_epsg_def (filter, first, last, 30166, "epsg", 30166, + "Tokyo / Japan Plane Rectangular CS VI"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",36],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30166\"]]"); + p = add_epsg_def (filter, first, last, 30167, "epsg", 30167, + "Tokyo / Japan Plane Rectangular CS VII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + add_proj4text (p, 2, + "80.507,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",36],PARAMETER[\"central_meridian\",137.1666666666667],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + add_srs_wkt (p, 10, + "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 11, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301"); + add_srs_wkt (p, 12, + "67\"]]"); + p = add_epsg_def (filter, first, last, 30168, "epsg", 30168, + "Tokyo / Japan Plane Rectangular CS VIII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); + add_proj4text (p, 1, + "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC"); + add_srs_wkt (p, 1, + "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + add_srs_wkt (p, 2, + "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 4, + "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + add_srs_wkt (p, 5, + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + add_srs_wkt (p, 6, + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + add_srs_wkt (p, 7, + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + add_srs_wkt (p, 8, + "n\",36],PARAMETER[\"central_meridian\",138.5],PARAMETER["); + add_srs_wkt (p, 9, + "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); + add_srs_wkt (p, 11, + "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30168\"]]"); + p = add_epsg_def (filter, first, last, 30169, "epsg", 30169, + "Tokyo / Japan Plane Rectangular CS IX"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + add_proj4text (p, 2, + "80.507,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",36],PARAMETER[\"central_meridian\",139.8333333333333],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); + add_srs_wkt (p, 10, + "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 11, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301"); + add_srs_wkt (p, 12, + "69\"]]"); + p = add_epsg_def (filter, first, last, 30170, "epsg", 30170, + "Tokyo / Japan Plane Rectangular CS X"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); + add_proj4text (p, 2, + "80.507,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\""); + add_srs_wkt (p, 1, + "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); + add_srs_wkt (p, 2, + ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); + add_srs_wkt (p, 3, + "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); + add_srs_wkt (p, 4, + "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); + add_srs_wkt (p, 5, + "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); + add_srs_wkt (p, 7, + "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); + add_srs_wkt (p, 8, + "0],PARAMETER[\"central_meridian\",140.8333333333333],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 10, + "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + add_srs_wkt (p, 11, + "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30170"); + add_srs_wkt (p, 12, + "\"]]"); + p = add_epsg_def (filter, first, last, 30171, "epsg", 30171, + "Tokyo / Japan Plane Rectangular CS XI"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); + add_proj4text (p, 1, + "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); + add_proj4text (p, 2, + "0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",44],PARAMETER[\"central_meridian\",140.25],PARAMETER[\""); + add_srs_wkt (p, 9, + "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30171\"]]"); + p = add_epsg_def (filter, first, last, 30172, "epsg", 30172, + "Tokyo / Japan Plane Rectangular CS XII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); + add_proj4text (p, 1, + "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); + add_proj4text (p, 2, + "0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",44],PARAMETER[\"central_meridian\",142.25],PARAMETER[\""); + add_srs_wkt (p, 9, + "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30172\"]]"); + p = add_epsg_def (filter, first, last, 30173, "epsg", 30173, + "Tokyo / Japan Plane Rectangular CS XIII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); + add_proj4text (p, 1, + "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); + add_proj4text (p, 2, + "0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC"); + add_srs_wkt (p, 1, + "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + add_srs_wkt (p, 2, + "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 4, + "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + add_srs_wkt (p, 5, + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + add_srs_wkt (p, 6, + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + add_srs_wkt (p, 7, + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + add_srs_wkt (p, 8, + "n\",44],PARAMETER[\"central_meridian\",144.25],PARAMETER"); + add_srs_wkt (p, 9, + "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 11, + "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30173\"]]"); + p = add_epsg_def (filter, first, last, 30174, "epsg", 30174, + "Tokyo / Japan Plane Rectangular CS XIV"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",26],PARAMETER[\"central_meridian\",142],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30174\"]]"); + p = add_epsg_def (filter, first, last, 30175, "epsg", 30175, + "Tokyo / Japan Plane Rectangular CS XV"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); + add_proj4text (p, 1, + "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); + add_proj4text (p, 2, + ",0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); + add_srs_wkt (p, 2, + "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",26],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"s"); + add_srs_wkt (p, 9, + "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30175\"]]"); + p = add_epsg_def (filter, first, last, 30176, "epsg", 30176, + "Tokyo / Japan Plane Rectangular CS XVI"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",26],PARAMETER[\"central_meridian\",124],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30176\"]]"); + p = add_epsg_def (filter, first, last, 30177, "epsg", 30177, + "Tokyo / Japan Plane Rectangular CS XVII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC"); + add_srs_wkt (p, 1, + "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); + add_srs_wkt (p, 2, + "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 4, + "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); + add_srs_wkt (p, 5, + "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); + add_srs_wkt (p, 6, + "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); + add_srs_wkt (p, 7, + "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); + add_srs_wkt (p, 8, + "n\",26],PARAMETER[\"central_meridian\",131],PARAMETER[\""); + add_srs_wkt (p, 9, + "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30177\"]]"); + p = add_epsg_def (filter, first, last, 30178, "epsg", 30178, + "Tokyo / Japan Plane Rectangular CS XVIII"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG"); + add_srs_wkt (p, 1, + "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63"); + add_srs_wkt (p, 2, + "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); + add_srs_wkt (p, 3, + "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 4, + ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 5, + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTI"); + add_srs_wkt (p, 7, + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + add_srs_wkt (p, 8, + "in\",20],PARAMETER[\"central_meridian\",136],PARAMETER[\""); + add_srs_wkt (p, 9, + "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30178\"]]"); + p = add_epsg_def (filter, first, last, 30179, "epsg", 30179, + "Tokyo / Japan Plane Rectangular CS XIX"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS"); + add_srs_wkt (p, 1, + "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); + add_srs_wkt (p, 2, + "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",26],PARAMETER[\"central_meridian\",154],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30179\"]]"); + p = add_epsg_def (filter, first, last, 30200, "epsg", 30200, + "Trinidad 1903 / Trinidad Grid"); + add_proj4text (p, 0, + "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); + add_proj4text (p, 1, + "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782"); + add_proj4text (p, 2, + "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); + add_proj4text (p, 3, + "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid"); + add_srs_wkt (p, 1, + "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858"); + add_srs_wkt (p, 2, + "\",6378293.645208759,294.2606763692569,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + add_srs_wkt (p, 5, + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + add_srs_wkt (p, 6, + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); + add_srs_wkt (p, 7, + "02\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit"); + add_srs_wkt (p, 8, + "ude_of_origin\",10.44166666666667],PARAMETER[\"central_m"); + add_srs_wkt (p, 9, + "eridian\",-61.33333333333334],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 10, + ",430000],PARAMETER[\"false_northing\",325000],UNIT[\"Cla"); + add_srs_wkt (p, 11, + "rke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]"); + add_srs_wkt (p, 12, + "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); + add_srs_wkt (p, 13, + "ITY[\"EPSG\",\"30200\"]]"); + p = add_epsg_def (filter, first, last, 30339, "epsg", 30339, + "TC(1948) / UTM zone 39N"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D"); + add_srs_wkt (p, 1, + "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); + add_srs_wkt (p, 2, + "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 3, + "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 4, + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + add_srs_wkt (p, 5, + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); + add_srs_wkt (p, 6, + "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + add_srs_wkt (p, 7, + "rigin\",0],PARAMETER[\"central_meridian\",51],PARAMETER["); + add_srs_wkt (p, 8, + "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + add_srs_wkt (p, 9, + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 10, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + add_srs_wkt (p, 11, + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]"); + p = add_epsg_def (filter, first, last, 30340, "epsg", 30340, + "TC(1948) / UTM zone 40N"); + add_proj4text (p, 0, + "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D"); + add_srs_wkt (p, 1, + "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); + add_srs_wkt (p, 2, + "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 3, + "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 4, + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + add_srs_wkt (p, 5, + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); + add_srs_wkt (p, 6, + "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); + add_srs_wkt (p, 7, + "rigin\",0],PARAMETER[\"central_meridian\",57],PARAMETER["); + add_srs_wkt (p, 8, + "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); + add_srs_wkt (p, 9, + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 10, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); + add_srs_wkt (p, 11, + "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]"); + p = add_epsg_def (filter, first, last, 30491, "epsg", 30491, + "Voirol 1875 / Nord Algerie (ancienne)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + add_proj4text (p, 1, + "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs"); + add_proj4text (p, 2, + "84=-73,-247,227,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke "); + add_srs_wkt (p, 2, + "1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\""); + add_srs_wkt (p, 4, + "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); + add_srs_wkt (p, 5, + "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PR"); + add_srs_wkt (p, 7, + "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); + add_srs_wkt (p, 8, + "titude_of_origin\",36],PARAMETER[\"central_meridian\",2."); + add_srs_wkt (p, 9, + "7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"f"); + add_srs_wkt (p, 10, + "alse_easting\",500000],PARAMETER[\"false_northing\",3000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 30492, "epsg", 30492, + "Voirol 1875 / Sud Algerie (ancienne)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + add_proj4text (p, 1, + "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t"); + add_proj4text (p, 2, + "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "80 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP"); + add_srs_wkt (p, 4, + "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 5, + ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); + add_srs_wkt (p, 6, + "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PROJE"); + add_srs_wkt (p, 7, + "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); + add_srs_wkt (p, 8, + "ude_of_origin\",33.3],PARAMETER[\"central_meridian\",2.7"); + add_srs_wkt (p, 9, + "],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",500000],PARAMETER[\"false_northing\",30000"); + add_srs_wkt (p, 11, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 12, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 30493, "epsg", 30493, + "Voirol 1879 / Nord Algerie (ancienne)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + add_proj4text (p, 1, + "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units"); + add_proj4text (p, 2, + "=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS["); + add_srs_wkt (p, 1, + "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke "); + add_srs_wkt (p, 2, + "1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 7, + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); + add_srs_wkt (p, 9, + "0.999625544],PARAMETER[\"false_easting\",500000],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"30493\"]]"); + p = add_epsg_def (filter, first, last, 30494, "epsg", 30494, + "Voirol 1879 / Sud Algerie (ancienne)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + add_proj4text (p, 1, + "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "80 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Con"); + add_srs_wkt (p, 7, + "ic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); + add_srs_wkt (p, 9, + "0.999625769],PARAMETER[\"false_easting\",500000],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"30494\"]]"); + p = add_epsg_def (filter, first, last, 30729, "epsg", 30729, + "Nord Sahara 1959 / UTM zone 29N"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-209.362,-87.8"); + add_proj4text (p, 1, + "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def"); + add_proj4text (p, 2, + "s"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord"); + add_srs_wkt (p, 1, + " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + add_srs_wkt (p, 2, + "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 3, + "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478"); + add_srs_wkt (p, 4, + "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\""); + add_srs_wkt (p, 5, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 8, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 9, + "entral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"30729\"]]"); + p = add_epsg_def (filter, first, last, 30730, "epsg", 30730, + "Nord Sahara 1959 / UTM zone 30N"); + add_proj4text (p, 0, + "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-209.362,-87.8"); + add_proj4text (p, 1, + "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def"); + add_proj4text (p, 2, + "s"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord"); + add_srs_wkt (p, 1, + " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + add_srs_wkt (p, 2, + "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 3, + "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478"); + add_srs_wkt (p, 4, + "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\""); + add_srs_wkt (p, 5, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 8, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 9, + "entral_meridian\",-3],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"30730\"]]"); + p = add_epsg_def (filter, first, last, 30731, "epsg", 30731, + "Nord Sahara 1959 / UTM zone 31N"); + add_proj4text (p, 0, + "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-209.362,-87.8"); + add_proj4text (p, 1, + "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def"); + add_proj4text (p, 2, + "s"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord"); + add_srs_wkt (p, 1, + " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + add_srs_wkt (p, 2, + "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 3, + "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478"); + add_srs_wkt (p, 4, + "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\""); + add_srs_wkt (p, 5, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 8, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 9, + "entral_meridian\",3],PARAMETER[\"scale_factor\",0.9996],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + add_srs_wkt (p, 11, + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"30731\"]]"); + p = add_epsg_def (filter, first, last, 30732, "epsg", 30732, + "Nord Sahara 1959 / UTM zone 32N"); + add_proj4text (p, 0, + "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-209.362,-87.8"); + add_proj4text (p, 1, + "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def"); + add_proj4text (p, 2, + "s"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord"); + add_srs_wkt (p, 1, + " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + add_srs_wkt (p, 2, + "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 3, + "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478"); + add_srs_wkt (p, 4, + "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\""); + add_srs_wkt (p, 5, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 8, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 9, + "entral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + add_srs_wkt (p, 11, + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 13, + "RITY[\"EPSG\",\"30732\"]]"); + p = add_epsg_def (filter, first, last, 30791, "epsg", 30791, + "Nord Sahara 1959 / Nord Algerie"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); + add_proj4text (p, 1, + "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-209.36"); + add_proj4text (p, 2, + "2,-87.8162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m "); + add_proj4text (p, 3, + "+no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / Nord Algerie\",GEOGCS[\"Nord"); + add_srs_wkt (p, 1, + " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); + add_srs_wkt (p, 2, + "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 3, + "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478"); + add_srs_wkt (p, 4, + "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\""); + add_srs_wkt (p, 5, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 8, + "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARA"); + add_srs_wkt (p, 9, + "METER[\"central_meridian\",2.7],PARAMETER[\"scale_factor"); + add_srs_wkt (p, 10, + "\",0.999625544],PARAMETER[\"false_easting\",500135],PARA"); + add_srs_wkt (p, 11, + "METER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 12, + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + add_srs_wkt (p, 13, + "H],AUTHORITY[\"EPSG\",\"30791\"]]"); + p = add_epsg_def (filter, first, last, 30792, "epsg", 30792, + "Nord Sahara 1959 / Sud Algerie"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); + add_proj4text (p, 1, + "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-20"); + add_proj4text (p, 2, + "9.362,-87.8162,404.62,0.0046,3.4784,0.5805,-1.4547 +unit"); + add_proj4text (p, 3, + "s=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Nord Sahara 1959 / Sud Algerie\",GEOGCS[\"Nord "); + add_srs_wkt (p, 1, + "Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Clar"); + add_srs_wkt (p, 2, + "ke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 3, + "7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.4784,"); + add_srs_wkt (p, 4, + "0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"G"); + add_srs_wkt (p, 5, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 6, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 7, + "ORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 8, + "_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"central_meridian\",2.7],PARAMETER[\"scale_facto"); + add_srs_wkt (p, 10, + "r\",0.999625769],PARAMETER[\"false_easting\",500135],PAR"); + add_srs_wkt (p, 11, + "AMETER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 13, + "TH],AUTHORITY[\"EPSG\",\"30792\"]]"); + p = add_epsg_def (filter, first, last, 30800, "epsg", 30800, + "RT38 2.5 gon W (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); + add_proj4text (p, 1, + "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D"); + add_srs_wkt (p, 1, + "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397"); + add_srs_wkt (p, 2, + ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY"); + add_srs_wkt (p, 3, + "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); + add_srs_wkt (p, 4, + "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); + add_srs_wkt (p, 5, + "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]]"); + add_srs_wkt (p, 6, + ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); + add_srs_wkt (p, 7, + "e_of_origin\",0],PARAMETER[\"central_meridian\",15.80827"); + add_srs_wkt (p, 8, + "777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",1500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 10, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"30800\"]]"); + p = add_epsg_def (filter, first, last, 31028, "epsg", 31028, + "Yoff / UTM zone 28N"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_"); + add_proj4text (p, 1, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y"); + add_srs_wkt (p, 1, + "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); + add_srs_wkt (p, 2, + "12936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); + add_srs_wkt (p, 5, + "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTI"); + add_srs_wkt (p, 6, + "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); + add_srs_wkt (p, 7, + "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\""); + add_srs_wkt (p, 8, + "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); + add_srs_wkt (p, 9, + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 11, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]"); + p = add_epsg_def (filter, first, last, 31121, "epsg", 31121, + "Zanderij / UTM zone 21N"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D"); + add_srs_wkt (p, 1, + "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838"); + add_srs_wkt (p, 2, + "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35"); + add_srs_wkt (p, 3, + "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 4, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 5, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 6, + "[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 7, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 8, + "_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PARA"); + add_srs_wkt (p, 9, + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + add_srs_wkt (p, 10, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 11, + "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"31121\"]]"); + p = add_epsg_def (filter, first, last, 31154, "epsg", 31154, + "Zanderij / TM 54 NW"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y"); + add_proj4text (p, 1, + "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM"); + add_srs_wkt (p, 1, + "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29"); + add_srs_wkt (p, 2, + "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,"); + add_srs_wkt (p, 3, + "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); + add_srs_wkt (p, 8, + "dian\",-54],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); + add_srs_wkt (p, 9, + "[\"false_easting\",500000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"31154\"]]"); + p = add_epsg_def (filter, first, last, 31170, "epsg", 31170, + "Zanderij / Suriname Old TM"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996"); + add_proj4text (p, 1, + " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); + add_proj4text (p, 2, + ",0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\""); + add_srs_wkt (p, 1, + ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378"); + add_srs_wkt (p, 2, + "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-"); + add_srs_wkt (p, 3, + "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-55.68333333333333],PARAMETER[\"scale_facto"); + add_srs_wkt (p, 9, + "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); + add_srs_wkt (p, 11, + "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); + add_srs_wkt (p, 12, + "NORTH],AUTHORITY[\"EPSG\",\"31170\"]]"); + p = add_epsg_def (filter, first, last, 31171, "epsg", 31171, + "Zanderij / Suriname TM"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999"); + add_proj4text (p, 1, + " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); + add_proj4text (p, 2, + ",0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA"); + add_srs_wkt (p, 1, + "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388"); + add_srs_wkt (p, 2, + ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358"); + add_srs_wkt (p, 3, + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi"); + add_srs_wkt (p, 4, + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + add_srs_wkt (p, 5, + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + add_srs_wkt (p, 6, + "\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); + add_srs_wkt (p, 8, + "meridian\",-55.68333333333333],PARAMETER[\"scale_factor\""); + add_srs_wkt (p, 9, + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 11, + "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); + add_srs_wkt (p, 12, + "H],AUTHORITY[\"EPSG\",\"31171\"]]"); + p = add_epsg_def (filter, first, last, 31251, "epsg", 31251, + "MGI (Ferro) / Austria GK West Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); + add_proj4text (p, 2, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M"); + add_srs_wkt (p, 1, + "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + add_srs_wkt (p, 2, + "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + add_srs_wkt (p, 3, + "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + add_srs_wkt (p, 5, + "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 8, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 9, + "ral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); + add_srs_wkt (p, 12, + "THORITY[\"EPSG\",\"31251\"]]"); + p = add_epsg_def (filter, first, last, 31252, "epsg", 31252, + "MGI (Ferro) / Austria GK Central Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); + add_proj4text (p, 2, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS["); + add_srs_wkt (p, 1, + "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F"); + add_srs_wkt (p, 2, + "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6"); + add_srs_wkt (p, 5, + "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre"); + add_srs_wkt (p, 6, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 7, + "HORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 8, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 9, + "entral_meridian\",31],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 11, + "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"31252\"]]"); + p = add_epsg_def (filter, first, last, 31253, "epsg", 31253, + "MGI (Ferro) / Austria GK East Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000"); + add_proj4text (p, 1, + " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); + add_proj4text (p, 2, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M"); + add_srs_wkt (p, 1, + "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + add_srs_wkt (p, 2, + "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + add_srs_wkt (p, 3, + "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + add_srs_wkt (p, 5, + "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 8, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 9, + "ral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU"); + add_srs_wkt (p, 12, + "THORITY[\"EPSG\",\"31253\"]]"); + p = add_epsg_def (filter, first, last, 31254, "epsg", 31254, + "MGI / Austria GK West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 9, + "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 11, + "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"31254\"]]"); + p = add_epsg_def (filter, first, last, 31255, "epsg", 31255, + "MGI / Austria GK Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM"); + add_srs_wkt (p, 1, + "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1"); + add_srs_wkt (p, 2, + "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); + add_srs_wkt (p, 3, + "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42"); + add_srs_wkt (p, 4, + "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",13.33333333333333],PARAMETER[\"scale_factor\",1],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 12, + "],AUTHORITY[\"EPSG\",\"31255\"]]"); + p = add_epsg_def (filter, first, last, 31256, "epsg", 31256, + "MGI / Austria GK East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 9, + "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 11, + "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"31256\"]]"); + p = add_epsg_def (filter, first, last, 31257, "epsg", 31257, + "MGI / Austria GK M28"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "150000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); + add_proj4text (p, 2, + "efs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M"); + add_srs_wkt (p, 1, + "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + add_srs_wkt (p, 2, + ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 5, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 6, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 7, + "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 12, + "],AUTHORITY[\"EPSG\",\"31257\"]]"); + p = add_epsg_def (filter, first, last, 31258, "epsg", 31258, + "MGI / Austria GK M31"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "450000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); + add_proj4text (p, 2, + "efs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M"); + add_srs_wkt (p, 1, + "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + add_srs_wkt (p, 2, + ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 5, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 6, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 7, + "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 12, + "],AUTHORITY[\"EPSG\",\"31258\"]]"); + p = add_epsg_def (filter, first, last, 31259, "epsg", 31259, + "MGI / Austria GK M34"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "750000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); + add_proj4text (p, 2, + "efs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M"); + add_srs_wkt (p, 1, + "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); + add_srs_wkt (p, 2, + ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 5, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 6, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 7, + "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 12, + "],AUTHORITY[\"EPSG\",\"31259\"]]"); + p = add_epsg_def (filter, first, last, 31265, "epsg", 31265, + "MGI / 3-degree Gauss zone 5 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG"); + add_srs_wkt (p, 1, + "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + add_srs_wkt (p, 2, + "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + add_srs_wkt (p, 3, + "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + add_srs_wkt (p, 4, + ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + add_srs_wkt (p, 5, + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + add_srs_wkt (p, 6, + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + add_srs_wkt (p, 7, + ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + add_srs_wkt (p, 8, + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + add_srs_wkt (p, 9, + "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31265\"]]"); + p = add_epsg_def (filter, first, last, 31266, "epsg", 31266, + "MGI / 3-degree Gauss zone 6 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG"); + add_srs_wkt (p, 1, + "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + add_srs_wkt (p, 2, + "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + add_srs_wkt (p, 3, + "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + add_srs_wkt (p, 4, + ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + add_srs_wkt (p, 5, + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + add_srs_wkt (p, 6, + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + add_srs_wkt (p, 7, + ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + add_srs_wkt (p, 8, + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + add_srs_wkt (p, 9, + "[\"central_meridian\",18],PARAMETER[\"scale_factor\",1],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31266\"]]"); + p = add_epsg_def (filter, first, last, 31267, "epsg", 31267, + "MGI / 3-degree Gauss zone 7 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG"); + add_srs_wkt (p, 1, + "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + add_srs_wkt (p, 2, + "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + add_srs_wkt (p, 3, + "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + add_srs_wkt (p, 4, + ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + add_srs_wkt (p, 5, + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + add_srs_wkt (p, 6, + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + add_srs_wkt (p, 7, + ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + add_srs_wkt (p, 8, + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + add_srs_wkt (p, 9, + "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31267\"]]"); + p = add_epsg_def (filter, first, last, 31268, "epsg", 31268, + "MGI / 3-degree Gauss zone 8 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG"); + add_srs_wkt (p, 1, + "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); + add_srs_wkt (p, 2, + "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); + add_srs_wkt (p, 3, + "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); + add_srs_wkt (p, 4, + ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); + add_srs_wkt (p, 5, + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + add_srs_wkt (p, 6, + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + add_srs_wkt (p, 7, + ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); + add_srs_wkt (p, 8, + "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); + add_srs_wkt (p, 9, + "[\"central_meridian\",24],PARAMETER[\"scale_factor\",1],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31268\"]]"); + p = add_epsg_def (filter, first, last, 31275, "epsg", 31275, + "MGI / Balkans zone 5 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); + add_proj4text (p, 1, + "_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG"); + add_srs_wkt (p, 1, + "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + add_srs_wkt (p, 4, + ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 5, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 6, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 7, + "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 8, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 9, + "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",5500000],PARAMETER[\"false_north"); + add_srs_wkt (p, 11, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"31275\"]]"); + p = add_epsg_def (filter, first, last, 31276, "epsg", 31276, + "MGI / Balkans zone 6 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); + add_proj4text (p, 1, + "_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG"); + add_srs_wkt (p, 1, + "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + add_srs_wkt (p, 4, + ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 5, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 6, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 7, + "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 8, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 9, + "l_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",6500000],PARAMETER[\"false_north"); + add_srs_wkt (p, 11, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"31276\"]]"); + p = add_epsg_def (filter, first, last, 31277, "epsg", 31277, + "MGI / Balkans zone 7 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); + add_proj4text (p, 1, + "_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG"); + add_srs_wkt (p, 1, + "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + add_srs_wkt (p, 4, + ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 5, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 6, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 7, + "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 8, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 9, + "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); + add_srs_wkt (p, 11, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"31277\"]]"); + p = add_epsg_def (filter, first, last, 31278, "epsg", 31278, + "MGI / Balkans zone 8 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); + add_proj4text (p, 1, + "_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); + add_srs_wkt (p, 1, + "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + add_srs_wkt (p, 4, + ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 5, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 6, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 7, + "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 8, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 9, + "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); + add_srs_wkt (p, 11, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"31278\"]]"); + p = add_epsg_def (filter, first, last, 31279, "epsg", 31279, + "MGI / Balkans zone 8 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); + add_proj4text (p, 1, + "_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); + add_srs_wkt (p, 1, + "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); + add_srs_wkt (p, 4, + ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 5, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 6, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 7, + "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 8, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 9, + "l_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",8500000],PARAMETER[\"false_north"); + add_srs_wkt (p, 11, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"31279\"]]"); + p = add_epsg_def (filter, first, last, 31281, "epsg", 31281, + "MGI (Ferro) / Austria West Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI "); + add_srs_wkt (p, 1, + "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); + add_srs_wkt (p, 2, + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); + add_srs_wkt (p, 3, + "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); + add_srs_wkt (p, 5, + "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMETER["); + add_srs_wkt (p, 10, + "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"31281\"]]"); + p = add_epsg_def (filter, first, last, 31282, "epsg", 31282, + "MGI (Ferro) / Austria Central Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M"); + add_srs_wkt (p, 1, + "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); + add_srs_wkt (p, 2, + "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); + add_srs_wkt (p, 3, + "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); + add_srs_wkt (p, 5, + "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 8, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 9, + "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"31282\"]]"); + p = add_epsg_def (filter, first, last, 31283, "epsg", 31283, + "MGI (Ferro) / Austria East Zone"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI "); + add_srs_wkt (p, 1, + "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); + add_srs_wkt (p, 2, + ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); + add_srs_wkt (p, 3, + "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); + add_srs_wkt (p, 5, + "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMETER["); + add_srs_wkt (p, 10, + "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"31283\"]]"); + p = add_epsg_def (filter, first, last, 31284, "epsg", 31284, + "MGI / Austria M28"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili"); + add_srs_wkt (p, 1, + "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + add_srs_wkt (p, 2, + "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 5, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 6, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 7, + "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31284\"]]"); + p = add_epsg_def (filter, first, last, 31285, "epsg", 31285, + "MGI / Austria M31"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili"); + add_srs_wkt (p, 1, + "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + add_srs_wkt (p, 2, + "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 5, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 6, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 7, + "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31285\"]]"); + p = add_epsg_def (filter, first, last, 31286, "epsg", 31286, + "MGI / Austria M34"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili"); + add_srs_wkt (p, 1, + "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); + add_srs_wkt (p, 2, + "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 5, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 6, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 7, + "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); + add_srs_wkt (p, 9, + "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31286\"]]"); + p = add_epsg_def (filter, first, last, 31287, "epsg", 31287, + "MGI / Austria Lambert"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); + add_proj4text (p, 1, + "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); + add_proj4text (p, 2, + "+units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 8, + "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa"); + add_srs_wkt (p, 9, + "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",47."); + add_srs_wkt (p, 10, + "5],PARAMETER[\"central_meridian\",13.33333333333333],PAR"); + add_srs_wkt (p, 11, + "AMETER[\"false_easting\",400000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]"); - p = add_epsg_def (filter, first, last, 32560, "epsg", 32560, - "WGS 72BE / UTM zone 60S"); + "ing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); + add_srs_wkt (p, 13, + "\"]],AUTHORITY[\"EPSG\",\"31287\"]]"); + p = add_epsg_def (filter, first, last, 31288, "epsg", 31288, + "MGI (Ferro) / M28"); add_proj4text (p, 0, - "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, - "0,0,0.814,-0.38 +units=m +no_defs"); + "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); + add_proj4text (p, 2, + "its=m +no_defs"); add_srs_wkt (p, 0, - "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D"); + "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, - "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, - "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, - "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, - "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, - "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, - "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); add_srs_wkt (p, 7, - "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, - ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); + "itude_of_origin\",0],PARAMETER[\"central_meridian\",28],"); add_srs_wkt (p, 9, - "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, - "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312"); + add_srs_wkt (p, 12, + "88\"]]"); + p = add_epsg_def (filter, first, last, 31289, "epsg", 31289, + "MGI (Ferro) / M31"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +"); + add_proj4text (p, 1, + "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); + add_proj4text (p, 2, + "its=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU"); + add_srs_wkt (p, 1, + "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); + add_srs_wkt (p, 2, + "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 3, + "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 4, + ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); + add_srs_wkt (p, 5, + "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); + add_srs_wkt (p, 6, + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); + add_srs_wkt (p, 7, + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + add_srs_wkt (p, 8, + "itude_of_origin\",0],PARAMETER[\"central_meridian\",31],"); + add_srs_wkt (p, 9, + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 10, + ",450000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 11, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312"); + add_srs_wkt (p, 12, + "89\"]]"); + p = add_epsg_def (filter, first, last, 31290, "epsg", 31290, + "MGI (Ferro) / M34"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +"); + add_proj4text (p, 1, + "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); + add_proj4text (p, 2, + "its=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU"); + add_srs_wkt (p, 1, + "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); + add_srs_wkt (p, 2, + "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 3, + "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 4, + ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); + add_srs_wkt (p, 5, + "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); + add_srs_wkt (p, 6, + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); + add_srs_wkt (p, 7, + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + add_srs_wkt (p, 8, + "itude_of_origin\",0],PARAMETER[\"central_meridian\",34],"); + add_srs_wkt (p, 9, + "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 10, + ",750000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 11, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312"); + add_srs_wkt (p, 12, + "90\"]]"); + p = add_epsg_def (filter, first, last, 31291, "epsg", 31291, + "MGI (Ferro) / Austria West Zone (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\","); + add_srs_wkt (p, 1, + "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); + add_srs_wkt (p, 2, + "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); + add_srs_wkt (p, 3, + "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); + add_srs_wkt (p, 4, + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); + add_srs_wkt (p, 5, + ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); + add_srs_wkt (p, 6, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 7, + "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 8, + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + add_srs_wkt (p, 9, + "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); + add_srs_wkt (p, 11, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 12, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 13, + "1291\"]]"); + p = add_epsg_def (filter, first, last, 31292, "epsg", 31292, + "MGI (Ferro) / Austria Central Zone (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)"); + add_srs_wkt (p, 1, + "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_"); + add_srs_wkt (p, 2, + "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29"); + add_srs_wkt (p, 3, + "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203"); + add_srs_wkt (p, 4, + ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer"); + add_srs_wkt (p, 5, + "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN"); + add_srs_wkt (p, 6, + "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); + add_srs_wkt (p, 7, + "22\"]],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transv"); + add_srs_wkt (p, 8, + "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"central_meridian\",31],PARAMETER[\"scale_factor"); + add_srs_wkt (p, 10, + "\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 12, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31292\"]]"); + p = add_epsg_def (filter, first, last, 31293, "epsg", 31293, + "MGI (Ferro) / Austria East Zone (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); + add_proj4text (p, 1, + "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); + add_proj4text (p, 2, + " +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\","); + add_srs_wkt (p, 1, + "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); + add_srs_wkt (p, 2, + "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); + add_srs_wkt (p, 3, + "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); + add_srs_wkt (p, 4, + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); + add_srs_wkt (p, 5, + ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); + add_srs_wkt (p, 6, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 7, + "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 8, + "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); + add_srs_wkt (p, 9, + "R[\"central_meridian\",34],PARAMETER[\"scale_factor\",1]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); + add_srs_wkt (p, 11, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 12, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 13, + "1293\"]]"); + p = add_epsg_def (filter, first, last, 31294, "epsg", 31294, + "MGI / M28 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 9, + "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",150000],PARAMETER[\"false_northi"); + add_srs_wkt (p, 11, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 12, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 13, + "1294\"]]"); + p = add_epsg_def (filter, first, last, 31295, "epsg", 31295, + "MGI / M31 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 9, + "\",13.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",450000],PARAMETER[\"false_northi"); + add_srs_wkt (p, 11, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 12, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 13, + "1295\"]]"); + p = add_epsg_def (filter, first, last, 31296, "epsg", 31296, + "MGI / M34 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); + add_proj4text (p, 1, + "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); + add_srs_wkt (p, 1, + "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); + add_srs_wkt (p, 2, + "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); + add_srs_wkt (p, 3, + ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); + add_srs_wkt (p, 4, + "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 5, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 6, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 7, + ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 8, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 9, + "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_easting\",750000],PARAMETER[\"false_northi"); + add_srs_wkt (p, 11, + "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 12, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 13, + "1296\"]]"); + p = add_epsg_def (filter, first, last, 31297, "epsg", 31297, + "MGI / Austria Lambert (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); + add_proj4text (p, 1, + "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); + add_proj4text (p, 2, + "+units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M"); + add_srs_wkt (p, 1, + "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID["); + add_srs_wkt (p, 2, + "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 3, + "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474"); + add_srs_wkt (p, 4, + ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 5, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 8, + "onic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAME"); + add_srs_wkt (p, 9, + "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); + add_srs_wkt (p, 10, + "origin\",47.5],PARAMETER[\"central_meridian\",13.3333333"); + add_srs_wkt (p, 11, + "3333333],PARAMETER[\"false_easting\",400000],PARAMETER[\""); + add_srs_wkt (p, 12, + "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + add_srs_wkt (p, 13, + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + add_srs_wkt (p, 14, + "RITY[\"EPSG\",\"31297\"]]"); + p = add_epsg_def (filter, first, last, 31300, "epsg", 31300, + "Belge 1972 / Belge Lambert 72"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); + add_proj4text (p, 1, + "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256"); + add_proj4text (p, 2, + " +y_0=5400088.4378 +ellps=intl +towgs84=-106.869,52.2978"); + add_proj4text (p, 3, + ",-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge "); + add_srs_wkt (p, 1, + "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I"); + add_srs_wkt (p, 2, + "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); + add_srs_wkt (p, 3, + "2\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1."); + add_srs_wkt (p, 4, + "8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gre"); + add_srs_wkt (p, 5, + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 8, + "onic_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49"); + add_srs_wkt (p, 9, + ".83333333333334],PARAMETER[\"standard_parallel_2\",51.16"); + add_srs_wkt (p, 10, + "666666666666],PARAMETER[\"latitude_of_origin\",90],PARAM"); + add_srs_wkt (p, 11, + "ETER[\"central_meridian\",4.356939722222222],PARAMETER[\""); + add_srs_wkt (p, 12, + "false_easting\",150000.01256],PARAMETER[\"false_northing"); + add_srs_wkt (p, 13, + "\",5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 14, + "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 15, + "PSG\",\"31300\"]]"); + p = add_epsg_def (filter, first, last, 31370, "epsg", 31370, + "Belge 1972 / Belgian Lambert 72"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la"); + add_proj4text (p, 1, + "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540"); + add_proj4text (p, 2, + "0088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,"); + add_proj4text (p, 3, + "0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg"); + add_srs_wkt (p, 1, + "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\""); + add_srs_wkt (p, 2, + "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "22\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1"); + add_srs_wkt (p, 4, + ".8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 5, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 6, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 7, + "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 8, + "onic_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672"); + add_srs_wkt (p, 9, + "3333333],PARAMETER[\"standard_parallel_2\",49.8333339],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"latitude_of_origin\",90],PARAMETER[\"central_"); + add_srs_wkt (p, 11, + "meridian\",4.367486666666666],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 12, + ",150000.013],PARAMETER[\"false_northing\",5400088.438],U"); + add_srs_wkt (p, 13, + "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 14, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]"); + p = add_epsg_def (filter, first, last, 31461, "epsg", 31461, + "DHDN / 3-degree Gauss zone 1 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); + add_proj4text (p, 1, + "datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + add_srs_wkt (p, 4, + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 5, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); + add_srs_wkt (p, 11, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 12, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]"); + add_srs_wkt (p, 13, + "]"); + p = add_epsg_def (filter, first, last, 31462, "epsg", 31462, + "DHDN / 3-degree Gauss zone 2 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); + add_proj4text (p, 1, + "datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + add_srs_wkt (p, 4, + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 5, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",2500000],PARAMETER[\"false_northing\",0]"); + add_srs_wkt (p, 11, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 12, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]"); + add_srs_wkt (p, 13, + "]"); + p = add_epsg_def (filter, first, last, 31463, "epsg", 31463, + "DHDN / 3-degree Gauss zone 3 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); + add_proj4text (p, 1, + "datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + add_srs_wkt (p, 4, + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 5, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",3500000],PARAMETER[\"false_northing\",0]"); + add_srs_wkt (p, 11, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 12, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]"); + add_srs_wkt (p, 13, + "]"); + p = add_epsg_def (filter, first, last, 31464, "epsg", 31464, + "DHDN / 3-degree Gauss zone 4 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + add_srs_wkt (p, 4, + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 5, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER["); + add_srs_wkt (p, 10, + "\"false_easting\",4500000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 11, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 12, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 31465, "epsg", 31465, + "DHDN / 3-degree Gauss zone 5 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); + add_srs_wkt (p, 4, + "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 5, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 6, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 7, + "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); + add_srs_wkt (p, 9, + "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER["); + add_srs_wkt (p, 10, + "\"false_easting\",5500000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 11, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 12, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\""); + add_srs_wkt (p, 13, + "]]"); + p = add_epsg_def (filter, first, last, 31466, "epsg", 31466, + "DHDN / 3-degree Gauss-Kruger zone 2"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); + add_proj4text (p, 1, + "datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\""); + add_srs_wkt (p, 1, + "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + add_srs_wkt (p, 4, + "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 5, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 6, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 7, + "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + add_srs_wkt (p, 9, + "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 11, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); add_srs_wkt (p, 12, - "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]"); + "PSG\",\"31466\"]]"); } #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_41.c b/src/spatialite/src/srsinit/epsg_inlined_41.c new file mode 100644 index 0000000..8d66ab2 --- /dev/null +++ b/src/spatialite/src/srsinit/epsg_inlined_41.c @@ -0,0 +1,3600 @@ +/* + + helper function for srs_init.c -- populating the SPATIAL_REF_SYS table + + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include + +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ + +SPATIALITE_PRIVATE void +initialize_epsg_41 (int filter, struct epsg_defs **first, struct epsg_defs **last) +{ +/* initializing the EPSG defs list */ + struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 31467, "epsg", 31467, + "DHDN / 3-degree Gauss-Kruger zone 3"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); + add_proj4text (p, 1, + "datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); + add_srs_wkt (p, 1, + "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + add_srs_wkt (p, 4, + "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 5, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 6, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 7, + "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + add_srs_wkt (p, 9, + "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 11, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"31467\"]]"); + p = add_epsg_def (filter, first, last, 31468, "epsg", 31468, + "DHDN / 3-degree Gauss-Kruger zone 4"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); + add_srs_wkt (p, 1, + "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + add_srs_wkt (p, 4, + "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 5, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 6, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 7, + "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + add_srs_wkt (p, 9, + "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + add_srs_wkt (p, 10, + "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"31468\"]]"); + p = add_epsg_def (filter, first, last, 31469, "epsg", 31469, + "DHDN / 3-degree Gauss-Kruger zone 5"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); + add_proj4text (p, 1, + "+datum=potsdam +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); + add_srs_wkt (p, 1, + "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); + add_srs_wkt (p, 2, + "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); + add_srs_wkt (p, 4, + "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 5, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 6, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 7, + "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + add_srs_wkt (p, 9, + "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + add_srs_wkt (p, 10, + "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"31469\"]]"); + p = add_epsg_def (filter, first, last, 31528, "epsg", 31528, + "Conakry 1905 / UTM zone 28N"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); + add_proj4text (p, 1, + "259,-9,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry "); + add_srs_wkt (p, 1, + "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); + add_srs_wkt (p, 2, + "N)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal"); + add_srs_wkt (p, 9, + "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + add_srs_wkt (p, 11, + "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); + add_srs_wkt (p, 12, + "hing\",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]"); + p = add_epsg_def (filter, first, last, 31529, "epsg", 31529, + "Conakry 1905 / UTM zone 29N"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); + add_proj4text (p, 1, + "259,-9,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry "); + add_srs_wkt (p, 1, + "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); + add_srs_wkt (p, 2, + "N)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 4, + "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); + add_srs_wkt (p, 5, + "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); + add_srs_wkt (p, 7, + "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); + add_srs_wkt (p, 8, + ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale"); + add_srs_wkt (p, 9, + "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); + add_srs_wkt (p, 12, + "ing\",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]"); + p = add_epsg_def (filter, first, last, 31600, "epsg", 31600, + "Dealul Piscului 1930 / Stereo 33"); + add_proj4text (p, 0, + "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9"); + add_proj4text (p, 1, + "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103."); + add_proj4text (p, 2, + "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea"); + add_srs_wkt (p, 1, + "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER"); + add_srs_wkt (p, 2, + "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 3, + ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + add_srs_wkt (p, 5, + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + add_srs_wkt (p, 6, + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4316"); + add_srs_wkt (p, 7, + "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); + add_srs_wkt (p, 8, + "atitude_of_origin\",45.9],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",25.39246588888889],PARAMETER[\"scale_factor\",0.9996667"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + add_srs_wkt (p, 11, + "northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"31600\"]]"); + p = add_epsg_def (filter, first, last, 31700, "epsg", 31700, + "Dealul Piscului 1970/ Stereo 70 (deprecated)"); + add_proj4text (p, 0, + "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); + add_proj4text (p, 1, + "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\","); + add_srs_wkt (p, 1, + "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); + add_srs_wkt (p, 2, + "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); + add_srs_wkt (p, 3, + "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); + add_srs_wkt (p, 5, + "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); + add_srs_wkt (p, 6, + "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); + add_srs_wkt (p, 7, + "17\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); + add_srs_wkt (p, 8, + "latitude_of_origin\",46],PARAMETER[\"central_meridian\","); + add_srs_wkt (p, 9, + "25],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"fals"); + add_srs_wkt (p, 10, + "e_easting\",500000],PARAMETER[\"false_northing\",500000]"); + add_srs_wkt (p, 11, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"31700\"]]"); + p = add_epsg_def (filter, first, last, 31838, "epsg", 31838, + "NGN / UTM zone 38N"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); + add_proj4text (p, 1, + ",0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat"); + add_srs_wkt (p, 1, + "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); + add_srs_wkt (p, 2, + ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); + add_srs_wkt (p, 3, + ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],"); + add_srs_wkt (p, 9, + "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + add_srs_wkt (p, 10, + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 11, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31838\"]]"); + p = add_epsg_def (filter, first, last, 31839, "epsg", 31839, + "NGN / UTM zone 39N"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); + add_proj4text (p, 1, + ",0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat"); + add_srs_wkt (p, 1, + "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); + add_srs_wkt (p, 2, + ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); + add_srs_wkt (p, 3, + ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],"); + add_srs_wkt (p, 9, + "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); + add_srs_wkt (p, 10, + "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 11, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31839\"]]"); + p = add_epsg_def (filter, first, last, 31900, "epsg", 31900, + "KUDAMS / KTM (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_"); + add_proj4text (p, 1, + "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units="); + add_proj4text (p, 2, + "m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D"); + add_srs_wkt (p, 1, + "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29"); + add_srs_wkt (p, 2, + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,"); + add_srs_wkt (p, 3, + "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 7, + "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); + add_srs_wkt (p, 8, + "entral_meridian\",48],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); + add_srs_wkt (p, 10, + "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); + add_srs_wkt (p, 11, + "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"31900\"]]"); + p = add_epsg_def (filter, first, last, 31901, "epsg", 31901, + "KUDAMS / KTM"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); + add_proj4text (p, 1, + "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no"); + add_proj4text (p, 2, + "_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait"); + add_srs_wkt (p, 1, + "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); + add_srs_wkt (p, 2, + "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,"); + add_srs_wkt (p, 3, + "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 4, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 5, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); + add_srs_wkt (p, 7, + "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); + add_srs_wkt (p, 8, + "ian\",48],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "31901\"]]"); + p = add_epsg_def (filter, first, last, 31965, "epsg", 31965, + "SIRGAS 2000 / UTM zone 11N"); + add_proj4text (p, 0, + "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 11, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 12, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"31965\"]]"); + p = add_epsg_def (filter, first, last, 31966, "epsg", 31966, + "SIRGAS 2000 / UTM zone 12N"); + add_proj4text (p, 0, + "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 11, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 12, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"31966\"]]"); + p = add_epsg_def (filter, first, last, 31967, "epsg", 31967, + "SIRGAS 2000 / UTM zone 13N"); + add_proj4text (p, 0, + "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 11, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 12, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 13, + "\"31967\"]]"); + p = add_epsg_def (filter, first, last, 31968, "epsg", 31968, + "SIRGAS 2000 / UTM zone 14N"); + add_proj4text (p, 0, + "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31968\"]]"); + p = add_epsg_def (filter, first, last, 31969, "epsg", 31969, + "SIRGAS 2000 / UTM zone 15N"); + add_proj4text (p, 0, + "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31969\"]]"); + p = add_epsg_def (filter, first, last, 31970, "epsg", 31970, + "SIRGAS 2000 / UTM zone 16N"); + add_proj4text (p, 0, + "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31970\"]]"); + p = add_epsg_def (filter, first, last, 31971, "epsg", 31971, + "SIRGAS 2000 / UTM zone 17N"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31971\"]]"); + p = add_epsg_def (filter, first, last, 31972, "epsg", 31972, + "SIRGAS 2000 / UTM zone 18N"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31972\"]]"); + p = add_epsg_def (filter, first, last, 31973, "epsg", 31973, + "SIRGAS 2000 / UTM zone 19N"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31973\"]]"); + p = add_epsg_def (filter, first, last, 31974, "epsg", 31974, + "SIRGAS 2000 / UTM zone 20N"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31974\"]]"); + p = add_epsg_def (filter, first, last, 31975, "epsg", 31975, + "SIRGAS 2000 / UTM zone 21N"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31975\"]]"); + p = add_epsg_def (filter, first, last, 31976, "epsg", 31976, + "SIRGAS 2000 / UTM zone 22N"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 11, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 12, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "31976\"]]"); + p = add_epsg_def (filter, first, last, 31977, "epsg", 31977, + "SIRGAS 2000 / UTM zone 17S"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31977\"]]"); + p = add_epsg_def (filter, first, last, 31978, "epsg", 31978, + "SIRGAS 2000 / UTM zone 18S"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31978\"]]"); + p = add_epsg_def (filter, first, last, 31979, "epsg", 31979, + "SIRGAS 2000 / UTM zone 19S"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31979\"]]"); + p = add_epsg_def (filter, first, last, 31980, "epsg", 31980, + "SIRGAS 2000 / UTM zone 20S"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31980\"]]"); + p = add_epsg_def (filter, first, last, 31981, "epsg", 31981, + "SIRGAS 2000 / UTM zone 21S"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31981\"]]"); + p = add_epsg_def (filter, first, last, 31982, "epsg", 31982, + "SIRGAS 2000 / UTM zone 22S"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31982\"]]"); + p = add_epsg_def (filter, first, last, 31983, "epsg", 31983, + "SIRGAS 2000 / UTM zone 23S"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31983\"]]"); + p = add_epsg_def (filter, first, last, 31984, "epsg", 31984, + "SIRGAS 2000 / UTM zone 24S"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31984\"]]"); + p = add_epsg_def (filter, first, last, 31985, "epsg", 31985, + "SIRGAS 2000 / UTM zone 25S"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20"); + add_srs_wkt (p, 1, + "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); + add_srs_wkt (p, 2, + "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); + add_srs_wkt (p, 3, + "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); + add_srs_wkt (p, 4, + ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 5, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 6, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 7, + "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 8, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 9, + ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 11, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"31985\"]]"); + p = add_epsg_def (filter, first, last, 31986, "epsg", 31986, + "SIRGAS 1995 / UTM zone 17N"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31986\"]]"); + p = add_epsg_def (filter, first, last, 31987, "epsg", 31987, + "SIRGAS 1995 / UTM zone 18N"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31987\"]]"); + p = add_epsg_def (filter, first, last, 31988, "epsg", 31988, + "SIRGAS 1995 / UTM zone 19N"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31988\"]]"); + p = add_epsg_def (filter, first, last, 31989, "epsg", 31989, + "SIRGAS 1995 / UTM zone 20N"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31989\"]]"); + p = add_epsg_def (filter, first, last, 31990, "epsg", 31990, + "SIRGAS 1995 / UTM zone 21N"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31990\"]]"); + p = add_epsg_def (filter, first, last, 31991, "epsg", 31991, + "SIRGAS 1995 / UTM zone 22N"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); + add_proj4text (p, 1, + "units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 11, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); + add_srs_wkt (p, 12, + "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"31991\"]]"); + p = add_epsg_def (filter, first, last, 31992, "epsg", 31992, + "SIRGAS 1995 / UTM zone 17S"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31992\"]]"); + p = add_epsg_def (filter, first, last, 31993, "epsg", 31993, + "SIRGAS 1995 / UTM zone 18S"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31993\"]]"); + p = add_epsg_def (filter, first, last, 31994, "epsg", 31994, + "SIRGAS 1995 / UTM zone 19S"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31994\"]]"); + p = add_epsg_def (filter, first, last, 31995, "epsg", 31995, + "SIRGAS 1995 / UTM zone 20S"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31995\"]]"); + p = add_epsg_def (filter, first, last, 31996, "epsg", 31996, + "SIRGAS 1995 / UTM zone 21S"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31996\"]]"); + p = add_epsg_def (filter, first, last, 31997, "epsg", 31997, + "SIRGAS 1995 / UTM zone 22S"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31997\"]]"); + p = add_epsg_def (filter, first, last, 31998, "epsg", 31998, + "SIRGAS 1995 / UTM zone 23S"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31998\"]]"); + p = add_epsg_def (filter, first, last, 31999, "epsg", 31999, + "SIRGAS 1995 / UTM zone 24S"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"31999\"]]"); + p = add_epsg_def (filter, first, last, 32000, "epsg", 32000, + "SIRGAS 1995 / UTM zone 25S"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); + add_proj4text (p, 1, + "0,0,0 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19"); + add_srs_wkt (p, 1, + "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); + add_srs_wkt (p, 2, + "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); + add_srs_wkt (p, 3, + "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); + add_srs_wkt (p, 4, + ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); + add_srs_wkt (p, 6, + "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 7, + "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); + add_srs_wkt (p, 8, + "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 9, + "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_easting\",500000],PARAMETER[\"false_northing\",100"); + add_srs_wkt (p, 11, + "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); + add_srs_wkt (p, 13, + "\"EPSG\",\"32000\"]]"); + p = add_epsg_def (filter, first, last, 32001, "epsg", 32001, + "NAD27 / Montana North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4"); + add_proj4text (p, 1, + "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + add_srs_wkt (p, 7, + "ARAMETER[\"standard_parallel_1\",48.71666666666667],PARA"); + add_srs_wkt (p, 8, + "METER[\"standard_parallel_2\",47.85],PARAMETER[\"latitud"); + add_srs_wkt (p, 9, + "e_of_origin\",47],PARAMETER[\"central_meridian\",-109.5]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_"); + add_srs_wkt (p, 11, + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 13, + "\",NORTH],AUTHORITY[\"EPSG\",\"32001\"]]"); + p = add_epsg_def (filter, first, last, 32002, "epsg", 32002, + "NAD27 / Montana Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4"); + add_proj4text (p, 1, + "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y"); + add_proj4text (p, 2, + "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",47.88333333333333],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",46.45],PARAMETER[\"latitu"); + add_srs_wkt (p, 9, + "de_of_origin\",45.83333333333334],PARAMETER[\"central_me"); + add_srs_wkt (p, 10, + "ridian\",-109.5],PARAMETER[\"false_easting\",2000000],PA"); + add_srs_wkt (p, 11, + "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + add_srs_wkt (p, 12, + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]"); + p = add_epsg_def (filter, first, last, 32003, "epsg", 32003, + "NAD27 / Montana South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44"); + add_proj4text (p, 1, + " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); + add_proj4text (p, 2, + "7 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + add_srs_wkt (p, 7, + "ARAMETER[\"standard_parallel_1\",46.4],PARAMETER[\"stand"); + add_srs_wkt (p, 8, + "ard_parallel_2\",44.86666666666667],PARAMETER[\"latitude"); + add_srs_wkt (p, 9, + "_of_origin\",44],PARAMETER[\"central_meridian\",-109.5],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); + add_srs_wkt (p, 11, + "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32003\"]]"); + p = add_epsg_def (filter, first, last, 32005, "epsg", 32005, + "NAD27 / Nebraska North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4"); + add_proj4text (p, 1, + "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",41.85],PARAMETER[\"sta"); + add_srs_wkt (p, 8, + "ndard_parallel_2\",42.81666666666667],PARAMETER[\"latitu"); + add_srs_wkt (p, 9, + "de_of_origin\",41.33333333333334],PARAMETER[\"central_me"); + add_srs_wkt (p, 10, + "ridian\",-100],PARAMETER[\"false_easting\",2000000],PARA"); + add_srs_wkt (p, 11, + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + add_srs_wkt (p, 12, + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]"); + p = add_epsg_def (filter, first, last, 32006, "epsg", 32006, + "NAD27 / Nebraska South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666"); + add_proj4text (p, 1, + "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21"); + add_proj4text (p, 2, + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",40.28333333333333],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",41.71666666666667],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",39.66666666666666],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-99.5],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 11, + "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + add_srs_wkt (p, 12, + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + add_srs_wkt (p, 13, + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"32006\"]]"); + p = add_epsg_def (filter, first, last, 32007, "epsg", 32007, + "NAD27 / Nevada East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999"); + add_srs_wkt (p, 9, + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + add_srs_wkt (p, 10, + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 11, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32007\"]]"); + p = add_epsg_def (filter, first, last, 32008, "epsg", 32008, + "NAD27 / Nevada Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri"); + add_srs_wkt (p, 8, + "dian\",-116.6666666666667],PARAMETER[\"scale_factor\",0."); + add_srs_wkt (p, 9, + "9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + add_srs_wkt (p, 11, + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 12, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]"); + p = add_epsg_def (filter, first, last, 32009, "epsg", 32009, + "NAD27 / Nevada West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999"); + add_srs_wkt (p, 9, + "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); + add_srs_wkt (p, 10, + "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); + add_srs_wkt (p, 11, + ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32009\"]]"); + p = add_epsg_def (filter, first, last, 32010, "epsg", 32010, + "NAD27 / New Hampshire"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + add_proj4text (p, 1, + "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); + add_proj4text (p, 2, + "ts=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",42.5],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 8, + "an\",-71.66666666666667],PARAMETER[\"scale_factor\",0.99"); + add_srs_wkt (p, 9, + "9966667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + add_srs_wkt (p, 11, + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 12, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]"); + p = add_epsg_def (filter, first, last, 32011, "epsg", 32011, + "NAD27 / New Jersey"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666"); + add_proj4text (p, 1, + "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-74.66666666666667],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.999975],PARAMETER[\"false_easting\",2000000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); + add_srs_wkt (p, 11, + "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 12, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]"); + p = add_epsg_def (filter, first, last, 32012, "epsg", 32012, + "NAD27 / New Mexico East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + add_proj4text (p, 1, + "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); + add_srs_wkt (p, 8, + "n\",-104.3333333333333],PARAMETER[\"scale_factor\",0.999"); + add_srs_wkt (p, 9, + "909091],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + add_srs_wkt (p, 11, + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 12, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]"); + p = add_epsg_def (filter, first, last, 32013, "epsg", 32013, + "NAD27 / New Mexico Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524"); + add_proj4text (p, 1, + "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer"); + add_srs_wkt (p, 8, + "idian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARA"); + add_srs_wkt (p, 9, + "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); + add_srs_wkt (p, 10, + "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 12, + "TH],AUTHORITY[\"EPSG\",\"32013\"]]"); + p = add_epsg_def (filter, first, last, 32014, "epsg", 32014, + "NAD27 / New Mexico West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + add_proj4text (p, 1, + "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); + add_srs_wkt (p, 8, + "n\",-107.8333333333333],PARAMETER[\"scale_factor\",0.999"); + add_srs_wkt (p, 9, + "916667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + add_srs_wkt (p, 11, + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 12, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]"); + p = add_epsg_def (filter, first, last, 32015, "epsg", 32015, + "NAD27 / New York East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999"); + add_proj4text (p, 1, + "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-74.33333333333333],PARAMETER[\"scale_factor\",0.9999"); + add_srs_wkt (p, 9, + "66667],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); + add_srs_wkt (p, 10, + "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); + add_srs_wkt (p, 11, + "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 12, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]"); + p = add_epsg_def (filter, first, last, 32016, "epsg", 32016, + "NAD27 / New York Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia"); + add_srs_wkt (p, 8, + "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999"); + add_srs_wkt (p, 9, + "9375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); + add_srs_wkt (p, 11, + "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 12, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]"); + p = add_epsg_def (filter, first, last, 32017, "epsg", 32017, + "NAD27 / New York West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); + add_proj4text (p, 2, + "s-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-78.58333333333333],PARAMETER[\"scale_factor\",0.9999"); + add_srs_wkt (p, 9, + "375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 11, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 12, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32017\"]]"); + p = add_epsg_def (filter, first, last, 32018, "epsg", 32018, + "NAD27 / New York Long Island (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); + add_proj4text (p, 1, + "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0"); + add_proj4text (p, 2, + " +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO"); + add_srs_wkt (p, 1, + "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO"); + add_srs_wkt (p, 2, + "ID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY"); + add_srs_wkt (p, 3, + "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME"); + add_srs_wkt (p, 4, + "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); + add_srs_wkt (p, 5, + "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); + add_srs_wkt (p, 6, + ",AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conf"); + add_srs_wkt (p, 7, + "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); + add_srs_wkt (p, 8, + "03333333333333],PARAMETER[\"standard_parallel_2\",40.666"); + add_srs_wkt (p, 9, + "66666666666],PARAMETER[\"latitude_of_origin\",40.5],PARA"); + add_srs_wkt (p, 10, + "METER[\"central_meridian\",-74],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 11, + "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + add_srs_wkt (p, 12, + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 13, + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 14, + "G\",\"32018\"]]"); + p = add_epsg_def (filter, first, last, 32019, "epsg", 32019, + "NAD27 / North Carolina"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666"); + add_proj4text (p, 1, + "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); + add_proj4text (p, 2, + "0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",34.33333333333334],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",36.16666666666666],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",33.75],PARAMETER[\"central_me"); + add_srs_wkt (p, 10, + "ridian\",-79],PARAMETER[\"false_easting\",2000000],PARAM"); + add_srs_wkt (p, 11, + "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + add_srs_wkt (p, 12, + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 13, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]"); + p = add_epsg_def (filter, first, last, 32020, "epsg", 32020, + "NAD27 / North Dakota North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333"); + add_proj4text (p, 1, + "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0="); + add_proj4text (p, 2, + "0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",47.43333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",48.73333333333333],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m"); + add_srs_wkt (p, 10, + "eridian\",-100.5],PARAMETER[\"false_easting\",2000000],P"); + add_srs_wkt (p, 11, + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + add_srs_wkt (p, 12, + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + add_srs_wkt (p, 13, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 32021, "epsg", 32021, + "NAD27 / North Dakota South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333"); + add_proj4text (p, 1, + "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2"); + add_proj4text (p, 2, + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",46.18333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",47.48333333333333],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",45.66666666666666],PARAME"); + add_srs_wkt (p, 10, + "TER[\"central_meridian\",-100.5],PARAMETER[\"false_easti"); + add_srs_wkt (p, 11, + "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US "); + add_srs_wkt (p, 12, + "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); + add_srs_wkt (p, 13, + "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); + add_srs_wkt (p, 14, + "SG\",\"32021\"]]"); + p = add_epsg_def (filter, first, last, 32022, "epsg", 32022, + "NAD27 / Ohio North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39"); + add_proj4text (p, 1, + ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"standard_parallel_1\",40.43333333333333],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",41.7],PARAMETER[\"latitude_of"); + add_srs_wkt (p, 9, + "_origin\",39.66666666666666],PARAMETER[\"central_meridia"); + add_srs_wkt (p, 10, + "n\",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + add_srs_wkt (p, 11, + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + add_srs_wkt (p, 12, + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + add_srs_wkt (p, 13, + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]"); + p = add_epsg_def (filter, first, last, 32023, "epsg", 32023, + "NAD27 / Ohio South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333"); + add_proj4text (p, 1, + "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0"); + add_proj4text (p, 2, + " +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"standard_parallel_1\",38.73333333333333],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",40.03333333333333],PARAMETER["); + add_srs_wkt (p, 9, + "\"latitude_of_origin\",38],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 10, + ",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); + add_srs_wkt (p, 11, + "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); + add_srs_wkt (p, 12, + "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 13, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]"); + p = add_epsg_def (filter, first, last, 32024, "epsg", 32024, + "NAD27 / Oklahoma North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666"); + add_proj4text (p, 1, + "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +"); + add_proj4text (p, 2, + "datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",35.56666666666667],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",36.76666666666667],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",35],PARAMETER[\"central_merid"); + add_srs_wkt (p, 10, + "ian\",-98],PARAMETER[\"false_easting\",2000000],PARAMETE"); + add_srs_wkt (p, 11, + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + add_srs_wkt (p, 12, + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + add_srs_wkt (p, 13, + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]"); + p = add_epsg_def (filter, first, last, 32025, "epsg", 32025, + "NAD27 / Oklahoma South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333"); + add_proj4text (p, 1, + "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192"); + add_proj4text (p, 2, + "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",33.93333333333333],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",35.23333333333333],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",33.33333333333334],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-98],PARAMETER[\"false_easting\",20"); + add_srs_wkt (p, 11, + "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); + add_srs_wkt (p, 12, + "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + add_srs_wkt (p, 13, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "32025\"]]"); + p = add_epsg_def (filter, first, last, 32026, "epsg", 32026, + "NAD27 / Oregon North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6"); + add_proj4text (p, 1, + "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); + add_proj4text (p, 2, + "0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + add_srs_wkt (p, 7, + "AMETER[\"standard_parallel_1\",44.33333333333334],PARAME"); + add_srs_wkt (p, 8, + "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); + add_srs_wkt (p, 9, + "origin\",43.66666666666666],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 10, + "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + add_srs_wkt (p, 11, + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + add_srs_wkt (p, 12, + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + add_srs_wkt (p, 13, + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]"); + p = add_epsg_def (filter, first, last, 32027, "epsg", 32027, + "NAD27 / Oregon South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6"); + add_proj4text (p, 1, + "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); + add_proj4text (p, 2, + "0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + add_srs_wkt (p, 7, + "AMETER[\"standard_parallel_1\",42.33333333333334],PARAME"); + add_srs_wkt (p, 8, + "TER[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_"); + add_srs_wkt (p, 9, + "origin\",41.66666666666666],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 10, + "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); + add_srs_wkt (p, 11, + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + add_srs_wkt (p, 12, + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + add_srs_wkt (p, 13, + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]"); + p = add_epsg_def (filter, first, last, 32028, "epsg", 32028, + "NAD27 / Pennsylvania North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4"); + add_proj4text (p, 1, + "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y"); + add_proj4text (p, 2, + "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",40.88333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",41.95],PARAMETER[\"la"); + add_srs_wkt (p, 9, + "titude_of_origin\",40.16666666666666],PARAMETER[\"centra"); + add_srs_wkt (p, 10, + "l_meridian\",-77.75],PARAMETER[\"false_easting\",2000000"); + add_srs_wkt (p, 11, + "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); + add_srs_wkt (p, 12, + ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32029, "epsg", 32029, + "NAD27 / Pennsylvania South (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39"); + add_proj4text (p, 1, + ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_"); + add_proj4text (p, 2, + "0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC"); + add_srs_wkt (p, 1, + "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID"); + add_srs_wkt (p, 2, + "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\""); + add_srs_wkt (p, 3, + "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 7, + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333"); + add_srs_wkt (p, 8, + "3333333333],PARAMETER[\"standard_parallel_2\",40.8],PARA"); + add_srs_wkt (p, 9, + "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting"); + add_srs_wkt (p, 11, + "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); + add_srs_wkt (p, 12, + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + add_srs_wkt (p, 13, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"32029\"]]"); + p = add_epsg_def (filter, first, last, 32030, "epsg", 32030, + "NAD27 / Rhode Island"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); + add_proj4text (p, 1, + "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); + add_proj4text (p, 2, + "=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",41.08333333333334],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-71.5],PARAMETER[\"scale_factor\",0.99999"); + add_srs_wkt (p, 9, + "38],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); + add_srs_wkt (p, 10, + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + add_srs_wkt (p, 11, + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32030\"]]"); + p = add_epsg_def (filter, first, last, 32031, "epsg", 32031, + "NAD27 / South Carolina North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666"); + add_proj4text (p, 1, + "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); + add_proj4text (p, 2, + "datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + add_srs_wkt (p, 2, + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); + add_srs_wkt (p, 3, + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + add_srs_wkt (p, 4, + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + add_srs_wkt (p, 5, + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + add_srs_wkt (p, 7, + "SP\"],PARAMETER[\"standard_parallel_1\",33.7666666666666"); + add_srs_wkt (p, 8, + "7],PARAMETER[\"standard_parallel_2\",34.96666666666667],"); + add_srs_wkt (p, 9, + "PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"central"); + add_srs_wkt (p, 10, + "_meridian\",-81],PARAMETER[\"false_easting\",2000000],PA"); + add_srs_wkt (p, 11, + "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + add_srs_wkt (p, 12, + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]"); + p = add_epsg_def (filter, first, last, 32033, "epsg", 32033, + "NAD27 / South Carolina South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666"); + add_proj4text (p, 1, + "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192"); + add_proj4text (p, 2, + "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + add_srs_wkt (p, 2, + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); + add_srs_wkt (p, 3, + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + add_srs_wkt (p, 4, + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + add_srs_wkt (p, 5, + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + add_srs_wkt (p, 7, + "SP\"],PARAMETER[\"standard_parallel_1\",32.3333333333333"); + add_srs_wkt (p, 8, + "4],PARAMETER[\"standard_parallel_2\",33.66666666666666],"); + add_srs_wkt (p, 9, + "PARAMETER[\"latitude_of_origin\",31.83333333333333],PARA"); + add_srs_wkt (p, 10, + "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 11, + "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + add_srs_wkt (p, 12, + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 13, + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 14, + "G\",\"32033\"]]"); + p = add_epsg_def (filter, first, last, 32034, "epsg", 32034, + "NAD27 / South Dakota North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333"); + add_proj4text (p, 1, + "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219"); + add_proj4text (p, 2, + "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",44.41666666666666]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",45.68333333333333],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",43.83333333333334],PARAME"); + add_srs_wkt (p, 10, + "TER[\"central_meridian\",-100],PARAMETER[\"false_easting"); + add_srs_wkt (p, 11, + "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); + add_srs_wkt (p, 12, + "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); + add_srs_wkt (p, 13, + "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); + add_srs_wkt (p, 14, + "\",\"32034\"]]"); + p = add_epsg_def (filter, first, last, 32035, "epsg", 32035, + "NAD27 / South Dakota South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42"); + add_proj4text (p, 1, + ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21"); + add_proj4text (p, 2, + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",42.83333333333334]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",44.4],PARAMETER[\"lat"); + add_srs_wkt (p, 9, + "itude_of_origin\",42.33333333333334],PARAMETER[\"central"); + add_srs_wkt (p, 10, + "_meridian\",-100.3333333333333],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 11, + "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + add_srs_wkt (p, 12, + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 13, + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 14, + "G\",\"32035\"]]"); + p = add_epsg_def (filter, first, last, 32036, "epsg", 32036, + "NAD27 / Tennessee (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); + add_proj4text (p, 1, + "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0="); + add_proj4text (p, 2, + "0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27"); + add_srs_wkt (p, 1, + "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); + add_srs_wkt (p, 2, + " 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 3, + "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); + add_srs_wkt (p, 4, + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + add_srs_wkt (p, 5, + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + add_srs_wkt (p, 7, + "SP\"],PARAMETER[\"standard_parallel_1\",35.25],PARAMETER"); + add_srs_wkt (p, 8, + "[\"standard_parallel_2\",36.41666666666666],PARAMETER[\""); + add_srs_wkt (p, 9, + "latitude_of_origin\",34.66666666666666],PARAMETER[\"cent"); + add_srs_wkt (p, 10, + "ral_meridian\",-86],PARAMETER[\"false_easting\",100000],"); + add_srs_wkt (p, 11, + "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); + add_srs_wkt (p, 12, + "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32037, "epsg", 32037, + "NAD27 / Texas North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3"); + add_proj4text (p, 1, + "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + add_srs_wkt (p, 7, + "AMETER[\"standard_parallel_1\",34.65],PARAMETER[\"standa"); + add_srs_wkt (p, 8, + "rd_parallel_2\",36.18333333333333],PARAMETER[\"latitude_"); + add_srs_wkt (p, 9, + "of_origin\",34],PARAMETER[\"central_meridian\",-101.5],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); + add_srs_wkt (p, 11, + "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32037\"]]"); + p = add_epsg_def (filter, first, last, 32038, "epsg", 32038, + "NAD27 / Texas North Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666"); + add_proj4text (p, 1, + "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21"); + add_proj4text (p, 2, + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",32.13333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",33.96666666666667],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",31.66666666666667],PARAME"); + add_srs_wkt (p, 10, + "TER[\"central_meridian\",-97.5],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 11, + "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); + add_srs_wkt (p, 12, + "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 13, + "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 14, + "G\",\"32038\"]]"); + p = add_epsg_def (filter, first, last, 32039, "epsg", 32039, + "NAD27 / Texas Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333"); + add_proj4text (p, 1, + "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); + add_proj4text (p, 2, + "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); + add_proj4text (p, 3, + "no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); + add_srs_wkt (p, 2, + "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); + add_srs_wkt (p, 7, + "ARAMETER[\"standard_parallel_1\",30.11666666666667],PARA"); + add_srs_wkt (p, 8, + "METER[\"standard_parallel_2\",31.88333333333333],PARAMET"); + add_srs_wkt (p, 9, + "ER[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); + add_srs_wkt (p, 10, + "central_meridian\",-100.3333333333333],PARAMETER[\"false"); + add_srs_wkt (p, 11, + "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 12, + "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 13, + ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); + add_srs_wkt (p, 14, + "[\"EPSG\",\"32039\"]]"); + p = add_epsg_def (filter, first, last, 32040, "epsg", 32040, + "NAD27 / Texas South Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333"); + add_proj4text (p, 1, + "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192"); + add_proj4text (p, 2, + "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",28.38333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",30.28333333333333],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",27.83333333333333],PARAME"); + add_srs_wkt (p, 10, + "TER[\"central_meridian\",-99],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 11, + ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + add_srs_wkt (p, 12, + "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + add_srs_wkt (p, 13, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"32040\"]]"); + p = add_epsg_def (filter, first, last, 32041, "epsg", 32041, + "NAD27 / Texas South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333"); + add_proj4text (p, 1, + "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21"); + add_proj4text (p, 2, + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + add_srs_wkt (p, 7, + "AMETER[\"standard_parallel_1\",26.16666666666667],PARAME"); + add_srs_wkt (p, 8, + "TER[\"standard_parallel_2\",27.83333333333333],PARAMETER"); + add_srs_wkt (p, 9, + "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c"); + add_srs_wkt (p, 10, + "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); + add_srs_wkt (p, 11, + "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); + add_srs_wkt (p, 12, + "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 14, + "2041\"]]"); + p = add_epsg_def (filter, first, last, 32042, "epsg", 32042, + "NAD27 / Utah North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333"); + add_proj4text (p, 1, + "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2"); + add_proj4text (p, 2, + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"standard_parallel_1\",40.71666666666667],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",41.78333333333333],PARAMETER["); + add_srs_wkt (p, 9, + "\"latitude_of_origin\",40.33333333333334],PARAMETER[\"ce"); + add_srs_wkt (p, 10, + "ntral_meridian\",-111.5],PARAMETER[\"false_easting\",200"); + add_srs_wkt (p, 11, + "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); + add_srs_wkt (p, 12, + "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 14, + "2042\"]]"); + p = add_epsg_def (filter, first, last, 32043, "epsg", 32043, + "NAD27 / Utah Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3"); + add_proj4text (p, 1, + "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y"); + add_proj4text (p, 2, + "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); + add_srs_wkt (p, 7, + "AMETER[\"standard_parallel_1\",39.01666666666667],PARAME"); + add_srs_wkt (p, 8, + "TER[\"standard_parallel_2\",40.65],PARAMETER[\"latitude_"); + add_srs_wkt (p, 9, + "of_origin\",38.33333333333334],PARAMETER[\"central_merid"); + add_srs_wkt (p, 10, + "ian\",-111.5],PARAMETER[\"false_easting\",2000000],PARAM"); + add_srs_wkt (p, 11, + "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); + add_srs_wkt (p, 12, + "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 13, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]"); + p = add_epsg_def (filter, first, last, 32044, "epsg", 32044, + "NAD27 / Utah South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3"); + add_proj4text (p, 1, + "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y"); + add_proj4text (p, 2, + "_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); + add_srs_wkt (p, 7, + "METER[\"standard_parallel_1\",37.21666666666667],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",38.35],PARAMETER[\"latitude_o"); + add_srs_wkt (p, 9, + "f_origin\",36.66666666666666],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 10, + "an\",-111.5],PARAMETER[\"false_easting\",2000000],PARAME"); + add_srs_wkt (p, 11, + "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); + add_srs_wkt (p, 12, + "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]"); + p = add_epsg_def (filter, first, last, 32045, "epsg", 32045, + "NAD27 / Vermont"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); + add_proj4text (p, 1, + "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); + add_proj4text (p, 2, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort"); + add_srs_wkt (p, 1, + "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206"); + add_srs_wkt (p, 2, + ".4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO"); + add_srs_wkt (p, 3, + "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); + add_srs_wkt (p, 4, + "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); + add_srs_wkt (p, 5, + ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267"); + add_srs_wkt (p, 6, + "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); + add_srs_wkt (p, 7, + "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER["); + add_srs_wkt (p, 9, + "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); + add_srs_wkt (p, 10, + "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 12, + "HORITY[\"EPSG\",\"32045\"]]"); + p = add_epsg_def (filter, first, last, 32046, "epsg", 32046, + "NAD27 / Virginia North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37"); + add_proj4text (p, 1, + ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",38.03333333333333],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",39.2],PARAMETER[\"latitud"); + add_srs_wkt (p, 9, + "e_of_origin\",37.66666666666666],PARAMETER[\"central_mer"); + add_srs_wkt (p, 10, + "idian\",-78.5],PARAMETER[\"false_easting\",2000000],PARA"); + add_srs_wkt (p, 11, + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + add_srs_wkt (p, 12, + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]"); + p = add_epsg_def (filter, first, last, 32047, "epsg", 32047, + "NAD27 / Virginia South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666"); + add_proj4text (p, 1, + "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21"); + add_proj4text (p, 2, + "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",36.76666666666667],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",37.96666666666667],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-78.5],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 11, + "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); + add_srs_wkt (p, 12, + "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); + add_srs_wkt (p, 13, + "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 14, + "\"32047\"]]"); + p = add_epsg_def (filter, first, last, 32048, "epsg", 32048, + "NAD27 / Washington North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47"); + add_proj4text (p, 1, + " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0"); + add_proj4text (p, 2, + " +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",47.5],PARAMETER[\"stan"); + add_srs_wkt (p, 8, + "dard_parallel_2\",48.73333333333333],PARAMETER[\"latitud"); + add_srs_wkt (p, 9, + "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83"); + add_srs_wkt (p, 10, + "33333333333],PARAMETER[\"false_easting\",2000000],PARAME"); + add_srs_wkt (p, 11, + "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); + add_srs_wkt (p, 12, + "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]"); + p = add_epsg_def (filter, first, last, 32049, "epsg", 32049, + "NAD27 / Washington South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333"); + add_proj4text (p, 1, + "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2"); + add_proj4text (p, 2, + "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",45.83333333333334],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",47.33333333333334],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 11, + ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); + add_srs_wkt (p, 12, + "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); + add_srs_wkt (p, 13, + "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 14, + ",\"32049\"]]"); + p = add_epsg_def (filter, first, last, 32050, "epsg", 32050, + "NAD27 / West Virginia North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79."); + add_proj4text (p, 1, + "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f"); + add_proj4text (p, 2, + "t +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",39],PARAMETER[\"st"); + add_srs_wkt (p, 8, + "andard_parallel_2\",40.25],PARAMETER[\"latitude_of_origi"); + add_srs_wkt (p, 9, + "n\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"false_easting\",2000000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"32050\"]]"); + p = add_epsg_def (filter, first, last, 32051, "epsg", 32051, + "NAD27 / West Virginia South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333"); + add_proj4text (p, 1, + "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); + add_proj4text (p, 2, + "datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); + add_srs_wkt (p, 2, + "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70"); + add_srs_wkt (p, 3, + "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",37.48333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",38.88333333333333],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",37],PARAMETER[\"central_m"); + add_srs_wkt (p, 10, + "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA"); + add_srs_wkt (p, 11, + "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); + add_srs_wkt (p, 12, + "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); + add_srs_wkt (p, 13, + "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]"); + p = add_epsg_def (filter, first, last, 32052, "epsg", 32052, + "NAD27 / Wisconsin North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666"); + add_proj4text (p, 1, + "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192"); + add_proj4text (p, 2, + "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",45.56666666666667],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",46.76666666666667],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",45.16666666666666],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-90],PARAMETER[\"false_easting\",20"); + add_srs_wkt (p, 11, + "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); + add_srs_wkt (p, 12, + "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); + add_srs_wkt (p, 13, + "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 14, + "32052\"]]"); + p = add_epsg_def (filter, first, last, 32053, "epsg", 32053, + "NAD27 / Wisconsin Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333"); + add_proj4text (p, 1, + "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); + add_proj4text (p, 2, + "7 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA"); + add_srs_wkt (p, 1, + "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); + add_srs_wkt (p, 2, + "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008"); + add_srs_wkt (p, 3, + "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); + add_srs_wkt (p, 4, + "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); + add_srs_wkt (p, 5, + "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); + add_srs_wkt (p, 6, + "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\"s"); + add_srs_wkt (p, 8, + "tandard_parallel_2\",45.5],PARAMETER[\"latitude_of_origi"); + add_srs_wkt (p, 9, + "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9"); + add_srs_wkt (p, 10, + "0],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); + add_srs_wkt (p, 11, + "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); + add_srs_wkt (p, 12, + "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32053\"]]"); + p = add_epsg_def (filter, first, last, 32054, "epsg", 32054, + "NAD27 / Wisconsin South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666"); + add_proj4text (p, 1, + "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +"); + add_proj4text (p, 2, + "datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); + add_srs_wkt (p, 2, + ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\""); + add_srs_wkt (p, 3, + "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt (p, 4, + "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); + add_srs_wkt (p, 5, + "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",42.73333333333333],PAR"); + add_srs_wkt (p, 8, + "AMETER[\"standard_parallel_2\",44.06666666666667],PARAME"); + add_srs_wkt (p, 9, + "TER[\"latitude_of_origin\",42],PARAMETER[\"central_merid"); + add_srs_wkt (p, 10, + "ian\",-90],PARAMETER[\"false_easting\",2000000],PARAMETE"); + add_srs_wkt (p, 11, + "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); + add_srs_wkt (p, 12, + "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); + add_srs_wkt (p, 13, + "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]"); + p = add_epsg_def (filter, first, last, 32055, "epsg", 32055, + "NAD27 / Wyoming East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666"); + add_proj4text (p, 1, + "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + add_proj4text (p, 2, + "um=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-105.1666666666667],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + add_srs_wkt (p, 11, + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + add_srs_wkt (p, 12, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]"); + add_srs_wkt (p, 13, + "]"); + p = add_epsg_def (filter, first, last, 32056, "epsg", 32056, + "NAD27 / Wyoming East Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333"); + add_proj4text (p, 1, + "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + add_proj4text (p, 2, + "um=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + add_srs_wkt (p, 2, + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); + add_srs_wkt (p, 3, + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + add_srs_wkt (p, 4, + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + add_srs_wkt (p, 5, + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + add_srs_wkt (p, 7, + "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); + add_srs_wkt (p, 8, + "TER[\"central_meridian\",-107.3333333333333],PARAMETER[\""); + add_srs_wkt (p, 9, + "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 10, + "500000],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); + add_srs_wkt (p, 11, + " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); + add_srs_wkt (p, 12, + ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 13, + "32056\"]]"); +} + +#endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_42.c b/src/spatialite/src/srsinit/epsg_inlined_42.c new file mode 100644 index 0000000..e79cc68 --- /dev/null +++ b/src/spatialite/src/srsinit/epsg_inlined_42.c @@ -0,0 +1,3494 @@ +/* + + helper function for srs_init.c -- populating the SPATIAL_REF_SYS table + + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include + +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ + +SPATIALITE_PRIVATE void +initialize_epsg_42 (int filter, struct epsg_defs **first, struct epsg_defs **last) +{ +/* initializing the EPSG defs list */ + struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 32057, "epsg", 32057, + "NAD27 / Wyoming West Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0"); + add_proj4text (p, 1, + ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); + add_proj4text (p, 2, + "nits=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); + add_srs_wkt (p, 2, + "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7"); + add_srs_wkt (p, 3, + "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); + add_srs_wkt (p, 4, + "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); + add_srs_wkt (p, 5, + "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + add_srs_wkt (p, 7, + "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); + add_srs_wkt (p, 8, + "TER[\"central_meridian\",-108.75],PARAMETER[\"scale_fact"); + add_srs_wkt (p, 9, + "or\",0.999941177],PARAMETER[\"false_easting\",500000],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); + add_srs_wkt (p, 11, + "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); + add_srs_wkt (p, 12, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]"); + p = add_epsg_def (filter, first, last, 32058, "epsg", 32058, + "NAD27 / Wyoming West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333"); + add_proj4text (p, 1, + "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); + add_proj4text (p, 2, + "um=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); + add_srs_wkt (p, 2, + "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A"); + add_srs_wkt (p, 3, + "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); + add_srs_wkt (p, 4, + "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); + add_srs_wkt (p, 5, + "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-110.0833333333333],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); + add_srs_wkt (p, 11, + ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); + add_srs_wkt (p, 12, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]"); + add_srs_wkt (p, 13, + "]"); + p = add_epsg_def (filter, first, last, 32061, "epsg", 32061, + "NAD27 / Guatemala Norte (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); + add_proj4text (p, 1, + "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); + add_proj4text (p, 2, + "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + add_srs_wkt (p, 2, + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 7, + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",16.81666666"); + add_srs_wkt (p, 8, + "666667],PARAMETER[\"central_meridian\",-90.3333333333333"); + add_srs_wkt (p, 9, + "3],PARAMETER[\"scale_factor\",0.99992226],PARAMETER[\"fa"); + add_srs_wkt (p, 10, + "lse_easting\",500000],PARAMETER[\"false_northing\",29220"); + add_srs_wkt (p, 11, + "9.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); + add_srs_wkt (p, 12, + "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32"); + add_srs_wkt (p, 13, + "061\"]]"); + p = add_epsg_def (filter, first, last, 32062, "epsg", 32062, + "NAD27 / Guatemala Sur (deprecated)"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); + add_proj4text (p, 1, + "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N"); + add_proj4text (p, 2, + "AD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N"); + add_srs_wkt (p, 1, + "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl"); + add_srs_wkt (p, 2, + "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG"); + add_srs_wkt (p, 3, + "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre"); + add_srs_wkt (p, 4, + "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 7, + "onic_1SP\"],PARAMETER[\"latitude_of_origin\",14.9],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"central_meridian\",-90.33333333333333],PARAMETER["); + add_srs_wkt (p, 9, + "\"scale_factor\",0.99989906],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 10, + ",500000],PARAMETER[\"false_northing\",325992.681],UNIT[\""); + add_srs_wkt (p, 11, + "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); + add_srs_wkt (p, 12, + ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]"); + p = add_epsg_def (filter, first, last, 32064, "epsg", 32064, + "NAD27 / BLM 14N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + add_srs_wkt (p, 9, + "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 10, + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32064\"]]"); + p = add_epsg_def (filter, first, last, 32065, "epsg", 32065, + "NAD27 / BLM 15N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + add_srs_wkt (p, 9, + "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 10, + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32065\"]]"); + p = add_epsg_def (filter, first, last, 32066, "epsg", 32066, + "NAD27 / BLM 16N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + add_srs_wkt (p, 9, + "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 10, + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32066\"]]"); + p = add_epsg_def (filter, first, last, 32067, "epsg", 32067, + "NAD27 / BLM 17N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); + add_srs_wkt (p, 7, + "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); + add_srs_wkt (p, 8, + "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); + add_srs_wkt (p, 9, + "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 10, + "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32067\"]]"); + p = add_epsg_def (filter, first, last, 32074, "epsg", 32074, + "NAD27 / BLM 14N (feet) (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + add_srs_wkt (p, 2, + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 11, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32074\"]]"); + p = add_epsg_def (filter, first, last, 32075, "epsg", 32075, + "NAD27 / BLM 15N (feet) (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + add_srs_wkt (p, 2, + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 11, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32075\"]]"); + p = add_epsg_def (filter, first, last, 32076, "epsg", 32076, + "NAD27 / BLM 16N (feet) (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + add_srs_wkt (p, 2, + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 11, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32076\"]]"); + p = add_epsg_def (filter, first, last, 32077, "epsg", 32077, + "NAD27 / BLM 17N (feet) (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\""); + add_srs_wkt (p, 1, + "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); + add_srs_wkt (p, 2, + "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS"); + add_srs_wkt (p, 3, + "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); + add_srs_wkt (p, 8, + "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); + add_srs_wkt (p, 11, + "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32077\"]]"); + p = add_epsg_def (filter, first, last, 32081, "epsg", 32081, + "NAD27 / MTM zone 1"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "53],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); + add_srs_wkt (p, 10, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 11, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 12, + "2081\"]]"); + p = add_epsg_def (filter, first, last, 32082, "epsg", 32082, + "NAD27 / MTM zone 2"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "56],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); + add_srs_wkt (p, 10, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 11, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 12, + "2082\"]]"); + p = add_epsg_def (filter, first, last, 32083, "epsg", 32083, + "NAD27 / MTM zone 3"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32083\"]]"); + p = add_epsg_def (filter, first, last, 32084, "epsg", 32084, + "NAD27 / MTM zone 4"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32084\"]]"); + p = add_epsg_def (filter, first, last, 32085, "epsg", 32085, + "NAD27 / MTM zone 5"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32085\"]]"); + p = add_epsg_def (filter, first, last, 32086, "epsg", 32086, + "NAD27 / MTM zone 6"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); + add_srs_wkt (p, 2, + "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU"); + add_srs_wkt (p, 3, + "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); + add_srs_wkt (p, 4, + "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); + add_srs_wkt (p, 5, + "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); + add_srs_wkt (p, 6, + "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32086\"]]"); + p = add_epsg_def (filter, first, last, 32098, "epsg", 32098, + "NAD27 / Quebec Lambert"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); + add_proj4text (p, 1, + "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); + add_srs_wkt (p, 2, + "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]"); + add_srs_wkt (p, 3, + "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); + add_srs_wkt (p, 4, + "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); + add_srs_wkt (p, 5, + "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); + add_srs_wkt (p, 6, + ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); + add_srs_wkt (p, 7, + "PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"standa"); + add_srs_wkt (p, 8, + "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",44]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); + add_srs_wkt (p, 11, + "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); + add_srs_wkt (p, 12, + "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]"); + p = add_epsg_def (filter, first, last, 32099, "epsg", 32099, + "NAD27 / Louisiana Offshore"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + add_proj4text (p, 1, + "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +"); + add_proj4text (p, 2, + "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); + add_proj4text (p, 3, + "no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); + add_srs_wkt (p, 2, + "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700"); + add_srs_wkt (p, 3, + "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); + add_srs_wkt (p, 4, + ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); + add_srs_wkt (p, 5, + "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); + add_srs_wkt (p, 6, + "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"standard_parallel_1\",27.83333333333333]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",26.16666666666667],PA"); + add_srs_wkt (p, 9, + "RAMETER[\"latitude_of_origin\",25.66666666666667],PARAME"); + add_srs_wkt (p, 10, + "TER[\"central_meridian\",-91.33333333333333],PARAMETER[\""); + add_srs_wkt (p, 11, + "false_easting\",2000000],PARAMETER[\"false_northing\",0]"); + add_srs_wkt (p, 12, + ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 14, + "HORITY[\"EPSG\",\"32099\"]]"); + p = add_epsg_def (filter, first, last, 32100, "epsg", 32100, + "NAD83 / Montana"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); + add_proj4text (p, 1, + " +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort"); + add_srs_wkt (p, 1, + "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); + add_srs_wkt (p, 2, + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + add_srs_wkt (p, 3, + "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); + add_srs_wkt (p, 4, + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + add_srs_wkt (p, 5, + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); + add_srs_wkt (p, 7, + "SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\""); + add_srs_wkt (p, 8, + "standard_parallel_2\",45],PARAMETER[\"latitude_of_origin"); + add_srs_wkt (p, 9, + "\",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 32104, "epsg", 32104, + "NAD83 / Nebraska"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); + add_proj4text (p, 1, + "lon_0=-100 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_"); + add_proj4text (p, 2, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor"); + add_srs_wkt (p, 1, + "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); + add_srs_wkt (p, 2, + "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); + add_srs_wkt (p, 4, + "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); + add_srs_wkt (p, 5, + "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); + add_srs_wkt (p, 6, + "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); + add_srs_wkt (p, 7, + "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER["); + add_srs_wkt (p, 8, + "\"standard_parallel_2\",40],PARAMETER[\"latitude_of_orig"); + add_srs_wkt (p, 9, + "in\",39.83333333333334],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 10, + "100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); + add_srs_wkt (p, 11, + "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); + add_srs_wkt (p, 12, + "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 13, + "PSG\",\"32104\"]]"); + p = add_epsg_def (filter, first, last, 32107, "epsg", 32107, + "NAD83 / Nevada East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=200000 +y_0=8000000 +datum=NAD83 +units=m +no_"); + add_proj4text (p, 2, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-115.5833333333333],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 12, + "TH],AUTHORITY[\"EPSG\",\"32107\"]]"); + p = add_epsg_def (filter, first, last, 32108, "epsg", 32108, + "NAD83 / Nevada Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=500000 +y_0=6000000 +datum=NAD83 +units=m +no_"); + add_proj4text (p, 2, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER["); + add_srs_wkt (p, 8, + "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca"); + add_srs_wkt (p, 9, + "le_factor\",0.9999],PARAMETER[\"false_easting\",500000],"); + add_srs_wkt (p, 10, + "PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 11, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 12, + ",NORTH],AUTHORITY[\"EPSG\",\"32108\"]]"); + p = add_epsg_def (filter, first, last, 32109, "epsg", 32109, + "NAD83 / Nevada West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); + add_proj4text (p, 1, + "9999 +x_0=800000 +y_0=4000000 +datum=NAD83 +units=m +no_"); + add_proj4text (p, 2, + "defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-118.5833333333333],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9999],PARAMETER[\"false_easting\",800000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 12, + "TH],AUTHORITY[\"EPSG\",\"32109\"]]"); + p = add_epsg_def (filter, first, last, 32110, "epsg", 32110, + "NAD83 / New Hampshire"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); + add_proj4text (p, 1, + "99966667 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_de"); + add_proj4text (p, 2, + "fs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + add_srs_wkt (p, 2, + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + add_srs_wkt (p, 3, + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"c"); + add_srs_wkt (p, 8, + "entral_meridian\",-71.66666666666667],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.999966667],PARAMETER[\"false_easting\",300000"); + add_srs_wkt (p, 10, + "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); + add_srs_wkt (p, 12, + "TH],AUTHORITY[\"EPSG\",\"32110\"]]"); + p = add_epsg_def (filter, first, last, 32111, "epsg", 32111, + "NAD83 / New Jersey"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + add_proj4text (p, 1, + "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA"); + add_srs_wkt (p, 8, + "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9999],PARAMETER[\"false_easting\",150000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); + add_srs_wkt (p, 12, + "HORITY[\"EPSG\",\"32111\"]]"); + p = add_epsg_def (filter, first, last, 32112, "epsg", 32112, + "NAD83 / New Mexico East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); + add_proj4text (p, 1, + "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + add_srs_wkt (p, 2, + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 7, + "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); + add_srs_wkt (p, 8, + "central_meridian\",-104.3333333333333],PARAMETER[\"scale"); + add_srs_wkt (p, 9, + "_factor\",0.999909091],PARAMETER[\"false_easting\",16500"); + add_srs_wkt (p, 10, + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 12, + "RTH],AUTHORITY[\"EPSG\",\"32112\"]]"); + p = add_epsg_def (filter, first, last, 32113, "epsg", 32113, + "NAD83 / New Mexico Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); + add_proj4text (p, 1, + "00 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); + add_srs_wkt (p, 7, + "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER"); + add_srs_wkt (p, 8, + "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\""); + add_srs_wkt (p, 9, + ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); + add_srs_wkt (p, 10, + "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 11, + "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); + add_srs_wkt (p, 12, + "\"EPSG\",\"32113\"]]"); + p = add_epsg_def (filter, first, last, 32114, "epsg", 32114, + "NAD83 / New Mexico West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); + add_proj4text (p, 1, + "916667 +x_0=830000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + add_srs_wkt (p, 2, + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 7, + "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); + add_srs_wkt (p, 8, + "central_meridian\",-107.8333333333333],PARAMETER[\"scale"); + add_srs_wkt (p, 9, + "_factor\",0.999916667],PARAMETER[\"false_easting\",83000"); + add_srs_wkt (p, 10, + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 12, + "RTH],AUTHORITY[\"EPSG\",\"32114\"]]"); + p = add_epsg_def (filter, first, last, 32115, "epsg", 32115, + "NAD83 / New York East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); + add_proj4text (p, 1, + "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + add_srs_wkt (p, 2, + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + add_srs_wkt (p, 3, + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",38.83333333333334],"); + add_srs_wkt (p, 8, + "PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9999],PARAMETER[\"false_easting\",150000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32115\"]]"); + p = add_epsg_def (filter, first, last, 32116, "epsg", 32116, + "NAD83 / New York Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + add_srs_wkt (p, 2, + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); + add_srs_wkt (p, 7, + "tor\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\""); + add_srs_wkt (p, 8, + "central_meridian\",-76.58333333333333],PARAMETER[\"scale"); + add_srs_wkt (p, 9, + "_factor\",0.9999375],PARAMETER[\"false_easting\",250000]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 11, + "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); + add_srs_wkt (p, 12, + "H],AUTHORITY[\"EPSG\",\"32116\"]]"); + p = add_epsg_def (filter, first, last, 32117, "epsg", 32117, + "NAD83 / New York West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); + add_proj4text (p, 1, + "9375 +x_0=350000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + add_srs_wkt (p, 2, + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + add_srs_wkt (p, 3, + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); + add_srs_wkt (p, 7, + "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); + add_srs_wkt (p, 8, + "tral_meridian\",-78.58333333333333],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9999375],PARAMETER[\"false_easting\",350000],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"32117\"]]"); + p = add_epsg_def (filter, first, last, 32118, "epsg", 32118, + "NAD83 / New York Long Island"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); + add_proj4text (p, 1, + "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + add_srs_wkt (p, 2, + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + add_srs_wkt (p, 4, + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + add_srs_wkt (p, 5, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 6, + "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); + add_srs_wkt (p, 7, + "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); + add_srs_wkt (p, 8, + ".03333333333333],PARAMETER[\"standard_parallel_2\",40.66"); + add_srs_wkt (p, 9, + "666666666666],PARAMETER[\"latitude_of_origin\",40.166666"); + add_srs_wkt (p, 10, + "66666666],PARAMETER[\"central_meridian\",-74],PARAMETER["); + add_srs_wkt (p, 11, + "\"false_easting\",300000],PARAMETER[\"false_northing\",0"); + add_srs_wkt (p, 12, + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32119, "epsg", 32119, + "NAD83 / North Carolina"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); + add_proj4text (p, 1, + "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +datum"); + add_proj4text (p, 2, + "=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666"); + add_srs_wkt (p, 8, + "666666666],PARAMETER[\"standard_parallel_2\",34.33333333"); + add_srs_wkt (p, 9, + "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE"); + add_srs_wkt (p, 10, + "R[\"central_meridian\",-79],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 11, + "609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); + add_srs_wkt (p, 12, + ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32119\"]]"); + p = add_epsg_def (filter, first, last, 32120, "epsg", 32120, + "NAD83 / North Dakota North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); + add_proj4text (p, 1, + "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +datum=NA"); + add_proj4text (p, 2, + "D83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7"); + add_srs_wkt (p, 8, + "3333333333333],PARAMETER[\"standard_parallel_2\",47.4333"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",47],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"central_meridian\",-100.5],PARAMETER[\"false_eastin"); + add_srs_wkt (p, 11, + "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); + add_srs_wkt (p, 12, + "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); + add_srs_wkt (p, 13, + "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]"); + p = add_epsg_def (filter, first, last, 32121, "epsg", 32121, + "NAD83 / North Dakota South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); + add_proj4text (p, 1, + "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); + add_proj4text (p, 2, + "y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4"); + add_srs_wkt (p, 8, + "8333333333333],PARAMETER[\"standard_parallel_2\",46.1833"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",45.66666666"); + add_srs_wkt (p, 10, + "666666],PARAMETER[\"central_meridian\",-100.5],PARAMETER"); + add_srs_wkt (p, 11, + "[\"false_easting\",600000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 12, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32122, "epsg", 32122, + "NAD83 / Ohio North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); + add_proj4text (p, 1, + ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N"); + add_proj4text (p, 2, + "AD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + add_srs_wkt (p, 7, + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAME"); + add_srs_wkt (p, 8, + "TER[\"standard_parallel_2\",40.43333333333333],PARAMETER"); + add_srs_wkt (p, 9, + "[\"latitude_of_origin\",39.66666666666666],PARAMETER[\"c"); + add_srs_wkt (p, 10, + "entral_meridian\",-82.5],PARAMETER[\"false_easting\",600"); + add_srs_wkt (p, 11, + "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); + add_srs_wkt (p, 12, + "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); + add_srs_wkt (p, 13, + "NORTH],AUTHORITY[\"EPSG\",\"32122\"]]"); + p = add_epsg_def (filter, first, last, 32123, "epsg", 32123, + "NAD83 / Ohio South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); + add_proj4text (p, 1, + "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + add_srs_wkt (p, 7, + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",40.033333333"); + add_srs_wkt (p, 8, + "33333],PARAMETER[\"standard_parallel_2\",38.733333333333"); + add_srs_wkt (p, 9, + "33],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); + add_srs_wkt (p, 10, + "tral_meridian\",-82.5],PARAMETER[\"false_easting\",60000"); + add_srs_wkt (p, 11, + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 12, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"32123\"]]"); + p = add_epsg_def (filter, first, last, 32124, "epsg", 32124, + "NAD83 / Oklahoma North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); + add_proj4text (p, 1, + "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666"); + add_srs_wkt (p, 8, + "666666667],PARAMETER[\"standard_parallel_2\",35.56666666"); + add_srs_wkt (p, 9, + "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\""); + add_srs_wkt (p, 10, + "central_meridian\",-98],PARAMETER[\"false_easting\",6000"); + add_srs_wkt (p, 11, + "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 12, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); + add_srs_wkt (p, 13, + "ORTH],AUTHORITY[\"EPSG\",\"32124\"]]"); + p = add_epsg_def (filter, first, last, 32125, "epsg", 32125, + "NAD83 / Oklahoma South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); + add_proj4text (p, 1, + "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333"); + add_srs_wkt (p, 8, + "333333333],PARAMETER[\"standard_parallel_2\",33.93333333"); + add_srs_wkt (p, 9, + "333333],PARAMETER[\"latitude_of_origin\",33.333333333333"); + add_srs_wkt (p, 10, + "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); + add_srs_wkt (p, 11, + "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 12, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); + add_srs_wkt (p, 13, + "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]"); + p = add_epsg_def (filter, first, last, 32126, "epsg", 32126, + "NAD83 / Oregon North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); + add_proj4text (p, 1, + "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +datum=N"); + add_proj4text (p, 2, + "AD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + add_srs_wkt (p, 7, + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER["); + add_srs_wkt (p, 9, + "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce"); + add_srs_wkt (p, 10, + "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",250"); + add_srs_wkt (p, 11, + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32126\"]]"); + p = add_epsg_def (filter, first, last, 32127, "epsg", 32127, + "NAD83 / Oregon South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); + add_proj4text (p, 1, + "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +datum=N"); + add_proj4text (p, 2, + "AD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + add_srs_wkt (p, 7, + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET"); + add_srs_wkt (p, 8, + "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER["); + add_srs_wkt (p, 9, + "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce"); + add_srs_wkt (p, 10, + "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",150"); + add_srs_wkt (p, 11, + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32127\"]]"); + p = add_epsg_def (filter, first, last, 32128, "epsg", 32128, + "NAD83 / Pennsylvania North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); + add_proj4text (p, 1, + "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum"); + add_proj4text (p, 2, + "=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9"); + add_srs_wkt (p, 8, + "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],"); + add_srs_wkt (p, 9, + "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA"); + add_srs_wkt (p, 10, + "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas"); + add_srs_wkt (p, 11, + "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me"); + add_srs_wkt (p, 12, + "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); + add_srs_wkt (p, 13, + "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]"); + p = add_epsg_def (filter, first, last, 32129, "epsg", 32129, + "NAD83 / Pennsylvania South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); + add_proj4text (p, 1, + "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); + add_proj4text (p, 2, + "y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9"); + add_srs_wkt (p, 8, + "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333"); + add_srs_wkt (p, 10, + "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER"); + add_srs_wkt (p, 11, + "[\"false_easting\",600000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 12, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32130, "epsg", 32130, + "NAD83 / Rhode Island"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); + add_proj4text (p, 1, + "9999375 +x_0=100000 +y_0=0 +datum=NAD83 +units=m +no_def"); + add_proj4text (p, 2, + "s"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",41.08333333333334],PA"); + add_srs_wkt (p, 8, + "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.99999375],PARAMETER[\"false_easting\",100000],P"); + add_srs_wkt (p, 10, + "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); + add_srs_wkt (p, 11, + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"32130\"]]"); + p = add_epsg_def (filter, first, last, 32133, "epsg", 32133, + "NAD83 / South Carolina"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); + add_proj4text (p, 1, + ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333"); + add_srs_wkt (p, 8, + "333333334],PARAMETER[\"standard_parallel_2\",32.5],PARAM"); + add_srs_wkt (p, 9, + "ETER[\"latitude_of_origin\",31.83333333333333],PARAMETER"); + add_srs_wkt (p, 10, + "[\"central_meridian\",-81],PARAMETER[\"false_easting\",6"); + add_srs_wkt (p, 11, + "09600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32133\"]]"); + p = add_epsg_def (filter, first, last, 32134, "epsg", 32134, + "NAD83 / South Dakota North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); + add_proj4text (p, 1, + "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); + add_proj4text (p, 2, + "0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6"); + add_srs_wkt (p, 8, + "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166"); + add_srs_wkt (p, 9, + "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333"); + add_srs_wkt (p, 10, + "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); + add_srs_wkt (p, 11, + "false_easting\",600000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 12, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]"); + p = add_epsg_def (filter, first, last, 32135, "epsg", 32135, + "NAD83 / South Dakota South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); + add_proj4text (p, 1, + ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); + add_proj4text (p, 2, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4"); + add_srs_wkt (p, 8, + "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"central_meridian\",-100.3333333333333],PARAMETER["); + add_srs_wkt (p, 11, + "\"false_easting\",600000],PARAMETER[\"false_northing\",0"); + add_srs_wkt (p, 12, + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32136, "epsg", 32136, + "NAD83 / Tennessee"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); + add_proj4text (p, 1, + "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA"); + add_proj4text (p, 2, + "D83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No"); + add_srs_wkt (p, 1, + "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); + add_srs_wkt (p, 2, + "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); + add_srs_wkt (p, 4, + "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); + add_srs_wkt (p, 5, + "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); + add_srs_wkt (p, 6, + "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); + add_srs_wkt (p, 7, + "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666"); + add_srs_wkt (p, 8, + "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER"); + add_srs_wkt (p, 9, + "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); + add_srs_wkt (p, 10, + "entral_meridian\",-86],PARAMETER[\"false_easting\",60000"); + add_srs_wkt (p, 11, + "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 12, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 13, + "RTH],AUTHORITY[\"EPSG\",\"32136\"]]"); + p = add_epsg_def (filter, first, last, 32137, "epsg", 32137, + "NAD83 / Texas North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); + add_proj4text (p, 1, + "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +datum=NAD83 +u"); + add_proj4text (p, 2, + "nits=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + add_srs_wkt (p, 7, + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",36.18333333"); + add_srs_wkt (p, 8, + "333333],PARAMETER[\"standard_parallel_2\",34.65],PARAMET"); + add_srs_wkt (p, 9, + "ER[\"latitude_of_origin\",34],PARAMETER[\"central_meridi"); + add_srs_wkt (p, 10, + "an\",-101.5],PARAMETER[\"false_easting\",200000],PARAMET"); + add_srs_wkt (p, 11, + "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); + add_srs_wkt (p, 13, + ",AUTHORITY[\"EPSG\",\"32137\"]]"); + p = add_epsg_def (filter, first, last, 32138, "epsg", 32138, + "NAD83 / Texas North Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); + add_proj4text (p, 1, + "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); + add_proj4text (p, 2, + "_0=2000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9"); + add_srs_wkt (p, 8, + "6666666666667],PARAMETER[\"standard_parallel_2\",32.1333"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",31.66666666"); + add_srs_wkt (p, 10, + "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER["); + add_srs_wkt (p, 11, + "\"false_easting\",600000],PARAMETER[\"false_northing\",2"); + add_srs_wkt (p, 12, + "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); + add_srs_wkt (p, 13, + "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 14, + "2138\"]]"); + p = add_epsg_def (filter, first, last, 32139, "epsg", 32139, + "NAD83 / Texas Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); + add_proj4text (p, 1, + "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); + add_proj4text (p, 2, + "x_0=700000 +y_0=3000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM["); + add_srs_wkt (p, 1, + "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); + add_srs_wkt (p, 2, + "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); + add_srs_wkt (p, 3, + "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); + add_srs_wkt (p, 4, + "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); + add_srs_wkt (p, 5, + ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); + add_srs_wkt (p, 6, + "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); + add_srs_wkt (p, 7, + "onic_2SP\"],PARAMETER[\"standard_parallel_1\",31.8833333"); + add_srs_wkt (p, 8, + "3333333],PARAMETER[\"standard_parallel_2\",30.1166666666"); + add_srs_wkt (p, 9, + "6667],PARAMETER[\"latitude_of_origin\",29.66666666666667"); + add_srs_wkt (p, 10, + "],PARAMETER[\"central_meridian\",-100.3333333333333],PAR"); + add_srs_wkt (p, 11, + "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); + add_srs_wkt (p, 12, + "ing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 13, + "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 14, + "G\",\"32139\"]]"); + p = add_epsg_def (filter, first, last, 32140, "epsg", 32140, + "NAD83 / Texas South Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); + add_proj4text (p, 1, + "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); + add_proj4text (p, 2, + "=4000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2"); + add_srs_wkt (p, 8, + "8333333333333],PARAMETER[\"standard_parallel_2\",28.3833"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",27.83333333"); + add_srs_wkt (p, 10, + "333333],PARAMETER[\"central_meridian\",-99],PARAMETER[\""); + add_srs_wkt (p, 11, + "false_easting\",600000],PARAMETER[\"false_northing\",400"); + add_srs_wkt (p, 12, + "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); + add_srs_wkt (p, 13, + "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"321"); + add_srs_wkt (p, 14, + "40\"]]"); + p = add_epsg_def (filter, first, last, 32141, "epsg", 32141, + "NAD83 / Texas South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + add_proj4text (p, 1, + "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); + add_proj4text (p, 2, + "_0=5000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + add_srs_wkt (p, 7, + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",27.83333333"); + add_srs_wkt (p, 8, + "333333],PARAMETER[\"standard_parallel_2\",26.16666666666"); + add_srs_wkt (p, 9, + "667],PARAMETER[\"latitude_of_origin\",25.66666666666667]"); + add_srs_wkt (p, 10, + ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); + add_srs_wkt (p, 11, + "_easting\",300000],PARAMETER[\"false_northing\",5000000]"); + add_srs_wkt (p, 12, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 13, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 32142, "epsg", 32142, + "NAD83 / Utah North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); + add_proj4text (p, 1, + "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); + add_proj4text (p, 2, + "y_0=1000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + add_srs_wkt (p, 7, + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); + add_srs_wkt (p, 8, + "33333],PARAMETER[\"standard_parallel_2\",40.716666666666"); + add_srs_wkt (p, 9, + "67],PARAMETER[\"latitude_of_origin\",40.33333333333334],"); + add_srs_wkt (p, 10, + "PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false"); + add_srs_wkt (p, 11, + "_easting\",500000],PARAMETER[\"false_northing\",1000000]"); + add_srs_wkt (p, 12, + ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); + add_srs_wkt (p, 13, + "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]"); + add_srs_wkt (p, 14, + "]"); + p = add_epsg_def (filter, first, last, 32143, "epsg", 32143, + "NAD83 / Utah Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); + add_proj4text (p, 1, + "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); + add_proj4text (p, 2, + "+datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); + add_srs_wkt (p, 7, + "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA"); + add_srs_wkt (p, 8, + "METER[\"standard_parallel_2\",39.01666666666667],PARAMET"); + add_srs_wkt (p, 9, + "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\""); + add_srs_wkt (p, 10, + "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); + add_srs_wkt (p, 11, + "00000],PARAMETER[\"false_northing\",2000000],UNIT[\"metr"); + add_srs_wkt (p, 12, + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]"); + p = add_epsg_def (filter, first, last, 32144, "epsg", 32144, + "NAD83 / Utah South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); + add_proj4text (p, 1, + "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); + add_proj4text (p, 2, + "+datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); + add_srs_wkt (p, 7, + "ic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"standard_parallel_2\",37.21666666666667],PARAMETE"); + add_srs_wkt (p, 9, + "R[\"latitude_of_origin\",36.66666666666666],PARAMETER[\""); + add_srs_wkt (p, 10, + "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); + add_srs_wkt (p, 11, + "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr"); + add_srs_wkt (p, 12, + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 13, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]"); + p = add_epsg_def (filter, first, last, 32145, "epsg", 32145, + "NAD83 / Vermont"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); + add_proj4text (p, 1, + "=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort"); + add_srs_wkt (p, 1, + "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); + add_srs_wkt (p, 2, + "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); + add_srs_wkt (p, 3, + "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); + add_srs_wkt (p, 4, + "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); + add_srs_wkt (p, 5, + "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); + add_srs_wkt (p, 6, + "EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PA"); + add_srs_wkt (p, 7, + "RAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central"); + add_srs_wkt (p, 8, + "_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996428"); + add_srs_wkt (p, 9, + "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); + add_srs_wkt (p, 10, + "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); + add_srs_wkt (p, 11, + "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32145\"]]"); + p = add_epsg_def (filter, first, last, 32146, "epsg", 32146, + "NAD83 / Virginia North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); + add_proj4text (p, 1, + ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); + add_proj4text (p, 2, + "datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA"); + add_srs_wkt (p, 8, + "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM"); + add_srs_wkt (p, 9, + "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER"); + add_srs_wkt (p, 10, + "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 11, + ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); + add_srs_wkt (p, 12, + "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); + add_srs_wkt (p, 13, + "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]"); + p = add_epsg_def (filter, first, last, 32147, "epsg", 32147, + "NAD83 / Virginia South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); + add_proj4text (p, 1, + "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); + add_proj4text (p, 2, + "y_0=1000000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); + add_srs_wkt (p, 8, + "666666667],PARAMETER[\"standard_parallel_2\",36.76666666"); + add_srs_wkt (p, 9, + "666667],PARAMETER[\"latitude_of_origin\",36.333333333333"); + add_srs_wkt (p, 10, + "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa"); + add_srs_wkt (p, 11, + "lse_easting\",3500000],PARAMETER[\"false_northing\",1000"); + add_srs_wkt (p, 12, + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 13, + "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3214"); + add_srs_wkt (p, 14, + "7\"]]"); + p = add_epsg_def (filter, first, last, 32148, "epsg", 32148, + "NAD83 / Washington North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); + add_proj4text (p, 1, + " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +datum=NAD"); + add_proj4text (p, 2, + "83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + add_srs_wkt (p, 2, + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 7, + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333"); + add_srs_wkt (p, 8, + "3333333333],PARAMETER[\"standard_parallel_2\",47.5],PARA"); + add_srs_wkt (p, 9, + "METER[\"latitude_of_origin\",47],PARAMETER[\"central_mer"); + add_srs_wkt (p, 10, + "idian\",-120.8333333333333],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 11, + "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); + add_srs_wkt (p, 12, + ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); + add_srs_wkt (p, 13, + "\",NORTH],AUTHORITY[\"EPSG\",\"32148\"]]"); + p = add_epsg_def (filter, first, last, 32149, "epsg", 32149, + "NAD83 / Washington South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); + add_proj4text (p, 1, + "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); + add_proj4text (p, 2, + "y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT"); + add_srs_wkt (p, 1, + "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); + add_srs_wkt (p, 2, + "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); + add_srs_wkt (p, 3, + "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 7, + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333"); + add_srs_wkt (p, 8, + "3333333334],PARAMETER[\"standard_parallel_2\",45.8333333"); + add_srs_wkt (p, 9, + "3333334],PARAMETER[\"latitude_of_origin\",45.33333333333"); + add_srs_wkt (p, 10, + "334],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); + add_srs_wkt (p, 11, + "false_easting\",500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt (p, 12, + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); + add_srs_wkt (p, 13, + ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]"); + p = add_epsg_def (filter, first, last, 32150, "epsg", 32150, + "NAD83 / West Virginia North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); + add_proj4text (p, 1, + "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.2"); + add_srs_wkt (p, 8, + "5],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"lat"); + add_srs_wkt (p, 9, + "itude_of_origin\",38.5],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 10, + "79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); + add_srs_wkt (p, 11, + "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 13, + "EPSG\",\"32150\"]]"); + p = add_epsg_def (filter, first, last, 32151, "epsg", 32151, + "NAD83 / West Virginia South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); + add_proj4text (p, 1, + "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\","); + add_srs_wkt (p, 1, + "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8"); + add_srs_wkt (p, 8, + "8333333333333],PARAMETER[\"standard_parallel_2\",37.4833"); + add_srs_wkt (p, 9, + "3333333333],PARAMETER[\"latitude_of_origin\",37],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"central_meridian\",-81],PARAMETER[\"false_easting\""); + add_srs_wkt (p, 11, + ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); + add_srs_wkt (p, 12, + "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); + add_srs_wkt (p, 13, + "Y\",NORTH],AUTHORITY[\"EPSG\",\"32151\"]]"); + p = add_epsg_def (filter, first, last, 32152, "epsg", 32152, + "NAD83 / Wisconsin North"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); + add_proj4text (p, 1, + "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); + add_proj4text (p, 2, + "=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + add_srs_wkt (p, 2, + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 7, + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666"); + add_srs_wkt (p, 8, + "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666"); + add_srs_wkt (p, 9, + "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666"); + add_srs_wkt (p, 10, + "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal"); + add_srs_wkt (p, 11, + "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 12, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); + add_srs_wkt (p, 13, + "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]"); + p = add_epsg_def (filter, first, last, 32153, "epsg", 32153, + "NAD83 / Wisconsin Central"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); + add_proj4text (p, 1, + "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); + add_proj4text (p, 2, + "+no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA"); + add_srs_wkt (p, 1, + "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); + add_srs_wkt (p, 2, + "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); + add_srs_wkt (p, 3, + "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); + add_srs_wkt (p, 4, + "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); + add_srs_wkt (p, 5, + "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); + add_srs_wkt (p, 6, + "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); + add_srs_wkt (p, 7, + "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"la"); + add_srs_wkt (p, 9, + "titude_of_origin\",43.83333333333334],PARAMETER[\"centra"); + add_srs_wkt (p, 10, + "l_meridian\",-90],PARAMETER[\"false_easting\",600000],PA"); + add_srs_wkt (p, 11, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 12, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 13, + "AUTHORITY[\"EPSG\",\"32153\"]]"); + p = add_epsg_def (filter, first, last, 32154, "epsg", 32154, + "NAD83 / Wisconsin South"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); + add_proj4text (p, 1, + "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83"); + add_proj4text (p, 2, + " +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU"); + add_srs_wkt (p, 1, + "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); + add_srs_wkt (p, 2, + "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); + add_srs_wkt (p, 3, + "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); + add_srs_wkt (p, 4, + "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); + add_srs_wkt (p, 5, + "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); + add_srs_wkt (p, 6, + "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); + add_srs_wkt (p, 7, + "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666"); + add_srs_wkt (p, 8, + "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333"); + add_srs_wkt (p, 9, + "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER["); + add_srs_wkt (p, 10, + "\"central_meridian\",-90],PARAMETER[\"false_easting\",60"); + add_srs_wkt (p, 11, + "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); + add_srs_wkt (p, 13, + ",NORTH],AUTHORITY[\"EPSG\",\"32154\"]]"); + p = add_epsg_def (filter, first, last, 32155, "epsg", 32155, + "NAD83 / Wyoming East"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); + add_proj4text (p, 1, + "999375 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); + add_srs_wkt (p, 8, + "tral_meridian\",-105.1666666666667],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9999375],PARAMETER[\"false_easting\",200000],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); + add_srs_wkt (p, 11, + "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); + add_srs_wkt (p, 12, + "AUTHORITY[\"EPSG\",\"32155\"]]"); + p = add_epsg_def (filter, first, last, 32156, "epsg", 32156, + "NAD83 / Wyoming East Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); + add_proj4text (p, 1, + "999375 +x_0=400000 +y_0=100000 +datum=NAD83 +units=m +no"); + add_proj4text (p, 2, + "_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + add_srs_wkt (p, 2, + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + add_srs_wkt (p, 4, + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + add_srs_wkt (p, 5, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 6, + "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 7, + "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"central_meridian\",-107.3333333333333],PARAMETER["); + add_srs_wkt (p, 9, + "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\","); + add_srs_wkt (p, 10, + "400000],PARAMETER[\"false_northing\",100000],UNIT[\"metr"); + add_srs_wkt (p, 11, + "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); + add_srs_wkt (p, 12, + "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]"); + p = add_epsg_def (filter, first, last, 32157, "epsg", 32157, + "NAD83 / Wyoming West Central"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); + add_proj4text (p, 1, + "=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\""); + add_srs_wkt (p, 1, + ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); + add_srs_wkt (p, 2, + "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); + add_srs_wkt (p, 3, + "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); + add_srs_wkt (p, 4, + "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); + add_srs_wkt (p, 5, + "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); + add_srs_wkt (p, 6, + "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); + add_srs_wkt (p, 7, + "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); + add_srs_wkt (p, 8, + "ETER[\"central_meridian\",-108.75],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.9999375],PARAMETER[\"false_easting\",600000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); + add_srs_wkt (p, 12, + "UTHORITY[\"EPSG\",\"32157\"]]"); + p = add_epsg_def (filter, first, last, 32158, "epsg", 32158, + "NAD83 / Wyoming West"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); + add_proj4text (p, 1, + "999375 +x_0=800000 +y_0=100000 +datum=NAD83 +units=m +no"); + add_proj4text (p, 2, + "_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); + add_srs_wkt (p, 8, + "tral_meridian\",-110.0833333333333],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9999375],PARAMETER[\"false_easting\",800000],PA"); + add_srs_wkt (p, 10, + "RAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); + add_srs_wkt (p, 12, + "RTH],AUTHORITY[\"EPSG\",\"32158\"]]"); + p = add_epsg_def (filter, first, last, 32161, "epsg", 32161, + "NAD83 / Puerto Rico & Virgin Is."); + add_proj4text (p, 0, + "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); + add_proj4text (p, 1, + "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); + add_proj4text (p, 2, + "x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD"); + add_srs_wkt (p, 1, + "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); + add_srs_wkt (p, 2, + "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + add_srs_wkt (p, 3, + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); + add_srs_wkt (p, 4, + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + add_srs_wkt (p, 5, + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + add_srs_wkt (p, 6, + "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); + add_srs_wkt (p, 7, + "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); + add_srs_wkt (p, 8, + ",18.43333333333333],PARAMETER[\"standard_parallel_2\",18"); + add_srs_wkt (p, 9, + ".03333333333333],PARAMETER[\"latitude_of_origin\",17.833"); + add_srs_wkt (p, 10, + "33333333333],PARAMETER[\"central_meridian\",-66.43333333"); + add_srs_wkt (p, 11, + "333334],PARAMETER[\"false_easting\",200000],PARAMETER[\""); + add_srs_wkt (p, 12, + "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP"); + add_srs_wkt (p, 13, + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + add_srs_wkt (p, 14, + "RITY[\"EPSG\",\"32161\"]]"); + p = add_epsg_def (filter, first, last, 32164, "epsg", 32164, + "NAD83 / BLM 14N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 11, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 12, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32164\"]]"); + p = add_epsg_def (filter, first, last, 32165, "epsg", 32165, + "NAD83 / BLM 15N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 11, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 12, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32165\"]]"); + p = add_epsg_def (filter, first, last, 32166, "epsg", 32166, + "NAD83 / BLM 16N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 11, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 12, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32166\"]]"); + p = add_epsg_def (filter, first, last, 32167, "epsg", 32167, + "NAD83 / BLM 17N (ftUS)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); + add_proj4text (p, 1, + "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); + add_srs_wkt (p, 7, + "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); + add_srs_wkt (p, 8, + "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]"); + add_srs_wkt (p, 9, + ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); + add_srs_wkt (p, 10, + "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); + add_srs_wkt (p, 11, + "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); + add_srs_wkt (p, 12, + "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32167\"]]"); + p = add_epsg_def (filter, first, last, 32180, "epsg", 32180, + "NAD83 / SCoPQ zone 2 (deprecated)"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA"); + add_srs_wkt (p, 1, + "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); + add_srs_wkt (p, 2, + " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); + add_srs_wkt (p, 3, + "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); + add_srs_wkt (p, 4, + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); + add_srs_wkt (p, 5, + "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); + add_srs_wkt (p, 6, + "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); + add_srs_wkt (p, 7, + "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); + add_srs_wkt (p, 8, + "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact"); + add_srs_wkt (p, 9, + "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET"); + add_srs_wkt (p, 10, + "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); + add_srs_wkt (p, 11, + "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); + add_srs_wkt (p, 12, + "RITY[\"EPSG\",\"32180\"]]"); + p = add_epsg_def (filter, first, last, 32181, "epsg", 32181, + "NAD83 / MTM zone 1"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-53],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32181\"]]"); + p = add_epsg_def (filter, first, last, 32182, "epsg", 32182, + "NAD83 / MTM zone 2"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-56],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32182\"]]"); + p = add_epsg_def (filter, first, last, 32183, "epsg", 32183, + "NAD83 / MTM zone 3"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32183\"]]"); + p = add_epsg_def (filter, first, last, 32184, "epsg", 32184, + "NAD83 / MTM zone 4"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32184\"]]"); + p = add_epsg_def (filter, first, last, 32185, "epsg", 32185, + "NAD83 / MTM zone 5"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32185\"]]"); + p = add_epsg_def (filter, first, last, 32186, "epsg", 32186, + "NAD83 / MTM zone 6"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32186\"]]"); + p = add_epsg_def (filter, first, last, 32187, "epsg", 32187, + "NAD83 / MTM zone 7"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32187\"]]"); + p = add_epsg_def (filter, first, last, 32188, "epsg", 32188, + "NAD83 / MTM zone 8"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32188\"]]"); + p = add_epsg_def (filter, first, last, 32189, "epsg", 32189, + "NAD83 / MTM zone 9"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N"); + add_srs_wkt (p, 1, + "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); + add_srs_wkt (p, 2, + ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); + add_srs_wkt (p, 3, + ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); + add_srs_wkt (p, 4, + "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); + add_srs_wkt (p, 5, + ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); + add_srs_wkt (p, 6, + "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32189\"]]"); + p = add_epsg_def (filter, first, last, 32190, "epsg", 32190, + "NAD83 / MTM zone 10"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32190\"]]"); + p = add_epsg_def (filter, first, last, 32191, "epsg", 32191, + "NAD83 / MTM zone 11"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); + add_proj4text (p, 1, + "+y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P"); + add_srs_wkt (p, 9, + "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); + add_srs_wkt (p, 10, + "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); + add_srs_wkt (p, 11, + "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); + add_srs_wkt (p, 12, + "ITY[\"EPSG\",\"32191\"]]"); + p = add_epsg_def (filter, first, last, 32192, "epsg", 32192, + "NAD83 / MTM zone 12"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32192\"]]"); + p = add_epsg_def (filter, first, last, 32193, "epsg", 32193, + "NAD83 / MTM zone 13"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32193\"]]"); + p = add_epsg_def (filter, first, last, 32194, "epsg", 32194, + "NAD83 / MTM zone 14"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32194\"]]"); + p = add_epsg_def (filter, first, last, 32195, "epsg", 32195, + "NAD83 / MTM zone 15"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32195\"]]"); + p = add_epsg_def (filter, first, last, 32196, "epsg", 32196, + "NAD83 / MTM zone 16"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32196\"]]"); + p = add_epsg_def (filter, first, last, 32197, "epsg", 32197, + "NAD83 / MTM zone 17"); + add_proj4text (p, 0, + "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); + add_proj4text (p, 1, + "_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\""); + add_srs_wkt (p, 1, + "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); + add_srs_wkt (p, 2, + "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); + add_srs_wkt (p, 3, + "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); + add_srs_wkt (p, 4, + "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); + add_srs_wkt (p, 5, + "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); + add_srs_wkt (p, 6, + "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); + add_srs_wkt (p, 7, + "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); + add_srs_wkt (p, 8, + "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR"); + add_srs_wkt (p, 9, + "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); + add_srs_wkt (p, 10, + "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt (p, 11, + "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); + add_srs_wkt (p, 12, + "Y[\"EPSG\",\"32197\"]]"); + p = add_epsg_def (filter, first, last, 32198, "epsg", 32198, + "NAD83 / Quebec Lambert"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); + add_proj4text (p, 1, + "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM"); + add_srs_wkt (p, 1, + "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); + add_srs_wkt (p, 2, + "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); + add_srs_wkt (p, 3, + "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); + add_srs_wkt (p, 4, + "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); + add_srs_wkt (p, 5, + "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); + add_srs_wkt (p, 6, + "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); + add_srs_wkt (p, 7, + "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA"); + add_srs_wkt (p, 8, + "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o"); + add_srs_wkt (p, 9, + "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); + add_srs_wkt (p, 11, + ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 12, + "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198"); + add_srs_wkt (p, 13, + "\"]]"); + p = add_epsg_def (filter, first, last, 32199, "epsg", 32199, + "NAD83 / Louisiana Offshore"); + add_proj4text (p, 0, + "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); + add_proj4text (p, 1, + "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +"); + add_proj4text (p, 2, + "y_0=0 +datum=NAD83 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D"); + add_srs_wkt (p, 1, + "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); + add_srs_wkt (p, 2, + ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); + add_srs_wkt (p, 3, + "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); + add_srs_wkt (p, 4, + "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); + add_srs_wkt (p, 5, + "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt (p, 6, + "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); + add_srs_wkt (p, 7, + "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8"); + add_srs_wkt (p, 8, + "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666"); + add_srs_wkt (p, 9, + "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"central_meridian\",-91.33333333333333],PARAMETER["); + add_srs_wkt (p, 11, + "\"false_easting\",1000000],PARAMETER[\"false_northing\","); + add_srs_wkt (p, 12, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 13, + "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\""); + add_srs_wkt (p, 14, + "]]"); + p = add_epsg_def (filter, first, last, 32201, "epsg", 32201, + "WGS 72 / UTM zone 1N"); + add_proj4text (p, 0, + "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32201\"]]"); + p = add_epsg_def (filter, first, last, 32202, "epsg", 32202, + "WGS 72 / UTM zone 2N"); + add_proj4text (p, 0, + "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32202\"]]"); + p = add_epsg_def (filter, first, last, 32203, "epsg", 32203, + "WGS 72 / UTM zone 3N"); + add_proj4text (p, 0, + "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32203\"]]"); + p = add_epsg_def (filter, first, last, 32204, "epsg", 32204, + "WGS 72 / UTM zone 4N"); + add_proj4text (p, 0, + "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32204\"]]"); +} + +#endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_43.c b/src/spatialite/src/srsinit/epsg_inlined_43.c new file mode 100644 index 0000000..2e263a2 --- /dev/null +++ b/src/spatialite/src/srsinit/epsg_inlined_43.c @@ -0,0 +1,3290 @@ +/* + + helper function for srs_init.c -- populating the SPATIAL_REF_SYS table + + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include + +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ + +SPATIALITE_PRIVATE void +initialize_epsg_43 (int filter, struct epsg_defs **first, struct epsg_defs **last) +{ +/* initializing the EPSG defs list */ + struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 32205, "epsg", 32205, + "WGS 72 / UTM zone 5N"); + add_proj4text (p, 0, + "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32205\"]]"); + p = add_epsg_def (filter, first, last, 32206, "epsg", 32206, + "WGS 72 / UTM zone 6N"); + add_proj4text (p, 0, + "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32206\"]]"); + p = add_epsg_def (filter, first, last, 32207, "epsg", 32207, + "WGS 72 / UTM zone 7N"); + add_proj4text (p, 0, + "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32207\"]]"); + p = add_epsg_def (filter, first, last, 32208, "epsg", 32208, + "WGS 72 / UTM zone 8N"); + add_proj4text (p, 0, + "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32208\"]]"); + p = add_epsg_def (filter, first, last, 32209, "epsg", 32209, + "WGS 72 / UTM zone 9N"); + add_proj4text (p, 0, + "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); + add_proj4text (p, 1, + "4,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32209\"]]"); + p = add_epsg_def (filter, first, last, 32210, "epsg", 32210, + "WGS 72 / UTM zone 10N"); + add_proj4text (p, 0, + "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 10, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 11, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 12, + "\"32210\"]]"); + p = add_epsg_def (filter, first, last, 32211, "epsg", 32211, + "WGS 72 / UTM zone 11N"); + add_proj4text (p, 0, + "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 10, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 11, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 12, + "\"32211\"]]"); + p = add_epsg_def (filter, first, last, 32212, "epsg", 32212, + "WGS 72 / UTM zone 12N"); + add_proj4text (p, 0, + "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 10, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 11, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 12, + "\"32212\"]]"); + p = add_epsg_def (filter, first, last, 32213, "epsg", 32213, + "WGS 72 / UTM zone 13N"); + add_proj4text (p, 0, + "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); + add_srs_wkt (p, 10, + "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); + add_srs_wkt (p, 11, + "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 12, + "\"32213\"]]"); + p = add_epsg_def (filter, first, last, 32214, "epsg", 32214, + "WGS 72 / UTM zone 14N"); + add_proj4text (p, 0, + "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32214\"]]"); + p = add_epsg_def (filter, first, last, 32215, "epsg", 32215, + "WGS 72 / UTM zone 15N"); + add_proj4text (p, 0, + "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32215\"]]"); + p = add_epsg_def (filter, first, last, 32216, "epsg", 32216, + "WGS 72 / UTM zone 16N"); + add_proj4text (p, 0, + "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32216\"]]"); + p = add_epsg_def (filter, first, last, 32217, "epsg", 32217, + "WGS 72 / UTM zone 17N"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32217\"]]"); + p = add_epsg_def (filter, first, last, 32218, "epsg", 32218, + "WGS 72 / UTM zone 18N"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32218\"]]"); + p = add_epsg_def (filter, first, last, 32219, "epsg", 32219, + "WGS 72 / UTM zone 19N"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32219\"]]"); + p = add_epsg_def (filter, first, last, 32220, "epsg", 32220, + "WGS 72 / UTM zone 20N"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32220\"]]"); + p = add_epsg_def (filter, first, last, 32221, "epsg", 32221, + "WGS 72 / UTM zone 21N"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32221\"]]"); + p = add_epsg_def (filter, first, last, 32222, "epsg", 32222, + "WGS 72 / UTM zone 22N"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32222\"]]"); + p = add_epsg_def (filter, first, last, 32223, "epsg", 32223, + "WGS 72 / UTM zone 23N"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32223\"]]"); + p = add_epsg_def (filter, first, last, 32224, "epsg", 32224, + "WGS 72 / UTM zone 24N"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32224\"]]"); + p = add_epsg_def (filter, first, last, 32225, "epsg", 32225, + "WGS 72 / UTM zone 25N"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32225\"]]"); + p = add_epsg_def (filter, first, last, 32226, "epsg", 32226, + "WGS 72 / UTM zone 26N"); + add_proj4text (p, 0, + "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32226\"]]"); + p = add_epsg_def (filter, first, last, 32227, "epsg", 32227, + "WGS 72 / UTM zone 27N"); + add_proj4text (p, 0, + "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32227\"]]"); + p = add_epsg_def (filter, first, last, 32228, "epsg", 32228, + "WGS 72 / UTM zone 28N"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32228\"]]"); + p = add_epsg_def (filter, first, last, 32229, "epsg", 32229, + "WGS 72 / UTM zone 29N"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32229\"]]"); + p = add_epsg_def (filter, first, last, 32230, "epsg", 32230, + "WGS 72 / UTM zone 30N"); + add_proj4text (p, 0, + "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32230\"]]"); + p = add_epsg_def (filter, first, last, 32231, "epsg", 32231, + "WGS 72 / UTM zone 31N"); + add_proj4text (p, 0, + "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + add_srs_wkt (p, 10, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 11, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 12, + "2231\"]]"); + p = add_epsg_def (filter, first, last, 32232, "epsg", 32232, + "WGS 72 / UTM zone 32N"); + add_proj4text (p, 0, + "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); + add_srs_wkt (p, 10, + "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); + add_srs_wkt (p, 11, + "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); + add_srs_wkt (p, 12, + "2232\"]]"); + p = add_epsg_def (filter, first, last, 32233, "epsg", 32233, + "WGS 72 / UTM zone 33N"); + add_proj4text (p, 0, + "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32233\"]]"); + p = add_epsg_def (filter, first, last, 32234, "epsg", 32234, + "WGS 72 / UTM zone 34N"); + add_proj4text (p, 0, + "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32234\"]]"); + p = add_epsg_def (filter, first, last, 32235, "epsg", 32235, + "WGS 72 / UTM zone 35N"); + add_proj4text (p, 0, + "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32235\"]]"); + p = add_epsg_def (filter, first, last, 32236, "epsg", 32236, + "WGS 72 / UTM zone 36N"); + add_proj4text (p, 0, + "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32236\"]]"); + p = add_epsg_def (filter, first, last, 32237, "epsg", 32237, + "WGS 72 / UTM zone 37N"); + add_proj4text (p, 0, + "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32237\"]]"); + p = add_epsg_def (filter, first, last, 32238, "epsg", 32238, + "WGS 72 / UTM zone 38N"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32238\"]]"); + p = add_epsg_def (filter, first, last, 32239, "epsg", 32239, + "WGS 72 / UTM zone 39N"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32239\"]]"); + p = add_epsg_def (filter, first, last, 32240, "epsg", 32240, + "WGS 72 / UTM zone 40N"); + add_proj4text (p, 0, + "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32240\"]]"); + p = add_epsg_def (filter, first, last, 32241, "epsg", 32241, + "WGS 72 / UTM zone 41N"); + add_proj4text (p, 0, + "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32241\"]]"); + p = add_epsg_def (filter, first, last, 32242, "epsg", 32242, + "WGS 72 / UTM zone 42N"); + add_proj4text (p, 0, + "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32242\"]]"); + p = add_epsg_def (filter, first, last, 32243, "epsg", 32243, + "WGS 72 / UTM zone 43N"); + add_proj4text (p, 0, + "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32243\"]]"); + p = add_epsg_def (filter, first, last, 32244, "epsg", 32244, + "WGS 72 / UTM zone 44N"); + add_proj4text (p, 0, + "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32244\"]]"); + p = add_epsg_def (filter, first, last, 32245, "epsg", 32245, + "WGS 72 / UTM zone 45N"); + add_proj4text (p, 0, + "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32245\"]]"); + p = add_epsg_def (filter, first, last, 32246, "epsg", 32246, + "WGS 72 / UTM zone 46N"); + add_proj4text (p, 0, + "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32246\"]]"); + p = add_epsg_def (filter, first, last, 32247, "epsg", 32247, + "WGS 72 / UTM zone 47N"); + add_proj4text (p, 0, + "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); + add_srs_wkt (p, 10, + "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); + add_srs_wkt (p, 11, + "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32247\"]]"); + p = add_epsg_def (filter, first, last, 32248, "epsg", 32248, + "WGS 72 / UTM zone 48N"); + add_proj4text (p, 0, + "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32248\"]]"); + p = add_epsg_def (filter, first, last, 32249, "epsg", 32249, + "WGS 72 / UTM zone 49N"); + add_proj4text (p, 0, + "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32249\"]]"); + p = add_epsg_def (filter, first, last, 32250, "epsg", 32250, + "WGS 72 / UTM zone 50N"); + add_proj4text (p, 0, + "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32250\"]]"); + p = add_epsg_def (filter, first, last, 32251, "epsg", 32251, + "WGS 72 / UTM zone 51N"); + add_proj4text (p, 0, + "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32251\"]]"); + p = add_epsg_def (filter, first, last, 32252, "epsg", 32252, + "WGS 72 / UTM zone 52N"); + add_proj4text (p, 0, + "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32252\"]]"); + p = add_epsg_def (filter, first, last, 32253, "epsg", 32253, + "WGS 72 / UTM zone 53N"); + add_proj4text (p, 0, + "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32253\"]]"); + p = add_epsg_def (filter, first, last, 32254, "epsg", 32254, + "WGS 72 / UTM zone 54N"); + add_proj4text (p, 0, + "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32254\"]]"); + p = add_epsg_def (filter, first, last, 32255, "epsg", 32255, + "WGS 72 / UTM zone 55N"); + add_proj4text (p, 0, + "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32255\"]]"); + p = add_epsg_def (filter, first, last, 32256, "epsg", 32256, + "WGS 72 / UTM zone 56N"); + add_proj4text (p, 0, + "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32256\"]]"); + p = add_epsg_def (filter, first, last, 32257, "epsg", 32257, + "WGS 72 / UTM zone 57N"); + add_proj4text (p, 0, + "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32257\"]]"); + p = add_epsg_def (filter, first, last, 32258, "epsg", 32258, + "WGS 72 / UTM zone 58N"); + add_proj4text (p, 0, + "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32258\"]]"); + p = add_epsg_def (filter, first, last, 32259, "epsg", 32259, + "WGS 72 / UTM zone 59N"); + add_proj4text (p, 0, + "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32259\"]]"); + p = add_epsg_def (filter, first, last, 32260, "epsg", 32260, + "WGS 72 / UTM zone 60N"); + add_proj4text (p, 0, + "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); + add_proj4text (p, 1, + "54,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); + add_srs_wkt (p, 10, + "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); + add_srs_wkt (p, 11, + "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 12, + "32260\"]]"); + p = add_epsg_def (filter, first, last, 32301, "epsg", 32301, + "WGS 72 / UTM zone 1S"); + add_proj4text (p, 0, + "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32301\"]]"); + p = add_epsg_def (filter, first, last, 32302, "epsg", 32302, + "WGS 72 / UTM zone 2S"); + add_proj4text (p, 0, + "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32302\"]]"); + p = add_epsg_def (filter, first, last, 32303, "epsg", 32303, + "WGS 72 / UTM zone 3S"); + add_proj4text (p, 0, + "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32303\"]]"); + p = add_epsg_def (filter, first, last, 32304, "epsg", 32304, + "WGS 72 / UTM zone 4S"); + add_proj4text (p, 0, + "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32304\"]]"); + p = add_epsg_def (filter, first, last, 32305, "epsg", 32305, + "WGS 72 / UTM zone 5S"); + add_proj4text (p, 0, + "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32305\"]]"); + p = add_epsg_def (filter, first, last, 32306, "epsg", 32306, + "WGS 72 / UTM zone 6S"); + add_proj4text (p, 0, + "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32306\"]]"); + p = add_epsg_def (filter, first, last, 32307, "epsg", 32307, + "WGS 72 / UTM zone 7S"); + add_proj4text (p, 0, + "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32307\"]]"); + p = add_epsg_def (filter, first, last, 32308, "epsg", 32308, + "WGS 72 / UTM zone 8S"); + add_proj4text (p, 0, + "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32308\"]]"); + p = add_epsg_def (filter, first, last, 32309, "epsg", 32309, + "WGS 72 / UTM zone 9S"); + add_proj4text (p, 0, + "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); + add_proj4text (p, 1, + ",0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM["); + add_srs_wkt (p, 1, + "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); + add_srs_wkt (p, 2, + "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); + add_srs_wkt (p, 3, + "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); + add_srs_wkt (p, 4, + "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); + add_srs_wkt (p, 5, + "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); + add_srs_wkt (p, 6, + "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); + add_srs_wkt (p, 7, + "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); + add_srs_wkt (p, 8, + "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32309\"]]"); + p = add_epsg_def (filter, first, last, 32310, "epsg", 32310, + "WGS 72 / UTM zone 10S"); + add_proj4text (p, 0, + "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + add_srs_wkt (p, 10, + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 11, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"32310\"]]"); + p = add_epsg_def (filter, first, last, 32311, "epsg", 32311, + "WGS 72 / UTM zone 11S"); + add_proj4text (p, 0, + "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + add_srs_wkt (p, 10, + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 11, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"32311\"]]"); + p = add_epsg_def (filter, first, last, 32312, "epsg", 32312, + "WGS 72 / UTM zone 12S"); + add_proj4text (p, 0, + "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + add_srs_wkt (p, 10, + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 11, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"32312\"]]"); + p = add_epsg_def (filter, first, last, 32313, "epsg", 32313, + "WGS 72 / UTM zone 13S"); + add_proj4text (p, 0, + "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); + add_srs_wkt (p, 9, + "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); + add_srs_wkt (p, 10, + "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); + add_srs_wkt (p, 11, + "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); + add_srs_wkt (p, 12, + "EPSG\",\"32313\"]]"); + p = add_epsg_def (filter, first, last, 32314, "epsg", 32314, + "WGS 72 / UTM zone 14S"); + add_proj4text (p, 0, + "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32314\"]]"); + p = add_epsg_def (filter, first, last, 32315, "epsg", 32315, + "WGS 72 / UTM zone 15S"); + add_proj4text (p, 0, + "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32315\"]]"); + p = add_epsg_def (filter, first, last, 32316, "epsg", 32316, + "WGS 72 / UTM zone 16S"); + add_proj4text (p, 0, + "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32316\"]]"); + p = add_epsg_def (filter, first, last, 32317, "epsg", 32317, + "WGS 72 / UTM zone 17S"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32317\"]]"); + p = add_epsg_def (filter, first, last, 32318, "epsg", 32318, + "WGS 72 / UTM zone 18S"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32318\"]]"); + p = add_epsg_def (filter, first, last, 32319, "epsg", 32319, + "WGS 72 / UTM zone 19S"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32319\"]]"); + p = add_epsg_def (filter, first, last, 32320, "epsg", 32320, + "WGS 72 / UTM zone 20S"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32320\"]]"); + p = add_epsg_def (filter, first, last, 32321, "epsg", 32321, + "WGS 72 / UTM zone 21S"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32321\"]]"); + p = add_epsg_def (filter, first, last, 32322, "epsg", 32322, + "WGS 72 / UTM zone 22S"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32322\"]]"); + p = add_epsg_def (filter, first, last, 32323, "epsg", 32323, + "WGS 72 / UTM zone 23S"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32323\"]]"); + p = add_epsg_def (filter, first, last, 32324, "epsg", 32324, + "WGS 72 / UTM zone 24S"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32324\"]]"); + p = add_epsg_def (filter, first, last, 32325, "epsg", 32325, + "WGS 72 / UTM zone 25S"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32325\"]]"); + p = add_epsg_def (filter, first, last, 32326, "epsg", 32326, + "WGS 72 / UTM zone 26S"); + add_proj4text (p, 0, + "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32326\"]]"); + p = add_epsg_def (filter, first, last, 32327, "epsg", 32327, + "WGS 72 / UTM zone 27S"); + add_proj4text (p, 0, + "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32327\"]]"); + p = add_epsg_def (filter, first, last, 32328, "epsg", 32328, + "WGS 72 / UTM zone 28S"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32328\"]]"); + p = add_epsg_def (filter, first, last, 32329, "epsg", 32329, + "WGS 72 / UTM zone 29S"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32329\"]]"); + p = add_epsg_def (filter, first, last, 32330, "epsg", 32330, + "WGS 72 / UTM zone 30S"); + add_proj4text (p, 0, + "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32330\"]]"); + p = add_epsg_def (filter, first, last, 32331, "epsg", 32331, + "WGS 72 / UTM zone 31S"); + add_proj4text (p, 0, + "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",500000],PARAMETER[\"false_northing\",10000000"); + add_srs_wkt (p, 10, + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32331\"]]"); + p = add_epsg_def (filter, first, last, 32332, "epsg", 32332, + "WGS 72 / UTM zone 32S"); + add_proj4text (p, 0, + "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); + add_srs_wkt (p, 9, + "_easting\",500000],PARAMETER[\"false_northing\",10000000"); + add_srs_wkt (p, 10, + "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32332\"]]"); + p = add_epsg_def (filter, first, last, 32333, "epsg", 32333, + "WGS 72 / UTM zone 33S"); + add_proj4text (p, 0, + "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32333\"]]"); + p = add_epsg_def (filter, first, last, 32334, "epsg", 32334, + "WGS 72 / UTM zone 34S"); + add_proj4text (p, 0, + "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32334\"]]"); + p = add_epsg_def (filter, first, last, 32335, "epsg", 32335, + "WGS 72 / UTM zone 35S"); + add_proj4text (p, 0, + "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32335\"]]"); + p = add_epsg_def (filter, first, last, 32336, "epsg", 32336, + "WGS 72 / UTM zone 36S"); + add_proj4text (p, 0, + "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32336\"]]"); + p = add_epsg_def (filter, first, last, 32337, "epsg", 32337, + "WGS 72 / UTM zone 37S"); + add_proj4text (p, 0, + "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32337\"]]"); + p = add_epsg_def (filter, first, last, 32338, "epsg", 32338, + "WGS 72 / UTM zone 38S"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32338\"]]"); + p = add_epsg_def (filter, first, last, 32339, "epsg", 32339, + "WGS 72 / UTM zone 39S"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32339\"]]"); + p = add_epsg_def (filter, first, last, 32340, "epsg", 32340, + "WGS 72 / UTM zone 40S"); + add_proj4text (p, 0, + "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32340\"]]"); + p = add_epsg_def (filter, first, last, 32341, "epsg", 32341, + "WGS 72 / UTM zone 41S"); + add_proj4text (p, 0, + "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32341\"]]"); + p = add_epsg_def (filter, first, last, 32342, "epsg", 32342, + "WGS 72 / UTM zone 42S"); + add_proj4text (p, 0, + "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32342\"]]"); + p = add_epsg_def (filter, first, last, 32343, "epsg", 32343, + "WGS 72 / UTM zone 43S"); + add_proj4text (p, 0, + "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32343\"]]"); + p = add_epsg_def (filter, first, last, 32344, "epsg", 32344, + "WGS 72 / UTM zone 44S"); + add_proj4text (p, 0, + "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32344\"]]"); + p = add_epsg_def (filter, first, last, 32345, "epsg", 32345, + "WGS 72 / UTM zone 45S"); + add_proj4text (p, 0, + "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32345\"]]"); +} + +#endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_44.c b/src/spatialite/src/srsinit/epsg_inlined_44.c new file mode 100644 index 0000000..be3c099 --- /dev/null +++ b/src/spatialite/src/srsinit/epsg_inlined_44.c @@ -0,0 +1,3290 @@ +/* + + helper function for srs_init.c -- populating the SPATIAL_REF_SYS table + + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include + +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ + +SPATIALITE_PRIVATE void +initialize_epsg_44 (int filter, struct epsg_defs **first, struct epsg_defs **last) +{ +/* initializing the EPSG defs list */ + struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 32346, "epsg", 32346, + "WGS 72 / UTM zone 46S"); + add_proj4text (p, 0, + "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32346\"]]"); + p = add_epsg_def (filter, first, last, 32347, "epsg", 32347, + "WGS 72 / UTM zone 47S"); + add_proj4text (p, 0, + "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); + add_srs_wkt (p, 9, + "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); + add_srs_wkt (p, 10, + "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); + add_srs_wkt (p, 11, + "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); + add_srs_wkt (p, 12, + "G\",\"32347\"]]"); + p = add_epsg_def (filter, first, last, 32348, "epsg", 32348, + "WGS 72 / UTM zone 48S"); + add_proj4text (p, 0, + "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32348\"]]"); + p = add_epsg_def (filter, first, last, 32349, "epsg", 32349, + "WGS 72 / UTM zone 49S"); + add_proj4text (p, 0, + "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32349\"]]"); + p = add_epsg_def (filter, first, last, 32350, "epsg", 32350, + "WGS 72 / UTM zone 50S"); + add_proj4text (p, 0, + "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32350\"]]"); + p = add_epsg_def (filter, first, last, 32351, "epsg", 32351, + "WGS 72 / UTM zone 51S"); + add_proj4text (p, 0, + "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32351\"]]"); + p = add_epsg_def (filter, first, last, 32352, "epsg", 32352, + "WGS 72 / UTM zone 52S"); + add_proj4text (p, 0, + "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32352\"]]"); + p = add_epsg_def (filter, first, last, 32353, "epsg", 32353, + "WGS 72 / UTM zone 53S"); + add_proj4text (p, 0, + "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32353\"]]"); + p = add_epsg_def (filter, first, last, 32354, "epsg", 32354, + "WGS 72 / UTM zone 54S"); + add_proj4text (p, 0, + "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32354\"]]"); + p = add_epsg_def (filter, first, last, 32355, "epsg", 32355, + "WGS 72 / UTM zone 55S"); + add_proj4text (p, 0, + "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32355\"]]"); + p = add_epsg_def (filter, first, last, 32356, "epsg", 32356, + "WGS 72 / UTM zone 56S"); + add_proj4text (p, 0, + "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32356\"]]"); + p = add_epsg_def (filter, first, last, 32357, "epsg", 32357, + "WGS 72 / UTM zone 57S"); + add_proj4text (p, 0, + "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32357\"]]"); + p = add_epsg_def (filter, first, last, 32358, "epsg", 32358, + "WGS 72 / UTM zone 58S"); + add_proj4text (p, 0, + "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32358\"]]"); + p = add_epsg_def (filter, first, last, 32359, "epsg", 32359, + "WGS 72 / UTM zone 59S"); + add_proj4text (p, 0, + "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32359\"]]"); + p = add_epsg_def (filter, first, last, 32360, "epsg", 32360, + "WGS 72 / UTM zone 60S"); + add_proj4text (p, 0, + "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,"); + add_proj4text (p, 1, + "0,0,0.554,0.2263 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM"); + add_srs_wkt (p, 1, + "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); + add_srs_wkt (p, 2, + "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); + add_srs_wkt (p, 3, + ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); + add_srs_wkt (p, 4, + "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); + add_srs_wkt (p, 5, + "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); + add_srs_wkt (p, 7, + "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); + add_srs_wkt (p, 8, + ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); + add_srs_wkt (p, 9, + "se_easting\",500000],PARAMETER[\"false_northing\",100000"); + add_srs_wkt (p, 10, + "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); + add_srs_wkt (p, 11, + "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); + add_srs_wkt (p, 12, + "PSG\",\"32360\"]]"); + p = add_epsg_def (filter, first, last, 32401, "epsg", 32401, + "WGS 72BE / UTM zone 1N"); + add_proj4text (p, 0, + "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32401\"]]"); + p = add_epsg_def (filter, first, last, 32402, "epsg", 32402, + "WGS 72BE / UTM zone 2N"); + add_proj4text (p, 0, + "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32402\"]]"); + p = add_epsg_def (filter, first, last, 32403, "epsg", 32403, + "WGS 72BE / UTM zone 3N"); + add_proj4text (p, 0, + "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32403\"]]"); + p = add_epsg_def (filter, first, last, 32404, "epsg", 32404, + "WGS 72BE / UTM zone 4N"); + add_proj4text (p, 0, + "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32404\"]]"); + p = add_epsg_def (filter, first, last, 32405, "epsg", 32405, + "WGS 72BE / UTM zone 5N"); + add_proj4text (p, 0, + "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32405\"]]"); + p = add_epsg_def (filter, first, last, 32406, "epsg", 32406, + "WGS 72BE / UTM zone 6N"); + add_proj4text (p, 0, + "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32406\"]]"); + p = add_epsg_def (filter, first, last, 32407, "epsg", 32407, + "WGS 72BE / UTM zone 7N"); + add_proj4text (p, 0, + "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32407\"]]"); + p = add_epsg_def (filter, first, last, 32408, "epsg", 32408, + "WGS 72BE / UTM zone 8N"); + add_proj4text (p, 0, + "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32408\"]]"); + p = add_epsg_def (filter, first, last, 32409, "epsg", 32409, + "WGS 72BE / UTM zone 9N"); + add_proj4text (p, 0, + "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); + add_proj4text (p, 1, + "4,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32409\"]]"); + p = add_epsg_def (filter, first, last, 32410, "epsg", 32410, + "WGS 72BE / UTM zone 10N"); + add_proj4text (p, 0, + "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32410\"]]"); + p = add_epsg_def (filter, first, last, 32411, "epsg", 32411, + "WGS 72BE / UTM zone 11N"); + add_proj4text (p, 0, + "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32411\"]]"); + p = add_epsg_def (filter, first, last, 32412, "epsg", 32412, + "WGS 72BE / UTM zone 12N"); + add_proj4text (p, 0, + "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32412\"]]"); + p = add_epsg_def (filter, first, last, 32413, "epsg", 32413, + "WGS 72BE / UTM zone 13N"); + add_proj4text (p, 0, + "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); + add_srs_wkt (p, 11, + "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); + add_srs_wkt (p, 12, + "ng\",NORTH],AUTHORITY[\"EPSG\",\"32413\"]]"); + p = add_epsg_def (filter, first, last, 32414, "epsg", 32414, + "WGS 72BE / UTM zone 14N"); + add_proj4text (p, 0, + "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32414\"]]"); + p = add_epsg_def (filter, first, last, 32415, "epsg", 32415, + "WGS 72BE / UTM zone 15N"); + add_proj4text (p, 0, + "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32415\"]]"); + p = add_epsg_def (filter, first, last, 32416, "epsg", 32416, + "WGS 72BE / UTM zone 16N"); + add_proj4text (p, 0, + "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32416\"]]"); + p = add_epsg_def (filter, first, last, 32417, "epsg", 32417, + "WGS 72BE / UTM zone 17N"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32417\"]]"); + p = add_epsg_def (filter, first, last, 32418, "epsg", 32418, + "WGS 72BE / UTM zone 18N"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32418\"]]"); + p = add_epsg_def (filter, first, last, 32419, "epsg", 32419, + "WGS 72BE / UTM zone 19N"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32419\"]]"); + p = add_epsg_def (filter, first, last, 32420, "epsg", 32420, + "WGS 72BE / UTM zone 20N"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32420\"]]"); + p = add_epsg_def (filter, first, last, 32421, "epsg", 32421, + "WGS 72BE / UTM zone 21N"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32421\"]]"); + p = add_epsg_def (filter, first, last, 32422, "epsg", 32422, + "WGS 72BE / UTM zone 22N"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32422\"]]"); + p = add_epsg_def (filter, first, last, 32423, "epsg", 32423, + "WGS 72BE / UTM zone 23N"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32423\"]]"); + p = add_epsg_def (filter, first, last, 32424, "epsg", 32424, + "WGS 72BE / UTM zone 24N"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32424\"]]"); + p = add_epsg_def (filter, first, last, 32425, "epsg", 32425, + "WGS 72BE / UTM zone 25N"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32425\"]]"); + p = add_epsg_def (filter, first, last, 32426, "epsg", 32426, + "WGS 72BE / UTM zone 26N"); + add_proj4text (p, 0, + "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32426\"]]"); + p = add_epsg_def (filter, first, last, 32427, "epsg", 32427, + "WGS 72BE / UTM zone 27N"); + add_proj4text (p, 0, + "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32427\"]]"); + p = add_epsg_def (filter, first, last, 32428, "epsg", 32428, + "WGS 72BE / UTM zone 28N"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32428\"]]"); + p = add_epsg_def (filter, first, last, 32429, "epsg", 32429, + "WGS 72BE / UTM zone 29N"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32429\"]]"); + p = add_epsg_def (filter, first, last, 32430, "epsg", 32430, + "WGS 72BE / UTM zone 30N"); + add_proj4text (p, 0, + "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32430\"]]"); + p = add_epsg_def (filter, first, last, 32431, "epsg", 32431, + "WGS 72BE / UTM zone 31N"); + add_proj4text (p, 0, + "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + add_srs_wkt (p, 10, + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + add_srs_wkt (p, 11, + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 12, + ",NORTH],AUTHORITY[\"EPSG\",\"32431\"]]"); + p = add_epsg_def (filter, first, last, 32432, "epsg", 32432, + "WGS 72BE / UTM zone 32N"); + add_proj4text (p, 0, + "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + add_srs_wkt (p, 10, + "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); + add_srs_wkt (p, 11, + "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); + add_srs_wkt (p, 12, + ",NORTH],AUTHORITY[\"EPSG\",\"32432\"]]"); + p = add_epsg_def (filter, first, last, 32433, "epsg", 32433, + "WGS 72BE / UTM zone 33N"); + add_proj4text (p, 0, + "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32433\"]]"); + p = add_epsg_def (filter, first, last, 32434, "epsg", 32434, + "WGS 72BE / UTM zone 34N"); + add_proj4text (p, 0, + "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32434\"]]"); + p = add_epsg_def (filter, first, last, 32435, "epsg", 32435, + "WGS 72BE / UTM zone 35N"); + add_proj4text (p, 0, + "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32435\"]]"); + p = add_epsg_def (filter, first, last, 32436, "epsg", 32436, + "WGS 72BE / UTM zone 36N"); + add_proj4text (p, 0, + "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32436\"]]"); + p = add_epsg_def (filter, first, last, 32437, "epsg", 32437, + "WGS 72BE / UTM zone 37N"); + add_proj4text (p, 0, + "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32437\"]]"); + p = add_epsg_def (filter, first, last, 32438, "epsg", 32438, + "WGS 72BE / UTM zone 38N"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32438\"]]"); + p = add_epsg_def (filter, first, last, 32439, "epsg", 32439, + "WGS 72BE / UTM zone 39N"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32439\"]]"); + p = add_epsg_def (filter, first, last, 32440, "epsg", 32440, + "WGS 72BE / UTM zone 40N"); + add_proj4text (p, 0, + "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32440\"]]"); + p = add_epsg_def (filter, first, last, 32441, "epsg", 32441, + "WGS 72BE / UTM zone 41N"); + add_proj4text (p, 0, + "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32441\"]]"); + p = add_epsg_def (filter, first, last, 32442, "epsg", 32442, + "WGS 72BE / UTM zone 42N"); + add_proj4text (p, 0, + "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32442\"]]"); + p = add_epsg_def (filter, first, last, 32443, "epsg", 32443, + "WGS 72BE / UTM zone 43N"); + add_proj4text (p, 0, + "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32443\"]]"); + p = add_epsg_def (filter, first, last, 32444, "epsg", 32444, + "WGS 72BE / UTM zone 44N"); + add_proj4text (p, 0, + "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32444\"]]"); + p = add_epsg_def (filter, first, last, 32445, "epsg", 32445, + "WGS 72BE / UTM zone 45N"); + add_proj4text (p, 0, + "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32445\"]]"); + p = add_epsg_def (filter, first, last, 32446, "epsg", 32446, + "WGS 72BE / UTM zone 46N"); + add_proj4text (p, 0, + "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32446\"]]"); + p = add_epsg_def (filter, first, last, 32447, "epsg", 32447, + "WGS 72BE / UTM zone 47N"); + add_proj4text (p, 0, + "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32447\"]]"); + p = add_epsg_def (filter, first, last, 32448, "epsg", 32448, + "WGS 72BE / UTM zone 48N"); + add_proj4text (p, 0, + "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32448\"]]"); + p = add_epsg_def (filter, first, last, 32449, "epsg", 32449, + "WGS 72BE / UTM zone 49N"); + add_proj4text (p, 0, + "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32449\"]]"); + p = add_epsg_def (filter, first, last, 32450, "epsg", 32450, + "WGS 72BE / UTM zone 50N"); + add_proj4text (p, 0, + "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32450\"]]"); + p = add_epsg_def (filter, first, last, 32451, "epsg", 32451, + "WGS 72BE / UTM zone 51N"); + add_proj4text (p, 0, + "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32451\"]]"); + p = add_epsg_def (filter, first, last, 32452, "epsg", 32452, + "WGS 72BE / UTM zone 52N"); + add_proj4text (p, 0, + "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32452\"]]"); + p = add_epsg_def (filter, first, last, 32453, "epsg", 32453, + "WGS 72BE / UTM zone 53N"); + add_proj4text (p, 0, + "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32453\"]]"); + p = add_epsg_def (filter, first, last, 32454, "epsg", 32454, + "WGS 72BE / UTM zone 54N"); + add_proj4text (p, 0, + "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32454\"]]"); + p = add_epsg_def (filter, first, last, 32455, "epsg", 32455, + "WGS 72BE / UTM zone 55N"); + add_proj4text (p, 0, + "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32455\"]]"); + p = add_epsg_def (filter, first, last, 32456, "epsg", 32456, + "WGS 72BE / UTM zone 56N"); + add_proj4text (p, 0, + "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32456\"]]"); + p = add_epsg_def (filter, first, last, 32457, "epsg", 32457, + "WGS 72BE / UTM zone 57N"); + add_proj4text (p, 0, + "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32457\"]]"); + p = add_epsg_def (filter, first, last, 32458, "epsg", 32458, + "WGS 72BE / UTM zone 58N"); + add_proj4text (p, 0, + "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32458\"]]"); + p = add_epsg_def (filter, first, last, 32459, "epsg", 32459, + "WGS 72BE / UTM zone 59N"); + add_proj4text (p, 0, + "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32459\"]]"); + p = add_epsg_def (filter, first, last, 32460, "epsg", 32460, + "WGS 72BE / UTM zone 60N"); + add_proj4text (p, 0, + "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); + add_proj4text (p, 1, + "14,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); + add_srs_wkt (p, 11, + "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); + add_srs_wkt (p, 12, + "\",NORTH],AUTHORITY[\"EPSG\",\"32460\"]]"); + p = add_epsg_def (filter, first, last, 32501, "epsg", 32501, + "WGS 72BE / UTM zone 1S"); + add_proj4text (p, 0, + "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]"); + p = add_epsg_def (filter, first, last, 32502, "epsg", 32502, + "WGS 72BE / UTM zone 2S"); + add_proj4text (p, 0, + "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]"); + p = add_epsg_def (filter, first, last, 32503, "epsg", 32503, + "WGS 72BE / UTM zone 3S"); + add_proj4text (p, 0, + "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]"); + p = add_epsg_def (filter, first, last, 32504, "epsg", 32504, + "WGS 72BE / UTM zone 4S"); + add_proj4text (p, 0, + "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]"); + p = add_epsg_def (filter, first, last, 32505, "epsg", 32505, + "WGS 72BE / UTM zone 5S"); + add_proj4text (p, 0, + "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]"); + p = add_epsg_def (filter, first, last, 32506, "epsg", 32506, + "WGS 72BE / UTM zone 6S"); + add_proj4text (p, 0, + "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]"); + p = add_epsg_def (filter, first, last, 32507, "epsg", 32507, + "WGS 72BE / UTM zone 7S"); + add_proj4text (p, 0, + "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]"); + p = add_epsg_def (filter, first, last, 32508, "epsg", 32508, + "WGS 72BE / UTM zone 8S"); + add_proj4text (p, 0, + "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]"); + p = add_epsg_def (filter, first, last, 32509, "epsg", 32509, + "WGS 72BE / UTM zone 9S"); + add_proj4text (p, 0, + "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); + add_proj4text (p, 1, + ",0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA"); + add_srs_wkt (p, 1, + "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]"); + p = add_epsg_def (filter, first, last, 32510, "epsg", 32510, + "WGS 72BE / UTM zone 10S"); + add_proj4text (p, 0, + "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]"); + p = add_epsg_def (filter, first, last, 32511, "epsg", 32511, + "WGS 72BE / UTM zone 11S"); + add_proj4text (p, 0, + "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]"); + p = add_epsg_def (filter, first, last, 32512, "epsg", 32512, + "WGS 72BE / UTM zone 12S"); + add_proj4text (p, 0, + "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]"); + p = add_epsg_def (filter, first, last, 32513, "epsg", 32513, + "WGS 72BE / UTM zone 13S"); + add_proj4text (p, 0, + "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); + add_srs_wkt (p, 9, + "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); + add_srs_wkt (p, 10, + "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); + add_srs_wkt (p, 11, + "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]"); + p = add_epsg_def (filter, first, last, 32514, "epsg", 32514, + "WGS 72BE / UTM zone 14S"); + add_proj4text (p, 0, + "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]"); + p = add_epsg_def (filter, first, last, 32515, "epsg", 32515, + "WGS 72BE / UTM zone 15S"); + add_proj4text (p, 0, + "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]"); + p = add_epsg_def (filter, first, last, 32516, "epsg", 32516, + "WGS 72BE / UTM zone 16S"); + add_proj4text (p, 0, + "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]"); + p = add_epsg_def (filter, first, last, 32517, "epsg", 32517, + "WGS 72BE / UTM zone 17S"); + add_proj4text (p, 0, + "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]"); + p = add_epsg_def (filter, first, last, 32518, "epsg", 32518, + "WGS 72BE / UTM zone 18S"); + add_proj4text (p, 0, + "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]"); + p = add_epsg_def (filter, first, last, 32519, "epsg", 32519, + "WGS 72BE / UTM zone 19S"); + add_proj4text (p, 0, + "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]"); + p = add_epsg_def (filter, first, last, 32520, "epsg", 32520, + "WGS 72BE / UTM zone 20S"); + add_proj4text (p, 0, + "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]"); + p = add_epsg_def (filter, first, last, 32521, "epsg", 32521, + "WGS 72BE / UTM zone 21S"); + add_proj4text (p, 0, + "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]"); + p = add_epsg_def (filter, first, last, 32522, "epsg", 32522, + "WGS 72BE / UTM zone 22S"); + add_proj4text (p, 0, + "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]"); + p = add_epsg_def (filter, first, last, 32523, "epsg", 32523, + "WGS 72BE / UTM zone 23S"); + add_proj4text (p, 0, + "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]"); + p = add_epsg_def (filter, first, last, 32524, "epsg", 32524, + "WGS 72BE / UTM zone 24S"); + add_proj4text (p, 0, + "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]"); + p = add_epsg_def (filter, first, last, 32525, "epsg", 32525, + "WGS 72BE / UTM zone 25S"); + add_proj4text (p, 0, + "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]"); + p = add_epsg_def (filter, first, last, 32526, "epsg", 32526, + "WGS 72BE / UTM zone 26S"); + add_proj4text (p, 0, + "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]"); +} + +#endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_45.c b/src/spatialite/src/srsinit/epsg_inlined_45.c new file mode 100644 index 0000000..7775252 --- /dev/null +++ b/src/spatialite/src/srsinit/epsg_inlined_45.c @@ -0,0 +1,1146 @@ +/* + + helper function for srs_init.c -- populating the SPATIAL_REF_SYS table + + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include + +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ + +SPATIALITE_PRIVATE void +initialize_epsg_45 (int filter, struct epsg_defs **first, struct epsg_defs **last) +{ +/* initializing the EPSG defs list */ + struct epsg_defs *p; + p = add_epsg_def (filter, first, last, 32527, "epsg", 32527, + "WGS 72BE / UTM zone 27S"); + add_proj4text (p, 0, + "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]"); + p = add_epsg_def (filter, first, last, 32528, "epsg", 32528, + "WGS 72BE / UTM zone 28S"); + add_proj4text (p, 0, + "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]"); + p = add_epsg_def (filter, first, last, 32529, "epsg", 32529, + "WGS 72BE / UTM zone 29S"); + add_proj4text (p, 0, + "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]"); + p = add_epsg_def (filter, first, last, 32530, "epsg", 32530, + "WGS 72BE / UTM zone 30S"); + add_proj4text (p, 0, + "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]"); + p = add_epsg_def (filter, first, last, 32531, "epsg", 32531, + "WGS 72BE / UTM zone 31S"); + add_proj4text (p, 0, + "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + add_srs_wkt (p, 10, + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 11, + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + add_srs_wkt (p, 12, + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]"); + p = add_epsg_def (filter, first, last, 32532, "epsg", 32532, + "WGS 72BE / UTM zone 32S"); + add_proj4text (p, 0, + "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); + add_srs_wkt (p, 9, + "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); + add_srs_wkt (p, 10, + "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); + add_srs_wkt (p, 11, + "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); + add_srs_wkt (p, 12, + "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]"); + p = add_epsg_def (filter, first, last, 32533, "epsg", 32533, + "WGS 72BE / UTM zone 33S"); + add_proj4text (p, 0, + "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]"); + p = add_epsg_def (filter, first, last, 32534, "epsg", 32534, + "WGS 72BE / UTM zone 34S"); + add_proj4text (p, 0, + "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]"); + p = add_epsg_def (filter, first, last, 32535, "epsg", 32535, + "WGS 72BE / UTM zone 35S"); + add_proj4text (p, 0, + "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]"); + p = add_epsg_def (filter, first, last, 32536, "epsg", 32536, + "WGS 72BE / UTM zone 36S"); + add_proj4text (p, 0, + "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]"); + p = add_epsg_def (filter, first, last, 32537, "epsg", 32537, + "WGS 72BE / UTM zone 37S"); + add_proj4text (p, 0, + "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]"); + p = add_epsg_def (filter, first, last, 32538, "epsg", 32538, + "WGS 72BE / UTM zone 38S"); + add_proj4text (p, 0, + "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]"); + p = add_epsg_def (filter, first, last, 32539, "epsg", 32539, + "WGS 72BE / UTM zone 39S"); + add_proj4text (p, 0, + "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]"); + p = add_epsg_def (filter, first, last, 32540, "epsg", 32540, + "WGS 72BE / UTM zone 40S"); + add_proj4text (p, 0, + "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]"); + p = add_epsg_def (filter, first, last, 32541, "epsg", 32541, + "WGS 72BE / UTM zone 41S"); + add_proj4text (p, 0, + "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]"); + p = add_epsg_def (filter, first, last, 32542, "epsg", 32542, + "WGS 72BE / UTM zone 42S"); + add_proj4text (p, 0, + "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]"); + p = add_epsg_def (filter, first, last, 32543, "epsg", 32543, + "WGS 72BE / UTM zone 43S"); + add_proj4text (p, 0, + "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]"); + p = add_epsg_def (filter, first, last, 32544, "epsg", 32544, + "WGS 72BE / UTM zone 44S"); + add_proj4text (p, 0, + "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]"); + p = add_epsg_def (filter, first, last, 32545, "epsg", 32545, + "WGS 72BE / UTM zone 45S"); + add_proj4text (p, 0, + "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]"); + p = add_epsg_def (filter, first, last, 32546, "epsg", 32546, + "WGS 72BE / UTM zone 46S"); + add_proj4text (p, 0, + "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]"); + p = add_epsg_def (filter, first, last, 32547, "epsg", 32547, + "WGS 72BE / UTM zone 47S"); + add_proj4text (p, 0, + "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); + add_srs_wkt (p, 9, + "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); + add_srs_wkt (p, 10, + "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); + add_srs_wkt (p, 11, + "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); + add_srs_wkt (p, 12, + "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]"); + p = add_epsg_def (filter, first, last, 32548, "epsg", 32548, + "WGS 72BE / UTM zone 48S"); + add_proj4text (p, 0, + "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]"); + p = add_epsg_def (filter, first, last, 32549, "epsg", 32549, + "WGS 72BE / UTM zone 49S"); + add_proj4text (p, 0, + "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]"); + p = add_epsg_def (filter, first, last, 32550, "epsg", 32550, + "WGS 72BE / UTM zone 50S"); + add_proj4text (p, 0, + "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]"); + p = add_epsg_def (filter, first, last, 32551, "epsg", 32551, + "WGS 72BE / UTM zone 51S"); + add_proj4text (p, 0, + "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]"); + p = add_epsg_def (filter, first, last, 32552, "epsg", 32552, + "WGS 72BE / UTM zone 52S"); + add_proj4text (p, 0, + "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]"); + p = add_epsg_def (filter, first, last, 32553, "epsg", 32553, + "WGS 72BE / UTM zone 53S"); + add_proj4text (p, 0, + "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]"); + p = add_epsg_def (filter, first, last, 32554, "epsg", 32554, + "WGS 72BE / UTM zone 54S"); + add_proj4text (p, 0, + "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]"); + p = add_epsg_def (filter, first, last, 32555, "epsg", 32555, + "WGS 72BE / UTM zone 55S"); + add_proj4text (p, 0, + "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]"); + p = add_epsg_def (filter, first, last, 32556, "epsg", 32556, + "WGS 72BE / UTM zone 56S"); + add_proj4text (p, 0, + "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]"); + p = add_epsg_def (filter, first, last, 32557, "epsg", 32557, + "WGS 72BE / UTM zone 57S"); + add_proj4text (p, 0, + "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]"); + p = add_epsg_def (filter, first, last, 32558, "epsg", 32558, + "WGS 72BE / UTM zone 58S"); + add_proj4text (p, 0, + "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]"); + p = add_epsg_def (filter, first, last, 32559, "epsg", 32559, + "WGS 72BE / UTM zone 59S"); + add_proj4text (p, 0, + "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]"); + p = add_epsg_def (filter, first, last, 32560, "epsg", 32560, + "WGS 72BE / UTM zone 60S"); + add_proj4text (p, 0, + "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,"); + add_proj4text (p, 1, + "0,0,0.814,-0.38 +units=m +no_defs"); + add_srs_wkt (p, 0, + "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D"); + add_srs_wkt (p, 1, + "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); + add_srs_wkt (p, 2, + "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); + add_srs_wkt (p, 3, + "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); + add_srs_wkt (p, 4, + "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); + add_srs_wkt (p, 5, + "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); + add_srs_wkt (p, 6, + "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); + add_srs_wkt (p, 7, + "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); + add_srs_wkt (p, 8, + ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); + add_srs_wkt (p, 9, + "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); + add_srs_wkt (p, 10, + "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); + add_srs_wkt (p, 11, + "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); + add_srs_wkt (p, 12, + "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]"); +} + +#endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_extra.c b/src/spatialite/src/srsinit/epsg_inlined_extra.c index 2a9697f..cda02b2 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_extra.c +++ b/src/spatialite/src/srsinit/epsg_inlined_extra.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -128,6 +128,16 @@ SPATIALITE_PRIVATE void initialize_epsg_39 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_40 ( int filter, struct epsg_defs **first, struct epsg_defs **last); +SPATIALITE_PRIVATE void initialize_epsg_41 ( + int filter, struct epsg_defs **first, struct epsg_defs **last); +SPATIALITE_PRIVATE void initialize_epsg_42 ( + int filter, struct epsg_defs **first, struct epsg_defs **last); +SPATIALITE_PRIVATE void initialize_epsg_43 ( + int filter, struct epsg_defs **first, struct epsg_defs **last); +SPATIALITE_PRIVATE void initialize_epsg_44 ( + int filter, struct epsg_defs **first, struct epsg_defs **last); +SPATIALITE_PRIVATE void initialize_epsg_45 ( + int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 ( @@ -234,6 +244,11 @@ initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last) initialize_epsg_38 (filter, first, last); initialize_epsg_39 (filter, first, last); initialize_epsg_40 (filter, first, last); + initialize_epsg_41 (filter, first, last); + initialize_epsg_42 (filter, first, last); + initialize_epsg_43 (filter, first, last); + initialize_epsg_44 (filter, first, last); + initialize_epsg_45 (filter, first, last); initialize_epsg_prussian (filter, first, last); initialize_epsg_extra (filter, first, last); #endif /* full EPSG initialization enabled/disabled */ diff --git a/src/spatialite/src/srsinit/epsg_inlined_prussian.c b/src/spatialite/src/srsinit/epsg_inlined_prussian.c index 13173c1..5067ec0 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_prussian.c +++ b/src/spatialite/src/srsinit/epsg_inlined_prussian.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -28,7 +28,6 @@ Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): -Mark Johnson Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -46,1107 +45,727 @@ the terms of any one of the MPL, the GPL or the LGPL. #include -#ifndef OMIT_EPSG /* full EPSG initialization enabled */ +#ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void -initialize_epsg_prussian (int filter, struct epsg_defs **first, - struct epsg_defs **last) +initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last) { /* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */ struct epsg_defs *p; - p = add_epsg_def (filter, first, last, 187900, "mj10777.de", 187900, - "DHDN / Soldner Rathausnetz 660"); - add_proj4text (p, 0, - "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); - add_proj4text (p, 1, - "+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Rathausnetz 660\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187901, "mj10777.de", 187901, - "DHDN / Soldner 1 Kucklinsberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 1 Kucklinsberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.46022375],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",21.95509736],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187902, "mj10777.de", 187902, - "DHDN / Soldner 2 Paulinen"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 2 Paulinen\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.28921067],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",20.73315431],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187903, "mj10777.de", 187903, - "DHDN / Soldner 3 Markushof I"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 3 Markushof I\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.05881333],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.37343583],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187904, "mj10777.de", 187904, - "DHDN / Soldner 4 Thurmberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 4 Thurmberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.22552092],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.12569375],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187905, "mj10777.de", 187905, - "DHDN / Soldner 5 Kauernick I"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 5 Kauernick I\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.38933197],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.59810438],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187906, "mj10777.de", 187906, - "DHDN / Soldner 6 Thorn, Rathausturm"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.01181586],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.60725428],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187907, "mj10777.de", 187907, - "DHDN / Soldner 7 Heinrichsthal"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 7 Heinrichsthal\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.71289217],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.49676781],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187908, "mj10777.de", 187908, - "DHDN / Soldner 8 Gollenberg, Denkmal"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.20857178],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.22956781],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187909, "mj10777.de", 187909, - "DHDN / Soldner 9 Gnesen"); - add_proj4text (p, 0, "+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 9 Gnesen\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.53820406],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.59450500],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187910, "mj10777.de", 187910, - "DHDN / Soldner 10 Josefsberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 10 Josefsberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.98768806],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.20044389],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187911, "mj10777.de", 187911, - "DHDN / Soldner 11 Schroda"); - add_proj4text (p, 0, "+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 11 Schroda\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.23137372],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.27795372],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187912, "mj10777.de", 187912, - "DHDN / Soldner 12 Pschow"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 12 Pschow\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.04206544],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.39610692],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187913, "mj10777.de", 187913, - "DHDN / Soldner 13 Rummelsberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 13 Rummelsberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.70352314],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.11233917],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187914, "mj10777.de", 187914, - "DHDN / Soldner 14 Gröditzberg I"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 14 Gröditzberg I\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17819342],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",15.76127086],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187915, "mj10777.de", 187915, - "DHDN / Soldner 15 Kaltenborn"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 15 Kaltenborn\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.92903708],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.66212942],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187917, "mj10777.de", 187917, - "DHDN / Soldner 17 Greifswald, Nikolaikirche"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.09698872],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.37880703],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187916, "mj10777.de", 187916, - "DHDN / Soldner 16 Bahn I"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 16 Bahn I\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.10184583],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.70144539],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187918, "mj10777.de", 187918, - "DHDN / Soldner 18 Müggelberg 600"); - add_proj4text (p, 0, - "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 18 Müggelberg 600\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187919, "mj10777.de", 187919, - "DHDN / Soldner 19 Götzer Berg 650"); - add_proj4text (p, 0, - "+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.43725961111112],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",12.72882972222223],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187920, "mj10777.de", 187920, - "DHDN / Soldner 20 Torgau, Stadtkirche"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.56136217],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.00760264],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187921, "mj10777.de", 187921, - "DHDN / Soldner 21 Burkersroda, Kirchturm"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17656322],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.64139367],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187922, "mj10777.de", 187922, - "DHDN / Soldner 22 Inselsberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 22 Inselsberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.85237983],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.46776506],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187923, "mj10777.de", 187923, - "DHDN / Soldner 23 Magdeburg"); - add_proj4text (p, 0, "+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 23 Magdeburg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.12625311],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.63550325],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187924, "mj10777.de", 187924, - "DHDN / Soldner 24 Ostenfeld I"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 24 Ostenfeld I\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.47018733],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.23411097],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187925, "mj10777.de", 187925, - "DHDN / Soldner 25 Rathkrügen"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 25 Rathkrügen\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.81839364],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.04220189],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187926, "mj10777.de", 187926, - "DHDN / Soldner 26 Bungsberg, Aussichtsturm"); - add_proj4text (p, 0, "+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.21110653],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.72636431],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187927, "mj10777.de", 187927, - "DHDN / Soldner 27 Celle, Stadtkirche"); - add_proj4text (p, 0, "+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.62574192],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.08190214],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187928, "mj10777.de", 187928, - "DHDN / Soldner 28 Kaltenborn"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 28 Kaltenborn\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.79646722],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.27322494],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187929, "mj10777.de", 187929, - "DHDN / Soldner 29 Silberberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 29 Silberberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.73123461],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.05774925],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187930, "mj10777.de", 187930, - "DHDN / Soldner 30 Windberg"); - add_proj4text (p, 0, "+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 30 Windberg\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.88088372],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.53062114],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187931, "mj10777.de", 187931, - "DHDN / Soldner 31 Hermannsdenkmal"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.91301647],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.84051853],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187932, "mj10777.de", 187932, - "DHDN / Soldner 32 Münster"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 32 Münster\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.96547642],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.62334994],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187933, "mj10777.de", 187933, - "DHDN / Soldner 33 Bochum, Peter-Paul-Kirche"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.48373533],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.22115822],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187934, "mj10777.de", 187934, - "DHDN / Soldner 34 Homert"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 34 Homert\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.26480147],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.10687050],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187935, "mj10777.de", 187935, - "DHDN / Soldner 35 Kassel, Martinskirche"); - add_proj4text (p, 0, "+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.31846489],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.50203072],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187936, "mj10777.de", 187936, - "DHDN / Soldner 36 Schaumburg, Schloßturm"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.34048964],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.97808156],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187937, "mj10777.de", 187937, - "DHDN / Soldner 37 Fleckert"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 37 Fleckert\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.18762544],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.60594289],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187938, "mj10777.de", 187938, - "DHDN / Soldner 38 Cöln, Dom"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 38 Cöln, Dom\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.94257242],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.95897600],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187939, "mj10777.de", 187939, - "DHDN / Soldner 39 Langschoß"); - add_proj4text (p, 0, "+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 39 Langschoß\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.66738711],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.28935703],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187940, "mj10777.de", 187940, - "DHDN / Soldner 40 Rissenthal"); - add_proj4text (p, 0, "+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 40 Rissenthal\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",49.47801819],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.75864339],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187941, "mj10777.de", 187941, - "DHDN / Soldner Bayern"); - add_proj4text (p, 0, "+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 "); - add_proj4text (p, 1, - "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Bayern\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",48.13959111],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.57437083],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 187997, "mj10777.de", 187997, - "NAD27 / Washington Capitol"); - add_proj4text (p, 0, - "+proj=longlat +ellps=clrk66 +datum=NAD27 +pm=-77.0093576 +no_defs"); - add_srs_wkt (p, 0, - "GEOGCS[\"NAD27 / Washington Capitol\",DATUM[\"North_American_Datum_1927\","); - add_srs_wkt (p, 1, "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,"); - add_srs_wkt (p, 2, - "AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],"); - add_srs_wkt (p, 3, - "PRIMEM[\"Washington\",-77.0093576,AUTHORITY[\"mj10777.de\",\"188000\"]],"); - add_srs_wkt (p, 4, - "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); - add_srs_wkt (p, 6, "AUTHORITY[\"mj10777.de\",\"187997\"]]"); - p = add_epsg_def (filter, first, last, 187998, "mj10777.de", 187998, - "DHDN / Ferro / Deutsches_Hauptdreiecksnetz"); - add_proj4text (p, 0, - "+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\","); - add_srs_wkt (p, 3, - "SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, - "AUTHORITY[\"EPSG\",\"6314\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 5, - "PRIMEM[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],"); - add_srs_wkt (p, 6, - "UNIT[\"Degree\",0.017453292519943295,AUTHORITY[\"EPSG\",\"9122\"],"); - add_srs_wkt (p, 7, "AUTHORITY[\"mj10777.de\",\"187998\"]]"); -/* mj10777: Not existing System, used for testing purposes. */ - p = add_epsg_def (filter, first, last, 187999, "mj10777.de", 187999, - "DHDN / Brandenburger Tor"); - add_proj4text (p, 0, - "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); - add_proj4text (p, 1, - "+x_0=16816.4833410610881 +y_0=-11047.016016734 +ellps=bessel +datum=potsdam +units=m +no_defs"); - add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Brandenburger Tor\","); - add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); - add_srs_wkt (p, 2, - "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); - add_srs_wkt (p, 3, - "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); - add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); - add_srs_wkt (p, 5, - "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); - add_srs_wkt (p, 6, - "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); - add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); - add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); - add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); - add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); - add_srs_wkt (p, 11, - "PARAMETER[\"false_easting\",16816.4833410610881],PARAMETER[\"false_northing\",-11047.016016734],"); - add_srs_wkt (p, 12, - "AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); - p = add_epsg_def (filter, first, last, 325833, "mj10777.de", 325833, - "ETRS89 / UTM zone 33N (Brandenburg)"); - add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"); - add_srs_wkt (p, 0, - "PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\","); - add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\","); - add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,"); - add_srs_wkt (p, 3, - "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],"); - add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); - add_srs_wkt (p, 5, - "UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],"); - add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,"); - add_srs_wkt (p, 7, - "AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],"); - add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],"); - add_srs_wkt (p, 9, - "PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],"); - add_srs_wkt (p, 10, - "PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],"); - add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"325833\"],"); - add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]"); + p = add_epsg_def(filter,first,last,187900,"mj10777.de",187900,"DHDN / Soldner Rathausnetz 660"); + add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); + add_proj4text(p,1,"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Rathausnetz 660\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187901,"mj10777.de",187901,"DHDN / Soldner 1 Kucklinsberg"); + add_proj4text(p,0,"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 1 Kucklinsberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.46022375],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",21.95509736],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187902,"mj10777.de",187902,"DHDN / Soldner 2 Paulinen"); + add_proj4text(p,0,"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 2 Paulinen\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.28921067],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",20.73315431],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187903,"mj10777.de",187903,"DHDN / Soldner 3 Markushof I"); + add_proj4text(p,0,"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 3 Markushof I\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.05881333],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.37343583],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187904,"mj10777.de",187904,"DHDN / Soldner 4 Thurmberg"); + add_proj4text(p,0,"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 4 Thurmberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.22552092],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.12569375],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187905,"mj10777.de",187905,"DHDN / Soldner 5 Kauernick I"); + add_proj4text(p,0,"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 5 Kauernick I\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.38933197],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.59810438],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187906,"mj10777.de",187906,"DHDN / Soldner 6 Thorn, Rathausturm"); + add_proj4text(p,0,"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.01181586],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.60725428],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187907,"mj10777.de",187907,"DHDN / Soldner 7 Heinrichsthal"); + add_proj4text(p,0,"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 7 Heinrichsthal\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.71289217],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.49676781],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187908,"mj10777.de",187908,"DHDN / Soldner 8 Gollenberg, Denkmal"); + add_proj4text(p,0,"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.20857178],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.22956781],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187909,"mj10777.de",187909,"DHDN / Soldner 9 Gnesen"); + add_proj4text(p,0,"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 9 Gnesen\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.53820406],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.59450500],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187910,"mj10777.de",187910,"DHDN / Soldner 10 Josefsberg"); + add_proj4text(p,0,"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 10 Josefsberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.98768806],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.20044389],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187911,"mj10777.de",187911,"DHDN / Soldner 11 Schroda"); + add_proj4text(p,0,"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 11 Schroda\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.23137372],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.27795372],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187912,"mj10777.de",187912,"DHDN / Soldner 12 Pschow"); + add_proj4text(p,0,"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 12 Pschow\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.04206544],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.39610692],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187913,"mj10777.de",187913,"DHDN / Soldner 13 Rummelsberg"); + add_proj4text(p,0,"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 13 Rummelsberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.70352314],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.11233917],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187914,"mj10777.de",187914,"DHDN / Soldner 14 Gröditzberg I"); + add_proj4text(p,0,"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 14 Gröditzberg I\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17819342],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",15.76127086],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187915,"mj10777.de",187915,"DHDN / Soldner 15 Kaltenborn"); + add_proj4text(p,0,"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 15 Kaltenborn\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.92903708],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.66212942],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187917,"mj10777.de",187917,"DHDN / Soldner 17 Greifswald, Nikolaikirche"); + add_proj4text(p,0,"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.09698872],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.37880703],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187916,"mj10777.de",187916,"DHDN / Soldner 16 Bahn I"); + add_proj4text(p,0,"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 16 Bahn I\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.10184583],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.70144539],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187918,"mj10777.de",187918,"DHDN / Soldner 18 Müggelberg 600"); + add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 18 Müggelberg 600\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187919,"mj10777.de",187919,"DHDN / Soldner 19 Götzer Berg 650"); + add_proj4text(p,0,"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.43725961111112],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",12.72882972222223],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187920,"mj10777.de",187920,"DHDN / Soldner 20 Torgau, Stadtkirche"); + add_proj4text(p,0,"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.56136217],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.00760264],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187921,"mj10777.de",187921,"DHDN / Soldner 21 Burkersroda, Kirchturm"); + add_proj4text(p,0,"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17656322],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.64139367],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187922,"mj10777.de",187922,"DHDN / Soldner 22 Inselsberg"); + add_proj4text(p,0,"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 22 Inselsberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.85237983],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.46776506],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187923,"mj10777.de",187923,"DHDN / Soldner 23 Magdeburg"); + add_proj4text(p,0,"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 23 Magdeburg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.12625311],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.63550325],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187924,"mj10777.de",187924,"DHDN / Soldner 24 Ostenfeld I"); + add_proj4text(p,0,"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 24 Ostenfeld I\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.47018733],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.23411097],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187925,"mj10777.de",187925,"DHDN / Soldner 25 Rathkrügen"); + add_proj4text(p,0,"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 25 Rathkrügen\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.81839364],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.04220189],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187926,"mj10777.de",187926,"DHDN / Soldner 26 Bungsberg, Aussichtsturm"); + add_proj4text(p,0,"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.21110653],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.72636431],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187927,"mj10777.de",187927,"DHDN / Soldner 27 Celle, Stadtkirche"); + add_proj4text(p,0,"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.62574192],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.08190214],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187928,"mj10777.de",187928,"DHDN / Soldner 28 Kaltenborn"); + add_proj4text(p,0,"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 28 Kaltenborn\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.79646722],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.27322494],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187929,"mj10777.de",187929,"DHDN / Soldner 29 Silberberg"); + add_proj4text(p,0,"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 29 Silberberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.73123461],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.05774925],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187930,"mj10777.de",187930,"DHDN / Soldner 30 Windberg"); + add_proj4text(p,0,"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 30 Windberg\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.88088372],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.53062114],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187931,"mj10777.de",187931,"DHDN / Soldner 31 Hermannsdenkmal"); + add_proj4text(p,0,"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.91301647],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.84051853],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187932,"mj10777.de",187932,"DHDN / Soldner 32 Münster"); + add_proj4text(p,0,"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 32 Münster\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.96547642],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.62334994],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187933,"mj10777.de",187933,"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche"); + add_proj4text(p,0,"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.48373533],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.22115822],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187934,"mj10777.de",187934,"DHDN / Soldner 34 Homert"); + add_proj4text(p,0,"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 34 Homert\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.26480147],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.10687050],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187935,"mj10777.de",187935,"DHDN / Soldner 35 Kassel, Martinskirche"); + add_proj4text(p,0,"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.31846489],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.50203072],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187936,"mj10777.de",187936,"DHDN / Soldner 36 Schaumburg, Schloßturm"); + add_proj4text(p,0,"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.34048964],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.97808156],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187937,"mj10777.de",187937,"DHDN / Soldner 37 Fleckert"); + add_proj4text(p,0,"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 37 Fleckert\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.18762544],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.60594289],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187938,"mj10777.de",187938,"DHDN / Soldner 38 Cöln, Dom"); + add_proj4text(p,0,"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 38 Cöln, Dom\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.94257242],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.95897600],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187939,"mj10777.de",187939,"DHDN / Soldner 39 Langschoß"); + add_proj4text(p,0,"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 39 Langschoß\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.66738711],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.28935703],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187940,"mj10777.de",187940,"DHDN / Soldner 40 Rissenthal"); + add_proj4text(p,0,"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 40 Rissenthal\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",49.47801819],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.75864339],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def(filter,first,last,187941,"mj10777.de",187941,"DHDN / Soldner Bayern"); + add_proj4text(p,0,"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 "); + add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Bayern\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",48.13959111],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.57437083],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def (filter,first, last, 187998, "mj10777.de", 187998,"DHDN / Ferro / Deutsches_Hauptdreiecksnetz"); + add_proj4text(p,0,"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\","); + add_srs_wkt(p,3,"SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"7004\"]], AUTHORITY[\"EPSG\",\"6314\"]],"); + add_srs_wkt(p,5,"PRIMEM[\"ferro\",-17.66666666666667],UNIT[\"Degree\",0.017453292519943295,"); + add_srs_wkt(p,6,"AUTHORITY[\"mj10777.de\",\"187998\"]],AUTHORITY[\"EPSG\",\"4314\"]]"); +/* mj10777: Not exsiting System, used for testing purposes. */ + p = add_epsg_def(filter,first,last,187999,"mj10777.de",187999,"DHDN / Brandenburger Tor"); + add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); + add_proj4text(p,1,"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Brandenburger Tor\","); + add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); + add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); + add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); + add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); + add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); + add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); + add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); + add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); + add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); + add_srs_wkt(p,11,"PARAMETER[\"false_easting\",16819.76033675660074],PARAMETER[\"false_northing\",-11046.08218553455117],"); + add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); + p = add_epsg_def (filter,first, last, 325833, "mj10777.de", 325833,"ETRS89 / UTM zone 33N (Brandenburg)"); + add_proj4text(p,0,"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"); + add_srs_wkt(p,0,"PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\","); + add_srs_wkt(p,1,"DATUM[\"European_Terrestrial_Reference_System_1989\","); + add_srs_wkt(p,2,"SPHEROID[\"GRS 1980\",6378137,298.257222101,"); + add_srs_wkt(p,3,"AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],"); + add_srs_wkt(p,4,"PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); + add_srs_wkt(p,5,"UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],"); + add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,"); + add_srs_wkt(p,7,"AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],"); + add_srs_wkt(p,8,"PARAMETER[\"latitude_of_origin\",0],"); + add_srs_wkt(p,9,"PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],"); + add_srs_wkt(p,10,"PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],"); + add_srs_wkt(p,11,"AUTHORITY[\"EPSG\",\"325833\"],"); + add_srs_wkt(p,12,"AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]"); } #endif /* full EPSG initialization enabled/disabled */ + diff --git a/src/spatialite/src/srsinit/epsg_inlined_wgs84_00.c b/src/spatialite/src/srsinit/epsg_inlined_wgs84_00.c index cf4f319..9c98ce6 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_wgs84_00.c +++ b/src/spatialite/src/srsinit/epsg_inlined_wgs84_00.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -1773,9 +1773,7 @@ initialize_epsg_wgs84_00 (int filter, struct epsg_defs **first, struct epsg_defs add_srs_wkt (p, 9, "METER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, - "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); - add_srs_wkt (p, 11, - "Easting\",EAST],AUTHORITY[\"EPSG\",\"32661\"]]"); + "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"32661\"]]"); p = add_epsg_def (filter, first, last, 32662, "epsg", 32662, "WGS 84 / Plate Carree (deprecated)"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_inlined_wgs84_01.c b/src/spatialite/src/srsinit/epsg_inlined_wgs84_01.c index a9b1eeb..ddc9f0e 100644 --- a/src/spatialite/src/srsinit/epsg_inlined_wgs84_01.c +++ b/src/spatialite/src/srsinit/epsg_inlined_wgs84_01.c @@ -2,7 +2,7 @@ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table - this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 + this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014 Author: Sandro Furieri a.furieri@lqt.it @@ -805,9 +805,7 @@ initialize_epsg_wgs84_01 (int filter, struct epsg_defs **first, struct epsg_defs add_srs_wkt (p, 9, "AMETER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, - "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); - add_srs_wkt (p, 11, - "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"32761\"]]"); + "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"32761\"]]"); p = add_epsg_def (filter, first, last, 32766, "epsg", 32766, "WGS 84 / TM 36 SE"); add_proj4text (p, 0, diff --git a/src/spatialite/src/srsinit/epsg_update/Makefile.in b/src/spatialite/src/srsinit/epsg_update/Makefile.in index e8862a1..d9390fd 100644 --- a/src/spatialite/src/srsinit/epsg_update/Makefile.in +++ b/src/spatialite/src/srsinit/epsg_update/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -51,7 +78,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit/epsg_update -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -63,6 +90,18 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ @@ -70,9 +109,11 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -114,6 +155,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -135,6 +178,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -234,11 +280,11 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -374,15 +420,16 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/srsinit/epsg_update/README.txt b/src/spatialite/src/srsinit/epsg_update/README.txt index c3a33db..b07d746 100644 --- a/src/spatialite/src/srsinit/epsg_update/README.txt +++ b/src/spatialite/src/srsinit/epsg_update/README.txt @@ -50,8 +50,8 @@ at the end of this step several "epsg_inlined_*.c" files will be generated STEP #4: final setup -------- - copy the generated file into the parent dir: - rm ../epsg_inlined_*.c - cp epsg_inlined.c .. + rm ../epsg_inlined*.c + cp epsg_inlined*.c .. - be sure to update as required the repository (ADD/DEL) - be sure to update as required Makefile.am - and finally commit into the repository diff --git a/src/spatialite/src/srsinit/srs_init.c b/src/spatialite/src/srsinit/srs_init.c index 8b59681..59111ad 100644 --- a/src/spatialite/src/srsinit/srs_init.c +++ b/src/spatialite/src/srsinit/srs_init.c @@ -2,7 +2,7 @@ srs_init.c -- populating the SPATIAL_REF_SYS table - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -189,7 +189,7 @@ add_srs_wkt (struct epsg_defs *p, int count, const char *text) strcat (p->srs_wkt, text); } -static void +SPATIALITE_PRIVATE void free_epsg (struct epsg_defs *first) { /* memory cleanup - destroying the EPSG list */ @@ -211,22 +211,12 @@ populate_spatial_ref_sys (sqlite3 * handle, int mode) struct epsg_defs *last = NULL; struct epsg_defs *p; char sql[1024]; - char *errMsg = NULL; int ret; sqlite3_stmt *stmt; /* initializing the EPSG defs list */ initialize_epsg (mode, &first, &last); -/* starting a transaction */ - ret = sqlite3_exec (handle, "BEGIN", NULL, 0, &errMsg); - if (ret != SQLITE_OK) - { - spatialite_e ("%s\n", errMsg); - sqlite3_free (errMsg); - goto error; - } - /* preparing the SQL parameterized statement */ strcpy (sql, "INSERT INTO spatial_ref_sys "); strcat (sql, @@ -271,27 +261,11 @@ populate_spatial_ref_sys (sqlite3 * handle, int mode) } sqlite3_finalize (stmt); -/* confirming the transaction */ - ret = sqlite3_exec (handle, "COMMIT", NULL, 0, &errMsg); - if (ret != SQLITE_OK) - { - spatialite_e ("%s\n", errMsg); - sqlite3_free (errMsg); - goto error; - } - /* freeing the EPSG defs list */ free_epsg (first); return 1; error: -/* trying to perform a ROLLBACK anyway */ - ret = sqlite3_exec (handle, "ROLLBACK", NULL, 0, &errMsg); - if (ret != SQLITE_OK) - { - spatialite_e ("%s\n", errMsg); - sqlite3_free (errMsg); - } /* freeing the EPSG defs list */ free_epsg (first); diff --git a/src/spatialite/src/versioninfo/version.c b/src/spatialite/src/versioninfo/version.c index e28dd26..71ba154 100644 --- a/src/spatialite/src/versioninfo/version.c +++ b/src/spatialite/src/versioninfo/version.c @@ -1,7 +1,7 @@ /* version.c -- Gaia spatial support for SQLite - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -23,7 +23,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -53,9 +53,16 @@ the terms of any one of the MPL, the GPL or the LGPL. #include const char spatialiteversion[] = VERSION; +const char spatialitetargetcpu[] = TARGET_CPU; SPATIALITE_DECLARE const char * spatialite_version (void) { return spatialiteversion; } + +SPATIALITE_DECLARE const char * +spatialite_target_cpu (void) +{ + return spatialitetargetcpu; +} diff --git a/src/spatialite/src/virtualtext/Makefile.am b/src/spatialite/src/virtualtext/Makefile.am index 396c87f..938c81f 100644 --- a/src/spatialite/src/virtualtext/Makefile.am +++ b/src/spatialite/src/virtualtext/Makefile.am @@ -1,9 +1,17 @@ -INCLUDES = @CFLAGS@ -INCLUDES += -I$(top_srcdir)/src/headers +AM_CPPFLAGS = @CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libvirtualtext.la +noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la libvirtualtext_la_SOURCES = virtualtext.c +virtualtext_la_SOURCES = virtualtext.c + +virtualtext_la_CPPFLAGS = @CFLAGS@ +virtualtext_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +virtualtext_la_CPPFLAGS += -DLOADABLE_EXTENSION +virtualtext_la_LDFLAGS = -module +virtualtext_la_LIBTOOLFLAGS = --tag=disable-static + MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/virtualtext/Makefile.in b/src/spatialite/src/virtualtext/Makefile.in index 84b526c..3967fa1 100644 --- a/src/spatialite/src/virtualtext/Makefile.in +++ b/src/spatialite/src/virtualtext/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,7 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/virtualtext -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -68,31 +96,81 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) libvirtualtext_la_LIBADD = am_libvirtualtext_la_OBJECTS = virtualtext.lo libvirtualtext_la_OBJECTS = $(am_libvirtualtext_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +virtualtext_la_LIBADD = +am_virtualtext_la_OBJECTS = virtualtext_la-virtualtext.lo +virtualtext_la_OBJECTS = $(am_virtualtext_la_OBJECTS) +virtualtext_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(virtualtext_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libvirtualtext_la_SOURCES) -DIST_SOURCES = $(libvirtualtext_la_SOURCES) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES) +DIST_SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -134,6 +212,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -155,6 +235,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -214,9 +297,14 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -noinst_LTLIBRARIES = libvirtualtext.la +AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la libvirtualtext_la_SOURCES = virtualtext.c +virtualtext_la_SOURCES = virtualtext.c +virtualtext_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ + -DLOADABLE_EXTENSION +virtualtext_la_LDFLAGS = -module +virtualtext_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am @@ -255,14 +343,20 @@ $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libvirtualtext.la: $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_DEPENDENCIES) $(EXTRA_libvirtualtext_la_DEPENDENCIES) - $(LINK) $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS) + +virtualtext.la: $(virtualtext_la_OBJECTS) $(virtualtext_la_DEPENDENCIES) $(EXTRA_virtualtext_la_DEPENDENCIES) + $(AM_V_CCLD)$(virtualtext_la_LINK) $(virtualtext_la_OBJECTS) $(virtualtext_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -271,27 +365,35 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualtext.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualtext_la-virtualtext.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +virtualtext_la-virtualtext.lo: virtualtext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT virtualtext_la-virtualtext.lo -MD -MP -MF $(DEPDIR)/virtualtext_la-virtualtext.Tpo -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virtualtext_la-virtualtext.Tpo $(DEPDIR)/virtualtext_la-virtualtext.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualtext.c' object='virtualtext_la-virtualtext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c mostlyclean-libtool: -rm -f *.lo @@ -299,26 +401,15 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -330,15 +421,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -347,6 +434,21 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -489,18 +591,19 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/src/virtualtext/virtualtext.c b/src/spatialite/src/virtualtext/virtualtext.c index 636b763..c5f05ee 100644 --- a/src/spatialite/src/virtualtext/virtualtext.c +++ b/src/spatialite/src/virtualtext/virtualtext.c @@ -2,7 +2,7 @@ virtualtext.c -- SQLite3 extension [VIRTUAL TABLE accessing CSV/TXT] - version 4.0, 2012 August 6 + version 4.2, 2014 July 25 Author: Sandro Furieri a.furieri@lqt.it @@ -24,7 +24,7 @@ The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri -Portions created by the Initial Developer are Copyright (C) 2008-2012 +Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): @@ -942,7 +942,7 @@ vtxt_rollback (sqlite3_vtab * pVTab) return SQLITE_OK; } -int +static int sqlite3VirtualTextInit (sqlite3 * db) { int rc = SQLITE_OK; @@ -969,9 +969,10 @@ sqlite3VirtualTextInit (sqlite3 * db) return rc; } -int -virtualtext_extension_init (sqlite3 * db) +SPATIALITE_PRIVATE int +virtualtext_extension_init (void *xdb) { + sqlite3 *db = (sqlite3 *) xdb; return sqlite3VirtualTextInit (db); } diff --git a/src/spatialite/src/wfs/Makefile.am b/src/spatialite/src/wfs/Makefile.am new file mode 100644 index 0000000..c793e99 --- /dev/null +++ b/src/spatialite/src/wfs/Makefile.am @@ -0,0 +1,17 @@ + +AM_CPPFLAGS= @CFLAGS@ @LIBXML2_CFLAGS@ +AM_CPPFLAGS += -I$(top_srcdir)/src/headers + +noinst_LTLIBRARIES = libwfs.la wfs.la + +libwfs_la_SOURCES = wfs_in.c + +wfs_la_SOURCES = wfs_in.c + +wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ +wfs_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. +wfs_la_CPPFLAGS += -DLOADABLE_EXTENSION +wfs_la_LDFLAGS = -module +wfs_la_LIBTOOLFLAGS = --tag=disable-static + +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda diff --git a/src/spatialite/src/wfs/Makefile.in b/src/spatialite/src/wfs/Makefile.in new file mode 100644 index 0000000..7349796 --- /dev/null +++ b/src/spatialite/src/wfs/Makefile.in @@ -0,0 +1,610 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/wfs +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libwfs_la_LIBADD = +am_libwfs_la_OBJECTS = wfs_in.lo +libwfs_la_OBJECTS = $(am_libwfs_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +wfs_la_LIBADD = +am_wfs_la_OBJECTS = wfs_la-wfs_in.lo +wfs_la_OBJECTS = $(am_wfs_la_OBJECTS) +wfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(wfs_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES) +DIST_SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers +noinst_LTLIBRARIES = libwfs.la wfs.la +libwfs_la_SOURCES = wfs_in.c +wfs_la_SOURCES = wfs_in.c +wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \ + -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION +wfs_la_LDFLAGS = -module +wfs_la_LIBTOOLFLAGS = --tag=disable-static +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/wfs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/wfs/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwfs.la: $(libwfs_la_OBJECTS) $(libwfs_la_DEPENDENCIES) $(EXTRA_libwfs_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libwfs_la_OBJECTS) $(libwfs_la_LIBADD) $(LIBS) + +wfs.la: $(wfs_la_OBJECTS) $(wfs_la_DEPENDENCIES) $(EXTRA_wfs_la_DEPENDENCIES) + $(AM_V_CCLD)$(wfs_la_LINK) $(wfs_la_OBJECTS) $(wfs_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfs_in.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfs_la-wfs_in.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +wfs_la-wfs_in.lo: wfs_in.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wfs_la-wfs_in.lo -MD -MP -MF $(DEPDIR)/wfs_la-wfs_in.Tpo -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wfs_la-wfs_in.Tpo $(DEPDIR)/wfs_la-wfs_in.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wfs_in.c' object='wfs_la-wfs_in.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/src/wfs/wfs_in.c b/src/spatialite/src/wfs/wfs_in.c new file mode 100644 index 0000000..34116c7 --- /dev/null +++ b/src/spatialite/src/wfs/wfs_in.c @@ -0,0 +1,4587 @@ +/* + + wfs_in.c -- implements WFS support [import] + + version 4.2, 2014 July 25 + + Author: Sandro Furieri a.furieri@lqt.it + + ----------------------------------------------------------------------------- + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2008-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +/* + +CREDITS: + +this module has been completely funded by: +Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale +(WFS data import) + +*/ + +#include +#include +#include +#include + +#if defined(_WIN32) && !defined(__MINGW32__) +#include "config-msvc.h" +#else +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ + +#include +#include + +#define MAX_GTYPES 28 + +#ifdef _WIN32 +#define atoll _atoi64 +#endif /* not WIN32 */ + +#ifdef _WIN32 +#define strcasecmp _stricmp +#endif /* not WIN32 */ + +struct wfs_srid_def +{ +/* a WFS supported SRID */ + int srid; + char *srs_name; + struct wfs_srid_def *next; +}; + +struct wfs_keyword +{ +/* a WFS keyword */ + char *keyword; + struct wfs_keyword *next; +}; + +struct wfs_layer_def +{ +/* a WFS layer */ + char *name; + char *title; + char *abstract; + struct wfs_srid_def *first_srid; + struct wfs_srid_def *last_srid; + struct wfs_keyword *first_key; + struct wfs_keyword *last_key; + struct wfs_layer_def *next; +}; + +struct wfs_catalog +{ +/* a list of WFS layers */ + char *request_url; + char *describe_url; + struct wfs_layer_def *first; + struct wfs_layer_def *last; +}; + +struct wfs_column_def +{ +/* a WFS attribute / column */ + char *name; + int type; + int is_nullable; + const char *pValue; + struct wfs_column_def *next; +}; + +struct wfs_geom_type +{ +/* Geometry Type statistics */ + int type; + int count; +}; + +struct wfs_layer_schema +{ +/* a WFS table / layer schema */ + int error; + int swap_axes; + char *layer_name; + struct wfs_column_def *first; + struct wfs_column_def *last; + char *geometry_name; + int geometry_type; + int srid; + int dims; + int is_nullable; + struct wfs_geom_type *types; + char *geometry_value; + sqlite3_stmt *stmt; + sqlite3 *sqlite; +}; + +struct wfs_attribute +{ +/* a WFS attribute value */ + struct wfs_column_def *column; + char *value; + struct wfs_attribute *next; +}; + +struct wfs_feature +{ +/* a WFS feature */ + struct wfs_attribute *first; + struct wfs_attribute *last; + char *geometry_value; +}; + +static struct wfs_column_def * +alloc_wfs_column (const char *name, int type, int is_nullable) +{ +/* allocating a WFS attribute / column definition */ + int len; + struct wfs_column_def *col = malloc (sizeof (struct wfs_column_def)); + len = strlen (name); + col->name = malloc (len + 1); + strcpy (col->name, name); + col->type = type; + col->is_nullable = is_nullable; + col->pValue = NULL; + col->next = NULL; + return col; +} + +static void +free_wfs_column (struct wfs_column_def *col) +{ +/* memory cleanup: destroying a WFS column definition */ + if (col == NULL) + return; + if (col->name != NULL) + free (col->name); + free (col); +} + +static struct wfs_layer_schema * +alloc_wfs_layer_schema (const char *layer_name, int swap_axes) +{ +/* allocating an empty WFS schema descriptor */ + int len; + struct wfs_layer_schema *ptr = malloc (sizeof (struct wfs_layer_schema)); + ptr->error = 0; + ptr->swap_axes = swap_axes; + len = strlen (layer_name); + ptr->layer_name = malloc (len + 1); + strcpy (ptr->layer_name, layer_name); + ptr->first = NULL; + ptr->last = NULL; + ptr->geometry_name = NULL; + ptr->geometry_type = GAIA_UNKNOWN; + ptr->srid = -1; + ptr->dims = 2; + ptr->types = malloc (sizeof (struct wfs_geom_type) * MAX_GTYPES); + ptr->types[0].type = GAIA_POINT; + ptr->types[0].count = 0; + ptr->types[1].type = GAIA_LINESTRING; + ptr->types[1].count = 0; + ptr->types[2].type = GAIA_POLYGON; + ptr->types[2].count = 0; + ptr->types[3].type = GAIA_MULTIPOINT; + ptr->types[3].count = 0; + ptr->types[4].type = GAIA_MULTILINESTRING; + ptr->types[4].count = 0; + ptr->types[5].type = GAIA_MULTIPOLYGON; + ptr->types[5].count = 0; + ptr->types[6].type = GAIA_GEOMETRYCOLLECTION; + ptr->types[6].count = 0; + ptr->types[7].type = GAIA_POINTZ; + ptr->types[7].count = 0; + ptr->types[8].type = GAIA_LINESTRINGZ; + ptr->types[8].count = 0; + ptr->types[9].type = GAIA_POLYGONZ; + ptr->types[9].count = 0; + ptr->types[10].type = GAIA_MULTIPOINTZ; + ptr->types[10].count = 0; + ptr->types[11].type = GAIA_MULTILINESTRINGZ; + ptr->types[11].count = 0; + ptr->types[12].type = GAIA_MULTIPOLYGONZ; + ptr->types[12].count = 0; + ptr->types[13].type = GAIA_GEOMETRYCOLLECTIONZ; + ptr->types[13].count = 0; + ptr->types[14].type = GAIA_POINTM; + ptr->types[14].count = 0; + ptr->types[15].type = GAIA_LINESTRINGM; + ptr->types[15].count = 0; + ptr->types[16].type = GAIA_POLYGONM; + ptr->types[16].count = 0; + ptr->types[17].type = GAIA_MULTIPOINTM; + ptr->types[17].count = 0; + ptr->types[18].type = GAIA_MULTILINESTRINGM; + ptr->types[18].count = 0; + ptr->types[19].type = GAIA_MULTIPOLYGONM; + ptr->types[19].count = 0; + ptr->types[20].type = GAIA_GEOMETRYCOLLECTIONM; + ptr->types[20].count = 0; + ptr->types[21].type = GAIA_POINTZM; + ptr->types[21].count = 0; + ptr->types[22].type = GAIA_LINESTRINGZM; + ptr->types[22].count = 0; + ptr->types[23].type = GAIA_POLYGONZM; + ptr->types[23].count = 0; + ptr->types[24].type = GAIA_MULTIPOINTZM; + ptr->types[24].count = 0; + ptr->types[25].type = GAIA_MULTILINESTRINGZM; + ptr->types[25].count = 0; + ptr->types[26].type = GAIA_MULTIPOLYGONZM; + ptr->types[26].count = 0; + ptr->types[27].type = GAIA_GEOMETRYCOLLECTIONZM; + ptr->types[27].count = 0; + ptr->geometry_value = NULL; + ptr->stmt = NULL; + return ptr; +} + +static void +free_wfs_layer_schema (struct wfs_layer_schema *ptr) +{ +/* memory cleanup: destroying a WFS schema */ + struct wfs_column_def *col; + struct wfs_column_def *n_col; + if (ptr == NULL) + return; + if (ptr->layer_name != NULL) + free (ptr->layer_name); + col = ptr->first; + while (col != NULL) + { + n_col = col->next; + free_wfs_column (col); + col = n_col; + } + if (ptr->geometry_name != NULL) + free (ptr->geometry_name); + if (ptr->types != NULL) + free (ptr->types); + if (ptr->geometry_value != NULL) + free (ptr->geometry_value); + if (ptr->stmt != NULL) + sqlite3_finalize (ptr->stmt); + free (ptr); +} + +static void +reset_wfs_values (struct wfs_layer_schema *ptr) +{ +/* memory cleanup: resetting attribute values */ + struct wfs_column_def *col; + if (ptr == NULL) + return; + col = ptr->first; + while (col != NULL) + { + col->pValue = NULL; + col = col->next; + } + if (ptr->geometry_value != NULL) + { + free (ptr->geometry_value); + ptr->geometry_value = NULL; + } +} + +static int +count_wfs_values (struct wfs_layer_schema *ptr) +{ +/* counting how many valid values */ + int count = 0; + struct wfs_column_def *col; + if (ptr == NULL) + return 0; + col = ptr->first; + while (col != NULL) + { + if (col->pValue != NULL) + count++; + col = col->next; + } + if (ptr->geometry_value != NULL) + count++; + return count; +} + +static void +add_wfs_column_to_schema (struct wfs_layer_schema *ptr, const char *name, + int type, int is_nullable) +{ +/* adding an attribute / column into a WFS table / schema */ + struct wfs_column_def *col; + if (ptr == NULL) + return; + col = alloc_wfs_column (name, type, is_nullable); + if (ptr->first == NULL) + ptr->first = col; + if (ptr->last != NULL) + ptr->last->next = col; + ptr->last = col; +} + +static void +set_wfs_geometry (struct wfs_layer_schema *ptr, const char *name, int type, + int is_nullable) +{ +/* setting the Geometry for a WFS schema */ + int len; + if (ptr == NULL) + return; + if (ptr->geometry_name != NULL) + free (ptr->geometry_name); + len = strlen (name); + ptr->geometry_name = malloc (len + 1); + strcpy (ptr->geometry_name, name); + ptr->geometry_type = type; + ptr->is_nullable = is_nullable; +} + +static struct wfs_srid_def * +alloc_wfs_srid (int srid, const char *srs_name) +{ +/* allocating a WFS SRID definition */ + int len; + struct wfs_srid_def *ptr = malloc (sizeof (struct wfs_srid_def)); + ptr->srid = srid; + len = strlen (srs_name); + ptr->srs_name = malloc (len + 1); + strcpy (ptr->srs_name, srs_name); + ptr->next = NULL; + return ptr; +} + +static struct wfs_keyword * +alloc_wfs_keyword (const char *keyword) +{ +/* allocating a WFS Keyword */ + int len; + struct wfs_keyword *ptr = malloc (sizeof (struct wfs_keyword)); + len = strlen (keyword); + ptr->keyword = malloc (len + 1); + strcpy (ptr->keyword, keyword); + ptr->next = NULL; + return ptr; +} + +static struct wfs_layer_def * +alloc_wfs_layer (const char *name, const char *title, const char *abstract) +{ +/* allocating a WFS catalog item / layer definition */ + int len; + struct wfs_layer_def *lyr = malloc (sizeof (struct wfs_layer_def)); + len = strlen (name); + lyr->name = malloc (len + 1); + strcpy (lyr->name, name); + if (title == NULL) + lyr->title = NULL; + else + { + len = strlen (title); + lyr->title = malloc (len + 1); + strcpy (lyr->title, title); + } + if (abstract == NULL) + lyr->abstract = NULL; + else + { + len = strlen (abstract); + lyr->abstract = malloc (len + 1); + strcpy (lyr->abstract, abstract); + } + lyr->first_srid = NULL; + lyr->last_srid = NULL; + lyr->first_key = NULL; + lyr->last_key = NULL; + lyr->next = NULL; + return lyr; +} + +static void +free_wfs_layer (struct wfs_layer_def *lyr) +{ +/* memory cleanup: destroying a WFS catalog item definition */ + struct wfs_srid_def *srid; + struct wfs_srid_def *n_srid; + struct wfs_keyword *key; + struct wfs_keyword *n_key; + if (lyr == NULL) + return; + if (lyr->name != NULL) + free (lyr->name); + if (lyr->title != NULL) + free (lyr->title); + if (lyr->abstract != NULL) + free (lyr->abstract); + srid = lyr->first_srid; + while (srid != NULL) + { + n_srid = srid->next; + if (srid->srs_name != NULL) + free (srid->srs_name); + free (srid); + srid = n_srid; + } + key = lyr->first_key; + while (key != NULL) + { + n_key = key->next; + free (key->keyword); + free (key); + key = n_key; + } + free (lyr); +} + +static struct wfs_catalog * +alloc_wfs_catalog () +{ +/* allocating an empty WFS catalog object */ + struct wfs_catalog *ptr = malloc (sizeof (struct wfs_catalog)); + ptr->first = NULL; + ptr->last = NULL; + ptr->request_url = NULL; + ptr->describe_url = NULL; + return ptr; +} + +static void +free_wfs_catalog (struct wfs_catalog *ptr) +{ +/* memory cleanup: destroying a WFS catalog object */ + struct wfs_layer_def *lyr; + struct wfs_layer_def *n_lyr; + if (ptr == NULL) + return; + lyr = ptr->first; + while (lyr != NULL) + { + n_lyr = lyr->next; + free_wfs_layer (lyr); + lyr = n_lyr; + } + if (ptr->request_url != NULL) + free (ptr->request_url); + if (ptr->describe_url != NULL) + free (ptr->describe_url); + free (ptr); +} + +static void +add_wfs_layer_to_catalog (struct wfs_catalog *ptr, const char *name, + const char *title, const char *abstract) +{ +/* adding an item (aka Layer) into a WFS Catalog */ + struct wfs_layer_def *lyr; + if (ptr == NULL) + return; + lyr = alloc_wfs_layer (name, title, abstract); + if (ptr->first == NULL) + ptr->first = lyr; + if (ptr->last != NULL) + ptr->last->next = lyr; + ptr->last = lyr; +} + +static struct wfs_feature * +create_feature (struct wfs_layer_schema *schema) +{ +/* creating an empty WFS feature object */ + struct wfs_column_def *col; + struct wfs_feature *feature = malloc (sizeof (struct wfs_feature)); + feature->first = NULL; + feature->last = NULL; + feature->geometry_value = NULL; + col = schema->first; + while (col != NULL) + { + struct wfs_attribute *attr = malloc (sizeof (struct wfs_attribute)); + attr->column = col; + attr->value = NULL; + attr->next = NULL; + if (feature->first == NULL) + feature->first = attr; + if (feature->last != NULL) + feature->last->next = attr; + feature->last = attr; + col = col->next; + } + return feature; +} + +static void +reset_feature (struct wfs_feature *feature) +{ +/* resetting a WFS feature object to its initial empty state */ + struct wfs_attribute *attr = feature->first; + while (attr != NULL) + { + if (attr->value != NULL) + free (attr->value); + attr->value = NULL; + attr = attr->next; + } + if (feature->geometry_value != NULL) + free (feature->geometry_value); + feature->geometry_value = NULL; +} + +static void +free_feature (struct wfs_feature *feature) +{ +/* memory cleanup - freeing a WFS feature object */ + struct wfs_attribute *attr; + struct wfs_attribute *n_attr; + reset_feature (feature); + attr = feature->first; + while (attr != NULL) + { + n_attr = attr->next; + free (attr); + attr = n_attr; + } + free (feature); +} + +static int +compare_features (struct wfs_feature *f1, struct wfs_feature *f2) +{ +/* testing if two WFS features are identical */ + struct wfs_attribute *attr1; + struct wfs_attribute *attr2; + int cnt1 = 0; + int cnt2 = 0; +/* counting how many attributes for each feature */ + attr1 = f1->first; + while (attr1 != NULL) + { + cnt1++; + attr1 = attr1->next; + } + attr2 = f2->first; + while (attr2 != NULL) + { + cnt2++; + attr2 = attr2->next; + } + if (cnt1 != cnt2) + { + /* surely different - mismatching attributes count */ + return 0; + } + if (f1->geometry_value == NULL && f2->geometry_value == NULL) + ; + else if (f1->geometry_value != NULL && f2->geometry_value != NULL) + { + if (strcmp (f1->geometry_value, f2->geometry_value) != 0) + { + /* surely different - mismatching geometry values */ + return 0; + } + } + else + { + /* surely different - mismatching geometries */ + return 0; + } + attr1 = f1->first; + attr2 = f2->first; + while (attr1 != NULL && attr2 != NULL) + { + if (strcmp (attr1->column->name, attr1->column->name) != 0) + { + /* mismatching attribute name */ + return 0; + } + if (attr1->value == NULL && attr2->value == NULL) + ; + else if (attr1->value != NULL && attr2->value != NULL) + { + if (strcmp (attr1->value, attr2->value) != 0) + { + /* mismatching values */ + return 0; + } + } + else + { + /* mismatching values */ + } + attr1 = attr1->next; + attr2 = attr2->next; + } + return 1; +} + +static void +clean_copy (char *dest, const char *orig) +{ +/* copying an URI fragment attempting to clean invalid sequences */ + char last = '\0'; + const char *pi = orig; + char *po = dest; + while (*pi != '\0') + { + if (last == '&' && *pi == '?') + { + last = *pi; + po--; + *po++ = *pi++; + continue; + } + last = *pi; + *po++ = *pi++; + } + *po = '\0'; +} + +static void +set_wfs_catalog_base_request_url (struct wfs_catalog *ptr, const char *url) +{ +/* setting the request-URL for a WFS catalog */ + int len; + int i; + int force_marker = 1; + if (ptr == NULL) + return; + if (ptr->request_url != NULL) + free (ptr->request_url); + len = strlen (url); + ptr->request_url = malloc (len + 2); + clean_copy (ptr->request_url, url); + for (i = 0; i < (int) strlen (ptr->request_url); i++) + { + if (*(ptr->request_url + i) == '?') + force_marker = 0; + } + if (force_marker) + strcat (ptr->request_url, "?"); +} + +static void +set_wfs_catalog_base_describe_url (struct wfs_catalog *ptr, const char *url) +{ +/* setting the describe-URL for a WFS catalog */ + int len; + int i; + int force_marker = 1; + if (ptr == NULL) + return; + if (ptr->describe_url != NULL) + free (ptr->describe_url); + len = strlen (url); + ptr->describe_url = malloc (len + 2); + clean_copy (ptr->describe_url, url); + for (i = 0; i < (int) strlen (ptr->describe_url); i++) + { + if (*(ptr->describe_url + i) == '?') + force_marker = 0; + } + if (force_marker) + strcat (ptr->describe_url, "?"); +} + +static void +add_wfs_srid_to_layer (struct wfs_layer_def *ptr, int srid, + const char *srs_name) +{ +/* adding a SRID supported by a WFS Layer */ + struct wfs_srid_def *p_srid; + if (ptr == NULL) + return; + p_srid = alloc_wfs_srid (srid, srs_name); + if (ptr->first_srid == NULL) + ptr->first_srid = p_srid; + if (ptr->last_srid != NULL) + ptr->last_srid->next = p_srid; + ptr->last_srid = p_srid; +} + +static void +add_wfs_keyword_to_layer (struct wfs_layer_def *ptr, const char *keyword) +{ +/* adding a Keyword to a WFS Layer */ + struct wfs_keyword *key; + if (ptr == NULL) + return; + if (keyword == NULL) + return; + key = alloc_wfs_keyword (keyword); + if (ptr->first_key == NULL) + ptr->first_key = key; + if (ptr->last_key != NULL) + ptr->last_key->next = key; + ptr->last_key = key; +} + +static void +wfsParsingError (void *ctx, const char *msg, ...) +{ +/* appending to the current Parsing Error buffer */ + gaiaOutBufferPtr buf = ctx; + char out[65536]; + va_list args; + + if (ctx != NULL) + ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ + + va_start (args, msg); + vsnprintf (out, 65536, msg, args); + gaiaAppendToOutBuffer (buf, out); + va_end (args); +} + +static int +find_describe_uri (xmlNodePtr node, char **describe_uri) +{ +/* parsing the "schemaLocation" string */ + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + { + char *p_base; + int len = strlen ((const char *) (node->content)); + char *string = malloc (len + 1); + strcpy (string, (char *) (node->content)); + p_base = string; + while (1) + { + char *p = p_base; + while (1) + { + if (*p == ' ' || *p == '\0') + { + int next = 1; + if (*p == '\0') + next = 0; + *p = '\0'; + if (strstr (p_base, "DescribeFeatureType") != + NULL) + { + len = strlen (p_base); + *describe_uri = malloc (len + 1); + strcpy (*describe_uri, p_base); + free (string); + return 1; + } + if (next) + p_base = p + 1; + else + p_base = p; + break; + } + p++; + } + if (*p_base == '\0') + break; + } + free (string); + } + } + return 0; +} + +static int +get_DescribeFeatureType_uri (xmlDocPtr xml_doc, char **describe_uri) +{ +/* +/ attempting to retrieve the URI identifying the DescribeFeatureType service +*/ + const char *name; + xmlNodePtr root = xmlDocGetRootElement (xml_doc); + struct _xmlAttr *attr; + if (root == NULL) + return 0; + + name = (const char *) (root->name); + if (name != NULL) + { + if (strcmp (name, "FeatureCollection") != 0) + return 0; /* for sure, it's not a WFS answer */ + } + + attr = root->properties; + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "schemaLocation") == 0) + return find_describe_uri (attr->children, describe_uri); + } + attr = attr->next; + } + + return 0; +} + +static const char * +parse_attribute_name (xmlNodePtr node) +{ +/* parsing the element/name string */ + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + return (const char *) (node->content); + } + return NULL; +} + +static int +parse_attribute_nillable (xmlNodePtr node) +{ +/* parsing the element/nillable string */ + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + if (strcmp ((const char *) (node->content), "false") == 0) + return 0; + } + return 1; +} + +static const char * +clean_xml_prefix (const char *value) +{ +/* skipping an eventual XML prefix */ + const char *ptr = value; + while (1) + { + if (*ptr == '\0') + break; + if (*ptr == ':') + return ptr + 1; + ptr++; + } + return value; +} + +static int +parse_attribute_type (xmlNodePtr node, int *is_geom) +{ +/* parsing the element/nillable string */ + *is_geom = 0; + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + { + const char *clean = + clean_xml_prefix ((const char *) (node->content)); + if (strstr (clean, "Geometry") != NULL) + { + *is_geom = 1; + return GAIA_GEOMETRYCOLLECTION; + } + if (strstr (clean, "MultiPoint") != NULL) + { + *is_geom = 1; + return GAIA_MULTIPOINT; + } + if (strstr (clean, "MultiLineString") != NULL) + { + *is_geom = 1; + return GAIA_MULTILINESTRING; + } + if (strstr (clean, "MultiCurve") != NULL) + { + *is_geom = 1; + return GAIA_MULTILINESTRING; + } + if (strstr (clean, "MultiPolygon") != NULL) + { + *is_geom = 1; + return GAIA_MULTIPOLYGON; + } + if (strstr (clean, "MultiSurface") != NULL) + { + *is_geom = 1; + return GAIA_MULTIPOLYGON; + } + if (strstr (clean, "Point") != NULL) + { + *is_geom = 1; + return GAIA_POINT; + } + if (strstr (clean, "LineString") != NULL) + { + *is_geom = 1; + return GAIA_LINESTRING; + } + if (strstr (clean, "Curve") != NULL) + { + *is_geom = 1; + return GAIA_LINESTRING; + } + if (strstr (clean, "Polygon") != NULL) + { + *is_geom = 1; + return GAIA_POLYGON; + } + if (strstr (clean, "Surface") != NULL) + { + *is_geom = 1; + return GAIA_POLYGON; + } + if (strcmp (clean, "unsignedInt") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "nonNegativeInteger") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "negativeInteger") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "nonPositiveInteger") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "positiveInteger") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "integer") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "int") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "unsignedShort") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "short") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "unsignedLong") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "long") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "boolean") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "unsignedByte") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "byte") == 0) + return SQLITE_INTEGER; + if (strcmp (clean, "decimal") == 0) + return SQLITE_FLOAT; + if (strcmp (clean, "float") == 0) + return SQLITE_FLOAT; + if (strcmp (clean, "double") == 0) + return SQLITE_FLOAT; + } + } + return SQLITE_TEXT; +} + +static int +parse_attribute_inner_node (struct _xmlAttr *attr, int *type, int *is_geom) +{ +/* attempting to retrieve the data-type from a complex attribute */ + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "base") == 0) + { + *type = parse_attribute_type (attr->children, is_geom); + return 1; + } + } + attr = attr->next; + } + return 0; +} + +static void +parse_attribute_inner_type (xmlNodePtr node, int *type, int *is_geom) +{ +/* recursively parsing a complex attribute declaration */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (cur_node->name); + if (name != NULL) + { + if (strcmp (name, "restriction") == 0) + { + if (parse_attribute_inner_node + (cur_node->properties, type, is_geom)) + return; + } + } + parse_attribute_inner_type (cur_node->children, type, is_geom); + } + } +} + +static void +parse_wfs_schema_element (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* parsing a WFS attribute / column definition */ + struct _xmlAttr *attr = node->properties; + const char *name = NULL; + int type = SQLITE_NULL; + int is_nullable = 1; + int is_geom = 0; + int type_declared = 0; + + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "name") == 0) + name = parse_attribute_name (attr->children); + if (strcmp ((const char *) (attr->name), "nillable") == 0) + is_nullable = parse_attribute_nillable (attr->children); + if (strcmp ((const char *) (attr->name), "type") == 0) + { + type_declared = 1; + type = parse_attribute_type (attr->children, &is_geom); + } + } + attr = attr->next; + } + if (!type_declared) + parse_attribute_inner_type (node->children, &type, &is_geom); + + if (name == NULL || (is_geom == 0 && type == SQLITE_NULL) + || (is_geom != 0 && type == GAIA_UNKNOWN)) + return; + + if (is_geom) + set_wfs_geometry (schema, name, type, is_nullable); + else + add_wfs_column_to_schema (schema, name, type, is_nullable); +} + +static void +parse_wfs_schema (xmlNodePtr node, struct wfs_layer_schema *schema, + int *sequence) +{ +/* recursively parsing the WFS layer schema */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + const char *name = (const char *) (cur_node->name); + if (name != NULL) + { + if (strcmp (name, "element") == 0 && *sequence) + parse_wfs_schema_element (cur_node, schema); + else + { + if (strcmp (name, "sequence") == 0) + *sequence = 1; + parse_wfs_schema (cur_node->children, schema, + sequence); + if (strcmp (name, "sequence") == 0) + *sequence = 0; + } + } + } + } +} + +static struct wfs_layer_schema * +load_wfs_schema (const char *path_or_url, const char *layer_name, int swap_axes, + char **err_msg) +{ +/* attempting to retrieve the WFS layer schema */ + xmlDocPtr xml_doc = NULL; + xmlNodePtr root; + int len; + int sequence = 0; + struct wfs_layer_schema *schema = NULL; + gaiaOutBuffer errBuf; + xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; + + gaiaOutBufferInitialize (&errBuf); + xmlSetGenericErrorFunc (&errBuf, parsingError); + if (path_or_url == NULL) + goto end; + if (layer_name == NULL) + goto end; + + xml_doc = xmlReadFile (path_or_url, NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + if (errBuf.Buffer != NULL && err_msg != NULL) + { + len = strlen (errBuf.Buffer); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errBuf.Buffer); + } + goto end; + } + + schema = alloc_wfs_layer_schema (layer_name, swap_axes); + root = xmlDocGetRootElement (xml_doc); + parse_wfs_schema (root, schema, &sequence); + if (schema->first == NULL && schema->geometry_name == NULL) + { + if (err_msg != NULL) + { + const char *msg = "Unable to identify a valid WFS layer schema"; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + } + free_wfs_layer_schema (schema); + schema = NULL; + } + + end: + gaiaOutBufferReset (&errBuf); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + if (schema != NULL) + { + if (schema->first == NULL && schema->geometry_name == NULL) + { + /* empty schema */ + free_wfs_layer_schema (schema); + schema = NULL; + } + } + return schema; +} + +static void +gml_out (gaiaOutBufferPtr buf, const xmlChar * str) +{ +/* clean GML output */ + const xmlChar *p = str; + while (*p != '\0') + { + if (*p == '>') + gaiaAppendToOutBuffer (buf, ">"); + else if (*p == '<') + gaiaAppendToOutBuffer (buf, "<"); + else if (*p == '&') + gaiaAppendToOutBuffer (buf, "&"); + else if (*p == '"') + gaiaAppendToOutBuffer (buf, """); + else if (*p == '\'') + gaiaAppendToOutBuffer (buf, "'"); + else + { + char xx[2]; + xx[0] = *p; + xx[1] = '\0'; + gaiaAppendToOutBuffer (buf, xx); + } + p++; + } +} + +static void +reassemble_gml (xmlNodePtr node, gaiaOutBufferPtr buf) +{ +/* recursively printing the XML-DOM nodes */ + struct _xmlAttr *attr; + xmlNodePtr child; + xmlNs *ns; + const xmlChar *namespace; + int has_children; + int has_text; + + while (node) + { + if (node->type == XML_ELEMENT_NODE) + { + gaiaAppendToOutBuffer (buf, "<"); + ns = node->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + gml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + gml_out (buf, node->name); + attr = node->properties; + while (attr != NULL) + { + /* attributes */ + if (attr->type == XML_ATTRIBUTE_NODE) + { + xmlNodePtr text = attr->children; + gaiaAppendToOutBuffer (buf, " "); + ns = attr->ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + gml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + gml_out (buf, attr->name); + gaiaAppendToOutBuffer (buf, "=\""); + if (text != NULL) + { + if (text->type == XML_TEXT_NODE) + gml_out (buf, text->content); + } + gaiaAppendToOutBuffer (buf, "\""); + } + attr = attr->next; + } + has_children = 0; + has_text = 0; + child = node->children; + while (child) + { + if (child->type == XML_ELEMENT_NODE) + has_children = 1; + if (child->type == XML_TEXT_NODE) + has_text++; + child = child->next; + } + if (has_children) + has_text = 0; + + if (!has_text && !has_children) + gaiaAppendToOutBuffer (buf, " />"); + + if (has_text) + { + child = node->children; + if (child->type == XML_TEXT_NODE) + { + /* text node */ + gaiaAppendToOutBuffer (buf, ">"); + gml_out (buf, child->content); + gaiaAppendToOutBuffer (buf, "ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + gml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + gml_out (buf, node->name); + gaiaAppendToOutBuffer (buf, ">"); + } + } + if (has_children) + { + /* recursively expanding all children */ + gaiaAppendToOutBuffer (buf, ">"); + reassemble_gml (node->children, buf); + gaiaAppendToOutBuffer (buf, "ns; + namespace = NULL; + if (ns != NULL) + namespace = ns->prefix; + if (namespace) + { + gml_out (buf, namespace); + gaiaAppendToOutBuffer (buf, ":"); + } + gml_out (buf, node->name); + gaiaAppendToOutBuffer (buf, ">"); + } + } + node = node->next; + } +} + +static void +set_feature_geom (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* saving the feature's geometry value */ + gaiaOutBuffer gml; + gaiaOutBufferInitialize (&gml); + + /* reassembling the GML expression */ + reassemble_gml (node, &gml); + if (gml.Buffer != NULL) + { + if (schema->geometry_value != NULL) + free (schema->geometry_value); + schema->geometry_value = gml.Buffer; + } +} + +static void +set_feature_value (xmlNodePtr node, struct wfs_column_def *col) +{ +/* saving an attribute value */ + if (node == NULL) + return; + if (node->type == XML_TEXT_NODE) + col->pValue = (const char *) (node->content); +} + +static void +check_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* attempting to extract an attribute value */ + struct wfs_column_def *col; + if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) + { + set_feature_geom (node->children, schema); + return; + } + col = schema->first; + while (col != NULL) + { + if (strcmp ((const char *) (node->name), col->name) == 0) + { + set_feature_value (node->children, col); + return; + } + col = col->next; + } +} + +static int +test_effective_geom (struct wfs_layer_schema *schema, int *type, int *cast_type, + int *cast_dims) +{ +/* testing the effective GeometryType and dims */ + int pts = 0; + int lns = 0; + int pgs = 0; + int mpts = 0; + int mlns = 0; + int mpgs = 0; + int colls = 0; + int dims_xy = 0; + int dims_xyz = 0; + int dims_xym = 0; + int dims_xyzm = 0; + int dims = GAIA_XY; + int i; + for (i = 0; i < MAX_GTYPES; i++) + { + struct wfs_geom_type *p = schema->types + i; + switch (p->type) + { + case GAIA_POINT: + case GAIA_POINTZ: + case GAIA_POINTM: + case GAIA_POINTZM: + pts += p->count; + break; + case GAIA_LINESTRING: + case GAIA_LINESTRINGZ: + case GAIA_LINESTRINGM: + case GAIA_LINESTRINGZM: + lns += p->count; + break; + case GAIA_POLYGON: + case GAIA_POLYGONZ: + case GAIA_POLYGONM: + case GAIA_POLYGONZM: + pgs += p->count; + break; + case GAIA_MULTIPOINT: + case GAIA_MULTIPOINTZ: + case GAIA_MULTIPOINTM: + case GAIA_MULTIPOINTZM: + mpts += p->count; + break; + case GAIA_MULTILINESTRING: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTILINESTRINGZM: + mlns += p->count; + break; + case GAIA_MULTIPOLYGON: + case GAIA_MULTIPOLYGONZ: + case GAIA_MULTIPOLYGONM: + case GAIA_MULTIPOLYGONZM: + mpgs += p->count; + break; + case GAIA_GEOMETRYCOLLECTION: + case GAIA_GEOMETRYCOLLECTIONZ: + case GAIA_GEOMETRYCOLLECTIONM: + case GAIA_GEOMETRYCOLLECTIONZM: + colls += p->count; + break; + }; + if (p->count > 0) + { + switch (p->type) + { + case GAIA_POINT: + case GAIA_LINESTRING: + case GAIA_POLYGON: + case GAIA_MULTIPOINT: + case GAIA_MULTILINESTRING: + case GAIA_MULTIPOLYGON: + case GAIA_GEOMETRYCOLLECTION: + dims_xy++; + break; + case GAIA_POINTZ: + case GAIA_LINESTRINGZ: + case GAIA_POLYGONZ: + case GAIA_MULTIPOINTZ: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTIPOLYGONZ: + case GAIA_GEOMETRYCOLLECTIONZ: + dims_xyz++; + break; + case GAIA_POINTM: + case GAIA_LINESTRINGM: + case GAIA_POLYGONM: + case GAIA_MULTIPOINTM: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTIPOLYGONM: + case GAIA_GEOMETRYCOLLECTIONM: + dims_xym++; + break; + case GAIA_POINTZM: + case GAIA_LINESTRINGZM: + case GAIA_POLYGONZM: + case GAIA_MULTIPOINTZM: + case GAIA_MULTILINESTRINGZM: + case GAIA_MULTIPOLYGONZM: + case GAIA_GEOMETRYCOLLECTIONZM: + dims_xyzm++; + break; + }; + } + } + if (dims_xy > 0 && dims_xyz == 0 && dims_xym == 0 && dims_xyzm == 0) + dims = GAIA_XY; + if (dims_xyz > 0 && dims_xym == 0 && dims_xyzm == 0) + dims = GAIA_XY_Z; + if (dims_xyz == 0 && dims_xym > 0 && dims_xyzm == 0) + dims = GAIA_XY_M; + if (dims_xyzm > 0) + dims = GAIA_XY_Z_M; + *cast_dims = 0; + if (dims_xy > 0 && dims == GAIA_XY_Z) + *cast_dims = 1; + if (dims_xy > 0 && dims == GAIA_XY_M) + *cast_dims = 1; + if ((dims_xy > 0 || dims_xyz > 0 || dims_xym > 0) && dims == GAIA_XY_Z_M) + *cast_dims = 1; + if (pts > 0 && lns == 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_POINTZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_POINTZ; + else if (dims == GAIA_XY_M) + *type = GAIA_POINTM; + else + *type = GAIA_POINT; + *cast_type = 0; + return 1; + } + if (pts == 0 && lns > 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_LINESTRINGZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_LINESTRINGZ; + else if (dims == GAIA_XY_M) + *type = GAIA_LINESTRINGM; + else + *type = GAIA_LINESTRING; + *cast_type = 0; + return 1; + } + if (pts == 0 && lns == 0 && pgs > 0 && mpts == 0 && mlns == 0 && mpgs == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_POLYGONZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_POLYGONZ; + else if (dims == GAIA_XY_M) + *type = GAIA_POLYGONM; + else + *type = GAIA_POLYGON; + *cast_type = 0; + return 1; + } + if ((pts > 0 || mpts > 0) && lns == 0 && pgs == 0 && mlns == 0 && mpgs == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_MULTIPOINTZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_MULTIPOINTZ; + else if (dims == GAIA_XY_M) + *type = GAIA_MULTIPOINTM; + else + *type = GAIA_MULTIPOINT; + if (pts > 0) + *cast_type = 1; + else + *cast_type = 0; + return 1; + } + if (pts == 0 && (lns > 0 || mlns > 0) && pgs == 0 && mpts == 0 && mpgs == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_MULTILINESTRINGZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_MULTILINESTRINGZ; + else if (dims == GAIA_XY_M) + *type = GAIA_MULTILINESTRINGM; + else + *type = GAIA_MULTILINESTRING; + if (lns > 0) + *cast_type = 1; + else + *cast_type = 0; + return 1; + } + if (pts == 0 && lns == 0 && (pgs > 0 || mpgs > 0) && mpts == 0 && mlns == 0 + && colls == 0) + { + if (dims == GAIA_XY_Z_M) + *type = GAIA_MULTIPOLYGONZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_MULTIPOLYGONZ; + else if (dims == GAIA_XY_M) + *type = GAIA_MULTIPOLYGONM; + else + *type = GAIA_MULTIPOLYGON; + if (pgs > 0) + *cast_type = 1; + else + *cast_type = 0; + return 1; + } + if (dims == GAIA_XY_Z_M) + *type = GAIA_GEOMETRYCOLLECTIONZM; + else if (dims == GAIA_XY_Z) + *type = GAIA_GEOMETRYCOLLECTIONZ; + else if (dims == GAIA_XY_M) + *type = GAIA_GEOMETRYCOLLECTIONM; + else + *type = GAIA_GEOMETRYCOLLECTION; + if (pts > 0 || lns > 0 || pgs > 0 || mpts > 0 || mlns > 0 || mpgs > 0) + *cast_type = 1; + else + *cast_type = 0; + return 1; +} + +static int +parse_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* attempting to extract data corresponding to a single feature */ + xmlNodePtr cur_node = NULL; + int cnt = 0; + + reset_wfs_values (schema); + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + check_feature_value (cur_node, schema); + } + cnt = count_wfs_values (schema); + return cnt; +} + +static int +check_real_type (struct wfs_layer_schema *schema, int *type, int *cast_type, + int *cast_dims) +{ +/* attempting to assign a more precise GeometryType */ + int xtype; + if (test_effective_geom (schema, &xtype, cast_type, cast_dims)) + { + *type = xtype; + return 1; + } + return 0; +} + +static void +update_geom_stats (struct wfs_layer_schema *schema, int type) +{ +/* updating the type statistics */ + int i; + if (schema->geometry_type != GAIA_GEOMETRYCOLLECTION) + return; + for (i = 0; i < MAX_GTYPES; i++) + { + struct wfs_geom_type *p = schema->types + i; + if (p->type == type) + { + p->count += 1; + return; + } + } +} + +static int +do_insert (struct wfs_layer_schema *schema, char **err_msg) +{ +/* inserting a row into the target table */ + int ret; + int ind = 1; + sqlite3_stmt *stmt = schema->stmt; + struct wfs_column_def *col; + + if (stmt == NULL || schema->error) + { + schema->error = 1; + return 0; + } + +/* binding */ + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + col = schema->first; + while (col != NULL) + { + if (col->pValue == NULL) + sqlite3_bind_null (stmt, ind); + else + { + if (col->type == SQLITE_INTEGER) + { + sqlite3_int64 val = atoll (col->pValue); + sqlite3_bind_int64 (stmt, ind, val); + } + else if (col->type == SQLITE_FLOAT) + { + double val = atof (col->pValue); + sqlite3_bind_double (stmt, ind, val); + } + else + sqlite3_bind_text (stmt, ind, col->pValue, + strlen (col->pValue), SQLITE_STATIC); + } + ind++; + col = col->next; + } + if (schema->geometry_name != NULL) + { + /* we have a Geometry column */ + if (schema->geometry_value != NULL) + { + /* preparing the Geometry value */ + gaiaGeomCollPtr geom = + gaiaParseGml ((unsigned char *) (schema->geometry_value), + schema->sqlite); + if (geom == NULL) + sqlite3_bind_null (stmt, ind); + else + { + unsigned char *blob; + int blob_size; + int type = gaiaGeometryType (geom); + if (type == GAIA_POINT + && schema->geometry_type == GAIA_MULTIPOINT) + { + /* promoting to MultiPoint */ + geom->DeclaredType = GAIA_MULTIPOINT; + } + if (type == GAIA_LINESTRING + && schema->geometry_type == GAIA_MULTILINESTRING) + { + /* promoting to MultiLinestring */ + geom->DeclaredType = GAIA_MULTILINESTRING; + } + if (type == GAIA_POLYGON + && schema->geometry_type == GAIA_MULTIPOLYGON) + { + /* promoting to MultiPolygon */ + geom->DeclaredType = GAIA_MULTIPOLYGON; + } + geom->Srid = schema->srid; + if (schema->swap_axes != 0) + gaiaSwapCoords (geom); + gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); + sqlite3_bind_blob (stmt, ind, blob, blob_size, free); + gaiaFreeGeomColl (geom); + update_geom_stats (schema, type); + } + } + else + sqlite3_bind_null (stmt, ind); + } + +/* inserting */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + return 1; + spatialite_e ("loadwfs INSERT error: <%s>\n", + sqlite3_errmsg (schema->sqlite)); + schema->error = 1; + if (err_msg == NULL) + ; + else + { + int len; + const char *err = sqlite3_errmsg (schema->sqlite); + if (*err_msg != NULL) + free (*err_msg); + len = strlen (err); + *err_msg = malloc (len + 1); + strcpy (*err_msg, err); + } + return 0; +} + +static void +save_attribute (struct wfs_feature *feature, struct wfs_column_def *col) +{ +/* saving an attribute value */ + struct wfs_attribute *attr = feature->first; + while (attr != NULL) + { + if (attr->column == col) + { + if (attr->value != NULL) + free (attr->value); + attr->value = NULL; + if (col->pValue != NULL) + { + int len = strlen (col->pValue); + attr->value = malloc (len + 1); + strcpy (attr->value, col->pValue); + } + return; + } + attr = attr->next; + } +} + +static int +do_save_feature (struct wfs_layer_schema *schema, struct wfs_feature *feature) +{ +/* saving the current feature data */ + struct wfs_column_def *col; + + if (schema->error) + { + schema->error = 1; + return 0; + } + + reset_feature (feature); + col = schema->first; + while (col != NULL) + { + save_attribute (feature, col); + col = col->next; + } + if (schema->geometry_name != NULL) + { + /* we have a Geometry column */ + if (schema->geometry_value != NULL) + { + int len = strlen (schema->geometry_value); + feature->geometry_value = malloc (len + 1); + strcpy (feature->geometry_value, schema->geometry_value); + } + } + return 1; +} + +static void +parse_wfs_features (xmlNodePtr node, struct wfs_layer_schema *schema, int *rows, + char **err_msg) +{ +/* recursively parsing the GML payload */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + char *entity_name; + if (cur_node->ns != NULL) + entity_name = + sqlite3_mprintf ("%s:%s", cur_node->ns->prefix, + cur_node->name); + else + entity_name = sqlite3_mprintf ("%s", cur_node->name); + if (strcmp (schema->layer_name, entity_name) == 0 + || strcmp (schema->layer_name, + (const char *) (cur_node->name)) == 0) + { + if (parse_wfs_single_feature (cur_node->children, schema)) + { + if (schema->error == 0) + { + if (do_insert (schema, err_msg)) + *rows += 1; + } + } + } + else + parse_wfs_features (cur_node->children, schema, rows, + err_msg); + sqlite3_free (entity_name); + } + } +} + +static void +parse_wfs_last_feature (xmlNodePtr node, struct wfs_layer_schema *schema, + struct wfs_feature *feature, int *rows) +{ +/* recursively parsing the GML payload */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (parse_wfs_single_feature (cur_node, schema)) + { + if (schema->error == 0) + { + if (do_save_feature (schema, feature)) + *rows += 1; + } + return; + } + else + parse_wfs_last_feature (cur_node->children, schema, feature, + rows); + } + } +} + +static int +sniff_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema, + xmlNodePtr * geom) +{ +/* sniffing attribute values */ + struct wfs_column_def *col; + if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) + { + *geom = node->children; + return 1; + } + col = schema->first; + while (col != NULL) + { + if (strcmp ((const char *) (node->name), col->name) == 0) + return 1; + col = col->next; + } + return 0; +} + +static int +parse_srsname (xmlNodePtr node) +{ +/* parsing the srsName string */ + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + { + int len = strlen ((const char *) (node->content)); + const char *end = (const char *) (node->content) + len; + const char *p = end; + if (len > 0) + { + p--; + while (p >= (char *) (node->content)) + { + if (*p >= '0' && *p <= '9') + { + p--; + continue; + } + if (p + 1 < end) + return atoi (p + 1); + } + } + } + } + return -1; +} + +static int +parse_dimension (xmlNodePtr node) +{ +/* parsing the dimension string */ + if (node != NULL) + { + if (node->type == XML_TEXT_NODE) + return atoi ((const char *) (node->content)); + } + return 2; +} + +static void +sniff_gml_geometry (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* attempting to identify the Srid and dimension from a GML geometry */ + xmlNodePtr cur_node = NULL; + if (node == NULL) + return; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + struct _xmlAttr *attr; + attr = cur_node->properties; + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "srsName") + == 0) + schema->srid = parse_srsname (attr->children); + if (strcmp + ((const char *) (attr->name), "dimension") == 0) + schema->dims = parse_dimension (attr->children); + } + attr = attr->next; + } + sniff_gml_geometry (cur_node->children, schema); + } + } +} + +static int +sniff_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) +{ +/* attempting to sniff data corresponding to a single feature */ + xmlNodePtr cur_node = NULL; + int cnt = 0; + xmlNodePtr geom = NULL; + + reset_wfs_values (schema); + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + cnt += sniff_feature_value (cur_node, schema, &geom); + } + if (cnt > 0 && geom != NULL) + { + sniff_gml_geometry (geom, schema); + return 1; + } + return 0; +} + +static void +sniff_geometries (xmlNodePtr node, struct wfs_layer_schema *schema, + int *sniffed) +{ +/* recursively parsing the GML payload so to sniff the first geometry */ + xmlNodePtr cur_node = NULL; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (*sniffed) + return; + if (sniff_wfs_single_feature (cur_node, schema)) + { + *sniffed = 1; + return; + } + else + sniff_geometries (cur_node->children, schema, sniffed); + } + } +} + +static int +check_pk_name (struct wfs_layer_schema *schema, const char *pk_column_name, + char *auto_pk_name) +{ +/* handling the PK name */ + int num = 0; + char pk_candidate[1024]; + struct wfs_column_def *col; + if (pk_column_name == NULL) + goto check_auto; + col = schema->first; + while (col != NULL) + { + /* checking if the required PK does really exists */ + if (strcasecmp (col->name, pk_column_name) == 0) + return 1; + col = col->next; + } + check_auto: + strcpy (pk_candidate, auto_pk_name); + while (1) + { + /* ensuring to return a not ambiguous PK name */ + int ok = 1; + col = schema->first; + while (col != NULL) + { + /* checking if the PK candidate isn't already defined */ + if (strcasecmp (col->name, pk_candidate) == 0) + { + ok = 0; + break; + } + col = col->next; + } + if (ok) + { + strcpy (auto_pk_name, pk_candidate); + break; + } + sprintf (pk_candidate, "%s_%d", auto_pk_name, num); + num++; + } + return 0; +} + +static int +prepare_sql (sqlite3 * sqlite, struct wfs_layer_schema *schema, + const char *table, const char *pk_column_name, int spatial_index, + char **err_msg) +{ +/* creating the output table and preparing the insert statement */ + int len; + int ret; + char *errMsg = NULL; + gaiaOutBuffer sql; + char *sql2; + char *quoted; + struct wfs_column_def *col; + char auto_pk_name[1024]; + int is_auto_pk = 0; + int comma = 0; + sqlite3_stmt *stmt = NULL; + +/* attempting to create the SQL Table */ + gaiaOutBufferInitialize (&sql); + quoted = gaiaDoubleQuotedSql (table); + sql2 = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n", quoted); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + if (pk_column_name == NULL) + strcpy (auto_pk_name, "pk_uid"); + else + { + /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ + if (strlen (pk_column_name) >= sizeof (auto_pk_name) - 1) + return 0; + /* END - Even Rouault 2013-06-02 */ + strcpy (auto_pk_name, pk_column_name); + } + if (!check_pk_name (schema, pk_column_name, auto_pk_name)) + { + /* defining a default Primary Key */ + is_auto_pk = 1; + quoted = gaiaDoubleQuotedSql (auto_pk_name); + sql2 = + sqlite3_mprintf ("\t\"%s\" INTEGER PRIMARY KEY AUTOINCREMENT", + quoted); + comma = 1; + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + } + col = schema->first; + while (col != NULL) + { + const char *type = "TEXT"; + if (comma) + { + gaiaAppendToOutBuffer (&sql, ",\n"); + comma = 0; + } + if (col->type == SQLITE_INTEGER) + type = "INTEGER"; + if (col->type == SQLITE_FLOAT) + type = "DOUBLE"; + quoted = gaiaDoubleQuotedSql (col->name); + if (!is_auto_pk) + { + /* there is an explicitly defined PK */ + if (strcasecmp (col->name, pk_column_name) == 0) + { + /* ok, we've found the PK column */ + if (col == schema->last) + sql2 = + sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY", + quoted, type); + else + sql2 = + sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY,\n", + quoted, type); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + col = col->next; + continue; + } + } + if (col == schema->last) + { + if (col->is_nullable) + sql2 = sqlite3_mprintf ("\t\"%s\" %s", quoted, type); + else + sql2 = + sqlite3_mprintf ("\t\"%s\" %s NOT NULL", quoted, type); + } + else + { + if (col->is_nullable) + sql2 = sqlite3_mprintf ("\t\"%s\" %s,\n", quoted, type); + else + sql2 = + sqlite3_mprintf ("\t\"%s\" %s NOT NULL,\n", quoted, + type); + } + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + col = col->next; + } + gaiaAppendToOutBuffer (&sql, ")"); + ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); + gaiaOutBufferReset (&sql); + if (ret != SQLITE_OK) + { + spatialite_e ("loadwfs: CREATE TABLE '%s' error: %s\n", table, + errMsg); + schema->error = 1; + if (err_msg == NULL) + { + sqlite3_free (errMsg); + return 0; + } + len = strlen (errMsg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errMsg); + sqlite3_free (errMsg); + return 0; + } + + if (schema->geometry_name != NULL) + { + /* creating the Geometry column */ + const char *gType = "GEOMETRY"; + const char *gDims = "XY"; + switch (schema->geometry_type) + { + case GAIA_POINT: + gType = "POINT"; + break; + case GAIA_LINESTRING: + gType = "LINESTRING"; + break; + case GAIA_POLYGON: + gType = "POLYGON"; + break; + case GAIA_MULTIPOINT: + gType = "MULTIPOINT"; + break; + case GAIA_MULTILINESTRING: + gType = "MULTILINESTRING"; + break; + case GAIA_MULTIPOLYGON: + gType = "MULTIPOLYGON"; + break; + }; + if (schema->dims == 3) + gDims = "XYZ"; + sql2 = + sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", + table, schema->geometry_name, schema->srid, + gType, gDims); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); + gaiaOutBufferReset (&sql); + if (ret != SQLITE_OK) + { + spatialite_e ("loadwfs: AddGeometryColumn error: %s\n", errMsg); + schema->error = 1; + if (err_msg == NULL) + { + sqlite3_free (errMsg); + return 0; + } + len = strlen (errMsg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errMsg); + return 0; + } + if (spatial_index) + { + /* creating the Spatial Index */ + sql2 = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", + table, schema->geometry_name); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); + gaiaOutBufferReset (&sql); + if (ret != SQLITE_OK) + { + spatialite_e ("loadwfs: CreateSpatialIndex error: %s\n", + errMsg); + schema->error = 1; + if (err_msg == NULL) + { + sqlite3_free (errMsg); + return 0; + } + len = strlen (errMsg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errMsg); + return 0; + } + } + } + +/* creating the INSERT statement */ + quoted = gaiaDoubleQuotedSql (table); + sql2 = sqlite3_mprintf ("INSERT INTO \"%s\" (\n", quoted); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + if (is_auto_pk) + { + /* the auto-generated PK column */ + quoted = gaiaDoubleQuotedSql (auto_pk_name); + sql2 = sqlite3_mprintf ("\"%s\", ", quoted); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + } + col = schema->first; + while (col != NULL) + { + /* column names */ + quoted = gaiaDoubleQuotedSql (col->name); + if (col == schema->last && schema->geometry_name == NULL) + sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); + else + sql2 = sqlite3_mprintf ("\"%s\", ", quoted); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + col = col->next; + } + if (schema->geometry_name != NULL) + { + /* the geometry column name */ + quoted = gaiaDoubleQuotedSql (schema->geometry_name); + sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); + free (quoted); + gaiaAppendToOutBuffer (&sql, sql2); + sqlite3_free (sql2); + } + if (is_auto_pk) + { + /* there is an AUTOINCREMENT PK */ + gaiaAppendToOutBuffer (&sql, "NULL, "); + } + col = schema->first; + while (col != NULL) + { + if (col == schema->last && schema->geometry_name == NULL) + gaiaAppendToOutBuffer (&sql, "?)"); + else + gaiaAppendToOutBuffer (&sql, "?, "); + col = col->next; + } + if (schema->geometry_name != NULL) + gaiaAppendToOutBuffer (&sql, "?)"); + ret = + sqlite3_prepare_v2 (sqlite, sql.Buffer, strlen (sql.Buffer), &stmt, + NULL); + gaiaOutBufferReset (&sql); + if (ret != SQLITE_OK) + { + errMsg = (char *) sqlite3_errmsg (sqlite); + spatialite_e ("loadwfs: \"%s\"\n", errMsg); + schema->error = 1; + if (err_msg == NULL) + return 0; + len = strlen (errMsg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errMsg); + return 0; + } + schema->stmt = stmt; + schema->sqlite = sqlite; + +/* starting an SQL Transaction */ + if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); + schema->error = 1; + if (err_msg == NULL) + { + sqlite3_free (errMsg); + return 0; + } + len = strlen (errMsg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errMsg); + sqlite3_free (errMsg); + } + if (schema->error) + return 0; + return 1; +} + +static void +restart_transaction (sqlite3 * sqlite) +{ +/* confirming the still pendenting SQL transaction */ + char *errMsg = NULL; + if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } +/* restarting a further transaction */ + if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } +} + +static void +do_commit (sqlite3 * sqlite, struct wfs_layer_schema *schema) +{ +/* confirming the still pendenting SQL transaction */ + char *errMsg = NULL; + sqlite3_finalize (schema->stmt); + schema->stmt = NULL; + if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + schema->error = 1; + } +} + +static void +do_rollback (sqlite3 * sqlite, struct wfs_layer_schema *schema) +{ +/* invalidating the still pending SQL transaction */ + char *errMsg = NULL; + sqlite3_finalize (schema->stmt); + schema->stmt = NULL; + if (sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: ROLLBACK error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + schema->error = 1; + } +} + +SPATIALITE_DECLARE int +load_from_wfs (sqlite3 * sqlite, const char *path_or_url, + const char *alt_describe_uri, const char *layer_name, + int swap_axes, const char *table, const char *pk_column_name, + int spatial_index, int *rows, char **err_msg, + void (*progress_callback) (int, void *), void *callback_ptr) +{ +/* attempting to load data from some WFS source [not-paged] */ + return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, + layer_name, swap_axes, table, pk_column_name, + spatial_index, -1, rows, err_msg, + progress_callback, callback_ptr); +} + +static int +test_wfs_paging (const char *path_or_url, int page_size, xmlNodePtr node, + struct wfs_layer_schema *schema, int *shift_index) +{ +/* testing if the server does actually supports STARTINDEX */ + xmlDocPtr xml_doc = NULL; + xmlNodePtr root; + char *page_url; + int nRows = 0; + struct wfs_feature *feature_1 = create_feature (schema); + struct wfs_feature *feature_2 = create_feature (schema); + *shift_index = 0; + parse_wfs_last_feature (node, schema, feature_1, &nRows); + if (nRows < page_size) + { + /* a single page is required: this means no-paging at all */ + free_feature (feature_1); + return 1; + } + +/* loading the feature to be tested */ + page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", + path_or_url, page_size - 1); + xml_doc = xmlReadFile (page_url, NULL, 0); + sqlite3_free (page_url); + if (xml_doc == NULL) + goto error; + /* parsing the WFS payload */ + root = xmlDocGetRootElement (xml_doc); + nRows = 0; + parse_wfs_last_feature (root, schema, feature_2, &nRows); + if (!compare_features (feature_1, feature_2)) + { + reset_feature (feature_2); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + goto second_chance; + } + free_feature (feature_1); + free_feature (feature_2); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + return 1; + +/* for some MapServer version the first Index is 1, not 0 */ + second_chance: + page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", + path_or_url, page_size); + xml_doc = xmlReadFile (page_url, NULL, 0); + sqlite3_free (page_url); + if (xml_doc == NULL) + goto error; + /* parsing the WFS payload */ + root = xmlDocGetRootElement (xml_doc); + nRows = 0; + parse_wfs_last_feature (root, schema, feature_2, &nRows); + if (!compare_features (feature_1, feature_2)) + goto error; + free_feature (feature_1); + free_feature (feature_2); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + *shift_index = 1; + return 1; + error: + free_feature (feature_1); + free_feature (feature_2); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + return 0; +} + +static void +do_adjust_geoms (sqlite3 * sqlite, const char *table, const char *geometry, + int type, int cast_type, int cast_dims) +{ +/* final adjustement for GeometryType and dims */ + char *errMsg = NULL; + char *xtable; + char *xgeom; + char *xopen; + char *xclose; + char *sql; + int ret; + int dims; + int metadata_version = checkSpatialMetaData (sqlite); + +/* starting a transaction */ + if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } + + if (cast_type || cast_dims) + { + xtable = gaiaDoubleQuotedSql (table); + xgeom = gaiaDoubleQuotedSql (geometry); + /* settting the dimension model */ + switch (type) + { + case GAIA_POINT: + case GAIA_LINESTRING: + case GAIA_POLYGON: + case GAIA_MULTIPOINT: + case GAIA_MULTILINESTRING: + case GAIA_MULTIPOLYGON: + case GAIA_GEOMETRYCOLLECTION: + dims = GAIA_XY; + break; + case GAIA_POINTZ: + case GAIA_LINESTRINGZ: + case GAIA_POLYGONZ: + case GAIA_MULTIPOINTZ: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTIPOLYGONZ: + case GAIA_GEOMETRYCOLLECTIONZ: + dims = GAIA_XY_Z; + break; + case GAIA_POINTM: + case GAIA_LINESTRINGM: + case GAIA_POLYGONM: + case GAIA_MULTIPOINTM: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTIPOLYGONM: + case GAIA_GEOMETRYCOLLECTIONM: + dims = GAIA_XY_M; + break; + case GAIA_POINTZM: + case GAIA_LINESTRINGZM: + case GAIA_POLYGONZM: + case GAIA_MULTIPOINTZM: + case GAIA_MULTILINESTRINGZM: + case GAIA_MULTIPOLYGONZM: + case GAIA_GEOMETRYCOLLECTIONZM: + dims = GAIA_XY_Z_M; + break; + }; + /*preparing the SQL UPDATE statement */ + switch (type) + { + case GAIA_POINT: + case GAIA_POINTZ: + case GAIA_POINTM: + case GAIA_POINTZM: + if (cast_type && !cast_dims) + { + xopen = "CastToPoint("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToPoint(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToPoint(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToPoint(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToPoint(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_LINESTRING: + case GAIA_LINESTRINGZ: + case GAIA_LINESTRINGM: + case GAIA_LINESTRINGZM: + if (cast_type && !cast_dims) + { + xopen = "CastToLinestring("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToLinestring(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToLinestring(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToLinestring(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToLinestring(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_POLYGON: + case GAIA_POLYGONZ: + case GAIA_POLYGONM: + case GAIA_POLYGONZM: + if (cast_type && !cast_dims) + { + xopen = "CastToPolygon("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToPolygon(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToPolygon(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToPolygon(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToPolygon(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_MULTIPOINT: + case GAIA_MULTIPOINTZ: + case GAIA_MULTIPOINTM: + case GAIA_MULTIPOINTZM: + if (cast_type && !cast_dims) + { + xopen = "CastToMultiPoint("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToMultiPoint(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToMultiPoint(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToMultiPoint(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToMultiPoint(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_MULTILINESTRING: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTILINESTRINGZM: + if (cast_type && !cast_dims) + { + xopen = "CastToMultiLinestring("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToMultiLinestring(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToMultiLinestring(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToMultiLinestring(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToMultiLinestring(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_MULTIPOLYGON: + case GAIA_MULTIPOLYGONZ: + case GAIA_MULTIPOLYGONM: + case GAIA_MULTIPOLYGONZM: + if (cast_type && !cast_dims) + { + xopen = "CastToMultiPolygon("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToMultiPolygon(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToMultiPolygon(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToMultiPolygon(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToMultiPolygon(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + case GAIA_GEOMETRYCOLLECTION: + case GAIA_GEOMETRYCOLLECTIONZ: + case GAIA_GEOMETRYCOLLECTIONM: + case GAIA_GEOMETRYCOLLECTIONZM: + if (cast_type && !cast_dims) + { + xopen = "CastToGeometryCollection("; + xclose = ")"; + } + else if (!cast_type && cast_dims) + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToXY("; + xclose = ")"; + break; + case GAIA_XY_Z: + xopen = "CastToXYZ("; + xclose = ")"; + break; + case GAIA_XY_M: + xopen = "CastToXYM("; + xclose = ")"; + break; + case GAIA_XY_Z_M: + xopen = "CastToXYZM("; + xclose = ")"; + break; + }; + } + else + { + switch (dims) + { + case GAIA_XY: + xopen = "CastToGeometryCollection(CastToXY("; + xclose = "))"; + break; + case GAIA_XY_Z: + xopen = "CastToGeometryCollection(CastToXYZ("; + xclose = "))"; + break; + case GAIA_XY_M: + xopen = "CastToGeometryCollection(CastToXYM("; + xclose = "))"; + break; + case GAIA_XY_Z_M: + xopen = "CastToGeometryCollection(CastToXYZM("; + xclose = "))"; + break; + }; + } + break; + }; + sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = %s\"%s\"%s", + xtable, xgeom, xopen, xgeom, xclose); + free (xtable); + free (xgeom); + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } + } + +/* adjusting GeometryColumns */ + if (metadata_version == 1) + { + /* legacy metadata style <= v.3.1.0 */ + const char *pType; + const char *pDims; + switch (type) + { + case GAIA_POINT: + case GAIA_POINTZ: + case GAIA_POINTM: + case GAIA_POINTZM: + pType = "POINT"; + break; + case GAIA_LINESTRING: + case GAIA_LINESTRINGZ: + case GAIA_LINESTRINGM: + case GAIA_LINESTRINGZM: + pType = "LINESTRING"; + break; + case GAIA_POLYGON: + case GAIA_POLYGONZ: + case GAIA_POLYGONM: + case GAIA_POLYGONZM: + pType = "POLYGON"; + break; + case GAIA_MULTIPOINT: + case GAIA_MULTIPOINTZ: + case GAIA_MULTIPOINTM: + case GAIA_MULTIPOINTZM: + pType = "MULTIPOINT"; + break; + case GAIA_MULTILINESTRING: + case GAIA_MULTILINESTRINGZ: + case GAIA_MULTILINESTRINGM: + case GAIA_MULTILINESTRINGZM: + pType = "MULTILINESTRING"; + break; + case GAIA_MULTIPOLYGON: + case GAIA_MULTIPOLYGONZ: + case GAIA_MULTIPOLYGONM: + case GAIA_MULTIPOLYGONZM: + pType = "MULTIPOLYGON"; + break; + case GAIA_GEOMETRYCOLLECTION: + case GAIA_GEOMETRYCOLLECTIONZ: + case GAIA_GEOMETRYCOLLECTIONM: + case GAIA_GEOMETRYCOLLECTIONZM: + pType = "GEOMETRYCOLLECTION"; + break; + }; + switch (dims) + { + case GAIA_XY: + pDims = "XY"; + break; + case GAIA_XY_Z: + pDims = "XYZ"; + break; + case GAIA_XY_M: + pDims = "XYM"; + break; + case GAIA_XY_Z_M: + pDims = "XYZM"; + break; + }; + sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = %Q, " + "coord_dimension = %Q WHERE Lower(f_table_name) = Lower(%Q) " + "AND Lower(f_geometry_column) = Lower(%Q)", + pType, pDims, table, geometry); + } + else + { + /* current metadata style >= v.4.0.0 */ + int nType = 0; + int nDims = 2; + switch (type) + { + case GAIA_POINT: + nType = 1; + break; + case GAIA_POINTZ: + nType = 1001; + break; + case GAIA_POINTM: + nType = 2001; + break; + case GAIA_POINTZM: + nType = 3001; + break; + case GAIA_LINESTRING: + nType = 2; + break; + case GAIA_LINESTRINGZ: + nType = 1002; + break; + case GAIA_LINESTRINGM: + nType = 2002; + break; + case GAIA_LINESTRINGZM: + nType = 3002; + break; + case GAIA_POLYGON: + nType = 3; + break; + case GAIA_POLYGONZ: + nType = 1003; + break; + case GAIA_POLYGONM: + nType = 2003; + break; + case GAIA_POLYGONZM: + nType = 3003; + break; + case GAIA_MULTIPOINT: + nType = 4; + break; + case GAIA_MULTIPOINTZ: + nType = 1004; + break; + case GAIA_MULTIPOINTM: + nType = 2004; + case GAIA_MULTIPOINTZM: + nType = 3004; + break; + case GAIA_MULTILINESTRING: + nType = 5; + break; + case GAIA_MULTILINESTRINGZ: + nType = 1005; + break; + case GAIA_MULTILINESTRINGM: + nType = 2005; + case GAIA_MULTILINESTRINGZM: + nType = 3005; + break; + case GAIA_MULTIPOLYGON: + nType = 6; + break; + case GAIA_MULTIPOLYGONZ: + nType = 1006; + break; + case GAIA_MULTIPOLYGONM: + nType = 2006; + break; + case GAIA_MULTIPOLYGONZM: + nType = 3006; + break; + case GAIA_GEOMETRYCOLLECTION: + nType = 7; + break; + case GAIA_GEOMETRYCOLLECTIONZ: + nType = 1007; + break; + case GAIA_GEOMETRYCOLLECTIONM: + nType = 2007; + break; + case GAIA_GEOMETRYCOLLECTIONZM: + nType = 3007; + break; + }; + switch (dims) + { + case GAIA_XY: + nDims = 2; + break; + case GAIA_XY_Z: + case GAIA_XY_M: + nDims = 3; + break; + case GAIA_XY_Z_M: + nDims = 4; + break; + }; + sql = + sqlite3_mprintf + ("UPDATE geometry_columns SET geometry_type = %d, " + "coord_dimension = %d WHERE Lower(f_table_name) = Lower(%Q) " + "AND Lower(f_geometry_column) = Lower(%Q)", nType, nDims, table, + geometry); + } + ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } + +/* confirming the still pendenting SQL transaction */ + if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) + { + spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); + sqlite3_free (errMsg); + } +} + +SPATIALITE_DECLARE int +load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, + const char *alt_describe_uri, const char *layer_name, + int swap_axes, const char *table, + const char *pk_column_name, int spatial_index, + int page_size, int *rows, char **err_msg, + void (*progress_callback) (int, void *), + void *callback_ptr) +{ +/* attempting to load data from some WFS source [paged]*/ + xmlDocPtr xml_doc = NULL; + xmlNodePtr root; + struct wfs_layer_schema *schema = NULL; + int len; + int ret; + char *describe_uri = NULL; + gaiaOutBuffer errBuf; + int ok = 0; + int sniffed = 0; + int pageNo = 0; + int startIdx = 0; + int nRows; + char *page_url = NULL; + const char *p_page_url; + int shift_index; + xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; + *rows = 0; + if (err_msg != NULL) + *err_msg = NULL; + if (path_or_url == NULL) + return 0; + + while (1) + { + if (page_size <= 0) + p_page_url = path_or_url; + else + { + page_url = + sqlite3_mprintf ("%s&maxFeatures=%d&startIndex=%d", + path_or_url, page_size, startIdx); + p_page_url = page_url; + } + + /* loading the WFS payload from URL (or file) */ + gaiaOutBufferInitialize (&errBuf); + xmlSetGenericErrorFunc (&errBuf, parsingError); + xml_doc = xmlReadFile (p_page_url, NULL, 0); + if (page_url != NULL) + sqlite3_free (page_url); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + if (errBuf.Buffer != NULL && err_msg != NULL) + { + len = strlen (errBuf.Buffer); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errBuf.Buffer); + } + goto end; + } + + if (pageNo == 0) + { + if (alt_describe_uri != NULL) + { + /* using the DescribetFeatureType URI from GetCapabilities */ + len = strlen (alt_describe_uri); + describe_uri = malloc (len + 1); + strcpy (describe_uri, alt_describe_uri); + ret = 1; + } + else + { + /* attempting to extract the DescribeFeatureType from the GetFeature document */ + ret = + get_DescribeFeatureType_uri (xml_doc, &describe_uri); + } + if (ret == 0) + { + const char *msg = + "Unable to retrieve the DescribeFeatureType URI"; + if (err_msg != NULL) + { + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + } + goto end; + } + + /* loading and parsing the WFS schema */ + schema = + load_wfs_schema (describe_uri, layer_name, swap_axes, + err_msg); + if (schema == NULL) + goto end; + + /* creating the output table */ + root = xmlDocGetRootElement (xml_doc); + sniffed = 0; + sniff_geometries (root, schema, &sniffed); + + if (page_size > 0) + { + /* testing if the server does actually support STARTINDEX */ + root = xmlDocGetRootElement (xml_doc); + if (!test_wfs_paging + (path_or_url, page_size, root, schema, &shift_index)) + { + const char *err = + "loawfs: the WFS server doesn't seem to support STARTINDEX\n" + "and consequently WFS paging is not available"; + if (err_msg != NULL) + { + len = strlen (err); + *err_msg = malloc (len + 1); + strcpy (*err_msg, err); + } + goto end; + } + startIdx += shift_index; + } + + if (!prepare_sql + (sqlite, schema, table, pk_column_name, spatial_index, + err_msg)) + goto end; + } + + /* parsing the WFS payload */ + root = xmlDocGetRootElement (xml_doc); + nRows = 0; + parse_wfs_features (root, schema, &nRows, err_msg); + *rows += nRows; + if (progress_callback != NULL) + { + /* invoking the progress callback */ + int ext_rows = *rows; + progress_callback (ext_rows, callback_ptr); + } + + if (schema->error) + { + *rows = 0; + do_rollback (sqlite, schema); + } + else + { + if (page_size > 0 && nRows >= page_size) + restart_transaction (sqlite); + else + do_commit (sqlite, schema); + } + if (schema->error) + { + *rows = 0; + goto end; + } + if (page_size <= 0) + break; + if (nRows < page_size) + break; + + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + xml_doc = NULL; + pageNo++; + startIdx += nRows; + } + + if (schema->geometry_type == GAIA_GEOMETRYCOLLECTION) + { + /* attempting to set a more precise GeometryType */ + int type; + int cast_type; + int cast_dims; + if (check_real_type (schema, &type, &cast_type, &cast_dims)) + { + do_adjust_geoms (sqlite, table, schema->geometry_name, type, + cast_type, cast_dims); + } + } + ok = 1; + end: + if (schema != NULL) + free_wfs_layer_schema (schema); + if (describe_uri != NULL) + free (describe_uri); + gaiaOutBufferReset (&errBuf); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + return ok; +} + +static void +parse_keyword (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* parsing WFS values */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) cur_node->name, "Keyword") == 0) + { + xmlNodePtr child_node = cur_node->children; + if (child_node != NULL) + { + if (child_node->type == XML_TEXT_NODE) + { + struct wfs_layer_def *lyr = catalog->last; + add_wfs_keyword_to_layer (lyr, + (const char + *) + (child_node-> + content)); + } + } + } + } + } +} + +static void +parse_keyword_string (char *in, struct wfs_catalog *catalog) +{ +/* parsing WFS from within a comma delimited string */ + struct wfs_layer_def *lyr = catalog->last; + int len = strlen (in); + char *end = in + len; + char *base = in; + while (base < end) + { + char *p = base; + while (p <= end) + { + if (*p == ',' || *p == '\0') + { + const char *start; + *p = '\0'; + start = base; + while (*start == ' ' || *start == '\t' || *start == '\n' + || *start == '\r') + start++; + add_wfs_keyword_to_layer (lyr, start); + p++; + base = p; + break; + } + p++; + } + } +} + +static void +parse_keywords (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* parsing the WFS Keywords */ + if (node != NULL) + { + parse_keyword (node, catalog); + if (node->type == XML_TEXT_NODE) + { + int len = strlen ((const char *) (node->content)); + char *string = malloc (len + 1); + strcpy (string, (const char *) (node->content)); + parse_keyword_string (string, catalog); + free (string); + } + } +} + +static void +parse_wfs_layer (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* parsing a WFS layer definition (GetCapabilities/FeatureType) */ + xmlNodePtr cur_node = NULL; + xmlNodePtr child_node = NULL; + const char *name = NULL; + const char *title = NULL; + const char *abstract = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "Name") == 0) + { + child_node = cur_node->children; + if (child_node != NULL) + { + if (child_node->type == XML_TEXT_NODE) + name = (const char *) (child_node->content); + } + } + if (strcmp ((const char *) (cur_node->name), "Title") == 0) + { + child_node = cur_node->children; + if (child_node != NULL) + { + if (child_node->type == XML_TEXT_NODE) + title = (const char *) (child_node->content); + } + } + if (strcmp ((const char *) (cur_node->name), "Abstract") == 0) + { + child_node = cur_node->children; + if (child_node != NULL) + { + if (child_node->type == XML_TEXT_NODE) + abstract = (const char *) (child_node->content); + } + } + } + } + + if (name != NULL) + { + add_wfs_layer_to_catalog (catalog, name, title, abstract); + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "SRS") == 0 + || strcmp ((const char *) (cur_node->name), + "DefaultSRS") == 0 + || strcmp ((const char *) (cur_node->name), + "OtherSRS") == 0) + { + int srid = parse_srsname (cur_node->children); + if (srid > 0) + { + struct wfs_layer_def *lyr = catalog->last; + add_wfs_srid_to_layer (lyr, srid, + (const char + *) + (cur_node->children-> + content)); + } + } + if (strcmp ((const char *) (cur_node->name), "Keywords") + == 0) + parse_keywords (cur_node->children, catalog); + } + } + } +} + +static void +parse_wfs_get_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + struct _xmlAttr *attr = node->properties; + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "onlineResource") == 0) + { + xmlNodePtr text = attr->children; + if (text != NULL) + { + if (text->type == XML_TEXT_NODE) + { + if (mode) + set_wfs_catalog_base_request_url (catalog, + (const + char + *) + (text-> + content)); + else + set_wfs_catalog_base_describe_url + (catalog, + (const char *) (text->content)); + } + } + } + } + attr = attr->next; + } +} + +static void +parse_wfs_http_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "Get") == 0) + parse_wfs_get_100 (cur_node, catalog, mode); + } + } +} + +static void +parse_wfs_dcptype_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) + parse_wfs_http_100 (cur_node->children, catalog, mode); + } + } +} + +static void +parse_wfs_getfeature_100 (xmlNodePtr node, struct wfs_catalog *catalog, + int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "DCPType") == 0) + parse_wfs_dcptype_100 (cur_node->children, catalog, mode); + } + } +} + +static void +parse_wfs_request_100 (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "GetFeature") == 0) + parse_wfs_getfeature_100 (cur_node->children, catalog, 1); + if (strcmp + ((const char *) (cur_node->name), + "DescribeFeatureType") == 0) + parse_wfs_getfeature_100 (cur_node->children, catalog, 0); + } + } +} + +static void +parse_wfs_base_url_100 (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* attempting to find the GetFeature base-URL (WFS 1.0.0) */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "Request") == 0) + parse_wfs_request_100 (cur_node->children, catalog); + } + } +} + +static void +parse_wfs_get_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + struct _xmlAttr *attr = node->properties; + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "href") == 0) + { + xmlNodePtr text = attr->children; + if (text != NULL) + { + if (text->type == XML_TEXT_NODE) + { + if (mode) + set_wfs_catalog_base_request_url (catalog, + (const + char + *) + (text-> + content)); + else + set_wfs_catalog_base_describe_url + (catalog, + (const char *) (text->content)); + } + } + } + } + attr = attr->next; + } +} + +static void +parse_wfs_http_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + xmlNodePtr cur_node = NULL; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "Get") == 0) + parse_wfs_get_110 (cur_node, catalog, mode); + } + } +} + +static void +parse_wfs_dcp_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + xmlNodePtr cur_node = NULL; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) + parse_wfs_http_110 (cur_node->children, catalog, mode); + } + } +} + +static void +parse_wfs_getfeature_110 (xmlNodePtr node, struct wfs_catalog *catalog, + int mode) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + xmlNodePtr cur_node = NULL; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "DCP") == 0) + parse_wfs_dcp_110 (cur_node->children, catalog, mode); + } + } +} + +static void +parse_wfs_operation_110 (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + struct _xmlAttr *attr = node->properties; + while (attr != NULL) + { + if (attr->name != NULL) + { + if (strcmp ((const char *) (attr->name), "name") == 0) + { + xmlNodePtr text = attr->children; + if (text != NULL) + { + if (text->type == XML_TEXT_NODE) + { + if (strcmp + ((const char *) (text->content), + "GetFeature") == 0) + parse_wfs_getfeature_110 (node->children, + catalog, 1); + if (strcmp + ((const char *) (text->content), + "DescribeFeatureType") == 0) + parse_wfs_getfeature_110 (node->children, + catalog, 0); + } + } + } + } + attr = attr->next; + } +} + +static void +parse_wfs_base_url_110 (xmlNodePtr node, struct wfs_catalog *catalog) +{ +/* attempting to find the GetFeature base-URL (WFS 1.1.0) */ + xmlNodePtr cur_node = NULL; + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "Operation") == 0) + parse_wfs_operation_110 (cur_node, catalog); + } + } +} + +static void +parse_wfs_catalog (xmlNodePtr node, struct wfs_catalog *catalog, + int *capabilities, int *list) +{ +/* recursively parsing the GetCapabilities payload */ + xmlNodePtr cur_node = NULL; + + for (cur_node = node; cur_node; cur_node = cur_node->next) + { + if (cur_node->type == XML_ELEMENT_NODE) + { + if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") + == 0) + *capabilities = 1; + if (*capabilities != 0 + && strcmp ((const char *) (cur_node->name), + "FeatureTypeList") == 0) + *list = 1; + if (*capabilities != 0 && *list == 0 + && strcmp ((const char *) (cur_node->name), + "Capability") == 0) + parse_wfs_base_url_100 (cur_node->children, catalog); + if (*capabilities != 0 && *list == 0 + && strcmp ((const char *) (cur_node->name), + "OperationsMetadata") == 0) + parse_wfs_base_url_110 (cur_node->children, catalog); + if (*list != 0 + && strcmp ((const char *) (cur_node->name), + "FeatureType") == 0) + parse_wfs_layer (cur_node->children, catalog); + else + parse_wfs_catalog (cur_node->children, catalog, + capabilities, list); + if (*capabilities != 0 + && strcmp ((const char *) (cur_node->name), + "FeatureTypeList") == 0) + *list = 0; + if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") + == 0) + *capabilities = 0; + } + } +} + +SPATIALITE_DECLARE gaiaWFScatalogPtr +create_wfs_catalog (const char *path_or_url, char **err_msg) +{ +/* attempting to get and parse a WFS GetCapabilities request */ + xmlDocPtr xml_doc = NULL; + xmlNodePtr root; + struct wfs_catalog *catalog = NULL; + int len; + int capabilities = 0; + int list = 0; + gaiaOutBuffer errBuf; + xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; + if (err_msg != NULL) + *err_msg = NULL; + if (path_or_url == NULL) + return 0; + +/* loading the WFS GetCapabilities from URL (or file) */ + gaiaOutBufferInitialize (&errBuf); + xmlSetGenericErrorFunc (&errBuf, parsingError); + xml_doc = xmlReadFile (path_or_url, NULL, 0); + if (xml_doc == NULL) + { + /* parsing error; not a well-formed XML */ + if (errBuf.Buffer != NULL && err_msg != NULL) + { + len = strlen (errBuf.Buffer); + *err_msg = malloc (len + 1); + strcpy (*err_msg, errBuf.Buffer); + } + goto end; + } + +/* parsing the WFS payload */ + catalog = alloc_wfs_catalog (); + root = xmlDocGetRootElement (xml_doc); + parse_wfs_catalog (root, catalog, &capabilities, &list); + if (get_wfs_catalog_count ((gaiaWFScatalogPtr) catalog) <= 0) + { + free_wfs_catalog (catalog); + catalog = NULL; + goto end; + } + + end: + gaiaOutBufferReset (&errBuf); + xmlSetGenericErrorFunc ((void *) stderr, NULL); + if (xml_doc != NULL) + xmlFreeDoc (xml_doc); + return (gaiaWFScatalogPtr) catalog; +} + +SPATIALITE_DECLARE void +destroy_wfs_catalog (gaiaWFScatalogPtr handle) +{ +/* memory cleanup: freeing a WFS-Catalog object */ + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return; + free_wfs_catalog (ptr); +} + +SPATIALITE_DECLARE const char * +get_wfs_base_request_url (gaiaWFScatalogPtr handle) +{ +/* return the base URL for any WFS-GetFeature call */ + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return NULL; + return ptr->request_url; +} + +SPATIALITE_DECLARE const char * +get_wfs_base_describe_url (gaiaWFScatalogPtr handle) +{ +/* return the base URL for any WFS-DescribeFeatureType call */ + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return NULL; + return ptr->describe_url; +} + +SPATIALITE_DECLARE int +get_wfs_catalog_count (gaiaWFScatalogPtr handle) +{ +/* counting how many layers are defined within a WFS-Catalog */ + int count = 0; + struct wfs_layer_def *lyr; + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return -1; + + lyr = ptr->first; + while (lyr != NULL) + { + count++; + lyr = lyr->next; + } + return count; +} + +SPATIALITE_DECLARE gaiaWFSitemPtr +get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) +{ +/* attempting to get a reference to some WFS-Layer object */ + int count = 0; + struct wfs_layer_def *lyr; + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return NULL; + + lyr = ptr->first; + while (lyr != NULL) + { + if (count == index) + return (gaiaWFSitemPtr) lyr; + count++; + lyr = lyr->next; + } + return NULL; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_name (gaiaWFSitemPtr handle) +{ +/* return the name corresponding to a WFS-Layer object */ + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return NULL; + return ptr->name; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_title (gaiaWFSitemPtr handle) +{ +/* return the title corresponding to a WFS-Layer object */ + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return NULL; + return ptr->title; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_abstract (gaiaWFSitemPtr handle) +{ +/* return the abstract corresponding to a WFS-Layer object */ + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return NULL; + return ptr->abstract; +} + +SPATIALITE_DECLARE int +get_wfs_layer_srid_count (gaiaWFSitemPtr handle) +{ +/* counting how many SRIDs are supported by a WFS-Layer */ + int count = 0; + struct wfs_srid_def *srid; + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return -1; + + srid = ptr->first_srid; + while (srid != NULL) + { + count++; + srid = srid->next; + } + return count; +} + +SPATIALITE_DECLARE int +get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) +{ +/* attempting to get the Nth SRID supported by some WFS-Layer object */ + int count = 0; + struct wfs_srid_def *srid; + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return -1; + + srid = ptr->first_srid; + while (srid != NULL) + { + if (count == index) + return srid->srid; + count++; + srid = srid->next; + } + return -1; +} + +SPATIALITE_DECLARE int +get_wfs_keyword_count (gaiaWFSitemPtr handle) +{ +/* counting how many Keywords are supported by a WFS-Layer */ + int count = 0; + struct wfs_keyword *key; + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return -1; + + key = ptr->first_key; + while (key != NULL) + { + count++; + key = key->next; + } + return count; +} + +SPATIALITE_DECLARE const char * +get_wfs_keyword (gaiaWFSitemPtr handle, int index) +{ +/* attempting to get the Nth Keyword supported by some WFS-Layer object */ + int count = 0; + struct wfs_keyword *key; + struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; + if (ptr == NULL) + return NULL; + + key = ptr->first_key; + while (key != NULL) + { + if (count == index) + return key->keyword; + count++; + key = key->next; + } + return NULL; +} + +static char * +build_request_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, + const char *version, int srid, int max_features) +{ +/* creating the request URL */ + char *url; + char *url2; + const char *srs_name = NULL; + int len; + const char *ver = "1.1.0"; + if (ptr->request_url == NULL) + return NULL; + if (version != NULL) + { + if (strcmp (version, "1.0.0") == 0) + ver = "1.0.0"; + } + if (srid > 0) + { + struct wfs_srid_def *srs = lyr->first_srid; + while (srs != NULL) + { + if (srs->srid == srid) + { + /* found the required SRS definition */ + srs_name = srs->srs_name; + break; + } + srs = srs->next; + } + } + if (max_features <= 0) + { + if (srs_name == NULL) + url = + sqlite3_mprintf + ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s", + ptr->request_url, ver, lyr->name); + else + url = + sqlite3_mprintf + ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s", + ptr->request_url, ver, lyr->name, srs_name); + } + else + { + if (srs_name == NULL) + url = + sqlite3_mprintf + ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&maxFeatures=%d", + ptr->request_url, ver, lyr->name, max_features); + else + url = + sqlite3_mprintf + ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s&maxFeatures=%d", + ptr->request_url, ver, lyr->name, srs_name, max_features); + } + len = strlen (url); + url2 = malloc (len + 1); + strcpy (url2, url); + sqlite3_free (url); + return url2; +} + +SPATIALITE_DECLARE char * +get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, + const char *version, int srid, int max_features) +{ +/* attempting to format a GetFeature (GET) URL */ + struct wfs_layer_def *lyr; + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return NULL; + if (name == NULL) + return NULL; + + lyr = ptr->first; + while (lyr != NULL) + { + if (strcmp (lyr->name, name) == 0) + return build_request_url (ptr, lyr, version, srid, max_features); + lyr = lyr->next; + } + return NULL; +} + +static char * +build_describe_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, + const char *version) +{ +/* creating the DescribeFeatureType URL */ + char *url; + char *url2; + int len; + const char *ver = "1.1.0"; + if (ptr->describe_url == NULL) + return NULL; + if (version != NULL) + { + if (strcmp (version, "1.0.0") == 0) + ver = "1.0.0"; + } + url = + sqlite3_mprintf + ("%sservice=WFS&version=%s&request=DescribeFeatureType&typeName=%s", + ptr->describe_url, ver, lyr->name); + len = strlen (url); + url2 = malloc (len + 1); + strcpy (url2, url); + sqlite3_free (url); + return url2; +} + +SPATIALITE_DECLARE char * +get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, + const char *version) +{ +/* attempting to format a DescribeFeatureType (GET) URL */ + struct wfs_layer_def *lyr; + struct wfs_catalog *ptr = (struct wfs_catalog *) handle; + if (ptr == NULL) + return NULL; + if (name == NULL) + return NULL; + + lyr = ptr->first; + while (lyr != NULL) + { + if (strcmp (lyr->name, name) == 0) + return build_describe_url (ptr, lyr, version); + lyr = lyr->next; + } + return NULL; +} + +SPATIALITE_DECLARE gaiaWFSschemaPtr +create_wfs_schema (const char *path_or_url, const char *layer_name, + char **err_msg) +{ +/* public method: creating a WFS-Schema object */ + return (gaiaWFSschemaPtr) load_wfs_schema (path_or_url, layer_name, 0, + err_msg); +} + +SPATIALITE_DECLARE void +destroy_wfs_schema (gaiaWFSschemaPtr handle) +{ +/* public metod: destroying a WFS-Schema object */ + struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; + if (ptr == NULL) + return; + free_wfs_layer_schema (ptr); +} + +SPATIALITE_DECLARE int +get_wfs_schema_column_count (gaiaWFSschemaPtr handle) +{ +/* counting how many layers are defined within a WFS-Schema */ + int count = 0; + struct wfs_column_def *col; + struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; + if (ptr == NULL) + return -1; + + col = ptr->first; + while (col != NULL) + { + count++; + col = col->next; + } + return count; +} + +SPATIALITE_DECLARE gaiaWFScolumnPtr +get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) +{ +/* attempting to get a reference to some WFS-Column object */ + int count = 0; + struct wfs_column_def *col; + struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; + if (ptr == NULL) + return NULL; + + col = ptr->first; + while (col != NULL) + { + if (count == index) + return (gaiaWFScolumnPtr) col; + count++; + col = col->next; + } + return NULL; +} + +SPATIALITE_DECLARE int +get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, + int *type, int *srid, int *dims, int *nullable) +{ +/* Return the infos describing a WFS-GeometryColumn object */ + struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; + if (ptr == NULL) + return 0; + if (ptr->geometry_name == NULL) + return 0; + *name = ptr->geometry_name; + *type = ptr->geometry_type; + *srid = ptr->srid; + *dims = ptr->dims; + *nullable = ptr->is_nullable; + return 1; +} + +SPATIALITE_DECLARE int +get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, + int *type, int *nullable) +{ +/* Return the infos describing a WFS-Column object */ + struct wfs_column_def *ptr = (struct wfs_column_def *) handle; + if (ptr == NULL) + return 0; + *name = ptr->name; + *type = ptr->type; + *nullable = ptr->is_nullable; + return 1; +} + +SPATIALITE_DECLARE void +reset_wfs_http_connection (void) +{ +/* Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings */ + xmlNanoHTTPCleanup (); +} + +#else /* LIBXML2 isn't enabled */ + +SPATIALITE_DECLARE int +load_from_wfs (sqlite3 * sqlite, const char *path_or_url, + const char *alt_describe_uri, const char *layer_name, + int swap_axes, const char *table, const char *pk_column_name, + int spatial_index, int *rows, char **err_msg, + void (*progress_callback) (int, void *), void *callback_ptr) +{ +/* LIBXML2 isn't enabled: always returning an error */ + return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, + layer_name, swap_axes, table, pk_column_name, + spatial_index, -1, rows, err_msg, + progress_callback, callback_ptr); +} + +SPATIALITE_DECLARE int +load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, + const char *alt_describe_uri, const char *layer_name, + int swap_axes, const char *table, + const char *pk_column_name, int spatial_index, + int page_size, int *rows, char **err_msg, + void (*progress_callback) (int, void *), + void *callback_ptr) +{ +/* LIBXML2 isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" + "and is thus unable to support LOADWFS"; + +/* silencing stupid compiler warnings */ + if (sqlite == NULL || path_or_url == NULL || layer_name == NULL + || alt_describe_uri == NULL || swap_axes == 0 || table == NULL + || pk_column_name == NULL || spatial_index == 0 || page_size == 0 + || rows == NULL || progress_callback == NULL + || progress_callback == NULL || callback_ptr == NULL) + path_or_url = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return 0; +} + +SPATIALITE_DECLARE gaiaWFScatalogPtr +create_wfs_catalog (const char *path_or_url, char **err_msg) +{ +/* LIBXML2 isn't enabled: always returning an error */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" + "and is thus unable to support WFS-CATALOG"; + +/* silencing stupid compiler warnings */ + if (path_or_url != NULL) + path_or_url = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return NULL; +} + +SPATIALITE_DECLARE void +destroy_wfs_catalog (gaiaWFScatalogPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return; +} + +SPATIALITE_DECLARE const char * +get_wfs_base_request_url (gaiaWFScatalogPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE const char * +get_wfs_base_describe_url (gaiaWFScatalogPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE int +get_wfs_catalog_count (gaiaWFScatalogPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return -1; +} + +SPATIALITE_DECLARE gaiaWFSitemPtr +get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || index < 0) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_name (gaiaWFSitemPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_title (gaiaWFSitemPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE const char * +get_wfs_item_abstract (gaiaWFSitemPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE int +get_wfs_layer_srid_count (gaiaWFSitemPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return -1; +} + +SPATIALITE_DECLARE int +get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || index < 0) + handle = NULL; + return -1; +} + +SPATIALITE_DECLARE int +get_wfs_keyword_count (gaiaWFSitemPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return -1; +} + +SPATIALITE_DECLARE const char * +get_wfs_keyword (gaiaWFSitemPtr handle, int index) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || index < 0) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE char * +get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, + const char *version, int srid, int max_features) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || name == NULL || version == NULL || srid == 0 + || max_features == 0) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE char * +get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, + const char *version) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || name == NULL || version == NULL) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE gaiaWFSschemaPtr +create_wfs_schema (const char *path_or_url, const char *layer_name, + char **err_msg) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + int len; + const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" + "and is thus unable to support WFS-SCHEMA"; + +/* silencing stupid compiler warnings */ + if (path_or_url != NULL || layer_name == NULL) + path_or_url = NULL; + + if (err_msg == NULL) + return 0; + len = strlen (msg); + *err_msg = malloc (len + 1); + strcpy (*err_msg, msg); + return NULL; +} + +SPATIALITE_DECLARE void +destroy_wfs_schema (gaiaWFSschemaPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; +} + +SPATIALITE_DECLARE int +get_wfs_schema_column_count (gaiaWFSschemaPtr handle) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL) + handle = NULL; + return -1; +} + +SPATIALITE_DECLARE gaiaWFScolumnPtr +get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || index == 0) + handle = NULL; + return NULL; +} + +SPATIALITE_DECLARE int +get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, + int *type, int *srid, int *dims, int *nullable) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || name == NULL || type == NULL || srid == NULL + || dims == NULL || nullable == NULL) + handle = NULL; + return 0; +} + +SPATIALITE_DECLARE int +get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, + int *type, int *nullable) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + +/* silencing stupid compiler warnings */ + if (handle != NULL || name == NULL || type == NULL || nullable == NULL) + handle = NULL; + return 0; +} + +SPATIALITE_DECLARE void +reset_wfs_http_connection (void) +{ +/* LIBXML2 isn't enabled: does absolutely nothing */ + return; +} + +#endif /* end LIBXML2 conditionals */ diff --git a/src/spatialite/test-driver b/src/spatialite/test-driver new file mode 100755 index 0000000..32bf39e --- /dev/null +++ b/src/spatialite/test-driver @@ -0,0 +1,127 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2012-06-27.10; # UTC + +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? +if test $enable_hard_errors = no && test $estatus -eq 99; then + estatus=1 +fi + +case $estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/spatialite/test/22.dxf b/src/spatialite/test/22.dxf new file mode 100644 index 0000000..951bc3f --- /dev/null +++ b/src/spatialite/test/22.dxf @@ -0,0 +1,2988 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1015 + 9 +$ACADMAINTVER + 70 + 20 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +602115.796875 + 20 +961637.7187500001 + 30 +0.0 + 9 +$EXTMAX + 10 +605457.53125 + 20 +964469.4531250001 + 30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +12.0 + 20 +9.0 + 9 +$ORTHOMODE + 70 + 1 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 0 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +0.2 + 9 +$TRACEWID + 40 +0.05 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +Continuous + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +0.18 + 9 +$DIMEXO + 40 +0.0625 + 9 +$DIMDLI + 40 +0.38 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +0.18 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +0.18 + 9 +$DIMCEN + 40 +0.09 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 + 0 + 9 +$DIMLIM + 70 + 0 + 9 +$DIMTIH + 70 + 1 + 9 +$DIMTOH + 70 + 1 + 9 +$DIMSE1 + 70 + 0 + 9 +$DIMSE2 + 70 + 0 + 9 +$DIMTAD + 70 + 0 + 9 +$DIMZIN + 70 + 0 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 + 1 + 9 +$DIMSHO + 70 + 1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 + 0 + 9 +$DIMALTD + 70 + 2 + 9 +$DIMALTF + 40 +25.4 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 + 0 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 + 0 + 9 +$DIMSOXD + 70 + 0 + 9 +$DIMSAH + 70 + 0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +Standard + 9 +$DIMCLRD + 70 + 0 + 9 +$DIMCLRE + 70 + 0 + 9 +$DIMCLRT + 70 + 0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.09 + 9 +$DIMJUST + 70 + 0 + 9 +$DIMSD1 + 70 + 0 + 9 +$DIMSD2 + 70 + 0 + 9 +$DIMTOLJ + 70 + 1 + 9 +$DIMTZIN + 70 + 0 + 9 +$DIMALTZ + 70 + 0 + 9 +$DIMALTTZ + 70 + 0 + 9 +$DIMUPT + 70 + 0 + 9 +$DIMDEC + 70 + 4 + 9 +$DIMTDEC + 70 + 4 + 9 +$DIMALTU + 70 + 2 + 9 +$DIMALTTD + 70 + 2 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 + 0 + 9 +$DIMADEC + 70 + 0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 + 0 + 9 +$DIMDSEP + 70 + 46 + 9 +$DIMATFIT + 70 + 3 + 9 +$DIMFRAC + 70 + 0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 + 2 + 9 +$DIMLWD + 70 + -2 + 9 +$DIMLWE + 70 + -2 + 9 +$DIMTMOVE + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +0.1 + 9 +$FILLETRAD + 40 +0.0 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 0 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$TDCREATE + 40 +2454957.424852315 + 9 +$TDUCREATE + 40 +2454957.383185649 + 9 +$TDUPDATE + 40 +2456297.477353959 + 9 +$TDUUPDATE + 40 +2456297.435687292 + 9 +$TDINDWG + 40 +0.4710542014 + 9 +$TDUSRTIMER + 40 +0.4710542014 + 9 +$USRTIMER + 70 + 1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +B1CE + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 + 0 + 9 +$USERI2 + 70 + 0 + 9 +$USERI3 + 70 + 0 + 9 +$USERI4 + 70 + 0 + 9 +$USERI5 + 70 + 0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1.000000000000000E+20 + 20 +1.000000000000000E+20 + 30 +1.000000000000000E+20 + 9 +$PEXTMAX + 10 +-1.000000000000000E+20 + 20 +-1.000000000000000E+20 + 30 +-1.000000000000000E+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +12.0 + 20 +9.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +1.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 0 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 0 + 9 +$INSUNITS + 70 + 6 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$FINGERPRINTGUID + 2 +{E4D93A1D-E743-440C-AF20-08095301FC97} + 9 +$VERSIONGUID + 2 +{4ABEB1F0-D49C-4879-85A9-6A4C0FB530C9} + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +TABLESTYLE + 2 +AcDbTableStyle + 3 +ObjectDBX Classes + 90 + 2047 +280 + 0 +281 + 0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +SORTENTSTABLE + 2 +AcDbSortentsTable + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +1F +330 +0 +100 +AcDbSymbolTable + 70 + 6 + 0 +VPORT + 5 +B1C7 +330 +1F +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +603786.6640625001 + 22 +963053.5859375001 + 13 +0.0 + 23 +0.0 + 14 +1.0 + 24 +1.0 + 15 +0.0 + 25 +0.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +2854.418495493941 + 41 +1.635026737967914 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 1 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +1A +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +LTYPE + 5 +1B +330 +1A +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +1C +330 +1A +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +A +330 +1A +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +12 +102 +{ACAD_XDICTIONARY +360 +13 +102 +} +330 +0 +100 +AcDbSymbolTable + 70 + 21 + 0 +LAYER + 5 +6 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +247 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +FERR_LIN + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +B161 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +GRIGLIA + 70 + 0 + 62 + 150 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +B16B +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +GRIGLIA_TESTI + 70 + 0 + 62 + 150 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +2CD +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +QUARTIERI + 70 + 0 + 62 + 30 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +2D6 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +QUARTIERI_TESTI + 70 + 0 + 62 + 30 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +2DA +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SCARPATE + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +33D +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TOPONIMI + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +376 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TORRENTIRID + 70 + 0 + 62 + 140 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +B15E +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TUSCS + 70 + 0 + 62 + 50 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +388 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VESPOL + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +3C0 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VESPUN + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +437 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VIAB02NOMI + 70 + 0 + 62 + 254 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +1245 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VIAB04 + 70 + 0 + 62 + 3 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +3C0C +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VIAB04_TESTI + 70 + 0 + 62 + 3 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +2E +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VUOVIA + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +B50 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VIAB02NOMI_TESTI + 70 + 0 + 62 + 1 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +65DB +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +FABBRI + 70 + 0 + 62 + 31 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +A609 +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VIAB01 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +7 + 0 +LAYER + 5 +7F4B +330 +12 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +VESLIN + 70 + 0 + 62 + 253 + 6 +Continuous +370 + -3 +390 +7 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +17 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +STYLE + 5 +18 +330 +17 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +txt + 4 + + 0 +STYLE + 5 +B51 +330 +17 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Arial + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +ARIAL.TTF + 4 + +1001 +ACAD +1000 +Arial +1071 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +1D +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +1E +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +21 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +16 +330 +21 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +22 +330 +0 +100 +AcDbSymbolTable + 70 + 2 +100 +AcDbDimStyleTable + 71 + 0 + 0 +DIMSTYLE +105 +2C +330 +22 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 + 0 +340 +18 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +2 +102 +{ACAD_XDICTIONARY +360 +3 +102 +} +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +C + 0 +BLOCK_RECORD + 5 +E +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +11 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +5 +330 +2 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +B +330 +2 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +F +330 +E +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +10 +330 +E +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LWPOLYLINE + 5 +2D +330 +2 +100 +AcDbEntity + 8 +VUOVIA +100 +AcDbPolyline + 90 + 33 + 70 + 0 + 43 +0.0 + 10 +605067.461566588 + 20 +964463.8900049555 + 10 +605066.1518000001 + 20 +964456.5304000005 + 10 +605063.7647000002 + 20 +964450.0256000032 + 10 +605062.2284000013 + 20 +964446.8836000022 + 10 +605060.9081000006 + 20 +964444.3896999993 + 10 +605059.7345000003 + 20 +964441.822400002 + 10 +605058.2675000019 + 20 +964439.0351000019 + 10 +605056.7272000005 + 20 +964436.614600001 + 10 +605054.8201000011 + 20 +964434.5607999992 + 10 +605053.8715000023 + 20 +964433.7307999991 + 10 +605053.0597000011 + 20 +964433.0204000027 + 10 +605051.8126999996 + 20 +964432.2869000006 + 10 +605050.1256999997 + 20 +964431.4801000003 + 10 +605048.9832999995 + 20 +964431.1649000012 + 10 +605047.9984999998 + 20 +964430.8933000006 + 10 +605046.7014000006 + 20 +964430.8231000024 + 10 +605045.2846000009 + 20 +964430.7466000022 + 10 +605042.0571999997 + 20 +964430.4531999994 + 10 +605035.9438000005 + 20 +964430.1807000005 + 10 +605034.2199999998 + 20 +964429.9991999995 + 10 +605029.2704999996 + 20 +964429.9230000022 + 10 +605023.8299000003 + 20 +964430.5518999994 + 10 +605019.5698000006 + 20 +964431.2432000004 + 10 +605014.9455999993 + 20 +964432.5893000011 + 10 +605010.626600001 + 20 +964434.2849000024 + 10 +605005.5176000008 + 20 +964436.2206999995 + 10 +605001.8887000018 + 20 +964438.1926000008 + 10 +604998.1287000012 + 20 +964441.2343000025 + 10 +604994.8519000011 + 20 +964445.0837999993 + 10 +604992.1574000009 + 20 +964449.1583000013 + 10 +604990.3370000003 + 20 +964452.9418000002 + 10 +604988.7713000011 + 20 +964458.1443000008 + 10 +604986.9848936607 + 20 +964462.5783273287 + 0 +LWPOLYLINE + 5 +36 +330 +2 +100 +AcDbEntity + 8 +VUOVIA +100 +AcDbPolyline + 90 + 8 + 70 + 1 + 43 +0.0 + 10 +605038.3097 + 20 +964417.4635000043 + 10 +605036.2088000001 + 20 +964411.8126999979 + 10 +605032.9289000007 + 20 +964414.1215000004 + 10 +605030.8686000016 + 20 +964415.2428000012 + 10 +605030.6259000013 + 20 +964415.3749000039 + 10 +605028.6983000003 + 20 +964417.4445000011 + 10 +605031.4258000013 + 20 +964417.258899998 + 10 +605034.9945999998 + 20 +964417.0161000026 + 0 +LWPOLYLINE + 5 +C4 +330 +2 +100 +AcDbEntity + 8 +VUOVIA +100 +AcDbPolyline + 90 + 26 + 70 + 1 + 43 +0.0 + 10 +603445.1815999998 + 20 +963097.616200002 + 10 +603444.025200001 + 20 +963097.5636000037 + 10 +603442.7571000001 + 20 +963097.7266000007 + 10 +603441.3175999997 + 20 +963098.3131000029 + 10 +603440.2007000009 + 20 +963099.2204999998 + 10 +603439.3112000013 + 20 +963100.4066000024 + 10 +603438.7155999998 + 20 +963101.7378000002 + 10 +603438.5389 + 20 +963103.4700000007 + 10 +603438.9316999996 + 20 +963105.3219000008 + 10 +603439.4432000016 + 20 +963106.3120000046 + 10 +603439.6689999997 + 20 +963106.5830000025 + 10 +603440.104700001 + 20 +963107.105800003 + 10 +603441.4987999992 + 20 +963108.1560999994 + 10 +603442.9342999999 + 20 +963108.7232000009 + 10 +603444.4706000016 + 20 +963108.8629000002 + 10 +603446.0024000006 + 20 +963108.5491000023 + 10 +603447.1664000005 + 20 +963108.0453000013 + 10 +603448.1980999997 + 20 +963107.2027000023 + 10 +603449.1846000012 + 20 +963105.8812000027 + 10 +603449.6464 + 20 +963104.7010000031 + 10 +603449.8492 + 20 +963103.2444999982 + 10 +603449.7118999995 + 20 +963101.8539000024 + 10 +603449.3681000014 + 20 +963101.0634000004 + 10 +603448.9886000017 + 20 +963100.1905000024 + 10 +603447.8212000011 + 20 +963098.8406000007 + 10 +603446.6119 + 20 +963098.0631000028 + 0 +TEXT + 5 +53E1 +330 +2 +100 +AcDbEntity + 8 +VIAB04_TESTI +100 +AcDbText + 10 +605403.3043343842 + 20 +962381.2785594415 + 30 +0.0 + 40 +1.016002032004063 + 1 +24 A + 7 +Arial + 72 + 1 + 11 +605404.7652704576 + 21 +962380.9777784853 + 31 +0.0 +100 +AcDbText + 73 + 1 + 0 +TEXT + 5 +53E2 +330 +2 +100 +AcDbEntity + 8 +VIAB04_TESTI +100 +AcDbText + 10 +605167.4293343854 + 20 +962423.9035594415 + 30 +0.0 + 40 +1.016002032004063 + 1 +49 A + 7 +Arial + 72 + 1 + 11 +605168.8902704587 + 21 +962423.6027784853 + 31 +0.0 +100 +AcDbText + 73 + 1 + 0 +LWPOLYLINE + 5 +AE8E +330 +2 +100 +AcDbEntity + 8 +VIAB01 +100 +AcDbPolyline + 90 + 117 + 70 + 1 + 43 +0.0 + 10 +605234.4713000003 + 20 +964005.9986000006 + 10 +605228.7942000003 + 20 +964007.4591000006 + 10 +605253.3174999999 + 20 +964096.7792000008 + 10 +605253.3578000003 + 20 +964096.9129000009 + 10 +605253.7092000005 + 20 +964097.9879000001 + 10 +605253.7198999999 + 20 +964098.0200999994 + 10 +605253.7890999997 + 20 +964098.2039 + 10 +605253.8044999996 + 20 +964098.2404999995 + 10 +605254.2511 + 20 +964099.2795000002 + 10 +605254.3167000003 + 20 +964099.4217000008 + 10 +605254.3685999997 + 20 +964099.5220999997 + 10 +605254.9067000001 + 20 +964100.5168999994 + 10 +605254.9473000001 + 20 +964100.5896000006 + 10 +605255.0456999997 + 20 +964100.7484000009 + 10 +605255.6710000001 + 20 +964101.6907000002 + 10 +605255.6763000004 + 20 +964101.6985999998 + 10 +605255.7906 + 20 +964101.8582000008 + 10 +605255.8300000001 + 20 +964101.9083999992 + 10 +605256.5373999998 + 20 +964102.7907999998 + 10 +605256.6226000004 + 20 +964102.8923000005 + 10 +605256.7156999996 + 20 +964102.9936999997 + 10 +605257.4995999997 + 20 +964103.8089000005 + 10 +605257.5406999999 + 20 +964103.8508000001 + 10 +605257.6840000003 + 20 +964103.9849999994 + 10 +605257.6948999996 + 20 +964103.9945000002 + 10 +605258.5488 + 20 +964104.7360999994 + 10 +605258.6896000001 + 20 +964104.8511999995 + 10 +605258.7604000001 + 20 +964104.9037999996 + 10 +605259.6775000003 + 20 +964105.5656000004 + 10 +605259.7663000003 + 20 +964105.6272999998 + 10 +605259.9033000004 + 20 +964105.7136000004 + 10 +605260.8761999998 + 20 +964106.2903000005 + 10 +605260.9058999997 + 20 +964106.3077000007 + 10 +605261.0789999999 + 20 +964106.4002 + 10 +605261.1140000001 + 20 +964106.4171999992 + 10 +605262.1347000003 + 20 +964106.9042000008 + 10 +605262.2785 + 20 +964106.9682000001 + 10 +605262.3833999997 + 20 +964107.0094000008 + 10 +605263.4437999995 + 20 +964107.4026999996 + 10 +605263.5226999997 + 20 +964107.4307000003 + 10 +605263.7007 + 20 +964107.4849999995 + 10 +605264.7921000001 + 20 +964107.7814000007 + 10 +605264.8019000003 + 20 +964107.7840999999 + 10 +605264.9930999996 + 20 +964107.8287000006 + 10 +605265.0553000002 + 20 +964107.8402999994 + 10 +605266.1688999999 + 20 +964108.0374999997 + 10 +605266.3004000001 + 20 +964108.0578000007 + 10 +605266.4365999997 + 20 +964108.0725999998 + 10 +605267.5635000002 + 20 +964108.1688999999 + 10 +605267.6227000002 + 20 +964108.1733999998 + 10 +605267.8189000003 + 20 +964108.1798000001 + 10 +605267.8329999997 + 20 +964108.1798000001 + 10 +605268.9638999999 + 20 +964108.1744999999 + 10 +605269.1459999998 + 20 +964108.1680999995 + 10 +605269.2334000003 + 20 +964108.1611000002 + 10 +605270.3592999996 + 20 +964108.0541999992 + 10 +605270.4672999997 + 20 +964108.0418999997 + 10 +605270.6264000004 + 20 +964108.0165999998 + 10 +605271.7381999996 + 20 +964107.8090000004 + 10 +605271.7728000004 + 20 +964107.8024000005 + 10 +605271.9639999997 + 20 +964107.7577999999 + 10 +605272.0011 + 20 +964107.7476000004 + 10 +605273.0895999996 + 20 +964107.4408999998 + 10 +605273.2402999997 + 20 +964107.3940999993 + 10 +605273.3454999998 + 20 +964107.3562000002 + 10 +605274.4022000004 + 20 +964106.9529999999 + 10 +605274.4808 + 20 +964106.9217000008 + 10 +605274.6497999998 + 20 +964106.8454999999 + 10 +605275.6659000004 + 20 +964106.3489999995 + 10 +605275.6756999996 + 20 +964106.3442000003 + 10 +605275.7857999997 + 20 +964106.2871000004 + 10 +605296.5012999997 + 20 +964094.9835 + 10 +605298.1973000001 + 20 +964094.1017000006 + 10 +605299.8998999996 + 20 +964093.3014000003 + 10 +605301.6333999997 + 20 +964092.5700000003 + 10 +605303.3947999999 + 20 +964091.9087000007 + 10 +605305.1812000004 + 20 +964091.3186000009 + 10 +605307.0477 + 20 +964090.7839000002 + 10 +605306.2215999998 + 20 +964087.8999000006 + 10 +605305.4451000001 + 20 +964085.0021000002 + 10 +605305.3954999996 + 20 +964085.0159000009 + 10 +605303.4711999996 + 20 +964085.5670999997 + 10 +605303.3563000001 + 20 +964085.602499999 + 10 +605301.4556 + 20 +964086.2303999998 + 10 +605301.4323000005 + 20 +964086.2381999996 + 10 +605301.3421000001 + 20 +964086.2704000008 + 10 +605299.4681000002 + 20 +964086.9739999995 + 10 +605299.3744999999 + 20 +964087.0110000001 + 10 +605299.3564999997 + 20 +964087.0185000004 + 10 +605297.5121999998 + 20 +964087.796599999 + 10 +605297.4022000004 + 20 +964087.8456999995 + 10 +605295.5905999998 + 20 +964088.6972000004 + 10 +605295.5398000004 + 20 +964088.7215999999 + 10 +605295.4828000004 + 20 +964088.7504999993 + 10 +605293.7067999998 + 20 +964089.6739000009 + 10 +605293.6536999997 + 20 +964089.7020999995 + 10 +605272.9710999997 + 20 +964100.9878000003 + 10 +605272.1370000001 + 20 +964101.3954000008 + 10 +605271.3324999995 + 20 +964101.702299999 + 10 +605270.5039999997 + 20 +964101.9357999994 + 10 +605269.6577000004 + 20 +964102.0938000009 + 10 +605268.8006999996 + 20 +964102.1752000005 + 10 +605267.9397999998 + 20 +964102.1791999992 + 10 +605267.0821000003 + 20 +964102.1059000008 + 10 +605266.2344000005 + 20 +964101.9558000007 + 10 +605265.4035999998 + 20 +964101.7302000001 + 10 +605264.5964999999 + 20 +964101.4308000002 + 10 +605263.8196000001 + 20 +964101.0601000004 + 10 +605263.0789999999 + 20 +964100.6210999993 + 10 +605262.381 + 20 +964100.1174999999 + 10 +605261.7309999997 + 20 +964099.5528999996 + 10 +605261.1342000002 + 20 +964098.9322999995 + 10 +605260.5958000003 + 20 +964098.2607000005 + 10 +605260.1198000004 + 20 +964097.5434000008 + 10 +605259.7101999996 + 20 +964096.7862000001 + 10 +605259.3701999998 + 20 +964095.9952000008 + 10 +605259.0824999995 + 20 +964095.1151000002 + 0 +LWPOLYLINE + 5 +B1B9 +330 +2 +100 +AcDbEntity + 8 +FABBRI +100 +AcDbPolyline + 90 + 12 + 70 + 0 + 43 +0.0 + 10 +605432.0055819957 + 20 +963146.2840280269 + 10 +605430.7353971335 + 20 +963140.603414833 + 10 +605425.809581031 + 20 +963141.9281802715 + 10 +605423.9687499774 + 20 +963136.4999999805 + 10 +605341.1515153713 + 20 +963156.8659114115 + 10 +605348.750000009 + 20 +963185.6249999753 + 10 +605363.8437500146 + 20 +963181.7656249964 + 10 +605370.2031249767 + 20 +963205.9375000064 + 10 +605402.7812500186 + 20 +963197.562499975 + 10 +605406.3682850699 + 20 +963210.9199146306 + 10 +605430.7495699418 + 20 +963203.524590796 + 10 +605431.0016530944 + 20 +963203.4812683187 + 0 +POINT + 5 +3C0A +330 +2 +100 +AcDbEntity + 8 +VIAB04 +100 +AcDbPoint + 10 +602685.9717 + 20 +964122.329500001 + 30 +0.0 + 0 +POINT + 5 +3CA +330 +2 +100 +AcDbEntity + 8 +VESPUN +100 +AcDbPoint + 10 +602499.40625 + 20 +962249.5781250002 + 30 +0.0 + 0 +POINT + 5 +3CB +330 +2 +100 +AcDbEntity + 8 +VESPUN +100 +AcDbPoint + 10 +602378.4531250001 + 20 +962051.515625 + 30 +0.0 + 0 +POINT + 5 +3CA +330 +2 +100 +AcDbEntity + 8 +VESPUN +100 +AcDbPoint + 10 +602499.40625 + 20 +962249.5781250002 + 30 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/Apple-iPhone-4.jpg b/src/spatialite/test/Apple-iPhone-4.jpg new file mode 100644 index 0000000..d4a76cb Binary files /dev/null and b/src/spatialite/test/Apple-iPhone-4.jpg differ diff --git a/src/spatialite/test/Makefile.am b/src/spatialite/test/Makefile.am index 25085af..f4bece8 100644 --- a/src/spatialite/test/Makefile.am +++ b/src/spatialite/test/Makefile.am @@ -1,4 +1,4 @@ -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ check_PROGRAMS = check_endian \ check_version \ @@ -7,11 +7,12 @@ check_PROGRAMS = check_endian \ check_geom_aux \ check_geometry_cols \ check_create \ - check_bufovflw \ + check_bufovflw \ check_fdo1 \ check_fdo2 \ check_fdo3 \ - check_fdo_bufovflw \ + check_fdo_bufovflw \ + check_md5 \ check_dbf_load \ check_shp_load \ check_shp_load_3d \ @@ -28,19 +29,60 @@ check_PROGRAMS = check_endian \ check_extension \ check_recover_geom \ check_sql_stmt \ + check_multithread \ check_virtualtable1 \ check_virtualtable2 \ check_virtualtable3 \ check_virtualtable4 \ check_virtualtable5 \ check_virtualtable6 \ - check_virtual_ovflw \ + check_virtual_ovflw \ check_mbrcache \ check_spatialindex \ check_exif \ + check_exif2 \ check_relations_fncts \ check_extra_relations_fncts \ - check_geoscvt_fncts + check_geoscvt_fncts \ + check_libxml2 \ + check_styling \ + check_virtualxpath \ + check_virtualbbox \ + check_wfsin \ + check_dxf \ + check_metacatalog + +if ENABLE_GEOPACKAGE +check_PROGRAMS += \ + check_createBaseTables \ + check_gpkgCreateTilesTable \ + check_gpkgCreateTilesTableMissingSRID \ + check_gpkgCreateTilesZoomLevel \ + check_gpkgInsertEpsgSRID \ + check_gpkgCreateFeaturesTable \ + check_gpkg_base_core_container_data_file_format_application_id \ + check_gpkg_base_core_spatial_ref_sys_data_table_def \ + check_gpkg_base_core_spatial_ref_sys_data_values_default \ + check_gpkg_base_core_contents_data_table_def \ + check_gpkg_opt_extension_mechanism_extensions_data_table_def \ + check_add_tile_triggers \ + check_add_tile_triggers_bad_table_name \ + check_get_normal_row \ + check_get_normal_row_bad_geopackage \ + check_get_normal_row_bad_geopackage2 \ + check_get_normal_zoom \ + check_get_normal_zoom_extension_load \ + check_get_normal_zoom_bad_geopackage \ + check_get_normal_zoom_bad_geopackage2 \ + check_gpkgGetImageFormat \ + check_gpkgGetImageFormat_nonimage \ + check_gpkgGetImageFormat_nonblob \ + check_gpkgGetImageFormat_png \ + check_gpkgGetImageFormat_tiff \ + check_gpkgGetImageFormat_webp \ + check_gpkgConvert \ + check_gpkgVirtual +endif AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) @@ -53,6 +95,7 @@ EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ + test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ @@ -62,6 +105,8 @@ EXTRA_DIST = asprintf4win.h \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ + test-invalid.sqlite \ + test_geos.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ @@ -115,2670 +160,23 @@ EXTRA_DIST = asprintf4win.h \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ - sql_stmt_mathsql_tests/acos10.testcase \ - sql_stmt_mathsql_tests/acos20.testcase \ - sql_stmt_mathsql_tests/acos2.testcase \ - sql_stmt_mathsql_tests/acos.testcase \ - sql_stmt_mathsql_tests/acos-text.testcase \ - sql_stmt_tests/asbinary10.testcase \ - sql_stmt_tests/asbinary11.testcase \ - sql_stmt_tests/asbinary12.testcase \ - sql_stmt_tests/asbinary13.testcase \ - sql_stmt_tests/asbinary14.testcase \ - sql_stmt_tests/asbinary15.testcase \ - sql_stmt_tests/asbinary16.testcase \ - sql_stmt_tests/asbinary17.testcase \ - sql_stmt_tests/asbinary1.testcase \ - sql_stmt_tests/asbinary2.testcase \ - sql_stmt_tests/asbinary3.testcase \ - sql_stmt_tests/asbinary4.testcase \ - sql_stmt_tests/asbinary5.testcase \ - sql_stmt_tests/asbinary6.testcase \ - sql_stmt_tests/asbinary7.testcase \ - sql_stmt_tests/asbinary8.testcase \ - sql_stmt_tests/asbinary9.testcase \ - sql_stmt_tests/asewkb10.testcase \ - sql_stmt_tests/asewkb11.testcase \ - sql_stmt_tests/asewkb12.testcase \ - sql_stmt_tests/asewkb13.testcase \ - sql_stmt_tests/asewkb14.testcase \ - sql_stmt_tests/asewkb15.testcase \ - sql_stmt_tests/asewkb16.testcase \ - sql_stmt_tests/asewkb17.testcase \ - sql_stmt_tests/asewkb1.testcase \ - sql_stmt_tests/asewkb2.testcase \ - sql_stmt_tests/asewkb3.testcase \ - sql_stmt_tests/asewkb4.testcase \ - sql_stmt_tests/asewkb5.testcase \ - sql_stmt_tests/asewkb6.testcase \ - sql_stmt_tests/asewkb7.testcase \ - sql_stmt_tests/asewkb8.testcase \ - sql_stmt_tests/asewkb9.testcase \ - sql_stmt_tests/asfgf1.testcase \ - sql_stmt_tests/asfgf2.testcase \ - sql_stmt_tests/asfgf3.testcase \ - sql_stmt_tests/asfgf4.testcase \ - sql_stmt_tests/asfgf5.testcase \ - sql_stmt_tests/asfgf6.testcase \ - sql_stmt_tests/asfgf7.testcase \ - sql_stmt_tests/asfgf8.testcase \ - sql_stmt_tests/asfgf9.testcase \ - sql_stmt_tests/asgeojson1.testcase \ - sql_stmt_tests/asgeojson2.testcase \ - sql_stmt_tests/asgeojson3.testcase \ - sql_stmt_tests/asgeojson4.testcase \ - sql_stmt_tests/asgeojson5.testcase \ - sql_stmt_tests/asgeojson6.testcase \ - sql_stmt_tests/asgeojson7.testcase \ - sql_stmt_tests/asgml10.testcase \ - sql_stmt_tests/asgml11.testcase \ - sql_stmt_tests/asgml1.testcase \ - sql_stmt_tests/asgml2.testcase \ - sql_stmt_tests/asgml3.testcase \ - sql_stmt_tests/asgml4.testcase \ - sql_stmt_tests/asgml5.testcase \ - sql_stmt_tests/asgml6.testcase \ - sql_stmt_tests/asgml7.testcase \ - sql_stmt_tests/asgml8.testcase \ - sql_stmt_tests/asgml9.testcase \ - sql_stmt_mathsql_tests/asin10.testcase \ - sql_stmt_mathsql_tests/asin1.testcase \ - sql_stmt_mathsql_tests/asin20.testcase \ - sql_stmt_mathsql_tests/asin2.testcase \ - sql_stmt_mathsql_tests/asin-text.testcase \ - sql_stmt_proj_tests/askml10.testcase \ - sql_stmt_proj_tests/askml11.testcase \ - sql_stmt_proj_tests/askml1.testcase \ - sql_stmt_proj_tests/askml2.testcase \ - sql_stmt_proj_tests/askml3.testcase \ - sql_stmt_proj_tests/askml4.testcase \ - sql_stmt_proj_tests/askml5.testcase \ - sql_stmt_proj_tests/askml6.testcase \ - sql_stmt_proj_tests/askml7.testcase \ - sql_stmt_proj_tests/askml8.testcase \ - sql_stmt_proj_tests/askml9.testcase \ - sql_stmt_tests/assvg17.testcase \ - sql_stmt_tests/assvg18.testcase \ - sql_stmt_tests/assvg19.testcase \ - sql_stmt_tests/assvg1.testcase \ - sql_stmt_tests/assvg20.testcase \ - sql_stmt_tests/assvg21.testcase \ - sql_stmt_tests/assvg22.testcase \ - sql_stmt_tests/assvg23.testcase \ - sql_stmt_tests/assvg24.testcase \ - sql_stmt_tests/assvg25.testcase \ - sql_stmt_tests/assvg26.testcase \ - sql_stmt_tests/assvg2.testcase \ - sql_stmt_tests/assvg3.testcase \ - sql_stmt_tests/assvg4.testcase \ - sql_stmt_tests/assvg5.testcase \ - sql_stmt_tests/assvg6.testcase \ - sql_stmt_tests/assvg7.testcase \ - sql_stmt_tests/assvg8.testcase \ - sql_stmt_tests/assvg9.testcase \ - sql_stmt_tests/aswkt-text.testcase \ - sql_stmt_mathsql_tests/atan00.testcase \ - sql_stmt_mathsql_tests/atan0.testcase \ - sql_stmt_mathsql_tests/atan-text.testcase \ - sql_stmt_tests/badEWKT1.testcase \ - sql_stmt_tests/badEWKT2.testcase \ - sql_stmt_tests/badEWKT3.testcase \ - sql_stmt_tests/badEWKT4.testcase \ - sql_stmt_tests/badEWKT5.testcase \ - sql_stmt_tests/badEWKT6.testcase \ - sql_stmt_tests/badEWKT7.testcase \ - sql_stmt_tests/badEWKT8.testcase \ - sql_stmt_tests/badGeoJSON1.testcase \ - sql_stmt_tests/badGeoJSON2.testcase \ - sql_stmt_tests/badGeoJSON3.testcase \ - sql_stmt_tests/badGeoJSON4.testcase \ - sql_stmt_tests/badGeoJSON5.testcase \ - sql_stmt_tests/badGeoJSON6.testcase \ - sql_stmt_tests/badGeoJSON7.testcase \ - sql_stmt_tests/badGML1.testcase \ - sql_stmt_tests/badGML2.testcase \ - sql_stmt_tests/badGML3.testcase \ - sql_stmt_tests/badGML4.testcase \ - sql_stmt_tests/badGML5.testcase \ - sql_stmt_tests/badGML6.testcase \ - sql_stmt_tests/badGML7.testcase \ - sql_stmt_tests/badKML1.testcase \ - sql_stmt_tests/badKML2.testcase \ - sql_stmt_tests/badKML3.testcase \ - sql_stmt_tests/badKML4.testcase \ - sql_stmt_tests/badKML5.testcase \ - sql_stmt_tests/badKML6.testcase \ - sql_stmt_tests/badKML7.testcase \ - sql_stmt_tests/badwkt1.testcase \ - sql_stmt_tests/badwkt2.testcase \ - sql_stmt_tests/badwkt3.testcase \ - sql_stmt_tests/badwkt4.testcase \ - sql_stmt_tests/badwkt5.testcase \ - sql_stmt_tests/badwkt6.testcase \ - sql_stmt_tests/badwkt7.testcase \ - sql_stmt_tests/badwkt8.testcase \ - sql_stmt_tests/badwkt9.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext10.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext13.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext14.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext15.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext16.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext17.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext1.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext2.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext3.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext4.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext9.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb10.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb11.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb12.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb13.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb14.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb15.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb16.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb17.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb18.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb19.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb1.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb2.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb3.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb4.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb5.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb6.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb7.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb8.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb9.testcase \ - sql_stmt_geos_tests/bdpolyfromtext10.testcase \ - sql_stmt_geos_tests/bdpolyfromtext11.testcase \ - sql_stmt_geos_tests/bdpolyfromtext12.testcase \ - sql_stmt_geos_tests/bdpolyfromtext13.testcase \ - sql_stmt_geos_tests/bdpolyfromtext14.testcase \ - sql_stmt_geos_tests/bdpolyfromtext15.testcase \ - sql_stmt_geos_tests/bdpolyfromtext16.testcase \ - sql_stmt_geos_tests/bdpolyfromtext1.testcase \ - sql_stmt_geos_tests/bdpolyfromtext2.testcase \ - sql_stmt_geos_tests/bdpolyfromtext3.testcase \ - sql_stmt_geos_tests/bdpolyfromtext4.testcase \ - sql_stmt_geos_tests/bdpolyfromtext5.testcase \ - sql_stmt_geos_tests/bdpolyfromtext6.testcase \ - sql_stmt_geos_tests/bdpolyfromtext7.testcase \ - sql_stmt_geos_tests/bdpolyfromtext8.testcase \ - sql_stmt_geos_tests/bdpolyfromtext9.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb10.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb11.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb12.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb13.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb14.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb15.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb16.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb17.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb18.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb19.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb1.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb2.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb3.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb4.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb5.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb6.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb7.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb8.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb9.testcase \ - sql_stmt_security_tests/blobfromfile1.testcase \ - sql_stmt_security_tests/blobfromfile2.testcase \ - sql_stmt_security_tests/blobfromfile3.testcase \ - sql_stmt_security_tests/blobfromfile4.testcase \ - sql_stmt_security_tests/isXblob1.testcase \ - sql_stmt_security_tests/isXblob2.testcase \ - sql_stmt_security_tests/isXblob3.testcase \ - sql_stmt_security_tests/isXblob4.testcase \ - sql_stmt_security_tests/isXblob8.testcase \ - sql_stmt_security_tests/isXblob9.testcase \ - sql_stmt_geos_tests/boundary1.testcase \ - sql_stmt_geos_tests/boundary2.testcase \ - sql_stmt_geos_tests/boundary3.testcase \ - sql_stmt_geos_tests/boundary4.testcase \ - sql_stmt_geos_tests/boundary5.testcase \ - sql_stmt_geos_tests/boundary6.testcase \ - sql_stmt_geos_tests/boundary7.testcase \ - sql_stmt_geos_tests/boundary8.testcase \ - sql_stmt_geos_tests/boundary9.testcase \ - sql_stmt_geos_tests/buffer10.testcase \ - sql_stmt_geos_tests/buffer1.testcase \ - sql_stmt_geos_tests/buffer2.testcase \ - sql_stmt_geos_tests/buffer3.testcase \ - sql_stmt_geos_tests/buffer4.testcase \ - sql_stmt_geos_tests/buffer5.testcase \ - sql_stmt_geos_tests/buffer6.testcase \ - sql_stmt_geos_tests/buffer7.testcase \ - sql_stmt_geos_tests/buffer8.testcase \ - sql_stmt_geos_tests/buffer9.testcase \ - sql_stmt_geos_tests/buildarea1.testcase \ - sql_stmt_geos_tests/buildarea2.testcase \ - sql_stmt_geos_tests/buildarea3.testcase \ - sql_stmt_geos_tests/buildarea4.testcase \ - sql_stmt_geos_tests/buildarea5.testcase \ - sql_stmt_geos_tests/buildarea6.testcase \ - sql_stmt_tests/buildcirclembr10.testcase \ - sql_stmt_tests/buildcirclembr11.testcase \ - sql_stmt_tests/buildcirclembr12.testcase \ - sql_stmt_tests/buildcirclembr1.testcase \ - sql_stmt_tests/buildcirclembr2.testcase \ - sql_stmt_tests/buildcirclembr3.testcase \ - sql_stmt_tests/buildcirclembr4.testcase \ - sql_stmt_tests/buildcirclembr5.testcase \ - sql_stmt_tests/buildcirclembr6.testcase \ - sql_stmt_tests/buildcirclembr7.testcase \ - sql_stmt_tests/buildcirclembr8.testcase \ - sql_stmt_tests/buildcirclembr9.testcase \ - sql_stmt_tests/buildmbr10.testcase \ - sql_stmt_tests/buildmbr11.testcase \ - sql_stmt_tests/buildmbr12.testcase \ - sql_stmt_tests/buildmbr13.testcase \ - sql_stmt_tests/buildmbr14.testcase \ - sql_stmt_tests/buildmbr1.testcase \ - sql_stmt_tests/buildmbr2.testcase \ - sql_stmt_tests/buildmbr3.testcase \ - sql_stmt_tests/buildmbr4.testcase \ - sql_stmt_tests/buildmbr5.testcase \ - sql_stmt_tests/buildmbr6.testcase \ - sql_stmt_tests/buildmbr7.testcase \ - sql_stmt_tests/buildmbr8.testcase \ - sql_stmt_tests/buildmbr9.testcase \ - sql_stmt_tests/casttogeometrycollection2.testcase \ - sql_stmt_tests/casttogeometrycollection3.testcase \ - sql_stmt_tests/casttogeometrycollection4.testcase \ - sql_stmt_tests/casttogeometrycollection5.testcase \ - sql_stmt_tests/casttogeometrycollection6.testcase \ - sql_stmt_tests/casttogeometrycollection.testcase \ - sql_stmt_tests/casttolinestring1.testcase \ - sql_stmt_tests/casttolinestring2.testcase \ - sql_stmt_tests/casttolinestring3.testcase \ - sql_stmt_tests/casttolinestring4.testcase \ - sql_stmt_tests/casttolinestring5.testcase \ - sql_stmt_tests/casttolinestring6.testcase \ - sql_stmt_tests/casttolinestring7.testcase \ - sql_stmt_tests/casttolinestring8.testcase \ - sql_stmt_tests/casttomulti11.testcase \ - sql_stmt_tests/casttomulti1.testcase \ - sql_stmt_tests/casttomulti2.testcase \ - sql_stmt_tests/casttomulti3.testcase \ - sql_stmt_tests/casttomulti4.testcase \ - sql_stmt_tests/casttomulti5.testcase \ - sql_stmt_tests/casttomulti6.testcase \ - sql_stmt_tests/casttomulti7.testcase \ - sql_stmt_tests/casttomulti8.testcase \ - sql_stmt_tests/casttomultilinestring1.testcase \ - sql_stmt_tests/casttomultilinestring2.testcase \ - sql_stmt_tests/casttomultilinestring3.testcase \ - sql_stmt_tests/casttomultilinestring4.testcase \ - sql_stmt_tests/casttomultilinestring5.testcase \ - sql_stmt_tests/casttomultilinestring6.testcase \ - sql_stmt_tests/casttomultilinestring7.testcase \ - sql_stmt_tests/casttomultipoint1.testcase \ - sql_stmt_tests/casttomultipoint2.testcase \ - sql_stmt_tests/casttomultipoint3.testcase \ - sql_stmt_tests/casttomultipoint4.testcase \ - sql_stmt_tests/casttomultipoint5.testcase \ - sql_stmt_tests/casttomultipoint6.testcase \ - sql_stmt_tests/casttomultipoint7.testcase \ - sql_stmt_tests/casttomultipoint8.testcase \ - sql_stmt_tests/casttomultipoint9.testcase \ - sql_stmt_tests/casttomultipolygon1.testcase \ - sql_stmt_tests/casttomultipolygon2.testcase \ - sql_stmt_tests/casttomultipolygon3.testcase \ - sql_stmt_tests/casttomultipolygon4.testcase \ - sql_stmt_tests/casttomultipolygon5.testcase \ - sql_stmt_tests/casttopoint1.testcase \ - sql_stmt_tests/casttopoint2.testcase \ - sql_stmt_tests/casttopoint3.testcase \ - sql_stmt_tests/casttopoint4.testcase \ - sql_stmt_tests/casttopoint5.testcase \ - sql_stmt_tests/casttopoint6.testcase \ - sql_stmt_tests/casttopoint7.testcase \ - sql_stmt_tests/casttopoint8.testcase \ - sql_stmt_tests/casttopoly1.testcase \ - sql_stmt_tests/casttopoly2.testcase \ - sql_stmt_tests/casttopoly3.testcase \ - sql_stmt_tests/casttopoly4.testcase \ - sql_stmt_tests/casttopoly5.testcase \ - sql_stmt_tests/casttopoly6.testcase \ - sql_stmt_tests/casttopoly7.testcase \ - sql_stmt_tests/casttopoly8.testcase \ - sql_stmt_tests/casttosingle10.testcase \ - sql_stmt_tests/casttosingle12.testcase \ - sql_stmt_tests/casttosingle1.testcase \ - sql_stmt_tests/casttosingle2.testcase \ - sql_stmt_tests/casttosingle3.testcase \ - sql_stmt_tests/casttosingle4.testcase \ - sql_stmt_tests/casttosingle5.testcase \ - sql_stmt_tests/casttosingle6.testcase \ - sql_stmt_tests/casttosingle7.testcase \ - sql_stmt_tests/casttosingle8.testcase \ - sql_stmt_tests/casttosingle9.testcase \ - sql_stmt_tests/casttoxy1.testcase \ - sql_stmt_tests/casttoxy2.testcase \ - sql_stmt_tests/casttoxy3.testcase \ - sql_stmt_tests/casttoxym1.testcase \ - sql_stmt_tests/casttoxym2.testcase \ - sql_stmt_tests/casttoxym3.testcase \ - sql_stmt_tests/casttoxym4.testcase \ - sql_stmt_tests/casttoxym5.testcase \ - sql_stmt_tests/casttoxym6.testcase \ - sql_stmt_tests/casttoxyz1.testcase \ - sql_stmt_tests/casttoxyz2.testcase \ - sql_stmt_tests/casttoxyz3.testcase \ - sql_stmt_tests/casttoxyz4.testcase \ - sql_stmt_tests/casttoxyz5.testcase \ - sql_stmt_tests/casttoxyz6.testcase \ - sql_stmt_tests/casttoxyzm1.testcase \ - sql_stmt_tests/casttoxyzm2.testcase \ - sql_stmt_tests/casttoxyzm3.testcase \ - sql_stmt_tests/casttoxyzm4.testcase \ - sql_stmt_tests/casttoxyzm5.testcase \ - sql_stmt_tests/casttoxyzm6.testcase \ - sql_stmt_mathsql_tests/ceilfloat2.testcase \ - sql_stmt_mathsql_tests/ceilfloat.testcase \ - sql_stmt_mathsql_tests/ceil-int.testcase \ - sql_stmt_mathsql_tests/ceilnull.testcase \ - sql_stmt_geos_tests/centroid1.testcase \ - sql_stmt_geos_tests/centroid2.testcase \ - sql_stmt_geos_tests/centroid3.testcase \ - sql_stmt_geos_tests/centroid4.testcase \ - sql_stmt_geos_tests/centroid5.testcase \ - sql_stmt_geos_tests/centroid6.testcase \ - sql_stmt_geos_tests/centroid7.testcase \ - sql_stmt_geos_tests/centroid8.testcase \ - sql_stmt_tests/checkspatialmetadata1.testcase \ - sql_stmt_tests/checkspatialmetadata2.testcase \ - sql_stmt_tests/checkspatialmetadata3.testcase \ - sql_stmt_tests/checkspatialmetadata4.testcase \ - sql_stmt_tests/checkspatialmetadata5.testcase \ - sql_stmt_tests/ch_m.testcase \ - sql_stmt_geosadvanced_tests/closestpoint10.testcase \ - sql_stmt_geosadvanced_tests/closestpoint11.testcase \ - sql_stmt_geosadvanced_tests/closestpoint12.testcase \ - sql_stmt_geosadvanced_tests/closestpoint13.testcase \ - sql_stmt_geosadvanced_tests/closestpoint14.testcase \ - sql_stmt_geosadvanced_tests/closestpoint15.testcase \ - sql_stmt_geosadvanced_tests/closestpoint16.testcase \ - sql_stmt_geosadvanced_tests/closestpoint17.testcase \ - sql_stmt_geosadvanced_tests/closestpoint18.testcase \ - sql_stmt_geosadvanced_tests/closestpoint19.testcase \ - sql_stmt_geosadvanced_tests/closestpoint1.testcase \ - sql_stmt_geosadvanced_tests/closestpoint20.testcase \ - sql_stmt_geosadvanced_tests/closestpoint21.testcase \ - sql_stmt_geosadvanced_tests/closestpoint22.testcase \ - sql_stmt_geosadvanced_tests/closestpoint2.testcase \ - sql_stmt_geosadvanced_tests/closestpoint3.testcase \ - sql_stmt_geosadvanced_tests/closestpoint4.testcase \ - sql_stmt_geosadvanced_tests/closestpoint5.testcase \ - sql_stmt_geosadvanced_tests/closestpoint6.testcase \ - sql_stmt_geosadvanced_tests/closestpoint7.testcase \ - sql_stmt_geosadvanced_tests/closestpoint8.testcase \ - sql_stmt_geosadvanced_tests/closestpoint9.testcase \ - sql_stmt_tests/cm_m.testcase \ - sql_stmt_tests/collect10.testcase \ - sql_stmt_tests/collect11.testcase \ - sql_stmt_tests/collect12.testcase \ - sql_stmt_tests/collect13.testcase \ - sql_stmt_tests/collect14.testcase \ - sql_stmt_tests/collect15.testcase \ - sql_stmt_tests/collect16.testcase \ - sql_stmt_tests/collect17.testcase \ - sql_stmt_tests/collect18.testcase \ - sql_stmt_tests/collect19.testcase \ - sql_stmt_tests/collect1.testcase \ - sql_stmt_tests/collect20.testcase \ - sql_stmt_tests/collect21.testcase \ - sql_stmt_tests/collect23.testcase \ - sql_stmt_tests/collect24.testcase \ - sql_stmt_tests/collect25.testcase \ - sql_stmt_tests/collect26.testcase \ - sql_stmt_tests/collect27.testcase \ - sql_stmt_tests/collect28.testcase \ - sql_stmt_tests/collect29.testcase \ - sql_stmt_tests/collect2.testcase \ - sql_stmt_tests/collect30.testcase \ - sql_stmt_tests/collect31.testcase \ - sql_stmt_tests/collect32.testcase \ - sql_stmt_tests/collect33.testcase \ - sql_stmt_tests/collect34.testcase \ - sql_stmt_tests/collect35.testcase \ - sql_stmt_tests/collect36.testcase \ - sql_stmt_tests/collect37.testcase \ - sql_stmt_tests/collect38.testcase \ - sql_stmt_tests/collect39.testcase \ - sql_stmt_tests/collect3.testcase \ - sql_stmt_tests/collect40.testcase \ - sql_stmt_tests/collect41.testcase \ - sql_stmt_tests/collect42.testcase \ - sql_stmt_tests/collect43.testcase \ - sql_stmt_tests/collect44.testcase \ - sql_stmt_tests/collect45.testcase \ - sql_stmt_tests/collect46.testcase \ - sql_stmt_tests/collect47.testcase \ - sql_stmt_tests/collect48.testcase \ - sql_stmt_tests/collect49.testcase \ - sql_stmt_tests/collect4.testcase \ - sql_stmt_tests/collect50.testcase \ - sql_stmt_tests/collect51.testcase \ - sql_stmt_tests/collect52.testcase \ - sql_stmt_tests/collect53.testcase \ - sql_stmt_tests/collect54.testcase \ - sql_stmt_tests/collect55.testcase \ - sql_stmt_tests/collect56.testcase \ - sql_stmt_tests/collect57.testcase \ - sql_stmt_tests/collect58.testcase \ - sql_stmt_tests/collect59.testcase \ - sql_stmt_tests/collect5.testcase \ - sql_stmt_tests/collect6.testcase \ - sql_stmt_tests/collect7.testcase \ - sql_stmt_tests/collect8.testcase \ - sql_stmt_tests/collect9.testcase \ - sql_stmt_tests/collectextract10.testcase \ - sql_stmt_tests/collectextract11.testcase \ - sql_stmt_tests/collectextract12.testcase \ - sql_stmt_tests/collectextract13.testcase \ - sql_stmt_tests/collectextract14.testcase \ - sql_stmt_tests/collectextract15.testcase \ - sql_stmt_tests/collectextract16.testcase \ - sql_stmt_tests/collectextract17.testcase \ - sql_stmt_tests/collectextract18.testcase \ - sql_stmt_tests/collectextract19.testcase \ - sql_stmt_tests/collectextract1.testcase \ - sql_stmt_tests/collectextract20.testcase \ - sql_stmt_tests/collectextract21.testcase \ - sql_stmt_tests/collectextract22.testcase \ - sql_stmt_tests/collectextract2.testcase \ - sql_stmt_tests/collectextract3.testcase \ - sql_stmt_tests/collectextract4.testcase \ - sql_stmt_tests/collectextract5.testcase \ - sql_stmt_tests/collectextract6.testcase \ - sql_stmt_tests/collectextract7.testcase \ - sql_stmt_tests/collectextract8.testcase \ - sql_stmt_tests/collectextract9.testcase \ - sql_stmt_tests/compressgeometry10.testcase \ - sql_stmt_tests/compressgeometry11.testcase \ - sql_stmt_tests/compressgeometry12.testcase \ - sql_stmt_tests/compressgeometry13.testcase \ - sql_stmt_tests/compressgeometry14.testcase \ - sql_stmt_tests/compressgeometry15.testcase \ - sql_stmt_tests/compressgeometry17.testcase \ - sql_stmt_tests/compressgeometry18.testcase \ - sql_stmt_tests/compressgeometry19.testcase \ - sql_stmt_tests/compressgeometry1.testcase \ - sql_stmt_tests/compressgeometry20.testcase \ - sql_stmt_tests/compressgeometry21.testcase \ - sql_stmt_tests/compressgeometry22.testcase \ - sql_stmt_tests/compressgeometry23.testcase \ - sql_stmt_tests/compressgeometry24.testcase \ - sql_stmt_tests/compressgeometry25.testcase \ - sql_stmt_tests/compressgeometry26.testcase \ - sql_stmt_tests/compressgeometry27.testcase \ - sql_stmt_tests/compressgeometry28.testcase \ - sql_stmt_tests/compressgeometry29.testcase \ - sql_stmt_tests/compressgeometry2.testcase \ - sql_stmt_tests/compressgeometry30.testcase \ - sql_stmt_tests/compressgeometry31.testcase \ - sql_stmt_tests/compressgeometry32.testcase \ - sql_stmt_tests/compressgeometry33.testcase \ - sql_stmt_tests/compressgeometry34.testcase \ - sql_stmt_tests/compressgeometry35.testcase \ - sql_stmt_tests/compressgeometry36.testcase \ - sql_stmt_tests/compressgeometry37.testcase \ - sql_stmt_tests/compressgeometry38.testcase \ - sql_stmt_tests/compressgeometry39.testcase \ - sql_stmt_tests/compressgeometry3.testcase \ - sql_stmt_tests/compressgeometry40.testcase \ - sql_stmt_tests/compressgeometry41.testcase \ - sql_stmt_tests/compressgeometry42.testcase \ - sql_stmt_tests/compressgeometry43.testcase \ - sql_stmt_tests/compressgeometry44.testcase \ - sql_stmt_tests/compressgeometry45.testcase \ - sql_stmt_tests/compressgeometry46.testcase \ - sql_stmt_tests/compressgeometry47.testcase \ - sql_stmt_tests/compressgeometry48.testcase \ - sql_stmt_tests/compressgeometry49.testcase \ - sql_stmt_tests/compressgeometry4.testcase \ - sql_stmt_tests/compressgeometry50.testcase \ - sql_stmt_tests/compressgeometry51.testcase \ - sql_stmt_tests/compressgeometry52.testcase \ - sql_stmt_tests/compressgeometry53.testcase \ - sql_stmt_tests/compressgeometry54.testcase \ - sql_stmt_tests/compressgeometry55.testcase \ - sql_stmt_tests/compressgeometry56.testcase \ - sql_stmt_tests/compressgeometry57.testcase \ - sql_stmt_tests/compressgeometry58.testcase \ - sql_stmt_tests/compressgeometry59.testcase \ - sql_stmt_tests/compressgeometry5.testcase \ - sql_stmt_tests/compressgeometry60.testcase \ - sql_stmt_tests/compressgeometry61.testcase \ - sql_stmt_tests/compressgeometry62.testcase \ - sql_stmt_tests/compressgeometry63.testcase \ - sql_stmt_tests/compressgeometry64.testcase \ - sql_stmt_tests/compressgeometry65.testcase \ - sql_stmt_tests/compressgeometry66.testcase \ - sql_stmt_tests/compressgeometry67.testcase \ - sql_stmt_tests/compressgeometry68.testcase \ - sql_stmt_tests/compressgeometry69.testcase \ - sql_stmt_tests/compressgeometry6.testcase \ - sql_stmt_tests/compressgeometry7.testcase \ - sql_stmt_tests/compressgeometry8.testcase \ - sql_stmt_tests/compressgeometry9.testcase \ - sql_stmt_geos_tests/convexhull10.testcase \ - sql_stmt_geos_tests/convexhull1.testcase \ - sql_stmt_geos_tests/convexhull2.testcase \ - sql_stmt_geos_tests/convexhull3.testcase \ - sql_stmt_geos_tests/convexhull4.testcase \ - sql_stmt_geos_tests/convexhull5.testcase \ - sql_stmt_geos_tests/convexhull6.testcase \ - sql_stmt_geos_tests/convexhull7.testcase \ - sql_stmt_geos_tests/convexhull8.testcase \ - sql_stmt_geos_tests/convexhull9.testcase \ - sql_stmt_mathsql_tests/cos00.testcase \ - sql_stmt_mathsql_tests/cos0.testcase \ - sql_stmt_mathsql_tests/cos-text.testcase \ - sql_stmt_mathsql_tests/cot00.testcase \ - sql_stmt_mathsql_tests/cot0.testcase \ - sql_stmt_mathsql_tests/cotpi2.testcase \ - sql_stmt_mathsql_tests/cot-text.testcase \ - sql_stmt_geosadvanced_tests/coveredby1.testcase \ - sql_stmt_geosadvanced_tests/coveredby2.testcase \ - sql_stmt_geosadvanced_tests/covers1.testcase \ - sql_stmt_geosadvanced_tests/covers2.testcase \ - sql_stmt_geosadvanced_tests/covers_covered1.testcase \ - sql_stmt_geosadvanced_tests/covers_covered2.testcase \ - sql_stmt_geosadvanced_tests/covers_covered3.testcase \ - sql_stmt_geosadvanced_tests/covers_covered4.testcase \ - sql_stmt_geosadvanced_tests/covers_covered5.testcase \ - sql_stmt_geosadvanced_tests/covers_covered6.testcase \ - sql_stmt_geosadvanced_tests/covers_covered7.testcase \ - sql_stmt_geosadvanced_tests/createtopo10.testcase \ - sql_stmt_geosadvanced_tests/createtopo11.testcase \ - sql_stmt_geosadvanced_tests/createtopo12.testcase \ - sql_stmt_geosadvanced_tests/createtopo13.testcase \ - sql_stmt_geosadvanced_tests/createtopo14.testcase \ - sql_stmt_geosadvanced_tests/createtopo15.testcase \ - sql_stmt_geosadvanced_tests/createtopo16.testcase \ - sql_stmt_geosadvanced_tests/createtopo17.testcase \ - sql_stmt_geosadvanced_tests/createtopo18.testcase \ - sql_stmt_geosadvanced_tests/createtopo1.testcase \ - sql_stmt_geosadvanced_tests/createtopo2.testcase \ - sql_stmt_geosadvanced_tests/createtopo3.testcase \ - sql_stmt_geosadvanced_tests/createtopo4.testcase \ - sql_stmt_geosadvanced_tests/createtopo5.testcase \ - sql_stmt_geosadvanced_tests/createtopo6.testcase \ - sql_stmt_geosadvanced_tests/createtopo7.testcase \ - sql_stmt_geosadvanced_tests/createtopo8.testcase \ - sql_stmt_geosadvanced_tests/createtopo9.testcase \ - sql_stmt_mathsql_tests/degrees45.testcase \ - sql_stmt_mathsql_tests/degrees.testcase \ - sql_stmt_mathsql_tests/degreestext.testcase \ - sql_stmt_geos_tests/difference10.testcase \ - sql_stmt_geos_tests/difference11.testcase \ - sql_stmt_geos_tests/difference12.testcase \ - sql_stmt_geos_tests/difference1.testcase \ - sql_stmt_geos_tests/difference2.testcase \ - sql_stmt_geos_tests/difference3.testcase \ - sql_stmt_geos_tests/difference4.testcase \ - sql_stmt_geos_tests/difference6.testcase \ - sql_stmt_geos_tests/difference7.testcase \ - sql_stmt_geos_tests/difference8.testcase \ - sql_stmt_geos_tests/difference9.testcase \ - sql_stmt_tests/dimension1.testcase \ - sql_stmt_tests/dimension2.testcase \ - sql_stmt_tests/dimension3.testcase \ - sql_stmt_tests/dimension4.testcase \ - sql_stmt_tests/dimension5.testcase \ - sql_stmt_tests/dimension6.testcase \ - sql_stmt_tests/dimension7.testcase \ - sql_stmt_tests/dimension8.testcase \ - sql_stmt_tests/dissolve10.testcase \ - sql_stmt_tests/dissolve11.testcase \ - sql_stmt_tests/dissolve12.testcase \ - sql_stmt_tests/dissolve13.testcase \ - sql_stmt_tests/dissolve14.testcase \ - sql_stmt_tests/dissolve15.testcase \ - sql_stmt_tests/dissolve16.testcase \ - sql_stmt_tests/dissolve17.testcase \ - sql_stmt_tests/dissolve18.testcase \ - sql_stmt_tests/dissolve19.testcase \ - sql_stmt_tests/dissolve1.testcase \ - sql_stmt_tests/dissolve20.testcase \ - sql_stmt_tests/dissolve21.testcase \ - sql_stmt_tests/dissolve22.testcase \ - sql_stmt_tests/dissolve23.testcase \ - sql_stmt_tests/dissolve24.testcase \ - sql_stmt_tests/dissolve25.testcase \ - sql_stmt_tests/dissolve26.testcase \ - sql_stmt_tests/dissolve27.testcase \ - sql_stmt_tests/dissolve28.testcase \ - sql_stmt_tests/dissolve29.testcase \ - sql_stmt_tests/dissolve2.testcase \ - sql_stmt_tests/dissolve30.testcase \ - sql_stmt_tests/dissolve3.testcase \ - sql_stmt_tests/dissolve4.testcase \ - sql_stmt_tests/dissolve5.testcase \ - sql_stmt_tests/dissolve6.testcase \ - sql_stmt_tests/dissolve7.testcase \ - sql_stmt_tests/dissolve8.testcase \ - sql_stmt_tests/dissolve9.testcase \ - sql_stmt_geos_tests/distance1.testcase \ - sql_stmt_geos_tests/distance2.testcase \ - sql_stmt_geos_tests/distance3.testcase \ - sql_stmt_geos_tests/distance4.testcase \ - sql_stmt_geos_tests/distance5.testcase \ - sql_stmt_geos_tests/distance6.testcase \ - sql_stmt_geos_tests/distance7.testcase \ - sql_stmt_geos_tests/distance8.testcase \ - sql_stmt_geos_tests/distance9.testcase \ - sql_stmt_geos_tests/distance10.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr1.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr2.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr3.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr4.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr5.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr6.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr7.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr8.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr9.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr10.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr11.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr12.testcase \ - sql_stmt_tests/dm_m.testcase \ - sql_stmt_tests/DSC_1467.JPG \ - sql_stmt_tests/DSCN0042.JPG \ - sql_stmt_tests/emptyfile.txt \ - sql_stmt_tests/endpoint1.testcase \ - sql_stmt_tests/envelope1.testcase \ - sql_stmt_tests/envelope2.testcase \ - sql_stmt_tests/envelope3.testcase \ - sql_stmt_tests/envelope4.testcase \ - sql_stmt_tests/envelope5.testcase \ - sql_stmt_tests/envelope6.testcase \ - sql_stmt_tests/envelope7.testcase \ - sql_stmt_tests/envintersects10.testcase \ - sql_stmt_tests/envintersects1.testcase \ - sql_stmt_tests/envintersects2.testcase \ - sql_stmt_tests/envintersects3.testcase \ - sql_stmt_tests/envintersects4.testcase \ - sql_stmt_tests/envintersects5.testcase \ - sql_stmt_tests/envintersects6.testcase \ - sql_stmt_tests/envintersects7.testcase \ - sql_stmt_tests/envintersects8.testcase \ - sql_stmt_tests/envintersects9.testcase \ - sql_stmt_tests/ewkb10.testcase \ - sql_stmt_tests/ewkb11.testcase \ - sql_stmt_tests/ewkb12.testcase \ - sql_stmt_tests/ewkb1.testcase \ - sql_stmt_tests/ewkb2.testcase \ - sql_stmt_tests/ewkb3.testcase \ - sql_stmt_tests/ewkb4.testcase \ - sql_stmt_tests/ewkb5.testcase \ - sql_stmt_tests/ewkb6.testcase \ - sql_stmt_tests/ewkb7.testcase \ - sql_stmt_tests/ewkb8.testcase \ - sql_stmt_tests/ewkb9.testcase \ - sql_stmt_mathsql_tests/exp00.testcase \ - sql_stmt_mathsql_tests/exp0.testcase \ - sql_stmt_mathsql_tests/exp10.testcase \ - sql_stmt_mathsql_tests/exp1.testcase \ - sql_stmt_tests/expand1.testcase \ - sql_stmt_tests/expand2.testcase \ - sql_stmt_tests/expand3.testcase \ - sql_stmt_tests/expand4.testcase \ - sql_stmt_tests/expand5.testcase \ - sql_stmt_tests/expand6.testcase \ - sql_stmt_tests/expand7.testcase \ - sql_stmt_mathsql_tests/expneg.testcase \ - sql_stmt_mathsql_tests/exptext.testcase \ - sql_stmt_tests/extent1.testcase \ - sql_stmt_tests/extractmultilinestring1.testcase \ - sql_stmt_tests/extractmultilinestring2.testcase \ - sql_stmt_tests/extractmultilinestring3.testcase \ - sql_stmt_tests/extractmultipoint1.testcase \ - sql_stmt_tests/extractmultipoint2.testcase \ - sql_stmt_tests/extractmultipoint3.testcase \ - sql_stmt_tests/extractmultipolygon1.testcase \ - sql_stmt_tests/extractmultipolygon2.testcase \ - sql_stmt_tests/extractmultipolygon3.testcase \ - sql_stmt_tests/fath_m.testcase \ - sql_stmt_tests/fdo_ogr1.testcase \ - sql_stmt_tests/fdo_ogr2.testcase \ - sql_stmt_tests/fdo-wkb.sqlite_RO \ - sql_stmt_mathsql_tests/floor32.testcase \ - sql_stmt_mathsql_tests/floorint.testcase \ - sql_stmt_mathsql_tests/floornull.testcase \ - sql_stmt_tests/fromewkt1.testcase \ - sql_stmt_tests/fromewkt2.testcase \ - sql_stmt_tests/fromewkt3.testcase \ - sql_stmt_tests/fromewkt4.testcase \ - sql_stmt_tests/fromewkt5.testcase \ - sql_stmt_tests/fromewkt6.testcase \ - sql_stmt_tests/fromewkt7.testcase \ - sql_stmt_tests/fromewkt8.testcase \ - sql_stmt_tests/fromewkt9.testcase \ - sql_stmt_tests/fromewkt10.testcase \ - sql_stmt_tests/fromewkt11.testcase \ - sql_stmt_tests/fromewkt12.testcase \ - sql_stmt_tests/fromewkt13.testcase \ - sql_stmt_tests/fromewkt14.testcase \ - sql_stmt_tests/fromewkt15.testcase \ - sql_stmt_tests/fromewkt16.testcase \ - sql_stmt_tests/fromewkt17.testcase \ - sql_stmt_tests/fromewkt18.testcase \ - sql_stmt_tests/fromewkt19.testcase \ - sql_stmt_tests/fromewkt20.testcase \ - sql_stmt_tests/fromewkt22.testcase \ - sql_stmt_tests/fromewkt23.testcase \ - sql_stmt_tests/fromewkt24.testcase \ - sql_stmt_tests/fromewkt25.testcase \ - sql_stmt_tests/fromewkt26.testcase \ - sql_stmt_tests/fromewkt27.testcase \ - sql_stmt_tests/fromewkt28.testcase \ - sql_stmt_tests/fromewkt29.testcase \ - sql_stmt_tests/fromewkt30.testcase \ - sql_stmt_tests/fromewkt31.testcase \ - sql_stmt_tests/fromewkt32.testcase \ - sql_stmt_tests/fromewkt33.testcase \ - sql_stmt_tests/fromewkt34.testcase \ - sql_stmt_tests/fromewkt35.testcase \ - sql_stmt_tests/fromewkt36.testcase \ - sql_stmt_tests/fromewkt37.testcase \ - sql_stmt_tests/fromewkt38.testcase \ - sql_stmt_tests/fromewkt39.testcase \ - sql_stmt_tests/fromgeojson10.testcase \ - sql_stmt_tests/fromgeojson11.testcase \ - sql_stmt_tests/fromgeojson12.testcase \ - sql_stmt_tests/fromgeojson13.testcase \ - sql_stmt_tests/fromgeojson14.testcase \ - sql_stmt_tests/fromgeojson15.testcase \ - sql_stmt_tests/fromgeojson16.testcase \ - sql_stmt_tests/fromgeojson17.testcase \ - sql_stmt_tests/fromgeojson18.testcase \ - sql_stmt_tests/fromgeojson19.testcase \ - sql_stmt_tests/fromgeojson1.testcase \ - sql_stmt_tests/fromgeojson20.testcase \ - sql_stmt_tests/fromgeojson21.testcase \ - sql_stmt_tests/fromgeojson22.testcase \ - sql_stmt_tests/fromgeojson23.testcase \ - sql_stmt_tests/fromgeojson24.testcase \ - sql_stmt_tests/fromgeojson25.testcase \ - sql_stmt_tests/fromgeojson26.testcase \ - sql_stmt_tests/fromgeojson27.testcase \ - sql_stmt_tests/fromgeojson28.testcase \ - sql_stmt_tests/fromgeojson29.testcase \ - sql_stmt_tests/fromgeojson2.testcase \ - sql_stmt_tests/fromgeojson30.testcase \ - sql_stmt_tests/fromgeojson31.testcase \ - sql_stmt_tests/fromgeojson32.testcase \ - sql_stmt_tests/fromgeojson3.testcase \ - sql_stmt_tests/fromgeojson4.testcase \ - sql_stmt_tests/fromgeojson5.testcase \ - sql_stmt_tests/fromgeojson6.testcase \ - sql_stmt_tests/fromgeojson7.testcase \ - sql_stmt_tests/fromgeojson8.testcase \ - sql_stmt_tests/fromgeojson9.testcase \ - sql_stmt_tests/fromgml10.testcase \ - sql_stmt_tests/fromgml11.testcase \ - sql_stmt_tests/fromgml12.testcase \ - sql_stmt_tests/fromgml13.testcase \ - sql_stmt_tests/fromgml14.testcase \ - sql_stmt_tests/fromgml15.testcase \ - sql_stmt_tests/fromgml16.testcase \ - sql_stmt_tests/fromgml17.testcase \ - sql_stmt_tests/fromgml18.testcase \ - sql_stmt_tests/fromgml19.testcase \ - sql_stmt_tests/fromgml1.testcase \ - sql_stmt_tests/fromgml20.testcase \ - sql_stmt_tests/fromgml21.testcase \ - sql_stmt_tests/fromgml22.testcase \ - sql_stmt_tests/fromgml23.testcase \ - sql_stmt_tests/fromgml24.testcase \ - sql_stmt_tests/fromgml25.testcase \ - sql_stmt_tests/fromgml26.testcase \ - sql_stmt_tests/fromgml27.testcase \ - sql_stmt_tests/fromgml28.testcase \ - sql_stmt_tests/fromgml29.testcase \ - sql_stmt_tests/fromgml2.testcase \ - sql_stmt_tests/fromgml30.testcase \ - sql_stmt_tests/fromgml31.testcase \ - sql_stmt_tests/fromgml32.testcase \ - sql_stmt_tests/fromgml33.testcase \ - sql_stmt_tests/fromgml34.testcase \ - sql_stmt_tests/fromgml35.testcase \ - sql_stmt_tests/fromgml36.testcase \ - sql_stmt_tests/fromgml37.testcase \ - sql_stmt_tests/fromgml38.testcase \ - sql_stmt_tests/fromgml39.testcase \ - sql_stmt_tests/fromgml3.testcase \ - sql_stmt_tests/fromgml40.testcase \ - sql_stmt_tests/fromgml41.testcase \ - sql_stmt_proj_tests/fromgml42.testcase \ - sql_stmt_tests/fromgml43.testcase \ - sql_stmt_tests/fromgml4.testcase \ - sql_stmt_tests/fromgml5.testcase \ - sql_stmt_tests/fromgml6.testcase \ - sql_stmt_tests/fromgml7.testcase \ - sql_stmt_tests/fromgml8.testcase \ - sql_stmt_tests/fromgml9.testcase \ - sql_stmt_tests/fromWkb10.testcase \ - sql_stmt_tests/fromWkb11.testcase \ - sql_stmt_tests/fromWkb12.testcase \ - sql_stmt_tests/fromWkb13.testcase \ - sql_stmt_tests/fromWkb14.testcase \ - sql_stmt_tests/fromWkb15.testcase \ - sql_stmt_tests/fromWkb16.testcase \ - sql_stmt_tests/fromWkb17.testcase \ - sql_stmt_tests/fromWkb18.testcase \ - sql_stmt_tests/fromWkb19.testcase \ - sql_stmt_tests/fromWkb1.testcase \ - sql_stmt_tests/fromWkb20.testcase \ - sql_stmt_tests/fromWkb21.testcase \ - sql_stmt_tests/fromWkb22.testcase \ - sql_stmt_tests/fromWkb23.testcase \ - sql_stmt_tests/fromWkb2.testcase \ - sql_stmt_tests/fromWkb3.testcase \ - sql_stmt_tests/fromWkb4.testcase \ - sql_stmt_tests/fromWkb5.testcase \ - sql_stmt_tests/fromWkb6.testcase \ - sql_stmt_tests/fromWkb7.testcase \ - sql_stmt_tests/fromWkb8.testcase \ - sql_stmt_tests/fromWkb9.testcase \ - sql_stmt_tests/ft_m.testcase \ - sql_stmt_tests/garsmbr10.testcase \ - sql_stmt_tests/garsmbr11.testcase \ - sql_stmt_tests/garsmbr12.testcase \ - sql_stmt_tests/garsmbr13.testcase \ - sql_stmt_tests/garsmbr14.testcase \ - sql_stmt_tests/garsmbr15.testcase \ - sql_stmt_tests/garsmbr16.testcase \ - sql_stmt_tests/garsmbr17.testcase \ - sql_stmt_tests/garsmbr18.testcase \ - sql_stmt_tests/garsmbr1.testcase \ - sql_stmt_tests/garsmbr20.testcase \ - sql_stmt_tests/garsmbr21.testcase \ - sql_stmt_tests/garsmbr22.testcase \ - sql_stmt_tests/garsmbr23.testcase \ - sql_stmt_tests/garsmbr24.testcase \ - sql_stmt_tests/garsmbr25.testcase \ - sql_stmt_tests/garsmbr26.testcase \ - sql_stmt_tests/garsmbr27.testcase \ - sql_stmt_tests/garsmbr28.testcase \ - sql_stmt_tests/garsmbr29.testcase \ - sql_stmt_tests/garsmbr2.testcase \ - sql_stmt_tests/garsmbr30.testcase \ - sql_stmt_tests/garsmbr31.testcase \ - sql_stmt_tests/garsmbr32.testcase \ - sql_stmt_tests/garsmbr33.testcase \ - sql_stmt_tests/garsmbr34.testcase \ - sql_stmt_tests/garsmbr35.testcase \ - sql_stmt_tests/garsmbr36.testcase \ - sql_stmt_tests/garsmbr3.testcase \ - sql_stmt_tests/garsmbr4.testcase \ - sql_stmt_tests/garsmbr5.testcase \ - sql_stmt_tests/garsmbr6.testcase \ - sql_stmt_tests/garsmbr7.testcase \ - sql_stmt_tests/garsmbr8.testcase \ - sql_stmt_tests/garsmbr9.testcase \ - sql_stmt_tests/geodesic-len1.testcase \ - sql_stmt_tests/geodesic-len2.testcase \ - sql_stmt_tests/geodesic-len3.testcase \ - sql_stmt_tests/geodesic-len4.testcase \ - sql_stmt_tests/geodesic-len5.testcase \ - sql_stmt_tests/geodesic-len6.testcase \ - sql_stmt_tests/geodesic-len7.testcase \ - sql_stmt_tests/geodesic-len8.testcase \ - sql_stmt_tests/geojson1.testcase \ - sql_stmt_tests/geojson2.testcase \ - sql_stmt_tests/geojson3.testcase \ - sql_stmt_tests/geojson4.testcase \ - sql_stmt_tests/geojson5.testcase \ - sql_stmt_tests/geojson6.testcase \ - sql_stmt_tests/geomcollfromtext1.testcase \ - sql_stmt_tests/geomcollfromtext2.testcase \ - sql_stmt_tests/geomconstraints10.testcase \ - sql_stmt_tests/geomconstraints11.testcase \ - sql_stmt_tests/geomconstraints12.testcase \ - sql_stmt_tests/geomconstraints13.testcase \ - sql_stmt_tests/geomconstraints14.testcase \ - sql_stmt_tests/geomconstraints15.testcase \ - sql_stmt_tests/geomconstraints16.testcase \ - sql_stmt_tests/geomconstraints17.testcase \ - sql_stmt_tests/geomconstraints18.testcase \ - sql_stmt_tests/geomconstraints19.testcase \ - sql_stmt_tests/geomconstraints1.testcase \ - sql_stmt_tests/geomconstraints20.testcase \ - sql_stmt_tests/geomconstraints21.testcase \ - sql_stmt_tests/geomconstraints22.testcase \ - sql_stmt_tests/geomconstraints23.testcase \ - sql_stmt_tests/geomconstraints24.testcase \ - sql_stmt_tests/geomconstraints25.testcase \ - sql_stmt_tests/geomconstraints26.testcase \ - sql_stmt_tests/geomconstraints27.testcase \ - sql_stmt_tests/geomconstraints28.testcase \ - sql_stmt_tests/geomconstraints2.testcase \ - sql_stmt_tests/geomconstraints3.testcase \ - sql_stmt_tests/geomconstraints4.testcase \ - sql_stmt_tests/geomconstraints5.testcase \ - sql_stmt_tests/geomconstraints6.testcase \ - sql_stmt_tests/geomconstraints7.testcase \ - sql_stmt_tests/geomconstraints8.testcase \ - sql_stmt_tests/geomconstraints9.testcase \ - sql_stmt_tests/geometryn10.testcase \ - sql_stmt_tests/geometryn11.testcase \ - sql_stmt_tests/geometryn12.testcase \ - sql_stmt_tests/geometryn13.testcase \ - sql_stmt_tests/geometryn14.testcase \ - sql_stmt_tests/geometryn15.testcase \ - sql_stmt_tests/geometryn16.testcase \ - sql_stmt_tests/geometryn17.testcase \ - sql_stmt_tests/geometryn18.testcase \ - sql_stmt_tests/geometryn19.testcase \ - sql_stmt_tests/geometryn1.testcase \ - sql_stmt_tests/geometryn20.testcase \ - sql_stmt_tests/geometryn2.testcase \ - sql_stmt_tests/geometryn3.testcase \ - sql_stmt_tests/geometryn4.testcase \ - sql_stmt_tests/geometryn5.testcase \ - sql_stmt_tests/geometryn6.testcase \ - sql_stmt_tests/geometryn7.testcase \ - sql_stmt_tests/geometryn8.testcase \ - sql_stmt_tests/geometryn9.testcase \ - sql_stmt_tests/geometryn.testcase \ - sql_stmt_tests/geomfromewkb1.testcase \ - sql_stmt_tests/geomfromewkb2.testcase \ - sql_stmt_tests/geomfromkml10.testcase \ - sql_stmt_tests/geomfromkml11.testcase \ - sql_stmt_tests/geomfromkml12.testcase \ - sql_stmt_tests/geomfromkml13.testcase \ - sql_stmt_tests/geomfromkml14.testcase \ - sql_stmt_tests/geomfromkml15.testcase \ - sql_stmt_tests/geomfromkml16.testcase \ - sql_stmt_tests/geomfromkml17.testcase \ - sql_stmt_tests/geomfromkml18.testcase \ - sql_stmt_tests/geomfromkml19.testcase \ - sql_stmt_tests/geomfromkml1.testcase \ - sql_stmt_tests/geomfromkml20.testcase \ - sql_stmt_tests/geomfromkml21.testcase \ - sql_stmt_tests/geomfromkml22.testcase \ - sql_stmt_tests/geomfromkml23.testcase \ - sql_stmt_tests/geomfromkml2.testcase \ - sql_stmt_tests/geomfromkml3.testcase \ - sql_stmt_tests/geomfromkml4.testcase \ - sql_stmt_tests/geomfromkml5.testcase \ - sql_stmt_tests/geomfromkml6.testcase \ - sql_stmt_tests/geomfromkml7.testcase \ - sql_stmt_tests/geomfromkml8.testcase \ - sql_stmt_tests/geomfromkml9.testcase \ - sql_stmt_tests/geomfromtext1.testcase \ - sql_stmt_tests/geomfromtext2.testcase \ - sql_stmt_tests/geomfromtext3.testcase \ - sql_stmt_tests/geomfromtext4.testcase \ - sql_stmt_tests/geomfromtext5.testcase \ - sql_stmt_tests/geomfromtext6.testcase \ - sql_stmt_tests/geomfromtext7.testcase \ - sql_stmt_tests/geomfromtext8.testcase \ - sql_stmt_tests/geomfromtext9.testcase \ - sql_stmt_tests/geomfromtext10.testcase \ - sql_stmt_tests/geomfromtext11.testcase \ - sql_stmt_tests/geomfromtext12.testcase \ - sql_stmt_tests/geomfromtext13.testcase \ - sql_stmt_tests/geomfromtext14.testcase \ - sql_stmt_tests/geomfromtext15.testcase \ - sql_stmt_tests/geomfromtext16.testcase \ - sql_stmt_tests/geomfromtext17.testcase \ - sql_stmt_tests/geomfromtext18.testcase \ - sql_stmt_tests/geomfromtext19.testcase \ - sql_stmt_tests/geomfromtext20.testcase \ - sql_stmt_tests/geomfromtext21.testcase \ - sql_stmt_tests/geomfromtext22.testcase \ - sql_stmt_tests/geomfromtext23.testcase \ - sql_stmt_tests/geomfromtext24.testcase \ - sql_stmt_tests/geomfromtext25.testcase \ - sql_stmt_tests/geomfromtext26.testcase \ - sql_stmt_tests/geomfromtext27.testcase \ - sql_stmt_tests/geomfromtext28.testcase \ - sql_stmt_tests/geomfromtext29.testcase \ - sql_stmt_tests/geomfromtext30.testcase \ - sql_stmt_tests/geomfromtext31.testcase \ - sql_stmt_tests/geomfromtext32.testcase \ - sql_stmt_tests/geomfromtext33.testcase \ - sql_stmt_tests/geomfromtext34.testcase \ - sql_stmt_tests/geomfromtext35.testcase \ - sql_stmt_tests/geomfromtext36.testcase \ - sql_stmt_tests/geomfromtext37.testcase \ - sql_stmt_tests/geomfromtext38.testcase \ - sql_stmt_tests/geomfromtext39.testcase \ - sql_stmt_tests/geomfromtext40.testcase \ - sql_stmt_tests/geomfromtext41.testcase \ - sql_stmt_tests/geomfromtext42.testcase \ - sql_stmt_tests/geomfromtext43.testcase \ - sql_stmt_tests/geomfromtext44.testcase \ - sql_stmt_tests/geomfromtext45.testcase \ - sql_stmt_tests/geomtype10.testcase \ - sql_stmt_tests/geomtype11.testcase \ - sql_stmt_tests/geomtype12.testcase \ - sql_stmt_tests/geomtype13.testcase \ - sql_stmt_tests/geomtype14.testcase \ - sql_stmt_tests/geomtype15.testcase \ - sql_stmt_tests/geomtype16.testcase \ - sql_stmt_tests/geomtype17.testcase \ - sql_stmt_tests/geomtype18.testcase \ - sql_stmt_tests/geomtype19.testcase \ - sql_stmt_tests/geomtype1.testcase \ - sql_stmt_tests/geomtype20.testcase \ - sql_stmt_tests/geomtype21.testcase \ - sql_stmt_tests/geomtype22.testcase \ - sql_stmt_tests/geomtype23.testcase \ - sql_stmt_tests/geomtype24.testcase \ - sql_stmt_tests/geomtype25.testcase \ - sql_stmt_tests/geomtype26.testcase \ - sql_stmt_tests/geomtype27.testcase \ - sql_stmt_tests/geomtype28.testcase \ - sql_stmt_tests/geomtype29.testcase \ - sql_stmt_tests/geomtype2.testcase \ - sql_stmt_tests/geomtype30.testcase \ - sql_stmt_tests/geomtype31.testcase \ - sql_stmt_tests/geomtype32.testcase \ - sql_stmt_tests/geomtype33.testcase \ - sql_stmt_tests/geomtype34.testcase \ - sql_stmt_tests/geomtype35.testcase \ - sql_stmt_tests/geomtype36.testcase \ - sql_stmt_tests/geomtype37.testcase \ - sql_stmt_tests/geomtype38.testcase \ - sql_stmt_tests/geomtype39.testcase \ - sql_stmt_tests/geomtype3.testcase \ - sql_stmt_tests/geomtype40.testcase \ - sql_stmt_tests/geomtype41.testcase \ - sql_stmt_tests/geomtype42.testcase \ - sql_stmt_tests/geomtype43.testcase \ - sql_stmt_tests/geomtype44.testcase \ - sql_stmt_tests/geomtype45.testcase \ - sql_stmt_tests/geomtype46.testcase \ - sql_stmt_tests/geomtype47.testcase \ - sql_stmt_tests/geomtype48.testcase \ - sql_stmt_tests/geomtype49.testcase \ - sql_stmt_tests/geomtype4.testcase \ - sql_stmt_tests/geomtype50.testcase \ - sql_stmt_tests/geomtype51.testcase \ - sql_stmt_tests/geomtype52.testcase \ - sql_stmt_tests/geomtype53.testcase \ - sql_stmt_tests/geomtype54.testcase \ - sql_stmt_tests/geomtype55.testcase \ - sql_stmt_tests/geomtype56.testcase \ - sql_stmt_tests/geomtype57.testcase \ - sql_stmt_tests/geomtype58.testcase \ - sql_stmt_tests/geomtype59.testcase \ - sql_stmt_tests/geomtype5.testcase \ - sql_stmt_tests/geomtype60.testcase \ - sql_stmt_tests/geomtype61.testcase \ - sql_stmt_tests/geomtype62.testcase \ - sql_stmt_tests/geomtype63.testcase \ - sql_stmt_tests/geomtype64.testcase \ - sql_stmt_tests/geomtype65.testcase \ - sql_stmt_tests/geomtype66.testcase \ - sql_stmt_tests/geomtype67.testcase \ - sql_stmt_tests/geomtype68.testcase \ - sql_stmt_tests/geomtype69.testcase \ - sql_stmt_tests/geomtype6.testcase \ - sql_stmt_tests/geomtype7.testcase \ - sql_stmt_tests/geomtype8.testcase \ - sql_stmt_tests/geomtype9.testcase \ - sql_stmt_tests/gml10.testcase \ - sql_stmt_tests/gml11.testcase \ - sql_stmt_tests/gml12.testcase \ - sql_stmt_tests/gml13.testcase \ - sql_stmt_tests/gml14.testcase \ - sql_stmt_tests/gml15.testcase \ - sql_stmt_tests/gml16.testcase \ - sql_stmt_tests/gml1.testcase \ - sql_stmt_tests/gml2.testcase \ - sql_stmt_tests/gml3.testcase \ - sql_stmt_tests/gml4.testcase \ - sql_stmt_tests/gml5.testcase \ - sql_stmt_tests/gml6.testcase \ - sql_stmt_tests/gml7.testcase \ - sql_stmt_tests/gml8.testcase \ - sql_stmt_tests/gml9.testcase \ - sql_stmt_tests/greatcircle-badblob.testcase \ - sql_stmt_tests/greatcircle-poly2.testcase \ - sql_stmt_tests/greatcircle-poly3.testcase \ - sql_stmt_tests/greatcircle-poly4.testcase \ - sql_stmt_tests/greatcircle-poly5.testcase \ - sql_stmt_tests/greatcircle-poly6.testcase \ - sql_stmt_tests/greatcircle-poly7.testcase \ - sql_stmt_tests/greatcircle-poly.testcase \ - sql_stmt_tests/greatcircle.testcase \ - sql_stmt_tests/greatcircle-text.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase \ - sql_stmt_tests/ind_ch_m.testcase \ - sql_stmt_tests/ind_ft_m.testcase \ - sql_stmt_tests/ind_yd_m.testcase \ - sql_stmt_tests/in_m.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint10.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint11.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint12.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint13.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint14.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint1.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint2.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint3.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint4.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint5.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint6.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint7.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint8.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint9.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase \ - sql_stmt_geos_tests/intersection10.testcase \ - sql_stmt_geos_tests/intersection11.testcase \ - sql_stmt_geos_tests/intersection12.testcase \ - sql_stmt_geos_tests/intersection1.testcase \ - sql_stmt_geos_tests/intersection2.testcase \ - sql_stmt_geos_tests/intersection3.testcase \ - sql_stmt_geos_tests/intersection4.testcase \ - sql_stmt_geos_tests/intersection5.testcase \ - sql_stmt_geos_tests/intersection6.testcase \ - sql_stmt_geos_tests/intersection7.testcase \ - sql_stmt_geos_tests/intersection8.testcase \ - sql_stmt_geos_tests/intersection9.testcase \ - sql_stmt_tests/is3d1.testcase \ - sql_stmt_tests/is3d2.testcase \ - sql_stmt_tests/is3d3.testcase \ - sql_stmt_tests/is3d4.testcase \ - sql_stmt_tests/is3d5.testcase \ - sql_stmt_tests/is3d6.testcase \ - sql_stmt_geos_tests/isclosed10.testcase \ - sql_stmt_geos_tests/isclosed1.testcase \ - sql_stmt_geos_tests/isclosed2.testcase \ - sql_stmt_geos_tests/isclosed3.testcase \ - sql_stmt_geos_tests/isclosed4.testcase \ - sql_stmt_geos_tests/isclosed5.testcase \ - sql_stmt_geos_tests/isclosed6.testcase \ - sql_stmt_geos_tests/isclosed7.testcase \ - sql_stmt_geos_tests/isclosed8.testcase \ - sql_stmt_geos_tests/isclosed9.testcase \ - sql_stmt_tests/isempty2.testcase \ - sql_stmt_tests/isempty3.testcase \ - sql_stmt_tests/isempty4.testcase \ - sql_stmt_tests/isempty.testcase \ - sql_stmt_tests/ismeasured1.testcase \ - sql_stmt_tests/ismeasured2.testcase \ - sql_stmt_tests/ismeasured3.testcase \ - sql_stmt_tests/ismeasured4.testcase \ - sql_stmt_tests/ismeasured5.testcase \ - sql_stmt_tests/ismeasured6.testcase \ - sql_stmt_geos_tests/isring1.testcase \ - sql_stmt_geos_tests/isring2.testcase \ - sql_stmt_geos_tests/isring3.testcase \ - sql_stmt_geos_tests/isring4.testcase \ - sql_stmt_geos_tests/isring5.testcase \ - sql_stmt_geos_tests/isring6.testcase \ - sql_stmt_geos_tests/isring7.testcase \ - sql_stmt_geos_tests/isring8.testcase \ - sql_stmt_geos_tests/isring9.testcase \ - sql_stmt_geos_tests/issimple1.testcase \ - sql_stmt_geos_tests/issimple2.testcase \ - sql_stmt_geos_tests/issimple3.testcase \ - sql_stmt_geos_tests/issimple4.testcase \ - sql_stmt_geos_tests/issimple5.testcase \ - sql_stmt_geos_tests/issimple6.testcase \ - sql_stmt_geos_tests/isvalid10.testcase \ - sql_stmt_geos_tests/isvalid11.testcase \ - sql_stmt_geos_tests/isvalid12.testcase \ - sql_stmt_geos_tests/isvalid13.testcase \ - sql_stmt_geos_tests/isvalid14.testcase \ - sql_stmt_geos_tests/isvalid15.testcase \ - sql_stmt_geos_tests/isvalid16.testcase \ - sql_stmt_geos_tests/isvalid17.testcase \ - sql_stmt_geos_tests/isvalid18.testcase \ - sql_stmt_geos_tests/isvalid19.testcase \ - sql_stmt_geos_tests/isvalid1.testcase \ - sql_stmt_geos_tests/isvalid20.testcase \ - sql_stmt_geos_tests/isvalid2.testcase \ - sql_stmt_geos_tests/isvalid3.testcase \ - sql_stmt_geos_tests/isvalid4.testcase \ - sql_stmt_geos_tests/isvalid5.testcase \ - sql_stmt_geos_tests/isvalid6.testcase \ - sql_stmt_geos_tests/isvalid7.testcase \ - sql_stmt_geos_tests/isvalid8.testcase \ - sql_stmt_geos_tests/isvalid9.testcase \ - sql_stmt_tests/isXblob5.testcase \ - sql_stmt_tests/isXblob6.testcase \ - sql_stmt_tests/isXblob7.testcase \ - sql_stmt_tests/k3b-icon.png \ - sql_stmt_tests/km_m.testcase \ - sql_stmt_tests/ktorrent_grad1.jpg \ - sql_stmt_tests/ktorrent_sidebar.gif \ - sql_stmt_tests/La_folla_durante_il_Palio.jpg \ - sql_stmt_tests/lhr1.testcase \ - sql_stmt_tests/lhr2.testcase \ - sql_stmt_tests/lhr3.testcase \ - sql_stmt_tests/lhr4.testcase \ - sql_stmt_tests/lhr5.testcase \ - sql_stmt_tests/lhr6.testcase \ - sql_stmt_tests/linefromtext1.testcase \ - sql_stmt_tests/linefromtext2.testcase \ - sql_stmt_geosadvanced_tests/linemerge10.testcase \ - sql_stmt_geosadvanced_tests/linemerge1.testcase \ - sql_stmt_geosadvanced_tests/linemerge2.testcase \ - sql_stmt_geosadvanced_tests/linemerge3.testcase \ - sql_stmt_geosadvanced_tests/linemerge4.testcase \ - sql_stmt_geosadvanced_tests/linemerge5.testcase \ - sql_stmt_geosadvanced_tests/linemerge6.testcase \ - sql_stmt_geosadvanced_tests/linemerge7.testcase \ - sql_stmt_geosadvanced_tests/linemerge8.testcase \ - sql_stmt_geosadvanced_tests/linemerge9.testcase \ - sql_stmt_tests/linesfromrings1.testcase \ - sql_stmt_tests/linesfromrings2.testcase \ - sql_stmt_tests/linesfromrings3.testcase \ - sql_stmt_tests/linesfromrings4.testcase \ - sql_stmt_tests/linesfromrings5.testcase \ - sql_stmt_tests/linesfromrings6.testcase \ - sql_stmt_tests/linesfromrings7.testcase \ - sql_stmt_geosadvanced_tests/linesnodes10.testcase \ - sql_stmt_geosadvanced_tests/linesnodes11.testcase \ - sql_stmt_geosadvanced_tests/linesnodes12.testcase \ - sql_stmt_geosadvanced_tests/linesnodes13.testcase \ - sql_stmt_geosadvanced_tests/linesnodes14.testcase \ - sql_stmt_geosadvanced_tests/linesnodes15.testcase \ - sql_stmt_geosadvanced_tests/linesnodes16.testcase \ - sql_stmt_geosadvanced_tests/linesnodes17.testcase \ - sql_stmt_geosadvanced_tests/linesnodes18.testcase \ - sql_stmt_geosadvanced_tests/linesnodes19.testcase \ - sql_stmt_geosadvanced_tests/linesnodes1.testcase \ - sql_stmt_geosadvanced_tests/linesnodes2.testcase \ - sql_stmt_geosadvanced_tests/linesnodes3.testcase \ - sql_stmt_geosadvanced_tests/linesnodes4.testcase \ - sql_stmt_geosadvanced_tests/linesnodes5.testcase \ - sql_stmt_geosadvanced_tests/linesnodes6.testcase \ - sql_stmt_geosadvanced_tests/linesnodes7.testcase \ - sql_stmt_geosadvanced_tests/linesnodes8.testcase \ - sql_stmt_geosadvanced_tests/linesnodes9.testcase \ - sql_stmt_geosadvanced_tests/linesubstring10.testcase \ - sql_stmt_geosadvanced_tests/linesubstring11.testcase \ - sql_stmt_geosadvanced_tests/linesubstring12.testcase \ - sql_stmt_geosadvanced_tests/linesubstring13.testcase \ - sql_stmt_geosadvanced_tests/linesubstring14.testcase \ - sql_stmt_geosadvanced_tests/linesubstring15.testcase \ - sql_stmt_geosadvanced_tests/linesubstring16.testcase \ - sql_stmt_geosadvanced_tests/linesubstring17.testcase \ - sql_stmt_geosadvanced_tests/linesubstring18.testcase \ - sql_stmt_geosadvanced_tests/linesubstring19.testcase \ - sql_stmt_geosadvanced_tests/linesubstring1.testcase \ - sql_stmt_geosadvanced_tests/linesubstring20.testcase \ - sql_stmt_geosadvanced_tests/linesubstring21.testcase \ - sql_stmt_geosadvanced_tests/linesubstring22.testcase \ - sql_stmt_geosadvanced_tests/linesubstring23.testcase \ - sql_stmt_geosadvanced_tests/linesubstring24.testcase \ - sql_stmt_geosadvanced_tests/linesubstring25.testcase \ - sql_stmt_geosadvanced_tests/linesubstring26.testcase \ - sql_stmt_geosadvanced_tests/linesubstring2.testcase \ - sql_stmt_geosadvanced_tests/linesubstring3.testcase \ - sql_stmt_geosadvanced_tests/linesubstring4.testcase \ - sql_stmt_geosadvanced_tests/linesubstring5.testcase \ - sql_stmt_geosadvanced_tests/linesubstring6.testcase \ - sql_stmt_geosadvanced_tests/linesubstring7.testcase \ - sql_stmt_geosadvanced_tests/linesubstring8.testcase \ - sql_stmt_geosadvanced_tests/linesubstring9.testcase \ - sql_stmt_tests/link_m.testcase \ - sql_stmt_tests/locatemeasure10.testcase \ - sql_stmt_tests/locatemeasure11.testcase \ - sql_stmt_tests/locatemeasure12.testcase \ - sql_stmt_tests/locatemeasure13.testcase \ - sql_stmt_tests/locatemeasure14.testcase \ - sql_stmt_tests/locatemeasure15.testcase \ - sql_stmt_tests/locatemeasure16.testcase \ - sql_stmt_tests/locatemeasure17.testcase \ - sql_stmt_tests/locatemeasure1.testcase \ - sql_stmt_tests/locatemeasure2.testcase \ - sql_stmt_tests/locatemeasure3.testcase \ - sql_stmt_tests/locatemeasure4.testcase \ - sql_stmt_tests/locatemeasure5.testcase \ - sql_stmt_tests/locatemeasure6.testcase \ - sql_stmt_tests/locatemeasure7.testcase \ - sql_stmt_tests/locatemeasure8.testcase \ - sql_stmt_tests/locatemeasure9.testcase \ - sql_stmt_geosadvanced_tests/locatepoint10.testcase \ - sql_stmt_geosadvanced_tests/locatepoint11.testcase \ - sql_stmt_geosadvanced_tests/locatepoint12.testcase \ - sql_stmt_geosadvanced_tests/locatepoint1.testcase \ - sql_stmt_geosadvanced_tests/locatepoint2.testcase \ - sql_stmt_geosadvanced_tests/locatepoint3.testcase \ - sql_stmt_geosadvanced_tests/locatepoint4.testcase \ - sql_stmt_geosadvanced_tests/locatepoint5.testcase \ - sql_stmt_geosadvanced_tests/locatepoint6.testcase \ - sql_stmt_geosadvanced_tests/locatepoint7.testcase \ - sql_stmt_geosadvanced_tests/locatepoint8.testcase \ - sql_stmt_geosadvanced_tests/locatepoint9.testcase \ - sql_stmt_mathsql_tests/log10-0.0.testcase \ - sql_stmt_mathsql_tests/log10-100.0.testcase \ - sql_stmt_mathsql_tests/log10-100.testcase \ - sql_stmt_mathsql_tests/log10-text.testcase \ - sql_stmt_mathsql_tests/log2-0.0.testcase \ - sql_stmt_mathsql_tests/log2-0.testcase \ - sql_stmt_mathsql_tests/log2-4.0.testcase \ - sql_stmt_mathsql_tests/log2-4.testcase \ - sql_stmt_mathsql_tests/log2-text.testcase \ - sql_stmt_mathsql_tests/logn00.testcase \ - sql_stmt_mathsql_tests/logn0.testcase \ - sql_stmt_mathsql_tests/logn10.testcase \ - sql_stmt_mathsql_tests/logn1.testcase \ - sql_stmt_mathsql_tests/logn2-01.testcase \ - sql_stmt_mathsql_tests/logn2-02.testcase \ - sql_stmt_mathsql_tests/logn2-2.2.testcase \ - sql_stmt_mathsql_tests/logn2-4.2int.testcase \ - sql_stmt_mathsql_tests/logn2-4.2.testcase \ - sql_stmt_mathsql_tests/logn2-text2.testcase \ - sql_stmt_mathsql_tests/logn2-text3.testcase \ - sql_stmt_mathsql_tests/logn2-text4.testcase \ - sql_stmt_mathsql_tests/logn2-text.testcase \ - sql_stmt_mathsql_tests/logn-text.testcase \ - sql_stmt_tests/makeline10.testcase \ - sql_stmt_tests/makeline11.testcase \ - sql_stmt_tests/makeline12.testcase \ - sql_stmt_tests/makeline13.testcase \ - sql_stmt_tests/makeline14.testcase \ - sql_stmt_tests/makeline15.testcase \ - sql_stmt_tests/makeline16.testcase \ - sql_stmt_tests/makeline17.testcase \ - sql_stmt_tests/makeline18.testcase \ - sql_stmt_tests/makeline19.testcase \ - sql_stmt_tests/makeline20.testcase \ - sql_stmt_tests/makeline21.testcase \ - sql_stmt_tests/makeline22.testcase \ - sql_stmt_tests/makeline23.testcase \ - sql_stmt_tests/makeline24.testcase \ - sql_stmt_tests/makeline2.testcase \ - sql_stmt_tests/makeline3.testcase \ - sql_stmt_tests/makeline4.testcase \ - sql_stmt_tests/makeline5.testcase \ - sql_stmt_tests/makeline6.testcase \ - sql_stmt_tests/makeline7.testcase \ - sql_stmt_tests/makeline8.testcase \ - sql_stmt_tests/makeline9.testcase \ - sql_stmt_tests/makeline.testcase \ - sql_stmt_tests/makepoint10.testcase \ - sql_stmt_tests/makepoint11.testcase \ - sql_stmt_tests/makepoint12.testcase \ - sql_stmt_tests/makepoint13.testcase \ - sql_stmt_tests/makepoint14.testcase \ - sql_stmt_tests/makepoint15.testcase \ - sql_stmt_tests/makepoint1.testcase \ - sql_stmt_tests/makepoint2.testcase \ - sql_stmt_tests/makepoint3.testcase \ - sql_stmt_tests/makepoint4.testcase \ - sql_stmt_tests/makepoint5.testcase \ - sql_stmt_tests/makepoint6.testcase \ - sql_stmt_tests/makepoint7.testcase \ - sql_stmt_tests/makepoint8.testcase \ - sql_stmt_tests/makepoint9.testcase \ - sql_stmt_tests/makepointm-null1.testcase \ - sql_stmt_tests/makepointm-null2.testcase \ - sql_stmt_tests/makepointm-null3.testcase \ - sql_stmt_tests/makepointm-null4.testcase \ - sql_stmt_tests/makepointm-null5.testcase \ - sql_stmt_tests/makepointm-null6.testcase \ - sql_stmt_tests/makepointm-null7.testcase \ - sql_stmt_tests/makepointm-null8.testcase \ - sql_stmt_tests/makepoint-null1.testcase \ - sql_stmt_tests/makepoint-null2.testcase \ - sql_stmt_tests/makepoint-null3.testcase \ - sql_stmt_tests/makepoint-null4.testcase \ - sql_stmt_tests/makepoint-null5.testcase \ - sql_stmt_tests/makepoint-null6.testcase \ - sql_stmt_tests/makepoint-null7.testcase \ - sql_stmt_tests/makepointzm-null10.testcase \ - sql_stmt_tests/makepointzm-null1.testcase \ - sql_stmt_tests/makepointzm-null2.testcase \ - sql_stmt_tests/makepointzm-null3.testcase \ - sql_stmt_tests/makepointzm-null4.testcase \ - sql_stmt_tests/makepointzm-null5.testcase \ - sql_stmt_tests/makepointzm-null6.testcase \ - sql_stmt_tests/makepointzm-null7.testcase \ - sql_stmt_tests/makepointzm-null8.testcase \ - sql_stmt_tests/makepointzm-null9.testcase \ - sql_stmt_tests/makepointz-null1.testcase \ - sql_stmt_tests/makepointz-null2.testcase \ - sql_stmt_tests/makepointz-null3.testcase \ - sql_stmt_tests/makepointz-null4.testcase \ - sql_stmt_tests/makepointz-null5.testcase \ - sql_stmt_tests/makepointz-null6.testcase \ - sql_stmt_tests/makepointz-null7.testcase \ - sql_stmt_tests/makepointz-null8.testcase \ - sql_stmt_tests/maxm1.testcase \ - sql_stmt_tests/maxm2.testcase \ - sql_stmt_tests/maxm3.testcase \ - sql_stmt_tests/maxm4.testcase \ - sql_stmt_tests/maxm5.testcase \ - sql_stmt_tests/maxm6.testcase \ - sql_stmt_tests/maxm7.testcase \ - sql_stmt_tests/maxz1.testcase \ - sql_stmt_tests/maxz2.testcase \ - sql_stmt_tests/maxz3.testcase \ - sql_stmt_tests/maxz4.testcase \ - sql_stmt_tests/maxz5.testcase \ - sql_stmt_tests/maxz6.testcase \ - sql_stmt_tests/maxz7.testcase \ - sql_stmt_tests/mbr10.testcase \ - sql_stmt_tests/mbr11.testcase \ - sql_stmt_tests/mbr12.testcase \ - sql_stmt_tests/mbr13.testcase \ - sql_stmt_tests/mbr14.testcase \ - sql_stmt_tests/mbr15.testcase \ - sql_stmt_tests/mbr16.testcase \ - sql_stmt_tests/mbr17.testcase \ - sql_stmt_tests/mbr18.testcase \ - sql_stmt_tests/mbr19.testcase \ - sql_stmt_tests/mbr1.testcase \ - sql_stmt_tests/mbr20.testcase \ - sql_stmt_tests/mbr21.testcase \ - sql_stmt_tests/mbr22.testcase \ - sql_stmt_tests/mbr23.testcase \ - sql_stmt_tests/mbr24.testcase \ - sql_stmt_tests/mbr25.testcase \ - sql_stmt_tests/mbr26.testcase \ - sql_stmt_tests/mbr27.testcase \ - sql_stmt_tests/mbr28.testcase \ - sql_stmt_tests/mbr29.testcase \ - sql_stmt_tests/mbr2.testcase \ - sql_stmt_tests/mbr30.testcase \ - sql_stmt_tests/mbr31.testcase \ - sql_stmt_tests/mbr32.testcase \ - sql_stmt_tests/mbr3.testcase \ - sql_stmt_tests/mbr4.testcase \ - sql_stmt_tests/mbr5.testcase \ - sql_stmt_tests/mbr6.testcase \ - sql_stmt_tests/mbr7.testcase \ - sql_stmt_tests/mbr8.testcase \ - sql_stmt_tests/mbr9.testcase \ - sql_stmt_tests/mbrminmax1.testcase \ - sql_stmt_tests/mbrminmax2.testcase \ - sql_stmt_tests/mbrminmax3.testcase \ - sql_stmt_tests/mbrminmax4.testcase \ - sql_stmt_tests/mbrminmax5.testcase \ - sql_stmt_tests/mbrminmax6.testcase \ - sql_stmt_tests/mbrminmax7.testcase \ - sql_stmt_tests/mbrminmax8.testcase \ - sql_stmt_tests/m_ch.testcase \ - sql_stmt_tests/m_cm.testcase \ - sql_stmt_tests/m_dm.testcase \ - sql_stmt_tests/m_fath.testcase \ - sql_stmt_tests/m_ft.testcase \ - sql_stmt_tests/m_ft-text.testcase \ - sql_stmt_tests/mi_m.testcase \ - sql_stmt_tests/m_ind_ch.testcase \ - sql_stmt_tests/m_ind_ft.testcase \ - sql_stmt_tests/m_ind_yd.testcase \ - sql_stmt_tests/minm1.testcase \ - sql_stmt_tests/minm2.testcase \ - sql_stmt_tests/minm3.testcase \ - sql_stmt_tests/minm4.testcase \ - sql_stmt_tests/minm5.testcase \ - sql_stmt_tests/minm6.testcase \ - sql_stmt_tests/m_in.testcase \ - sql_stmt_tests/m_in_us.testcase \ - sql_stmt_tests/minz1.testcase \ - sql_stmt_tests/minz2.testcase \ - sql_stmt_tests/minz3.testcase \ - sql_stmt_tests/minz4.testcase \ - sql_stmt_tests/minz5.testcase \ - sql_stmt_tests/minz6.testcase \ - sql_stmt_tests/m_km.testcase \ - sql_stmt_tests/mlinefromtext1.testcase \ - sql_stmt_tests/mlinefromtext2.testcase \ - sql_stmt_tests/m_ln.testcase \ - sql_stmt_tests/m_mi.testcase \ - sql_stmt_tests/m_mm.testcase \ - sql_stmt_tests/mm_m.testcase \ - sql_stmt_tests/m_nm.testcase \ - sql_stmt_tests/mpointfromtext1.testcase \ - sql_stmt_tests/mpointfromtext2.testcase \ - sql_stmt_tests/mpolygonfromtext1.testcase \ - sql_stmt_tests/mpolygonfromtext2.testcase \ - sql_stmt_tests/m_us_ch.testcase \ - sql_stmt_tests/m_us_ft.testcase \ - sql_stmt_tests/m_usmi.testcase \ - sql_stmt_tests/m_yd.testcase \ - sql_stmt_tests/m_yd_us.testcase \ - sql_stmt_tests/ndims1.testcase \ - sql_stmt_tests/ndims2.testcase \ - sql_stmt_tests/ndims3.testcase \ - sql_stmt_tests/ndims4.testcase \ - sql_stmt_tests/ndims5.testcase \ - sql_stmt_tests/ndims6.testcase \ - sql_stmt_tests/nm_m.testcase \ - sql_stmt_tests/normalizelonlat10.testcase \ - sql_stmt_tests/normalizelonlat11.testcase \ - sql_stmt_tests/normalizelonlat12.testcase \ - sql_stmt_tests/normalizelonlat13.testcase \ - sql_stmt_tests/normalizelonlat14.testcase \ - sql_stmt_tests/normalizelonlat15.testcase \ - sql_stmt_tests/normalizelonlat16.testcase \ - sql_stmt_tests/normalizelonlat17.testcase \ - sql_stmt_tests/normalizelonlat18.testcase \ - sql_stmt_tests/normalizelonlat19.testcase \ - sql_stmt_tests/normalizelonlat1.testcase \ - sql_stmt_tests/normalizelonlat20.testcase \ - sql_stmt_tests/normalizelonlat21.testcase \ - sql_stmt_tests/normalizelonlat22.testcase \ - sql_stmt_tests/normalizelonlat23.testcase \ - sql_stmt_tests/normalizelonlat24.testcase \ - sql_stmt_tests/normalizelonlat25.testcase \ - sql_stmt_tests/normalizelonlat26.testcase \ - sql_stmt_tests/normalizelonlat27.testcase \ - sql_stmt_tests/normalizelonlat2.testcase \ - sql_stmt_tests/normalizelonlat3.testcase \ - sql_stmt_tests/normalizelonlat4.testcase \ - sql_stmt_tests/normalizelonlat5.testcase \ - sql_stmt_tests/normalizelonlat6.testcase \ - sql_stmt_tests/normalizelonlat7.testcase \ - sql_stmt_tests/normalizelonlat8.testcase \ - sql_stmt_tests/normalizelonlat9.testcase \ - sql_stmt_tests/npoints1.testcase \ - sql_stmt_tests/npoints2.testcase \ - sql_stmt_tests/npoints3.testcase \ - sql_stmt_tests/npoints4.testcase \ - sql_stmt_tests/npoints5.testcase \ - sql_stmt_tests/npoints6.testcase \ - sql_stmt_tests/nrings1.testcase \ - sql_stmt_tests/nrings2.testcase \ - sql_stmt_tests/nrings3.testcase \ - sql_stmt_tests/nrings4.testcase \ - sql_stmt_tests/nrings5.testcase \ - sql_stmt_tests/nrings6.testcase \ - sql_stmt_tests/numgeometries1.testcase \ - sql_stmt_tests/numgeometries2.testcase \ - sql_stmt_tests/numgeometries3.testcase \ - sql_stmt_tests/numgeometries4.testcase \ - sql_stmt_tests/numgeometries5.testcase \ - sql_stmt_tests/numgeometries6.testcase \ - sql_stmt_tests/NumPoints2.testcase \ - sql_stmt_tests/NumPoints3.testcase \ - sql_stmt_tests/NumPoints4.testcase \ - sql_stmt_tests/NumPoints5.testcase \ - sql_stmt_tests/NumPoints6.testcase \ - sql_stmt_tests/NumPoints7.testcase \ - sql_stmt_tests/NumPoints.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve10.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve11.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve12.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve13.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve14.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve1.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve2.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve3.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve4.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve5.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve6.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve7.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve8.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve9.testcase \ - sql_stmt_proj_tests/output10.testcase \ - sql_stmt_proj_tests/output11.testcase \ - sql_stmt_proj_tests/output12.testcase \ - sql_stmt_proj_tests/output13.testcase \ - sql_stmt_proj_tests/output14.testcase \ - sql_stmt_proj_tests/output15.testcase \ - sql_stmt_proj_tests/output16.testcase \ - sql_stmt_proj_tests/output17.testcase \ - sql_stmt_proj_tests/output18.testcase \ - sql_stmt_proj_tests/output19.testcase \ - sql_stmt_proj_tests/output1.testcase \ - sql_stmt_proj_tests/output20.testcase \ - sql_stmt_proj_tests/output21.testcase \ - sql_stmt_proj_tests/output22.testcase \ - sql_stmt_proj_tests/output23.testcase \ - sql_stmt_proj_tests/output24.testcase \ - sql_stmt_proj_tests/output25.testcase \ - sql_stmt_proj_tests/output26.testcase \ - sql_stmt_proj_tests/output27.testcase \ - sql_stmt_proj_tests/output28.testcase \ - sql_stmt_proj_tests/output29.testcase \ - sql_stmt_proj_tests/output2.testcase \ - sql_stmt_proj_tests/output30.testcase \ - sql_stmt_proj_tests/output31.testcase \ - sql_stmt_proj_tests/output32.testcase \ - sql_stmt_proj_tests/output33.testcase \ - sql_stmt_proj_tests/output34.testcase \ - sql_stmt_proj_tests/output35.testcase \ - sql_stmt_proj_tests/output36.testcase \ - sql_stmt_proj_tests/output37.testcase \ - sql_stmt_proj_tests/output38.testcase \ - sql_stmt_proj_tests/output3.testcase \ - sql_stmt_proj_tests/output4.testcase \ - sql_stmt_proj_tests/output5.testcase \ - sql_stmt_proj_tests/output6.testcase \ - sql_stmt_proj_tests/output7.testcase \ - sql_stmt_proj_tests/output8.testcase \ - sql_stmt_proj_tests/output9.testcase \ - sql_stmt_mathsql_tests/pi.testcase \ - sql_stmt_tests/pointfromtext1.testcase \ - sql_stmt_tests/pointfromtext2.testcase \ - sql_stmt_tests/pointn10.testcase \ - sql_stmt_tests/pointn11.testcase \ - sql_stmt_tests/pointn12.testcase \ - sql_stmt_tests/pointn13.testcase \ - sql_stmt_tests/pointn14.testcase \ - sql_stmt_tests/pointn15.testcase \ - sql_stmt_tests/pointn1.testcase \ - sql_stmt_tests/pointn2.testcase \ - sql_stmt_tests/pointn3.testcase \ - sql_stmt_tests/pointn4.testcase \ - sql_stmt_tests/pointn5.testcase \ - sql_stmt_tests/pointn6.testcase \ - sql_stmt_tests/pointn7.testcase \ - sql_stmt_tests/pointn8.testcase \ - sql_stmt_tests/pointn9.testcase \ - sql_stmt_geos_tests/pointonsurface1.testcase \ - sql_stmt_geos_tests/pointonsurface2.testcase \ - sql_stmt_geos_tests/pointonsurface3.testcase \ - sql_stmt_geos_tests/pointonsurface4.testcase \ - sql_stmt_geos_tests/pointonsurface5.testcase \ - sql_stmt_geos_tests/pointonsurface6.testcase \ - sql_stmt_geos_tests/pointonsurface7.testcase \ - sql_stmt_tests/polygonfromtext1.testcase \ - sql_stmt_tests/polygonfromtext2.testcase \ - sql_stmt_geos_tests/polygonize10.testcase \ - sql_stmt_geos_tests/polygonize11.testcase \ - sql_stmt_geos_tests/polygonize12.testcase \ - sql_stmt_geos_tests/polygonize13.testcase \ - sql_stmt_geos_tests/polygonize14.testcase \ - sql_stmt_geos_tests/polygonize1.testcase \ - sql_stmt_geos_tests/polygonize2.testcase \ - sql_stmt_geos_tests/polygonize3.testcase \ - sql_stmt_geos_tests/polygonize4.testcase \ - sql_stmt_geos_tests/polygonize5.testcase \ - sql_stmt_geos_tests/polygonize6.testcase \ - sql_stmt_geos_tests/polygonize7.testcase \ - sql_stmt_geos_tests/polygonize8.testcase \ - sql_stmt_geos_tests/polygonize9.testcase \ - sql_stmt_mathsql_tests/pow00-1.testcase \ - sql_stmt_mathsql_tests/pow00-2.testcase \ - sql_stmt_mathsql_tests/pow00double.testcase \ - sql_stmt_mathsql_tests/pow00.testcase \ - sql_stmt_mathsql_tests/pow-badarg1.testcase \ - sql_stmt_mathsql_tests/pow-badarg2.testcase \ - sql_stmt_mathsql_tests/pow-edom.testcase \ - sql_stmt_mathsql_tests/pow-fp.testcase \ - sql_stmt_geos_tests/ptdistancewithin10.testcase \ - sql_stmt_geos_tests/ptdistancewithin11.testcase \ - sql_stmt_geos_tests/ptdistancewithin12.testcase \ - sql_stmt_geos_tests/ptdistancewithin13.testcase \ - sql_stmt_geos_tests/ptdistancewithin14.testcase \ - sql_stmt_geos_tests/ptdistancewithin15.testcase \ - sql_stmt_geos_tests/ptdistancewithin16.testcase \ - sql_stmt_geos_tests/ptdistancewithin17.testcase \ - sql_stmt_geos_tests/ptdistancewithin18.testcase \ - sql_stmt_geos_tests/ptdistancewithin1.testcase \ - sql_stmt_geos_tests/ptdistancewithin2.testcase \ - sql_stmt_geos_tests/ptdistancewithin3.testcase \ - sql_stmt_geos_tests/ptdistancewithin4.testcase \ - sql_stmt_geos_tests/ptdistancewithin5.testcase \ - sql_stmt_geos_tests/ptdistancewithin6.testcase \ - sql_stmt_geos_tests/ptdistancewithin7.testcase \ - sql_stmt_geos_tests/ptdistancewithin8.testcase \ - sql_stmt_geos_tests/ptdistancewithin9.testcase \ - sql_stmt_geos_tests/ptdistwithin10.testcase \ - sql_stmt_geos_tests/ptdistwithin11.testcase \ - sql_stmt_geos_tests/ptdistwithin12.testcase \ - sql_stmt_geos_tests/ptdistwithin13.testcase \ - sql_stmt_geos_tests/ptdistwithin14.testcase \ - sql_stmt_geos_tests/ptdistwithin15.testcase \ - sql_stmt_geos_tests/ptdistwithin16.testcase \ - sql_stmt_geos_tests/ptdistwithin1.testcase \ - sql_stmt_geos_tests/ptdistwithin2.testcase \ - sql_stmt_geos_tests/ptdistwithin3.testcase \ - sql_stmt_geos_tests/ptdistwithin4.testcase \ - sql_stmt_geos_tests/ptdistwithin5.testcase \ - sql_stmt_geos_tests/ptdistwithin6.testcase \ - sql_stmt_geos_tests/ptdistwithin7.testcase \ - sql_stmt_geos_tests/ptdistwithin8.testcase \ - sql_stmt_geos_tests/ptdistwithin9.testcase \ - sql_stmt_mathsql_tests/rad0.testcase \ - sql_stmt_mathsql_tests/radpi.testcase \ - sql_stmt_mathsql_tests/rad-text.testcase \ - sql_stmt_tests/reflectcoords10.testcase \ - sql_stmt_tests/reflectcoords11.testcase \ - sql_stmt_tests/reflectcoords12.testcase \ - sql_stmt_tests/reflectcoords13.testcase \ - sql_stmt_tests/reflectcoords14.testcase \ - sql_stmt_tests/reflectcoords15.testcase \ - sql_stmt_tests/reflectcoords16.testcase \ - sql_stmt_tests/reflectcoords17.testcase \ - sql_stmt_tests/reflectcoords1.testcase \ - sql_stmt_tests/reflectcoords2.testcase \ - sql_stmt_tests/reflectcoords3.testcase \ - sql_stmt_tests/reflectcoords4.testcase \ - sql_stmt_tests/reflectcoords5.testcase \ - sql_stmt_tests/reflectcoords6.testcase \ - sql_stmt_tests/reflectcoords7.testcase \ - sql_stmt_tests/reflectcoords8.testcase \ - sql_stmt_tests/reflectcoords9.testcase \ - sql_stmt_geos_tests/relate1.testcase \ - sql_stmt_geos_tests/relate2.testcase \ - sql_stmt_geos_tests/relate3.testcase \ - sql_stmt_geos_tests/relate4.testcase \ - sql_stmt_geos_tests/relate5.testcase \ - sql_stmt_geos_tests/relate6.testcase \ - sql_stmt_geos_tests/relate7.testcase \ - sql_stmt_geos_tests/relate8.testcase \ - sql_stmt_geos_tests/relate9.testcase \ - sql_stmt_geos_tests/relations1.testcase \ - sql_stmt_geos_tests/relations2.testcase \ - sql_stmt_geos_tests/relations3.testcase \ - sql_stmt_geos_tests/relations4.testcase \ - sql_stmt_geos_tests/relations5.testcase \ - sql_stmt_geos_tests/relations6.testcase \ - sql_stmt_geos_tests/relations7.testcase \ - sql_stmt_geos_tests/relations8.testcase \ - sql_stmt_tests/reverse1.testcase \ - sql_stmt_tests/reverse2.testcase \ - sql_stmt_tests/reverse3.testcase \ - sql_stmt_tests/reverse4.testcase \ - sql_stmt_tests/reverse5.testcase \ - sql_stmt_tests/reverse6.testcase \ - sql_stmt_tests/ring10.testcase \ - sql_stmt_tests/ring11.testcase \ - sql_stmt_tests/ring12.testcase \ - sql_stmt_tests/ring13.testcase \ - sql_stmt_tests/ring14.testcase \ - sql_stmt_tests/ring15.testcase \ - sql_stmt_tests/ring16.testcase \ - sql_stmt_tests/ring17.testcase \ - sql_stmt_tests/ring18.testcase \ - sql_stmt_tests/ring19.testcase \ - sql_stmt_tests/ring1.testcase \ - sql_stmt_tests/ring20.testcase \ - sql_stmt_tests/ring21.testcase \ - sql_stmt_tests/ring22.testcase \ - sql_stmt_tests/ring23.testcase \ - sql_stmt_tests/ring24.testcase \ - sql_stmt_tests/ring25.testcase \ - sql_stmt_tests/ring26.testcase \ - sql_stmt_tests/ring27.testcase \ - sql_stmt_tests/ring28.testcase \ - sql_stmt_tests/ring2.testcase \ - sql_stmt_tests/ring3.testcase \ - sql_stmt_tests/ring4.testcase \ - sql_stmt_tests/ring5.testcase \ - sql_stmt_tests/ring6.testcase \ - sql_stmt_tests/ring7.testcase \ - sql_stmt_tests/ring8.testcase \ - sql_stmt_tests/ring9.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes1.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes2.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes3.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes4.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes5.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes6.testcase \ - sql_stmt_tests/rotatecoords10.testcase \ - sql_stmt_tests/rotatecoords11.testcase \ - sql_stmt_tests/rotatecoords12.testcase \ - sql_stmt_tests/rotatecoords13.testcase \ - sql_stmt_tests/rotatecoords14.testcase \ - sql_stmt_tests/rotatecoords1.testcase \ - sql_stmt_tests/rotatecoords2.testcase \ - sql_stmt_tests/rotatecoords3.testcase \ - sql_stmt_tests/rotatecoords4.testcase \ - sql_stmt_tests/rotatecoords5.testcase \ - sql_stmt_tests/rotatecoords6.testcase \ - sql_stmt_tests/rotatecoords7.testcase \ - sql_stmt_tests/rotatecoords8.testcase \ - sql_stmt_tests/rotatecoords9.testcase \ - sql_stmt_mathsql_tests/round0.testcase \ - sql_stmt_mathsql_tests/round-29.testcase \ - sql_stmt_mathsql_tests/round29.testcase \ - sql_stmt_mathsql_tests/round30.testcase \ - sql_stmt_mathsql_tests/round-31.testcase \ - sql_stmt_mathsql_tests/round31.testcase \ - sql_stmt_mathsql_tests/round3.testcase \ - sql_stmt_mathsql_tests/round-text.testcase \ - sql_stmt_tests/routing1.testcase \ - sql_stmt_tests/routing2.testcase \ - sql_stmt_tests/routing3.testcase \ - sql_stmt_tests/routing4.testcase \ - sql_stmt_tests/routing5.testcase \ - sql_stmt_geos_tests/routing6.testcase \ - sql_stmt_tests/sandro.jpg \ - sql_stmt_tests/sanitizeGeometry10.testcase \ - sql_stmt_tests/sanitizeGeometry11.testcase \ - sql_stmt_tests/sanitizeGeometry12.testcase \ - sql_stmt_tests/sanitizeGeometry13.testcase \ - sql_stmt_tests/sanitizeGeometry14.testcase \ - sql_stmt_tests/sanitizeGeometry15.testcase \ - sql_stmt_tests/sanitizeGeometry16.testcase \ - sql_stmt_tests/sanitizeGeometry1.testcase \ - sql_stmt_tests/sanitizeGeometry2.testcase \ - sql_stmt_tests/sanitizeGeometry3.testcase \ - sql_stmt_tests/sanitizeGeometry4.testcase \ - sql_stmt_tests/sanitizeGeometry5.testcase \ - sql_stmt_tests/sanitizeGeometry6.testcase \ - sql_stmt_tests/sanitizeGeometry7.testcase \ - sql_stmt_tests/sanitizeGeometry8.testcase \ - sql_stmt_tests/sanitizeGeometry9.testcase \ - sql_stmt_tests/scalecoords10.testcase \ - sql_stmt_tests/scalecoords11.testcase \ - sql_stmt_tests/scalecoords12.testcase \ - sql_stmt_tests/scalecoords13.testcase \ - sql_stmt_tests/scalecoords1.testcase \ - sql_stmt_tests/scalecoords2.testcase \ - sql_stmt_tests/scalecoords3.testcase \ - sql_stmt_tests/scalecoords4.testcase \ - sql_stmt_tests/scalecoords5.testcase \ - sql_stmt_tests/scalecoords6.testcase \ - sql_stmt_tests/scalecoords7.testcase \ - sql_stmt_tests/scalecoords8.testcase \ - sql_stmt_tests/scalecoords9.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths10.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths11.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths12.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths13.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths14.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths15.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths16.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths17.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths18.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths19.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths1.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths20.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths21.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths22.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths23.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths24.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths25.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths26.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths27.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths28.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths29.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths2.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths30.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths31.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths32.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths3.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths4.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths5.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths6.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths7.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths8.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths9.testcase \ - sql_stmt_tests/shiftcoords10.testcase \ - sql_stmt_tests/shiftcoords11.testcase \ - sql_stmt_tests/shiftcoords12.testcase \ - sql_stmt_tests/shiftcoords13.testcase \ - sql_stmt_tests/shiftcoords14.testcase \ - sql_stmt_tests/shiftcoords15.testcase \ - sql_stmt_tests/shiftcoords1.testcase \ - sql_stmt_tests/shiftcoords2.testcase \ - sql_stmt_tests/shiftcoords3.testcase \ - sql_stmt_tests/shiftcoords4.testcase \ - sql_stmt_tests/shiftcoords5.testcase \ - sql_stmt_tests/shiftcoords6.testcase \ - sql_stmt_tests/shiftcoords7.testcase \ - sql_stmt_tests/shiftcoords8.testcase \ - sql_stmt_tests/shiftcoords9.testcase \ - sql_stmt_tests/shiftlongitude10.testcase \ - sql_stmt_tests/shiftlongitude11.testcase \ - sql_stmt_tests/shiftlongitude12.testcase \ - sql_stmt_tests/shiftlongitude13.testcase \ - sql_stmt_tests/shiftlongitude14.testcase \ - sql_stmt_tests/shiftlongitude15.testcase \ - sql_stmt_tests/shiftlongitude16.testcase \ - sql_stmt_tests/shiftlongitude17.testcase \ - sql_stmt_tests/shiftlongitude18.testcase \ - sql_stmt_tests/shiftlongitude19.testcase \ - sql_stmt_tests/shiftlongitude1.testcase \ - sql_stmt_tests/shiftlongitude20.testcase \ - sql_stmt_tests/shiftlongitude21.testcase \ - sql_stmt_tests/shiftlongitude22.testcase \ - sql_stmt_tests/shiftlongitude23.testcase \ - sql_stmt_tests/shiftlongitude24.testcase \ - sql_stmt_tests/shiftlongitude25.testcase \ - sql_stmt_tests/shiftlongitude26.testcase \ - sql_stmt_tests/shiftlongitude2.testcase \ - sql_stmt_tests/shiftlongitude3.testcase \ - sql_stmt_tests/shiftlongitude4.testcase \ - sql_stmt_tests/shiftlongitude5.testcase \ - sql_stmt_tests/shiftlongitude6.testcase \ - sql_stmt_tests/shiftlongitude7.testcase \ - sql_stmt_tests/shiftlongitude8.testcase \ - sql_stmt_tests/shiftlongitude9.testcase \ - sql_stmt_geosadvanced_tests/shortestline1.testcase \ - sql_stmt_geosadvanced_tests/shortestline2.testcase \ - sql_stmt_geosadvanced_tests/shortestline3.testcase \ - sql_stmt_geosadvanced_tests/shortestline4.testcase \ - sql_stmt_geosadvanced_tests/shortestline5.testcase \ - sql_stmt_geosadvanced_tests/shortestline6.testcase \ - sql_stmt_geosadvanced_tests/shortestline7.testcase \ - sql_stmt_mathsql_tests/sign00.testcase \ - sql_stmt_mathsql_tests/sign01.testcase \ - sql_stmt_mathsql_tests/sign0.testcase \ - sql_stmt_mathsql_tests/sign10.testcase \ - sql_stmt_mathsql_tests/signeg2int.testcase \ - sql_stmt_mathsql_tests/signeg2.testcase \ - sql_stmt_mathsql_tests/signeg.testcase \ - sql_stmt_mathsql_tests/signtext.testcase \ - sql_stmt_geos_tests/simplify10.testcase \ - sql_stmt_geos_tests/simplify11.testcase \ - sql_stmt_geos_tests/simplify12.testcase \ - sql_stmt_geos_tests/simplify13.testcase \ - sql_stmt_geos_tests/simplify14.testcase \ - sql_stmt_geos_tests/simplify15.testcase \ - sql_stmt_geos_tests/simplify16.testcase \ - sql_stmt_geos_tests/simplify1.testcase \ - sql_stmt_geos_tests/simplify2.testcase \ - sql_stmt_geos_tests/simplify3.testcase \ - sql_stmt_geos_tests/simplify4.testcase \ - sql_stmt_geos_tests/simplify5.testcase \ - sql_stmt_geos_tests/simplify6.testcase \ - sql_stmt_geos_tests/simplify7.testcase \ - sql_stmt_geos_tests/simplify8.testcase \ - sql_stmt_geos_tests/simplify9.testcase \ - sql_stmt_mathsql_tests/sin00.testcase \ - sql_stmt_mathsql_tests/sin0.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase \ - sql_stmt_mathsql_tests/sin-pi2.testcase \ - sql_stmt_mathsql_tests/sinpi2.testcase \ - sql_stmt_mathsql_tests/sin-pi.testcase \ - sql_stmt_mathsql_tests/sinpi.testcase \ - sql_stmt_mathsql_tests/sin-text.testcase \ - sql_stmt_geosadvanced_tests/snap10.testcase \ - sql_stmt_geosadvanced_tests/snap1.testcase \ - sql_stmt_geosadvanced_tests/snap2.testcase \ - sql_stmt_geosadvanced_tests/snap3.testcase \ - sql_stmt_geosadvanced_tests/snap4.testcase \ - sql_stmt_geosadvanced_tests/snap5.testcase \ - sql_stmt_geosadvanced_tests/snap6.testcase \ - sql_stmt_geosadvanced_tests/snap7.testcase \ - sql_stmt_geosadvanced_tests/snap8.testcase \ - sql_stmt_geosadvanced_tests/snap9.testcase \ - sql_stmt_tests/spatialindex.testcase \ - sql_stmt_mathsql_tests/sqrt00.testcase \ - sql_stmt_mathsql_tests/sqrt0.testcase \ - sql_stmt_mathsql_tests/sqrt-10.testcase \ - sql_stmt_mathsql_tests/sqrt-1.testcase \ - sql_stmt_mathsql_tests/sqrt-640.testcase \ - sql_stmt_mathsql_tests/sqrt-64.testcase \ - sql_stmt_mathsql_tests/sqrt-text.testcase \ - sql_stmt_tests/srid10.testcase \ - sql_stmt_tests/srid11.testcase \ - sql_stmt_tests/srid1.testcase \ - sql_stmt_tests/srid2.testcase \ - sql_stmt_tests/srid3.testcase \ - sql_stmt_tests/srid4.testcase \ - sql_stmt_tests/srid5.testcase \ - sql_stmt_tests/srid6.testcase \ - sql_stmt_tests/srid7.testcase \ - sql_stmt_tests/srid8.testcase \ - sql_stmt_tests/srid9.testcase \ - sql_stmt_tests/SridFromAuthCRS2.testcase \ - sql_stmt_tests/SridFromAuthCRS3.testcase \ - sql_stmt_tests/SridFromAuthCRS4.testcase \ - sql_stmt_tests/SridFromAuthCRS5.testcase \ - sql_stmt_tests/SridFromAuthCRS6.testcase \ - sql_stmt_tests/SridFromAuthCRS.testcase \ - sql_stmt_geos_tests/st_area1.testcase \ - sql_stmt_geos_tests/st_area2.testcase \ - sql_stmt_geos_tests/st_area3.testcase \ - sql_stmt_geos_tests/st_area4.testcase \ - sql_stmt_geos_tests/st_area5.testcase \ - sql_stmt_geos_tests/st_area6.testcase \ - sql_stmt_geos_tests/st_area7.testcase \ - sql_stmt_geos_tests/st_area8.testcase \ - sql_stmt_geos_tests/st_area9.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid1.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid2.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid3.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid4.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid5.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid6.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid7.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid8.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid9.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid10.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid11.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid12.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid13.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid14.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid15.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid16.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid17.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid18.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid19.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid20.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid21.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid22.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid23.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid24.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid25.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid26.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid27.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid28.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid29.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid30.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid31.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid32.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid33.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid34.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid35.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid36.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid37.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid38.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid39.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid40.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid41.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid42.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid43.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid44.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid45.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid46.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid47.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid48.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid49.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid50.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid51.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid52.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid53.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid54.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid55.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid56.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid57.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid58.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid59.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid60.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid61.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid62.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid63.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid64.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid65.testcase \ - sql_stmt_lwgeom_tests/st_makevalid1.testcase \ - sql_stmt_lwgeom_tests/st_makevalid2.testcase \ - sql_stmt_lwgeom_tests/st_makevalid3.testcase \ - sql_stmt_lwgeom_tests/st_makevalid4.testcase \ - sql_stmt_lwgeom_tests/st_makevalid5.testcase \ - sql_stmt_lwgeom_tests/st_makevalid6.testcase \ - sql_stmt_lwgeom_tests/st_makevalid7.testcase \ - sql_stmt_lwgeom_tests/st_makevalid8.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded1.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded2.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded3.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded4.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded5.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded6.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded7.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded8.testcase \ - sql_stmt_lwgeom_tests/st_segmentize1.testcase \ - sql_stmt_lwgeom_tests/st_segmentize2.testcase \ - sql_stmt_lwgeom_tests/st_segmentize3.testcase \ - sql_stmt_lwgeom_tests/st_segmentize4.testcase \ - sql_stmt_lwgeom_tests/st_segmentize5.testcase \ - sql_stmt_lwgeom_tests/st_segmentize6.testcase \ - sql_stmt_lwgeom_tests/st_segmentize7.testcase \ - sql_stmt_lwgeom_tests/st_segmentize8.testcase \ - sql_stmt_lwgeom_tests/st_segmentize9.testcase \ - sql_stmt_lwgeom_tests/st_segmentize10.testcase \ - sql_stmt_lwgeom_tests/st_segmentize11.testcase \ - sql_stmt_lwgeom_tests/st_segmentize12.testcase \ - sql_stmt_lwgeom_tests/st_segmentize13.testcase \ - sql_stmt_lwgeom_tests/st_segmentize14.testcase \ - sql_stmt_lwgeom_tests/st_segmentize16.testcase \ - sql_stmt_lwgeom_tests/st_segmentize16.testcase \ - sql_stmt_lwgeom_tests/st_segmentize17.testcase \ - sql_stmt_lwgeom_tests/st_segmentize18.testcase \ - sql_stmt_lwgeom_tests/st_segmentize19.testcase \ - sql_stmt_lwgeom_tests/st_segmentize20.testcase \ - sql_stmt_lwgeom_tests/st_segmentize21.testcase \ - sql_stmt_lwgeom_tests/st_segmentize22.testcase \ - sql_stmt_lwgeom_tests/st_segmentize23.testcase \ - sql_stmt_lwgeom_tests/st_segmentize24.testcase \ - sql_stmt_lwgeom_tests/st_segmentize25.testcase \ - sql_stmt_lwgeom_tests/st_segmentize26.testcase \ - sql_stmt_lwgeom_tests/st_segmentize27.testcase \ - sql_stmt_lwgeom_tests/st_segmentize28.testcase \ - sql_stmt_lwgeom_tests/st_segmentize29.testcase \ - sql_stmt_lwgeom_tests/st_segmentize30.testcase \ - sql_stmt_lwgeom_tests/st_segmentize31.testcase \ - sql_stmt_lwgeom_tests/st_azimuth1.testcase \ - sql_stmt_lwgeom_tests/st_azimuth2.testcase \ - sql_stmt_lwgeom_tests/st_azimuth3.testcase \ - sql_stmt_lwgeom_tests/st_azimuth4.testcase \ - sql_stmt_lwgeom_tests/st_azimuth5.testcase \ - sql_stmt_lwgeom_tests/st_azimuth6.testcase \ - sql_stmt_lwgeom_tests/st_azimuth7.testcase \ - sql_stmt_lwgeom_tests/st_azimuth8.testcase \ - sql_stmt_lwgeom_tests/st_azimuth9.testcase \ - sql_stmt_lwgeom_tests/st_azimuth10.testcase \ - sql_stmt_lwgeom_tests/st_azimuth11.testcase \ - sql_stmt_lwgeom_tests/st_azimuth12.testcase \ - sql_stmt_lwgeom_tests/st_azimuth13.testcase \ - sql_stmt_lwgeom_tests/st_azimuth14.testcase \ - sql_stmt_lwgeom_tests/st_azimuth15.testcase \ - sql_stmt_lwgeom_tests/st_azimuth16.testcase \ - sql_stmt_lwgeom_tests/st_azimuth17.testcase \ - sql_stmt_lwgeom_tests/st_geohash1.testcase \ - sql_stmt_lwgeom_tests/st_geohash2.testcase \ - sql_stmt_lwgeom_tests/st_geohash3.testcase \ - sql_stmt_lwgeom_tests/st_geohash4.testcase \ - sql_stmt_lwgeom_tests/st_geohash5.testcase \ - sql_stmt_lwgeom_tests/st_geohash6.testcase \ - sql_stmt_lwgeom_tests/st_geohash7.testcase \ - sql_stmt_lwgeom_tests/st_geohash8.testcase \ - sql_stmt_lwgeom_tests/st_geohash9.testcase \ - sql_stmt_lwgeom_tests/st_geohash10.testcase \ - sql_stmt_lwgeom_tests/st_asx3d1.testcase \ - sql_stmt_lwgeom_tests/st_asx3d2.testcase \ - sql_stmt_lwgeom_tests/st_asx3d3.testcase \ - sql_stmt_lwgeom_tests/st_asx3d4.testcase \ - sql_stmt_lwgeom_tests/st_asx3d5.testcase \ - sql_stmt_lwgeom_tests/st_asx3d6.testcase \ - sql_stmt_lwgeom_tests/st_asx3d7.testcase \ - sql_stmt_lwgeom_tests/st_asx3d8.testcase \ - sql_stmt_lwgeom_tests/st_asx3d9.testcase \ - sql_stmt_lwgeom_tests/st_asx3d10.testcase \ - sql_stmt_lwgeom_tests/st_asx3d11.testcase \ - sql_stmt_lwgeom_tests/st_asx3d12.testcase \ - sql_stmt_lwgeom_tests/st_asx3d13.testcase \ - sql_stmt_lwgeom_tests/st_asx3d14.testcase \ - sql_stmt_lwgeom_tests/st_asx3d15.testcase \ - sql_stmt_lwgeom_tests/st_asx3d16.testcase \ - sql_stmt_lwgeom_tests/st_asx3d17.testcase \ - sql_stmt_lwgeom_tests/st_asx3d18.testcase \ - sql_stmt_lwgeom_tests/st_asx3d19.testcase \ - sql_stmt_lwgeom_tests/st_asx3d20.testcase \ - sql_stmt_lwgeom_tests/st_asx3d21.testcase \ - sql_stmt_lwgeom_tests/st_asx3d22.testcase \ - sql_stmt_lwgeom_tests/st_asx3d23.testcase \ - sql_stmt_lwgeom_tests/st_asx3d24.testcase \ - sql_stmt_lwgeom_tests/st_asx3d25.testcase \ - sql_stmt_lwgeom_tests/st_asx3d26.testcase \ - sql_stmt_lwgeom_tests/st_asx3d27.testcase \ - sql_stmt_lwgeom_tests/st_asx3d28.testcase \ - sql_stmt_lwgeom_tests/st_asx3d29.testcase \ - sql_stmt_lwgeom_tests/st_asx3d30.testcase \ - sql_stmt_lwgeom_tests/3ddistance1.testcase \ - sql_stmt_lwgeom_tests/3ddistance2.testcase \ - sql_stmt_lwgeom_tests/3ddistance3.testcase \ - sql_stmt_lwgeom_tests/3ddistance4.testcase \ - sql_stmt_lwgeom_tests/3ddistance5.testcase \ - sql_stmt_lwgeom_tests/3ddistance6.testcase \ - sql_stmt_lwgeom_tests/3ddistance7.testcase \ - sql_stmt_lwgeom_tests/3ddistance8.testcase \ - sql_stmt_lwgeom_tests/3ddistance9.testcase \ - sql_stmt_lwgeom_tests/3ddistance10.testcase \ - sql_stmt_lwgeom_tests/maxdistance1.testcase \ - sql_stmt_lwgeom_tests/maxdistance2.testcase \ - sql_stmt_lwgeom_tests/maxdistance3.testcase \ - sql_stmt_lwgeom_tests/maxdistance4.testcase \ - sql_stmt_lwgeom_tests/maxdistance5.testcase \ - sql_stmt_lwgeom_tests/maxdistance6.testcase \ - sql_stmt_lwgeom_tests/maxdistance7.testcase \ - sql_stmt_lwgeom_tests/maxdistance8.testcase \ - sql_stmt_lwgeom_tests/maxdistance9.testcase \ - sql_stmt_lwgeom_tests/maxdistance10.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance1.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance2.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance3.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance4.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance5.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance6.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance7.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance8.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance9.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance10.testcase \ - sql_stmt_lwgeom_tests/st_split1.testcase \ - sql_stmt_lwgeom_tests/st_split2.testcase \ - sql_stmt_lwgeom_tests/st_split3.testcase \ - sql_stmt_lwgeom_tests/st_split4.testcase \ - sql_stmt_lwgeom_tests/st_split5.testcase \ - sql_stmt_lwgeom_tests/st_split6.testcase \ - sql_stmt_lwgeom_tests/st_split7.testcase \ - sql_stmt_lwgeom_tests/st_split8.testcase \ - sql_stmt_lwgeom_tests/st_split9.testcase \ - sql_stmt_lwgeom_tests/st_split10.testcase \ - sql_stmt_lwgeom_tests/st_split11.testcase \ - sql_stmt_lwgeom_tests/st_split12.testcase \ - sql_stmt_lwgeom_tests/st_split13.testcase \ - sql_stmt_lwgeom_tests/st_split14.testcase \ - sql_stmt_lwgeom_tests/st_split15.testcase \ - sql_stmt_lwgeom_tests/st_split16.testcase \ - sql_stmt_lwgeom_tests/st_split17.testcase \ - sql_stmt_lwgeom_tests/st_split18.testcase \ - sql_stmt_lwgeom_tests/st_split19.testcase \ - sql_stmt_lwgeom_tests/st_split20.testcase \ - sql_stmt_lwgeom_tests/st_split21.testcase \ - sql_stmt_lwgeom_tests/st_split22.testcase \ - sql_stmt_lwgeom_tests/st_split23.testcase \ - sql_stmt_lwgeom_tests/st_split24.testcase \ - sql_stmt_lwgeom_tests/st_split25.testcase \ - sql_stmt_lwgeom_tests/st_split26.testcase \ - sql_stmt_lwgeom_tests/st_split27.testcase \ - sql_stmt_lwgeom_tests/st_split28.testcase \ - sql_stmt_lwgeom_tests/st_split29.testcase \ - sql_stmt_lwgeom_tests/st_split30.testcase \ - sql_stmt_lwgeom_tests/st_split31.testcase \ - sql_stmt_lwgeom_tests/st_split32.testcase \ - sql_stmt_lwgeom_tests/st_split33.testcase \ - sql_stmt_lwgeom_tests/st_split34.testcase \ - sql_stmt_lwgeom_tests/st_split35.testcase \ - sql_stmt_lwgeom_tests/st_split36.testcase \ - sql_stmt_lwgeom_tests/st_split37.testcase \ - sql_stmt_lwgeom_tests/st_split38.testcase \ - sql_stmt_lwgeom_tests/st_split39.testcase \ - sql_stmt_lwgeom_tests/st_split40.testcase \ - sql_stmt_lwgeom_tests/st_split41.testcase \ - sql_stmt_lwgeom_tests/st_split42.testcase \ - sql_stmt_lwgeom_tests/st_split43.testcase \ - sql_stmt_lwgeom_tests/st_split44.testcase \ - sql_stmt_lwgeom_tests/st_split45.testcase \ - sql_stmt_lwgeom_tests/st_split46.testcase \ - sql_stmt_lwgeom_tests/st_split47.testcase \ - sql_stmt_lwgeom_tests/st_split48.testcase \ - sql_stmt_lwgeom_tests/st_split49.testcase \ - sql_stmt_tests/startpoint1.testcase \ - sql_stmt_tests/startpoint2.testcase \ - sql_stmt_tests/startpoint3.testcase \ - sql_stmt_mathsql_tests/stddev.testcase \ - sql_stmt_geos_tests/st_length1.testcase \ - sql_stmt_geos_tests/st_length2.testcase \ - sql_stmt_geos_tests/st_length3.testcase \ - sql_stmt_geos_tests/st_length4.testcase \ - sql_stmt_geos_tests/st_length5.testcase \ - sql_stmt_geos_tests/st_length6.testcase \ - sql_stmt_geos_tests/st_length7.testcase \ - sql_stmt_geos_tests/st_length8.testcase \ - sql_stmt_geos_tests/st_length9.testcase \ - sql_stmt_geos_tests/st_length10.testcase \ - sql_stmt_geos_tests/st_length11.testcase \ - sql_stmt_geos_tests/st_length12.testcase \ - sql_stmt_geos_tests/st_length13.testcase \ - sql_stmt_geos_tests/st_length14.testcase \ - sql_stmt_geos_tests/st_length15.testcase \ - sql_stmt_geos_tests/st_length16.testcase \ - sql_stmt_geos_tests/st_length17.testcase \ - sql_stmt_geos_tests/st_length18.testcase \ - sql_stmt_geos_tests/st_perimeter1.testcase \ - sql_stmt_geos_tests/st_perimeter2.testcase \ - sql_stmt_geos_tests/st_perimeter3.testcase \ - sql_stmt_geos_tests/st_perimeter4.testcase \ - sql_stmt_geos_tests/st_perimeter5.testcase \ - sql_stmt_geos_tests/st_perimeter6.testcase \ - sql_stmt_geos_tests/st_perimeter7.testcase \ - sql_stmt_geos_tests/st_perimeter8.testcase \ - sql_stmt_geos_tests/st_perimeter9.testcase \ - sql_stmt_geos_tests/st_perimeter10.testcase \ - sql_stmt_geos_tests/st_perimeter11.testcase \ - sql_stmt_geos_tests/st_perimeter12.testcase \ - sql_stmt_geos_tests/st_perimeter13.testcase \ - sql_stmt_geos_tests/st_perimeter14.testcase \ - sql_stmt_geos_tests/st_perimeter15.testcase \ - sql_stmt_geos_tests/st_perimeter16.testcase \ - sql_stmt_geos_tests/st_perimeter17.testcase \ - sql_stmt_geos_tests/st_perimeter18.testcase \ - sql_stmt_tests/st_m1.testcase \ - sql_stmt_tests/st_m2.testcase \ - sql_stmt_tests/st_m3.testcase \ - sql_stmt_tests/st_m4.testcase \ - sql_stmt_tests/st_m5.testcase \ - sql_stmt_tests/st_m6.testcase \ - sql_stmt_tests/st_m8.testcase \ - sql_stmt_tests/st_x1.testcase \ - sql_stmt_tests/st_x2.testcase \ - sql_stmt_tests/st_x3.testcase \ - sql_stmt_tests/st_x4.testcase \ - sql_stmt_tests/st_x5.testcase \ - sql_stmt_tests/st_x6.testcase \ - sql_stmt_tests/st_x7.testcase \ - sql_stmt_tests/st_x8.testcase \ - sql_stmt_tests/st_x9.testcase \ - sql_stmt_tests/st_y1.testcase \ - sql_stmt_tests/st_y2.testcase \ - sql_stmt_tests/st_y3.testcase \ - sql_stmt_tests/st_y4.testcase \ - sql_stmt_tests/st_y5.testcase \ - sql_stmt_tests/st_y7.testcase \ - sql_stmt_tests/st_y8.testcase \ - sql_stmt_tests/st_y9.testcase \ - sql_stmt_tests/st_z1.testcase \ - sql_stmt_tests/st_z2.testcase \ - sql_stmt_tests/st_z3.testcase \ - sql_stmt_tests/st_z4.testcase \ - sql_stmt_tests/st_z5.testcase \ - sql_stmt_tests/st_z6.testcase \ - sql_stmt_tests/st_z7.testcase \ - sql_stmt_tests/st_z8.testcase \ - sql_stmt_tests/st_z9.testcase \ - sql_stmt_tests/swapcoords10.testcase \ - sql_stmt_tests/swapcoords11.testcase \ - sql_stmt_tests/swapcoords1.testcase \ - sql_stmt_tests/swapcoords2.testcase \ - sql_stmt_tests/swapcoords3.testcase \ - sql_stmt_tests/swapcoords4.testcase \ - sql_stmt_tests/swapcoords5.testcase \ - sql_stmt_tests/swapcoords6.testcase \ - sql_stmt_tests/swapcoords7.testcase \ - sql_stmt_tests/swapcoords8.testcase \ - sql_stmt_tests/swapcoords9.testcase \ - sql_stmt_geos_tests/symdifference10.testcase \ - sql_stmt_geos_tests/symdifference11.testcase \ - sql_stmt_geos_tests/symdifference1.testcase \ - sql_stmt_geos_tests/symdifference2.testcase \ - sql_stmt_geos_tests/symdifference3.testcase \ - sql_stmt_geos_tests/symdifference4.testcase \ - sql_stmt_geos_tests/symdifference5.testcase \ - sql_stmt_geos_tests/symdifference6.testcase \ - sql_stmt_geos_tests/symdifference7.testcase \ - sql_stmt_geos_tests/symdifference8.testcase \ - sql_stmt_geos_tests/symdifference9.testcase \ - sql_stmt_mathsql_tests/tan00.testcase \ - sql_stmt_mathsql_tests/tan0.testcase \ - sql_stmt_mathsql_tests/tanpi4.testcase \ - sql_stmt_mathsql_tests/tan-pi.testcase \ - sql_stmt_mathsql_tests/tanpi.testcase \ - sql_stmt_mathsql_tests/tan-text.testcase \ - sql_stmt_tests/testdb1.sqlite \ - sql_stmt_tests/testFDO.sqlite \ - sql_stmt_tests/testFGF.sqlite \ - sql_stmt_tests/togars10.testcase \ - sql_stmt_tests/togars11.testcase \ - sql_stmt_tests/togars12.testcase \ - sql_stmt_tests/togars1.testcase \ - sql_stmt_tests/togars2.testcase \ - sql_stmt_tests/togars3.testcase \ - sql_stmt_tests/togars4.testcase \ - sql_stmt_tests/togars5.testcase \ - sql_stmt_tests/togars6.testcase \ - sql_stmt_tests/togars7.testcase \ - sql_stmt_tests/togars8.testcase \ - sql_stmt_tests/togars9.testcase \ - sql_stmt_proj_tests/transform10.testcase \ - sql_stmt_proj_tests/transform11.testcase \ - sql_stmt_proj_tests/transform12.testcase \ - sql_stmt_proj_tests/transform13.testcase \ - sql_stmt_proj_tests/transform14.testcase \ - sql_stmt_proj_tests/transform15.testcase \ - sql_stmt_proj_tests/transform16.testcase \ - sql_stmt_proj_tests/transform17.testcase \ - sql_stmt_proj_tests/transform18.testcase \ - sql_stmt_proj_tests/transform19.testcase \ - sql_stmt_proj_tests/transform1.testcase \ - sql_stmt_proj_tests/transform20.testcase \ - sql_stmt_proj_tests/transform21.testcase \ - sql_stmt_proj_tests/transform2.testcase \ - sql_stmt_proj_tests/transform3.testcase \ - sql_stmt_proj_tests/transform4.testcase \ - sql_stmt_proj_tests/transform5.testcase \ - sql_stmt_proj_tests/transform6.testcase \ - sql_stmt_proj_tests/transform7.testcase \ - sql_stmt_proj_tests/transform8.testcase \ - sql_stmt_proj_tests/transform9.testcase \ - sql_stmt_tests/translate10.testcase \ - sql_stmt_tests/translate11.testcase \ - sql_stmt_tests/translate12.testcase \ - sql_stmt_tests/translate13.testcase \ - sql_stmt_tests/translate14.testcase \ - sql_stmt_tests/translate15.testcase \ - sql_stmt_tests/translate16.testcase \ - sql_stmt_tests/translate17.testcase \ - sql_stmt_tests/translate18.testcase \ - sql_stmt_tests/translate19.testcase \ - sql_stmt_tests/translate1.testcase \ - sql_stmt_tests/translate2.testcase \ - sql_stmt_tests/translate3.testcase \ - sql_stmt_tests/translate4.testcase \ - sql_stmt_tests/translate5.testcase \ - sql_stmt_tests/translate6.testcase \ - sql_stmt_tests/translate7.testcase \ - sql_stmt_tests/translate8.testcase \ - sql_stmt_tests/translate9.testcase \ - sql_stmt_tests/trivial.sqlite_RO \ - sql_stmt_geosadvanced_tests/unaryunion1.testcase \ - sql_stmt_geosadvanced_tests/unaryunion2.testcase \ - sql_stmt_geosadvanced_tests/unaryunion3.testcase \ - sql_stmt_geosadvanced_tests/unaryunion4.testcase \ - sql_stmt_geosadvanced_tests/unaryunion5.testcase \ - sql_stmt_geosadvanced_tests/unaryunion6.testcase \ - sql_stmt_geosadvanced_tests/unaryunion7.testcase \ - sql_stmt_geosadvanced_tests/unaryunion8.testcase \ - sql_stmt_geostrunk_tests/delaunay1.testcase \ - sql_stmt_geostrunk_tests/delaunay2.testcase \ - sql_stmt_geostrunk_tests/delaunay3.testcase \ - sql_stmt_geostrunk_tests/delaunay4.testcase \ - sql_stmt_geostrunk_tests/delaunay5.testcase \ - sql_stmt_geostrunk_tests/delaunay6.testcase \ - sql_stmt_geostrunk_tests/delaunay7.testcase \ - sql_stmt_geostrunk_tests/delaunay8.testcase \ - sql_stmt_geostrunk_tests/delaunay9.testcase \ - sql_stmt_geostrunk_tests/delaunay10.testcase \ - sql_stmt_geostrunk_tests/delaunay11.testcase \ - sql_stmt_geostrunk_tests/delaunay12.testcase \ - sql_stmt_geostrunk_tests/delaunay13.testcase \ - sql_stmt_geostrunk_tests/delaunay14.testcase \ - sql_stmt_geostrunk_tests/delaunay15.testcase \ - sql_stmt_geostrunk_tests/delaunay16.testcase \ - sql_stmt_geostrunk_tests/delaunay17.testcase \ - sql_stmt_geostrunk_tests/delaunay18.testcase \ - sql_stmt_geostrunk_tests/delaunay19.testcase \ - sql_stmt_geostrunk_tests/voronoj1.testcase \ - sql_stmt_geostrunk_tests/voronoj2.testcase \ - sql_stmt_geostrunk_tests/voronoj3.testcase \ - sql_stmt_geostrunk_tests/voronoj4.testcase \ - sql_stmt_geostrunk_tests/voronoj5.testcase \ - sql_stmt_geostrunk_tests/voronoj6.testcase \ - sql_stmt_geostrunk_tests/voronoj8.testcase \ - sql_stmt_geostrunk_tests/voronoj9.testcase \ - sql_stmt_geostrunk_tests/voronoj10.testcase \ - sql_stmt_geostrunk_tests/voronoj11.testcase \ - sql_stmt_geostrunk_tests/voronoj12.testcase \ - sql_stmt_geostrunk_tests/voronoj13.testcase \ - sql_stmt_geostrunk_tests/voronoj14.testcase \ - sql_stmt_geostrunk_tests/voronoj15.testcase \ - sql_stmt_geostrunk_tests/voronoj16.testcase \ - sql_stmt_geostrunk_tests/voronoj17.testcase \ - sql_stmt_geostrunk_tests/voronoj18.testcase \ - sql_stmt_geostrunk_tests/voronoj19.testcase \ - sql_stmt_geostrunk_tests/voronoj20.testcase \ - sql_stmt_geostrunk_tests/concave_hull1.testcase \ - sql_stmt_geostrunk_tests/concave_hull2.testcase \ - sql_stmt_geostrunk_tests/concave_hull3.testcase \ - sql_stmt_geostrunk_tests/concave_hull4.testcase \ - sql_stmt_geostrunk_tests/concave_hull5.testcase \ - sql_stmt_geostrunk_tests/concave_hull6.testcase \ - sql_stmt_geostrunk_tests/concave_hull7.testcase \ - sql_stmt_geostrunk_tests/concave_hull8.testcase \ - sql_stmt_geostrunk_tests/concave_hull9.testcase \ - sql_stmt_geostrunk_tests/concave_hull10.testcase \ - sql_stmt_geostrunk_tests/concave_hull11.testcase \ - sql_stmt_geostrunk_tests/concave_hull12.testcase \ - sql_stmt_geostrunk_tests/concave_hull13.testcase \ - sql_stmt_geostrunk_tests/concave_hull14.testcase \ - sql_stmt_geostrunk_tests/concave_hull15.testcase \ - sql_stmt_geostrunk_tests/concave_hull16.testcase \ - sql_stmt_geostrunk_tests/concave_hull17.testcase \ - sql_stmt_geostrunk_tests/concave_hull18.testcase \ - sql_stmt_geostrunk_tests/concave_hull19.testcase \ - sql_stmt_tests/uncompressgeom1.testcase \ - sql_stmt_tests/uncompressgeom2.testcase \ - sql_stmt_tests/uncompressgeom3.testcase \ - sql_stmt_geos_tests/union10.testcase \ - sql_stmt_geos_tests/union11.testcase \ - sql_stmt_geos_tests/union12.testcase \ - sql_stmt_geos_tests/union13.testcase \ - sql_stmt_geos_tests/union14.testcase \ - sql_stmt_geos_tests/union15.testcase \ - sql_stmt_geos_tests/union16.testcase \ - sql_stmt_geos_tests/union17.testcase \ - sql_stmt_geos_tests/union18.testcase \ - sql_stmt_geos_tests/union19.testcase \ - sql_stmt_geos_tests/union1.testcase \ - sql_stmt_geos_tests/union20.testcase \ - sql_stmt_geos_tests/union21.testcase \ - sql_stmt_geos_tests/union22.testcase \ - sql_stmt_geos_tests/union23.testcase \ - sql_stmt_geos_tests/union24.testcase \ - sql_stmt_geos_tests/union25.testcase \ - sql_stmt_geos_tests/union26.testcase \ - sql_stmt_geos_tests/union27.testcase \ - sql_stmt_geos_tests/union28.testcase \ - sql_stmt_geos_tests/union29.testcase \ - sql_stmt_geos_tests/union2.testcase \ - sql_stmt_geos_tests/union3.testcase \ - sql_stmt_geos_tests/union4.testcase \ - sql_stmt_geos_tests/union5.testcase \ - sql_stmt_geos_tests/union6.testcase \ - sql_stmt_geos_tests/union7.testcase \ - sql_stmt_geos_tests/union8.testcase \ - sql_stmt_geos_tests/union9.testcase \ - sql_stmt_geosadvanced_tests/hexgrid1.testcase \ - sql_stmt_geosadvanced_tests/hexgrid2.testcase \ - sql_stmt_geosadvanced_tests/hexgrid3.testcase \ - sql_stmt_geosadvanced_tests/hexgrid4.testcase \ - sql_stmt_geosadvanced_tests/hexgrid5.testcase \ - sql_stmt_geosadvanced_tests/hexgrid6.testcase \ - sql_stmt_geosadvanced_tests/hexgrid7.testcase \ - sql_stmt_geosadvanced_tests/hexgrid8.testcase \ - sql_stmt_geosadvanced_tests/hexgrid9.testcase \ - sql_stmt_geosadvanced_tests/hexgrid10.testcase \ - sql_stmt_geosadvanced_tests/hexgrid11.testcase \ - sql_stmt_geosadvanced_tests/hexgrid12.testcase \ - sql_stmt_geosadvanced_tests/hexgrid13.testcase \ - sql_stmt_geosadvanced_tests/hexgrid14.testcase \ - sql_stmt_geosadvanced_tests/hexgrid15.testcase \ - sql_stmt_geosadvanced_tests/hexgrid16.testcase \ - sql_stmt_geosadvanced_tests/hexgrid17.testcase \ - sql_stmt_geosadvanced_tests/hexgrid18.testcase \ - sql_stmt_geosadvanced_tests/hexgrid19.testcase \ - sql_stmt_geosadvanced_tests/hexgrid20.testcase \ - sql_stmt_geosadvanced_tests/hexgrid21.testcase \ - sql_stmt_geosadvanced_tests/hexgrid22.testcase \ - sql_stmt_geosadvanced_tests/hexgrid23.testcase \ - sql_stmt_geosadvanced_tests/squaregrid1.testcase \ - sql_stmt_geosadvanced_tests/squaregrid2.testcase \ - sql_stmt_geosadvanced_tests/squaregrid3.testcase \ - sql_stmt_geosadvanced_tests/squaregrid4.testcase \ - sql_stmt_geosadvanced_tests/squaregrid5.testcase \ - sql_stmt_geosadvanced_tests/squaregrid6.testcase \ - sql_stmt_geosadvanced_tests/squaregrid7.testcase \ - sql_stmt_geosadvanced_tests/squaregrid8.testcase \ - sql_stmt_geosadvanced_tests/squaregrid9.testcase \ - sql_stmt_geosadvanced_tests/squaregrid10.testcase \ - sql_stmt_geosadvanced_tests/squaregrid11.testcase \ - sql_stmt_geosadvanced_tests/squaregrid12.testcase \ - sql_stmt_geosadvanced_tests/squaregrid13.testcase \ - sql_stmt_geosadvanced_tests/squaregrid14.testcase \ - sql_stmt_geosadvanced_tests/squaregrid15.testcase \ - sql_stmt_geosadvanced_tests/squaregrid16.testcase \ - sql_stmt_geosadvanced_tests/squaregrid17.testcase \ - sql_stmt_geosadvanced_tests/squaregrid18.testcase \ - sql_stmt_geosadvanced_tests/squaregrid19.testcase \ - sql_stmt_geosadvanced_tests/squaregrid20.testcase \ - sql_stmt_geosadvanced_tests/squaregrid21.testcase \ - sql_stmt_geosadvanced_tests/squaregrid22.testcase \ - sql_stmt_geosadvanced_tests/squaregrid23.testcase \ - sql_stmt_geosadvanced_tests/trianggrid1.testcase \ - sql_stmt_geosadvanced_tests/trianggrid2.testcase \ - sql_stmt_geosadvanced_tests/trianggrid3.testcase \ - sql_stmt_geosadvanced_tests/trianggrid4.testcase \ - sql_stmt_geosadvanced_tests/trianggrid5.testcase \ - sql_stmt_geosadvanced_tests/trianggrid6.testcase \ - sql_stmt_geosadvanced_tests/trianggrid7.testcase \ - sql_stmt_geosadvanced_tests/trianggrid8.testcase \ - sql_stmt_geosadvanced_tests/trianggrid9.testcase \ - sql_stmt_geosadvanced_tests/trianggrid10.testcase \ - sql_stmt_geosadvanced_tests/trianggrid11.testcase \ - sql_stmt_geosadvanced_tests/trianggrid12.testcase \ - sql_stmt_geosadvanced_tests/trianggrid13.testcase \ - sql_stmt_geosadvanced_tests/trianggrid14.testcase \ - sql_stmt_geosadvanced_tests/trianggrid15.testcase \ - sql_stmt_geosadvanced_tests/trianggrid16.testcase \ - sql_stmt_geosadvanced_tests/trianggrid17.testcase \ - sql_stmt_geosadvanced_tests/trianggrid18.testcase \ - sql_stmt_geosadvanced_tests/trianggrid19.testcase \ - sql_stmt_geosadvanced_tests/trianggrid20.testcase \ - sql_stmt_geosadvanced_tests/trianggrid21.testcase \ - sql_stmt_geosadvanced_tests/trianggrid22.testcase \ - sql_stmt_geosadvanced_tests/trianggrid23.testcase \ - sql_stmt_tests/us_ch_m.testcase \ - sql_stmt_tests/us_ft_m.testcase \ - sql_stmt_tests/us_in_m.testcase \ - sql_stmt_tests/us_mi_m.testcase \ - sql_stmt_tests/us_yd_m.testcase \ - sql_stmt_mathsql_tests/variance.testcase \ - sql_stmt_tests/wkb10.testcase \ - sql_stmt_tests/wkb11.testcase \ - sql_stmt_tests/wkb12.testcase \ - sql_stmt_tests/wkb13.testcase \ - sql_stmt_tests/wkb14.testcase \ - sql_stmt_tests/wkb15.testcase \ - sql_stmt_tests/wkb16.testcase \ - sql_stmt_tests/wkb17.testcase \ - sql_stmt_tests/wkb18.testcase \ - sql_stmt_tests/wkb19.testcase \ - sql_stmt_tests/wkb1.testcase \ - sql_stmt_tests/wkb20.testcase \ - sql_stmt_tests/wkb21.testcase \ - sql_stmt_tests/wkb22.testcase \ - sql_stmt_tests/wkb23.testcase \ - sql_stmt_tests/wkb24.testcase \ - sql_stmt_tests/wkb25.testcase \ - sql_stmt_tests/wkb26.testcase \ - sql_stmt_tests/wkb27.testcase \ - sql_stmt_tests/wkb28.testcase \ - sql_stmt_tests/wkb29.testcase \ - sql_stmt_tests/wkb2.testcase \ - sql_stmt_tests/wkb30.testcase \ - sql_stmt_tests/wkb31.testcase \ - sql_stmt_tests/wkb32.testcase \ - sql_stmt_tests/wkb33.testcase \ - sql_stmt_tests/wkb34.testcase \ - sql_stmt_tests/wkb35.testcase \ - sql_stmt_tests/wkb36.testcase \ - sql_stmt_tests/wkb3.testcase \ - sql_stmt_tests/wkb4.testcase \ - sql_stmt_tests/wkb5.testcase \ - sql_stmt_tests/wkb6.testcase \ - sql_stmt_tests/wkb7.testcase \ - sql_stmt_tests/wkb8.testcase \ - sql_stmt_tests/wkb9.testcase \ - sql_stmt_tests/wkbtosql1.testcase \ - sql_stmt_tests/wkbtosql2.testcase \ - sql_stmt_tests/wkbtosql3.testcase \ - sql_stmt_tests/wkttosql1.testcase \ - sql_stmt_tests/wkttosql2.testcase \ - sql_stmt_tests/wkttosql3.testcase \ - sql_stmt_tests/yd_m.testcase + books.xml books.xsd opera.xml opera.xsd \ + movies.xml movies.xsd books-bad.xml books-bad.xsd \ + inspire-data-example.xml stazioni_se.xml \ + raster_se.xml sld_sample.xml thunderstorm_mild.svg \ + tile000.jpeg tile101.jpeg tile111.jpeg \ + test.webp tile100.jpeg tile110.jpeg \ + Apple-iPhone-4.jpg empty.png empty.tif \ + test.wfs testDescribeFeatureType.wfs \ + getcapabilities-1.0.0.wfs \ + getcapabilities-1.1.0.wfs \ + describefeaturetype.wfs \ + 22.dxf f06.dxf l02.dxf p05.dxf \ + archaic.dxf linked.dxf hatch.dxf \ + symbol.dxf gpkg_test.sqlite gpkg_test.gpkg +SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ + sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \ + sql_stmt_mathsql_tests sql_stmt_proj_tests \ + sql_stmt_security_tests sql_stmt_tests \ + sql_stmt_xmlsec_tests sql_stmt_geopackage_tests diff --git a/src/spatialite/test/Makefile.in b/src/spatialite/test/Makefile.in index 2f03f33..818a4ec 100644 --- a/src/spatialite/test/Makefile.in +++ b/src/spatialite/test/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +14,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -55,24 +82,60 @@ check_PROGRAMS = check_endian$(EXEEXT) check_version$(EXEEXT) \ check_geom_aux$(EXEEXT) check_geometry_cols$(EXEEXT) \ check_create$(EXEEXT) check_bufovflw$(EXEEXT) \ check_fdo1$(EXEEXT) check_fdo2$(EXEEXT) check_fdo3$(EXEEXT) \ - check_fdo_bufovflw$(EXEEXT) check_dbf_load$(EXEEXT) \ - check_shp_load$(EXEEXT) check_shp_load_3d$(EXEEXT) \ - shape_cp1252$(EXEEXT) shape_primitives$(EXEEXT) \ - shape_utf8_1$(EXEEXT) shape_utf8_1ex$(EXEEXT) \ - shape_utf8_2$(EXEEXT) shape_3d$(EXEEXT) \ - check_xls_load$(EXEEXT) check_math_funcs$(EXEEXT) \ - check_gaia_util$(EXEEXT) check_gaia_utf8$(EXEEXT) \ - check_extension$(EXEEXT) check_recover_geom$(EXEEXT) \ - check_sql_stmt$(EXEEXT) check_virtualtable1$(EXEEXT) \ + check_fdo_bufovflw$(EXEEXT) check_md5$(EXEEXT) \ + check_dbf_load$(EXEEXT) check_shp_load$(EXEEXT) \ + check_shp_load_3d$(EXEEXT) shape_cp1252$(EXEEXT) \ + shape_primitives$(EXEEXT) shape_utf8_1$(EXEEXT) \ + shape_utf8_1ex$(EXEEXT) shape_utf8_2$(EXEEXT) \ + shape_3d$(EXEEXT) check_xls_load$(EXEEXT) \ + check_math_funcs$(EXEEXT) check_gaia_util$(EXEEXT) \ + check_gaia_utf8$(EXEEXT) check_extension$(EXEEXT) \ + check_recover_geom$(EXEEXT) check_sql_stmt$(EXEEXT) \ + check_multithread$(EXEEXT) check_virtualtable1$(EXEEXT) \ check_virtualtable2$(EXEEXT) check_virtualtable3$(EXEEXT) \ check_virtualtable4$(EXEEXT) check_virtualtable5$(EXEEXT) \ check_virtualtable6$(EXEEXT) check_virtual_ovflw$(EXEEXT) \ check_mbrcache$(EXEEXT) check_spatialindex$(EXEEXT) \ - check_exif$(EXEEXT) check_relations_fncts$(EXEEXT) \ + check_exif$(EXEEXT) check_exif2$(EXEEXT) \ + check_relations_fncts$(EXEEXT) \ check_extra_relations_fncts$(EXEEXT) \ - check_geoscvt_fncts$(EXEEXT) + check_geoscvt_fncts$(EXEEXT) check_libxml2$(EXEEXT) \ + check_styling$(EXEEXT) check_virtualxpath$(EXEEXT) \ + check_virtualbbox$(EXEEXT) check_wfsin$(EXEEXT) \ + check_dxf$(EXEEXT) check_metacatalog$(EXEEXT) $(am__EXEEXT_1) +@ENABLE_GEOPACKAGE_TRUE@am__append_1 = \ +@ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTable \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTableMissingSRID \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesZoomLevel \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgInsertEpsgSRID \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateFeaturesTable \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_container_data_file_format_application_id \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_table_def \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_values_default \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_contents_data_table_def \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_opt_extension_mechanism_extensions_data_table_def \ +@ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers \ +@ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2 \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2 \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgConvert \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgVirtual + subdir = test -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -84,21 +147,71 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +@ENABLE_GEOPACKAGE_TRUE@am__EXEEXT_1 = \ +@ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTable$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTableMissingSRID$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesZoomLevel$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgInsertEpsgSRID$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateFeaturesTable$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_contents_data_table_def$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgConvert$(EXEEXT) \ +@ENABLE_GEOPACKAGE_TRUE@ check_gpkgVirtual$(EXEEXT) +check_add_tile_triggers_SOURCES = check_add_tile_triggers.c +check_add_tile_triggers_OBJECTS = check_add_tile_triggers.$(OBJEXT) +check_add_tile_triggers_LDADD = $(LDADD) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +check_add_tile_triggers_bad_table_name_SOURCES = \ + check_add_tile_triggers_bad_table_name.c +check_add_tile_triggers_bad_table_name_OBJECTS = \ + check_add_tile_triggers_bad_table_name.$(OBJEXT) +check_add_tile_triggers_bad_table_name_LDADD = $(LDADD) check_bufovflw_SOURCES = check_bufovflw.c check_bufovflw_OBJECTS = check_bufovflw.$(OBJEXT) check_bufovflw_LDADD = $(LDADD) check_create_SOURCES = check_create.c check_create_OBJECTS = check_create.$(OBJEXT) check_create_LDADD = $(LDADD) +check_createBaseTables_SOURCES = check_createBaseTables.c +check_createBaseTables_OBJECTS = check_createBaseTables.$(OBJEXT) +check_createBaseTables_LDADD = $(LDADD) check_dbf_load_SOURCES = check_dbf_load.c check_dbf_load_OBJECTS = check_dbf_load.$(OBJEXT) check_dbf_load_LDADD = $(LDADD) +check_dxf_SOURCES = check_dxf.c +check_dxf_OBJECTS = check_dxf.$(OBJEXT) +check_dxf_LDADD = $(LDADD) check_endian_SOURCES = check_endian.c check_endian_OBJECTS = check_endian.$(OBJEXT) check_endian_LDADD = $(LDADD) check_exif_SOURCES = check_exif.c check_exif_OBJECTS = check_exif.$(OBJEXT) check_exif_LDADD = $(LDADD) +check_exif2_SOURCES = check_exif2.c +check_exif2_OBJECTS = check_exif2.$(OBJEXT) +check_exif2_LDADD = $(LDADD) check_extension_SOURCES = check_extension.c check_extension_OBJECTS = check_extension.$(OBJEXT) check_extension_LDADD = $(LDADD) @@ -133,18 +246,139 @@ check_geometry_cols_LDADD = $(LDADD) check_geoscvt_fncts_SOURCES = check_geoscvt_fncts.c check_geoscvt_fncts_OBJECTS = check_geoscvt_fncts.$(OBJEXT) check_geoscvt_fncts_LDADD = $(LDADD) +check_get_normal_row_SOURCES = check_get_normal_row.c +check_get_normal_row_OBJECTS = check_get_normal_row.$(OBJEXT) +check_get_normal_row_LDADD = $(LDADD) +check_get_normal_row_bad_geopackage_SOURCES = \ + check_get_normal_row_bad_geopackage.c +check_get_normal_row_bad_geopackage_OBJECTS = \ + check_get_normal_row_bad_geopackage.$(OBJEXT) +check_get_normal_row_bad_geopackage_LDADD = $(LDADD) +check_get_normal_row_bad_geopackage2_SOURCES = \ + check_get_normal_row_bad_geopackage2.c +check_get_normal_row_bad_geopackage2_OBJECTS = \ + check_get_normal_row_bad_geopackage2.$(OBJEXT) +check_get_normal_row_bad_geopackage2_LDADD = $(LDADD) +check_get_normal_zoom_SOURCES = check_get_normal_zoom.c +check_get_normal_zoom_OBJECTS = check_get_normal_zoom.$(OBJEXT) +check_get_normal_zoom_LDADD = $(LDADD) +check_get_normal_zoom_bad_geopackage_SOURCES = \ + check_get_normal_zoom_bad_geopackage.c +check_get_normal_zoom_bad_geopackage_OBJECTS = \ + check_get_normal_zoom_bad_geopackage.$(OBJEXT) +check_get_normal_zoom_bad_geopackage_LDADD = $(LDADD) +check_get_normal_zoom_bad_geopackage2_SOURCES = \ + check_get_normal_zoom_bad_geopackage2.c +check_get_normal_zoom_bad_geopackage2_OBJECTS = \ + check_get_normal_zoom_bad_geopackage2.$(OBJEXT) +check_get_normal_zoom_bad_geopackage2_LDADD = $(LDADD) +check_get_normal_zoom_extension_load_SOURCES = \ + check_get_normal_zoom_extension_load.c +check_get_normal_zoom_extension_load_OBJECTS = \ + check_get_normal_zoom_extension_load.$(OBJEXT) +check_get_normal_zoom_extension_load_LDADD = $(LDADD) +check_gpkgConvert_SOURCES = check_gpkgConvert.c +check_gpkgConvert_OBJECTS = check_gpkgConvert.$(OBJEXT) +check_gpkgConvert_LDADD = $(LDADD) +check_gpkgCreateFeaturesTable_SOURCES = \ + check_gpkgCreateFeaturesTable.c +check_gpkgCreateFeaturesTable_OBJECTS = \ + check_gpkgCreateFeaturesTable.$(OBJEXT) +check_gpkgCreateFeaturesTable_LDADD = $(LDADD) +check_gpkgCreateTilesTable_SOURCES = check_gpkgCreateTilesTable.c +check_gpkgCreateTilesTable_OBJECTS = \ + check_gpkgCreateTilesTable.$(OBJEXT) +check_gpkgCreateTilesTable_LDADD = $(LDADD) +check_gpkgCreateTilesTableMissingSRID_SOURCES = \ + check_gpkgCreateTilesTableMissingSRID.c +check_gpkgCreateTilesTableMissingSRID_OBJECTS = \ + check_gpkgCreateTilesTableMissingSRID.$(OBJEXT) +check_gpkgCreateTilesTableMissingSRID_LDADD = $(LDADD) +check_gpkgCreateTilesZoomLevel_SOURCES = \ + check_gpkgCreateTilesZoomLevel.c +check_gpkgCreateTilesZoomLevel_OBJECTS = \ + check_gpkgCreateTilesZoomLevel.$(OBJEXT) +check_gpkgCreateTilesZoomLevel_LDADD = $(LDADD) +check_gpkgGetImageFormat_SOURCES = check_gpkgGetImageFormat.c +check_gpkgGetImageFormat_OBJECTS = check_gpkgGetImageFormat.$(OBJEXT) +check_gpkgGetImageFormat_LDADD = $(LDADD) +check_gpkgGetImageFormat_nonblob_SOURCES = \ + check_gpkgGetImageFormat_nonblob.c +check_gpkgGetImageFormat_nonblob_OBJECTS = \ + check_gpkgGetImageFormat_nonblob.$(OBJEXT) +check_gpkgGetImageFormat_nonblob_LDADD = $(LDADD) +check_gpkgGetImageFormat_nonimage_SOURCES = \ + check_gpkgGetImageFormat_nonimage.c +check_gpkgGetImageFormat_nonimage_OBJECTS = \ + check_gpkgGetImageFormat_nonimage.$(OBJEXT) +check_gpkgGetImageFormat_nonimage_LDADD = $(LDADD) +check_gpkgGetImageFormat_png_SOURCES = check_gpkgGetImageFormat_png.c +check_gpkgGetImageFormat_png_OBJECTS = \ + check_gpkgGetImageFormat_png.$(OBJEXT) +check_gpkgGetImageFormat_png_LDADD = $(LDADD) +check_gpkgGetImageFormat_tiff_SOURCES = \ + check_gpkgGetImageFormat_tiff.c +check_gpkgGetImageFormat_tiff_OBJECTS = \ + check_gpkgGetImageFormat_tiff.$(OBJEXT) +check_gpkgGetImageFormat_tiff_LDADD = $(LDADD) +check_gpkgGetImageFormat_webp_SOURCES = \ + check_gpkgGetImageFormat_webp.c +check_gpkgGetImageFormat_webp_OBJECTS = \ + check_gpkgGetImageFormat_webp.$(OBJEXT) +check_gpkgGetImageFormat_webp_LDADD = $(LDADD) +check_gpkgInsertEpsgSRID_SOURCES = check_gpkgInsertEpsgSRID.c +check_gpkgInsertEpsgSRID_OBJECTS = check_gpkgInsertEpsgSRID.$(OBJEXT) +check_gpkgInsertEpsgSRID_LDADD = $(LDADD) +check_gpkgVirtual_SOURCES = check_gpkgVirtual.c +check_gpkgVirtual_OBJECTS = check_gpkgVirtual.$(OBJEXT) +check_gpkgVirtual_LDADD = $(LDADD) +check_gpkg_base_core_container_data_file_format_application_id_SOURCES = check_gpkg_base_core_container_data_file_format_application_id.c +check_gpkg_base_core_container_data_file_format_application_id_OBJECTS = check_gpkg_base_core_container_data_file_format_application_id.$(OBJEXT) +check_gpkg_base_core_container_data_file_format_application_id_LDADD = \ + $(LDADD) +check_gpkg_base_core_contents_data_table_def_SOURCES = \ + check_gpkg_base_core_contents_data_table_def.c +check_gpkg_base_core_contents_data_table_def_OBJECTS = \ + check_gpkg_base_core_contents_data_table_def.$(OBJEXT) +check_gpkg_base_core_contents_data_table_def_LDADD = $(LDADD) +check_gpkg_base_core_spatial_ref_sys_data_table_def_SOURCES = \ + check_gpkg_base_core_spatial_ref_sys_data_table_def.c +check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS = \ + check_gpkg_base_core_spatial_ref_sys_data_table_def.$(OBJEXT) +check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD = $(LDADD) +check_gpkg_base_core_spatial_ref_sys_data_values_default_SOURCES = \ + check_gpkg_base_core_spatial_ref_sys_data_values_default.c +check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS = check_gpkg_base_core_spatial_ref_sys_data_values_default.$(OBJEXT) +check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD = \ + $(LDADD) +check_gpkg_opt_extension_mechanism_extensions_data_table_def_SOURCES = check_gpkg_opt_extension_mechanism_extensions_data_table_def.c +check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS = check_gpkg_opt_extension_mechanism_extensions_data_table_def.$(OBJEXT) +check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD = \ + $(LDADD) check_init_SOURCES = check_init.c check_init_OBJECTS = check_init.$(OBJEXT) check_init_LDADD = $(LDADD) check_init2_SOURCES = check_init2.c check_init2_OBJECTS = check_init2.$(OBJEXT) check_init2_LDADD = $(LDADD) +check_libxml2_SOURCES = check_libxml2.c +check_libxml2_OBJECTS = check_libxml2.$(OBJEXT) +check_libxml2_LDADD = $(LDADD) check_math_funcs_SOURCES = check_math_funcs.c check_math_funcs_OBJECTS = check_math_funcs.$(OBJEXT) check_math_funcs_LDADD = $(LDADD) check_mbrcache_SOURCES = check_mbrcache.c check_mbrcache_OBJECTS = check_mbrcache.$(OBJEXT) check_mbrcache_LDADD = $(LDADD) +check_md5_SOURCES = check_md5.c +check_md5_OBJECTS = check_md5.$(OBJEXT) +check_md5_LDADD = $(LDADD) +check_metacatalog_SOURCES = check_metacatalog.c +check_metacatalog_OBJECTS = check_metacatalog.$(OBJEXT) +check_metacatalog_LDADD = $(LDADD) +check_multithread_SOURCES = check_multithread.c +check_multithread_OBJECTS = check_multithread.$(OBJEXT) +check_multithread_LDADD = $(LDADD) check_recover_geom_SOURCES = check_recover_geom.c check_recover_geom_OBJECTS = check_recover_geom.$(OBJEXT) check_recover_geom_LDADD = $(LDADD) @@ -163,12 +397,18 @@ check_spatialindex_LDADD = $(LDADD) check_sql_stmt_SOURCES = check_sql_stmt.c check_sql_stmt_OBJECTS = check_sql_stmt.$(OBJEXT) check_sql_stmt_LDADD = $(LDADD) +check_styling_SOURCES = check_styling.c +check_styling_OBJECTS = check_styling.$(OBJEXT) +check_styling_LDADD = $(LDADD) check_version_SOURCES = check_version.c check_version_OBJECTS = check_version.$(OBJEXT) check_version_LDADD = $(LDADD) check_virtual_ovflw_SOURCES = check_virtual_ovflw.c check_virtual_ovflw_OBJECTS = check_virtual_ovflw.$(OBJEXT) check_virtual_ovflw_LDADD = $(LDADD) +check_virtualbbox_SOURCES = check_virtualbbox.c +check_virtualbbox_OBJECTS = check_virtualbbox.$(OBJEXT) +check_virtualbbox_LDADD = $(LDADD) check_virtualtable1_SOURCES = check_virtualtable1.c check_virtualtable1_OBJECTS = check_virtualtable1.$(OBJEXT) check_virtualtable1_LDADD = $(LDADD) @@ -187,6 +427,12 @@ check_virtualtable5_LDADD = $(LDADD) check_virtualtable6_SOURCES = check_virtualtable6.c check_virtualtable6_OBJECTS = check_virtualtable6.$(OBJEXT) check_virtualtable6_LDADD = $(LDADD) +check_virtualxpath_SOURCES = check_virtualxpath.c +check_virtualxpath_OBJECTS = check_virtualxpath.$(OBJEXT) +check_virtualxpath_LDADD = $(LDADD) +check_wfsin_SOURCES = check_wfsin.c +check_wfsin_OBJECTS = check_wfsin.$(OBJEXT) +check_wfsin_LDADD = $(LDADD) check_xls_load_SOURCES = check_xls_load.c check_xls_load_OBJECTS = check_xls_load.$(OBJEXT) check_xls_load_LDADD = $(LDADD) @@ -208,61 +454,389 @@ shape_utf8_1ex_LDADD = $(LDADD) shape_utf8_2_SOURCES = shape_utf8_2.c shape_utf8_2_OBJECTS = shape_utf8_2.$(OBJEXT) shape_utf8_2_LDADD = $(LDADD) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = check_bufovflw.c check_create.c check_dbf_load.c \ - check_endian.c check_exif.c check_extension.c \ - check_extra_relations_fncts.c check_fdo1.c check_fdo2.c \ - check_fdo3.c check_fdo_bufovflw.c check_gaia_utf8.c \ - check_gaia_util.c check_geom_aux.c check_geometry_cols.c \ - check_geoscvt_fncts.c check_init.c check_init2.c \ - check_math_funcs.c check_mbrcache.c check_recover_geom.c \ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = check_add_tile_triggers.c \ + check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ + check_create.c check_createBaseTables.c check_dbf_load.c \ + check_dxf.c check_endian.c check_exif.c check_exif2.c \ + check_extension.c check_extra_relations_fncts.c check_fdo1.c \ + check_fdo2.c check_fdo3.c check_fdo_bufovflw.c \ + check_gaia_utf8.c check_gaia_util.c check_geom_aux.c \ + check_geometry_cols.c check_geoscvt_fncts.c \ + check_get_normal_row.c check_get_normal_row_bad_geopackage.c \ + check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ + check_get_normal_zoom_bad_geopackage.c \ + check_get_normal_zoom_bad_geopackage2.c \ + check_get_normal_zoom_extension_load.c check_gpkgConvert.c \ + check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \ + check_gpkgCreateTilesTableMissingSRID.c \ + check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \ + check_gpkgGetImageFormat_nonblob.c \ + check_gpkgGetImageFormat_nonimage.c \ + check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ + check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \ + check_gpkgVirtual.c \ + check_gpkg_base_core_container_data_file_format_application_id.c \ + check_gpkg_base_core_contents_data_table_def.c \ + check_gpkg_base_core_spatial_ref_sys_data_table_def.c \ + check_gpkg_base_core_spatial_ref_sys_data_values_default.c \ + check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \ + check_init.c check_init2.c check_libxml2.c check_math_funcs.c \ + check_mbrcache.c check_md5.c check_metacatalog.c \ + check_multithread.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ - check_spatialindex.c check_sql_stmt.c check_version.c \ - check_virtual_ovflw.c check_virtualtable1.c \ - check_virtualtable2.c check_virtualtable3.c \ - check_virtualtable4.c check_virtualtable5.c \ - check_virtualtable6.c check_xls_load.c shape_3d.c \ + check_spatialindex.c check_sql_stmt.c check_styling.c \ + check_version.c check_virtual_ovflw.c check_virtualbbox.c \ + check_virtualtable1.c check_virtualtable2.c \ + check_virtualtable3.c check_virtualtable4.c \ + check_virtualtable5.c check_virtualtable6.c \ + check_virtualxpath.c check_wfsin.c check_xls_load.c shape_3d.c \ shape_cp1252.c shape_primitives.c shape_utf8_1.c \ shape_utf8_1ex.c shape_utf8_2.c -DIST_SOURCES = check_bufovflw.c check_create.c check_dbf_load.c \ - check_endian.c check_exif.c check_extension.c \ - check_extra_relations_fncts.c check_fdo1.c check_fdo2.c \ - check_fdo3.c check_fdo_bufovflw.c check_gaia_utf8.c \ - check_gaia_util.c check_geom_aux.c check_geometry_cols.c \ - check_geoscvt_fncts.c check_init.c check_init2.c \ - check_math_funcs.c check_mbrcache.c check_recover_geom.c \ +DIST_SOURCES = check_add_tile_triggers.c \ + check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ + check_create.c check_createBaseTables.c check_dbf_load.c \ + check_dxf.c check_endian.c check_exif.c check_exif2.c \ + check_extension.c check_extra_relations_fncts.c check_fdo1.c \ + check_fdo2.c check_fdo3.c check_fdo_bufovflw.c \ + check_gaia_utf8.c check_gaia_util.c check_geom_aux.c \ + check_geometry_cols.c check_geoscvt_fncts.c \ + check_get_normal_row.c check_get_normal_row_bad_geopackage.c \ + check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ + check_get_normal_zoom_bad_geopackage.c \ + check_get_normal_zoom_bad_geopackage2.c \ + check_get_normal_zoom_extension_load.c check_gpkgConvert.c \ + check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \ + check_gpkgCreateTilesTableMissingSRID.c \ + check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \ + check_gpkgGetImageFormat_nonblob.c \ + check_gpkgGetImageFormat_nonimage.c \ + check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ + check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \ + check_gpkgVirtual.c \ + check_gpkg_base_core_container_data_file_format_application_id.c \ + check_gpkg_base_core_contents_data_table_def.c \ + check_gpkg_base_core_spatial_ref_sys_data_table_def.c \ + check_gpkg_base_core_spatial_ref_sys_data_values_default.c \ + check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \ + check_init.c check_init2.c check_libxml2.c check_math_funcs.c \ + check_mbrcache.c check_md5.c check_metacatalog.c \ + check_multithread.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ - check_spatialindex.c check_sql_stmt.c check_version.c \ - check_virtual_ovflw.c check_virtualtable1.c \ - check_virtualtable2.c check_virtualtable3.c \ - check_virtualtable4.c check_virtualtable5.c \ - check_virtualtable6.c check_xls_load.c shape_3d.c \ + check_spatialindex.c check_sql_stmt.c check_styling.c \ + check_version.c check_virtual_ovflw.c check_virtualbbox.c \ + check_virtualtable1.c check_virtualtable2.c \ + check_virtualtable3.c check_virtualtable4.c \ + check_virtualtable5.c check_virtualtable6.c \ + check_virtualxpath.c check_wfsin.c check_xls_load.c shape_3d.c \ shape_cp1252.c shape_primitives.c shape_utf8_1.c \ shape_utf8_1ex.c shape_utf8_2.c +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + check recheck distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -304,6 +878,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ @@ -325,6 +901,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -384,7 +963,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ +AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) @@ -393,6 +972,7 @@ EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ + test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ @@ -402,6 +982,8 @@ EXTRA_DIST = asprintf4win.h \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ + test-invalid.sqlite \ + test_geos.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ @@ -455,2677 +1037,31 @@ EXTRA_DIST = asprintf4win.h \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ - sql_stmt_mathsql_tests/acos10.testcase \ - sql_stmt_mathsql_tests/acos20.testcase \ - sql_stmt_mathsql_tests/acos2.testcase \ - sql_stmt_mathsql_tests/acos.testcase \ - sql_stmt_mathsql_tests/acos-text.testcase \ - sql_stmt_tests/asbinary10.testcase \ - sql_stmt_tests/asbinary11.testcase \ - sql_stmt_tests/asbinary12.testcase \ - sql_stmt_tests/asbinary13.testcase \ - sql_stmt_tests/asbinary14.testcase \ - sql_stmt_tests/asbinary15.testcase \ - sql_stmt_tests/asbinary16.testcase \ - sql_stmt_tests/asbinary17.testcase \ - sql_stmt_tests/asbinary1.testcase \ - sql_stmt_tests/asbinary2.testcase \ - sql_stmt_tests/asbinary3.testcase \ - sql_stmt_tests/asbinary4.testcase \ - sql_stmt_tests/asbinary5.testcase \ - sql_stmt_tests/asbinary6.testcase \ - sql_stmt_tests/asbinary7.testcase \ - sql_stmt_tests/asbinary8.testcase \ - sql_stmt_tests/asbinary9.testcase \ - sql_stmt_tests/asewkb10.testcase \ - sql_stmt_tests/asewkb11.testcase \ - sql_stmt_tests/asewkb12.testcase \ - sql_stmt_tests/asewkb13.testcase \ - sql_stmt_tests/asewkb14.testcase \ - sql_stmt_tests/asewkb15.testcase \ - sql_stmt_tests/asewkb16.testcase \ - sql_stmt_tests/asewkb17.testcase \ - sql_stmt_tests/asewkb1.testcase \ - sql_stmt_tests/asewkb2.testcase \ - sql_stmt_tests/asewkb3.testcase \ - sql_stmt_tests/asewkb4.testcase \ - sql_stmt_tests/asewkb5.testcase \ - sql_stmt_tests/asewkb6.testcase \ - sql_stmt_tests/asewkb7.testcase \ - sql_stmt_tests/asewkb8.testcase \ - sql_stmt_tests/asewkb9.testcase \ - sql_stmt_tests/asfgf1.testcase \ - sql_stmt_tests/asfgf2.testcase \ - sql_stmt_tests/asfgf3.testcase \ - sql_stmt_tests/asfgf4.testcase \ - sql_stmt_tests/asfgf5.testcase \ - sql_stmt_tests/asfgf6.testcase \ - sql_stmt_tests/asfgf7.testcase \ - sql_stmt_tests/asfgf8.testcase \ - sql_stmt_tests/asfgf9.testcase \ - sql_stmt_tests/asgeojson1.testcase \ - sql_stmt_tests/asgeojson2.testcase \ - sql_stmt_tests/asgeojson3.testcase \ - sql_stmt_tests/asgeojson4.testcase \ - sql_stmt_tests/asgeojson5.testcase \ - sql_stmt_tests/asgeojson6.testcase \ - sql_stmt_tests/asgeojson7.testcase \ - sql_stmt_tests/asgml10.testcase \ - sql_stmt_tests/asgml11.testcase \ - sql_stmt_tests/asgml1.testcase \ - sql_stmt_tests/asgml2.testcase \ - sql_stmt_tests/asgml3.testcase \ - sql_stmt_tests/asgml4.testcase \ - sql_stmt_tests/asgml5.testcase \ - sql_stmt_tests/asgml6.testcase \ - sql_stmt_tests/asgml7.testcase \ - sql_stmt_tests/asgml8.testcase \ - sql_stmt_tests/asgml9.testcase \ - sql_stmt_mathsql_tests/asin10.testcase \ - sql_stmt_mathsql_tests/asin1.testcase \ - sql_stmt_mathsql_tests/asin20.testcase \ - sql_stmt_mathsql_tests/asin2.testcase \ - sql_stmt_mathsql_tests/asin-text.testcase \ - sql_stmt_proj_tests/askml10.testcase \ - sql_stmt_proj_tests/askml11.testcase \ - sql_stmt_proj_tests/askml1.testcase \ - sql_stmt_proj_tests/askml2.testcase \ - sql_stmt_proj_tests/askml3.testcase \ - sql_stmt_proj_tests/askml4.testcase \ - sql_stmt_proj_tests/askml5.testcase \ - sql_stmt_proj_tests/askml6.testcase \ - sql_stmt_proj_tests/askml7.testcase \ - sql_stmt_proj_tests/askml8.testcase \ - sql_stmt_proj_tests/askml9.testcase \ - sql_stmt_tests/assvg17.testcase \ - sql_stmt_tests/assvg18.testcase \ - sql_stmt_tests/assvg19.testcase \ - sql_stmt_tests/assvg1.testcase \ - sql_stmt_tests/assvg20.testcase \ - sql_stmt_tests/assvg21.testcase \ - sql_stmt_tests/assvg22.testcase \ - sql_stmt_tests/assvg23.testcase \ - sql_stmt_tests/assvg24.testcase \ - sql_stmt_tests/assvg25.testcase \ - sql_stmt_tests/assvg26.testcase \ - sql_stmt_tests/assvg2.testcase \ - sql_stmt_tests/assvg3.testcase \ - sql_stmt_tests/assvg4.testcase \ - sql_stmt_tests/assvg5.testcase \ - sql_stmt_tests/assvg6.testcase \ - sql_stmt_tests/assvg7.testcase \ - sql_stmt_tests/assvg8.testcase \ - sql_stmt_tests/assvg9.testcase \ - sql_stmt_tests/aswkt-text.testcase \ - sql_stmt_mathsql_tests/atan00.testcase \ - sql_stmt_mathsql_tests/atan0.testcase \ - sql_stmt_mathsql_tests/atan-text.testcase \ - sql_stmt_tests/badEWKT1.testcase \ - sql_stmt_tests/badEWKT2.testcase \ - sql_stmt_tests/badEWKT3.testcase \ - sql_stmt_tests/badEWKT4.testcase \ - sql_stmt_tests/badEWKT5.testcase \ - sql_stmt_tests/badEWKT6.testcase \ - sql_stmt_tests/badEWKT7.testcase \ - sql_stmt_tests/badEWKT8.testcase \ - sql_stmt_tests/badGeoJSON1.testcase \ - sql_stmt_tests/badGeoJSON2.testcase \ - sql_stmt_tests/badGeoJSON3.testcase \ - sql_stmt_tests/badGeoJSON4.testcase \ - sql_stmt_tests/badGeoJSON5.testcase \ - sql_stmt_tests/badGeoJSON6.testcase \ - sql_stmt_tests/badGeoJSON7.testcase \ - sql_stmt_tests/badGML1.testcase \ - sql_stmt_tests/badGML2.testcase \ - sql_stmt_tests/badGML3.testcase \ - sql_stmt_tests/badGML4.testcase \ - sql_stmt_tests/badGML5.testcase \ - sql_stmt_tests/badGML6.testcase \ - sql_stmt_tests/badGML7.testcase \ - sql_stmt_tests/badKML1.testcase \ - sql_stmt_tests/badKML2.testcase \ - sql_stmt_tests/badKML3.testcase \ - sql_stmt_tests/badKML4.testcase \ - sql_stmt_tests/badKML5.testcase \ - sql_stmt_tests/badKML6.testcase \ - sql_stmt_tests/badKML7.testcase \ - sql_stmt_tests/badwkt1.testcase \ - sql_stmt_tests/badwkt2.testcase \ - sql_stmt_tests/badwkt3.testcase \ - sql_stmt_tests/badwkt4.testcase \ - sql_stmt_tests/badwkt5.testcase \ - sql_stmt_tests/badwkt6.testcase \ - sql_stmt_tests/badwkt7.testcase \ - sql_stmt_tests/badwkt8.testcase \ - sql_stmt_tests/badwkt9.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext10.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext13.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext14.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext15.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext16.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext17.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext1.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext2.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext3.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext4.testcase \ - sql_stmt_geos_tests/bdmpolyfromtext9.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb10.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb11.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb12.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb13.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb14.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb15.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb16.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb17.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb18.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb19.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb1.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb2.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb3.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb4.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb5.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb6.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb7.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb8.testcase \ - sql_stmt_geos_tests/bdmpolyfromwkb9.testcase \ - sql_stmt_geos_tests/bdpolyfromtext10.testcase \ - sql_stmt_geos_tests/bdpolyfromtext11.testcase \ - sql_stmt_geos_tests/bdpolyfromtext12.testcase \ - sql_stmt_geos_tests/bdpolyfromtext13.testcase \ - sql_stmt_geos_tests/bdpolyfromtext14.testcase \ - sql_stmt_geos_tests/bdpolyfromtext15.testcase \ - sql_stmt_geos_tests/bdpolyfromtext16.testcase \ - sql_stmt_geos_tests/bdpolyfromtext1.testcase \ - sql_stmt_geos_tests/bdpolyfromtext2.testcase \ - sql_stmt_geos_tests/bdpolyfromtext3.testcase \ - sql_stmt_geos_tests/bdpolyfromtext4.testcase \ - sql_stmt_geos_tests/bdpolyfromtext5.testcase \ - sql_stmt_geos_tests/bdpolyfromtext6.testcase \ - sql_stmt_geos_tests/bdpolyfromtext7.testcase \ - sql_stmt_geos_tests/bdpolyfromtext8.testcase \ - sql_stmt_geos_tests/bdpolyfromtext9.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb10.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb11.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb12.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb13.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb14.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb15.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb16.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb17.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb18.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb19.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb1.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb2.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb3.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb4.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb5.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb6.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb7.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb8.testcase \ - sql_stmt_geos_tests/bdpolyfromwkb9.testcase \ - sql_stmt_security_tests/blobfromfile1.testcase \ - sql_stmt_security_tests/blobfromfile2.testcase \ - sql_stmt_security_tests/blobfromfile3.testcase \ - sql_stmt_security_tests/blobfromfile4.testcase \ - sql_stmt_security_tests/isXblob1.testcase \ - sql_stmt_security_tests/isXblob2.testcase \ - sql_stmt_security_tests/isXblob3.testcase \ - sql_stmt_security_tests/isXblob4.testcase \ - sql_stmt_security_tests/isXblob8.testcase \ - sql_stmt_security_tests/isXblob9.testcase \ - sql_stmt_geos_tests/boundary1.testcase \ - sql_stmt_geos_tests/boundary2.testcase \ - sql_stmt_geos_tests/boundary3.testcase \ - sql_stmt_geos_tests/boundary4.testcase \ - sql_stmt_geos_tests/boundary5.testcase \ - sql_stmt_geos_tests/boundary6.testcase \ - sql_stmt_geos_tests/boundary7.testcase \ - sql_stmt_geos_tests/boundary8.testcase \ - sql_stmt_geos_tests/boundary9.testcase \ - sql_stmt_geos_tests/buffer10.testcase \ - sql_stmt_geos_tests/buffer1.testcase \ - sql_stmt_geos_tests/buffer2.testcase \ - sql_stmt_geos_tests/buffer3.testcase \ - sql_stmt_geos_tests/buffer4.testcase \ - sql_stmt_geos_tests/buffer5.testcase \ - sql_stmt_geos_tests/buffer6.testcase \ - sql_stmt_geos_tests/buffer7.testcase \ - sql_stmt_geos_tests/buffer8.testcase \ - sql_stmt_geos_tests/buffer9.testcase \ - sql_stmt_geos_tests/buildarea1.testcase \ - sql_stmt_geos_tests/buildarea2.testcase \ - sql_stmt_geos_tests/buildarea3.testcase \ - sql_stmt_geos_tests/buildarea4.testcase \ - sql_stmt_geos_tests/buildarea5.testcase \ - sql_stmt_geos_tests/buildarea6.testcase \ - sql_stmt_tests/buildcirclembr10.testcase \ - sql_stmt_tests/buildcirclembr11.testcase \ - sql_stmt_tests/buildcirclembr12.testcase \ - sql_stmt_tests/buildcirclembr1.testcase \ - sql_stmt_tests/buildcirclembr2.testcase \ - sql_stmt_tests/buildcirclembr3.testcase \ - sql_stmt_tests/buildcirclembr4.testcase \ - sql_stmt_tests/buildcirclembr5.testcase \ - sql_stmt_tests/buildcirclembr6.testcase \ - sql_stmt_tests/buildcirclembr7.testcase \ - sql_stmt_tests/buildcirclembr8.testcase \ - sql_stmt_tests/buildcirclembr9.testcase \ - sql_stmt_tests/buildmbr10.testcase \ - sql_stmt_tests/buildmbr11.testcase \ - sql_stmt_tests/buildmbr12.testcase \ - sql_stmt_tests/buildmbr13.testcase \ - sql_stmt_tests/buildmbr14.testcase \ - sql_stmt_tests/buildmbr1.testcase \ - sql_stmt_tests/buildmbr2.testcase \ - sql_stmt_tests/buildmbr3.testcase \ - sql_stmt_tests/buildmbr4.testcase \ - sql_stmt_tests/buildmbr5.testcase \ - sql_stmt_tests/buildmbr6.testcase \ - sql_stmt_tests/buildmbr7.testcase \ - sql_stmt_tests/buildmbr8.testcase \ - sql_stmt_tests/buildmbr9.testcase \ - sql_stmt_tests/casttogeometrycollection2.testcase \ - sql_stmt_tests/casttogeometrycollection3.testcase \ - sql_stmt_tests/casttogeometrycollection4.testcase \ - sql_stmt_tests/casttogeometrycollection5.testcase \ - sql_stmt_tests/casttogeometrycollection6.testcase \ - sql_stmt_tests/casttogeometrycollection.testcase \ - sql_stmt_tests/casttolinestring1.testcase \ - sql_stmt_tests/casttolinestring2.testcase \ - sql_stmt_tests/casttolinestring3.testcase \ - sql_stmt_tests/casttolinestring4.testcase \ - sql_stmt_tests/casttolinestring5.testcase \ - sql_stmt_tests/casttolinestring6.testcase \ - sql_stmt_tests/casttolinestring7.testcase \ - sql_stmt_tests/casttolinestring8.testcase \ - sql_stmt_tests/casttomulti11.testcase \ - sql_stmt_tests/casttomulti1.testcase \ - sql_stmt_tests/casttomulti2.testcase \ - sql_stmt_tests/casttomulti3.testcase \ - sql_stmt_tests/casttomulti4.testcase \ - sql_stmt_tests/casttomulti5.testcase \ - sql_stmt_tests/casttomulti6.testcase \ - sql_stmt_tests/casttomulti7.testcase \ - sql_stmt_tests/casttomulti8.testcase \ - sql_stmt_tests/casttomultilinestring1.testcase \ - sql_stmt_tests/casttomultilinestring2.testcase \ - sql_stmt_tests/casttomultilinestring3.testcase \ - sql_stmt_tests/casttomultilinestring4.testcase \ - sql_stmt_tests/casttomultilinestring5.testcase \ - sql_stmt_tests/casttomultilinestring6.testcase \ - sql_stmt_tests/casttomultilinestring7.testcase \ - sql_stmt_tests/casttomultipoint1.testcase \ - sql_stmt_tests/casttomultipoint2.testcase \ - sql_stmt_tests/casttomultipoint3.testcase \ - sql_stmt_tests/casttomultipoint4.testcase \ - sql_stmt_tests/casttomultipoint5.testcase \ - sql_stmt_tests/casttomultipoint6.testcase \ - sql_stmt_tests/casttomultipoint7.testcase \ - sql_stmt_tests/casttomultipoint8.testcase \ - sql_stmt_tests/casttomultipoint9.testcase \ - sql_stmt_tests/casttomultipolygon1.testcase \ - sql_stmt_tests/casttomultipolygon2.testcase \ - sql_stmt_tests/casttomultipolygon3.testcase \ - sql_stmt_tests/casttomultipolygon4.testcase \ - sql_stmt_tests/casttomultipolygon5.testcase \ - sql_stmt_tests/casttopoint1.testcase \ - sql_stmt_tests/casttopoint2.testcase \ - sql_stmt_tests/casttopoint3.testcase \ - sql_stmt_tests/casttopoint4.testcase \ - sql_stmt_tests/casttopoint5.testcase \ - sql_stmt_tests/casttopoint6.testcase \ - sql_stmt_tests/casttopoint7.testcase \ - sql_stmt_tests/casttopoint8.testcase \ - sql_stmt_tests/casttopoly1.testcase \ - sql_stmt_tests/casttopoly2.testcase \ - sql_stmt_tests/casttopoly3.testcase \ - sql_stmt_tests/casttopoly4.testcase \ - sql_stmt_tests/casttopoly5.testcase \ - sql_stmt_tests/casttopoly6.testcase \ - sql_stmt_tests/casttopoly7.testcase \ - sql_stmt_tests/casttopoly8.testcase \ - sql_stmt_tests/casttosingle10.testcase \ - sql_stmt_tests/casttosingle12.testcase \ - sql_stmt_tests/casttosingle1.testcase \ - sql_stmt_tests/casttosingle2.testcase \ - sql_stmt_tests/casttosingle3.testcase \ - sql_stmt_tests/casttosingle4.testcase \ - sql_stmt_tests/casttosingle5.testcase \ - sql_stmt_tests/casttosingle6.testcase \ - sql_stmt_tests/casttosingle7.testcase \ - sql_stmt_tests/casttosingle8.testcase \ - sql_stmt_tests/casttosingle9.testcase \ - sql_stmt_tests/casttoxy1.testcase \ - sql_stmt_tests/casttoxy2.testcase \ - sql_stmt_tests/casttoxy3.testcase \ - sql_stmt_tests/casttoxym1.testcase \ - sql_stmt_tests/casttoxym2.testcase \ - sql_stmt_tests/casttoxym3.testcase \ - sql_stmt_tests/casttoxym4.testcase \ - sql_stmt_tests/casttoxym5.testcase \ - sql_stmt_tests/casttoxym6.testcase \ - sql_stmt_tests/casttoxyz1.testcase \ - sql_stmt_tests/casttoxyz2.testcase \ - sql_stmt_tests/casttoxyz3.testcase \ - sql_stmt_tests/casttoxyz4.testcase \ - sql_stmt_tests/casttoxyz5.testcase \ - sql_stmt_tests/casttoxyz6.testcase \ - sql_stmt_tests/casttoxyzm1.testcase \ - sql_stmt_tests/casttoxyzm2.testcase \ - sql_stmt_tests/casttoxyzm3.testcase \ - sql_stmt_tests/casttoxyzm4.testcase \ - sql_stmt_tests/casttoxyzm5.testcase \ - sql_stmt_tests/casttoxyzm6.testcase \ - sql_stmt_mathsql_tests/ceilfloat2.testcase \ - sql_stmt_mathsql_tests/ceilfloat.testcase \ - sql_stmt_mathsql_tests/ceil-int.testcase \ - sql_stmt_mathsql_tests/ceilnull.testcase \ - sql_stmt_geos_tests/centroid1.testcase \ - sql_stmt_geos_tests/centroid2.testcase \ - sql_stmt_geos_tests/centroid3.testcase \ - sql_stmt_geos_tests/centroid4.testcase \ - sql_stmt_geos_tests/centroid5.testcase \ - sql_stmt_geos_tests/centroid6.testcase \ - sql_stmt_geos_tests/centroid7.testcase \ - sql_stmt_geos_tests/centroid8.testcase \ - sql_stmt_tests/checkspatialmetadata1.testcase \ - sql_stmt_tests/checkspatialmetadata2.testcase \ - sql_stmt_tests/checkspatialmetadata3.testcase \ - sql_stmt_tests/checkspatialmetadata4.testcase \ - sql_stmt_tests/checkspatialmetadata5.testcase \ - sql_stmt_tests/ch_m.testcase \ - sql_stmt_geosadvanced_tests/closestpoint10.testcase \ - sql_stmt_geosadvanced_tests/closestpoint11.testcase \ - sql_stmt_geosadvanced_tests/closestpoint12.testcase \ - sql_stmt_geosadvanced_tests/closestpoint13.testcase \ - sql_stmt_geosadvanced_tests/closestpoint14.testcase \ - sql_stmt_geosadvanced_tests/closestpoint15.testcase \ - sql_stmt_geosadvanced_tests/closestpoint16.testcase \ - sql_stmt_geosadvanced_tests/closestpoint17.testcase \ - sql_stmt_geosadvanced_tests/closestpoint18.testcase \ - sql_stmt_geosadvanced_tests/closestpoint19.testcase \ - sql_stmt_geosadvanced_tests/closestpoint1.testcase \ - sql_stmt_geosadvanced_tests/closestpoint20.testcase \ - sql_stmt_geosadvanced_tests/closestpoint21.testcase \ - sql_stmt_geosadvanced_tests/closestpoint22.testcase \ - sql_stmt_geosadvanced_tests/closestpoint2.testcase \ - sql_stmt_geosadvanced_tests/closestpoint3.testcase \ - sql_stmt_geosadvanced_tests/closestpoint4.testcase \ - sql_stmt_geosadvanced_tests/closestpoint5.testcase \ - sql_stmt_geosadvanced_tests/closestpoint6.testcase \ - sql_stmt_geosadvanced_tests/closestpoint7.testcase \ - sql_stmt_geosadvanced_tests/closestpoint8.testcase \ - sql_stmt_geosadvanced_tests/closestpoint9.testcase \ - sql_stmt_tests/cm_m.testcase \ - sql_stmt_tests/collect10.testcase \ - sql_stmt_tests/collect11.testcase \ - sql_stmt_tests/collect12.testcase \ - sql_stmt_tests/collect13.testcase \ - sql_stmt_tests/collect14.testcase \ - sql_stmt_tests/collect15.testcase \ - sql_stmt_tests/collect16.testcase \ - sql_stmt_tests/collect17.testcase \ - sql_stmt_tests/collect18.testcase \ - sql_stmt_tests/collect19.testcase \ - sql_stmt_tests/collect1.testcase \ - sql_stmt_tests/collect20.testcase \ - sql_stmt_tests/collect21.testcase \ - sql_stmt_tests/collect23.testcase \ - sql_stmt_tests/collect24.testcase \ - sql_stmt_tests/collect25.testcase \ - sql_stmt_tests/collect26.testcase \ - sql_stmt_tests/collect27.testcase \ - sql_stmt_tests/collect28.testcase \ - sql_stmt_tests/collect29.testcase \ - sql_stmt_tests/collect2.testcase \ - sql_stmt_tests/collect30.testcase \ - sql_stmt_tests/collect31.testcase \ - sql_stmt_tests/collect32.testcase \ - sql_stmt_tests/collect33.testcase \ - sql_stmt_tests/collect34.testcase \ - sql_stmt_tests/collect35.testcase \ - sql_stmt_tests/collect36.testcase \ - sql_stmt_tests/collect37.testcase \ - sql_stmt_tests/collect38.testcase \ - sql_stmt_tests/collect39.testcase \ - sql_stmt_tests/collect3.testcase \ - sql_stmt_tests/collect40.testcase \ - sql_stmt_tests/collect41.testcase \ - sql_stmt_tests/collect42.testcase \ - sql_stmt_tests/collect43.testcase \ - sql_stmt_tests/collect44.testcase \ - sql_stmt_tests/collect45.testcase \ - sql_stmt_tests/collect46.testcase \ - sql_stmt_tests/collect47.testcase \ - sql_stmt_tests/collect48.testcase \ - sql_stmt_tests/collect49.testcase \ - sql_stmt_tests/collect4.testcase \ - sql_stmt_tests/collect50.testcase \ - sql_stmt_tests/collect51.testcase \ - sql_stmt_tests/collect52.testcase \ - sql_stmt_tests/collect53.testcase \ - sql_stmt_tests/collect54.testcase \ - sql_stmt_tests/collect55.testcase \ - sql_stmt_tests/collect56.testcase \ - sql_stmt_tests/collect57.testcase \ - sql_stmt_tests/collect58.testcase \ - sql_stmt_tests/collect59.testcase \ - sql_stmt_tests/collect5.testcase \ - sql_stmt_tests/collect6.testcase \ - sql_stmt_tests/collect7.testcase \ - sql_stmt_tests/collect8.testcase \ - sql_stmt_tests/collect9.testcase \ - sql_stmt_tests/collectextract10.testcase \ - sql_stmt_tests/collectextract11.testcase \ - sql_stmt_tests/collectextract12.testcase \ - sql_stmt_tests/collectextract13.testcase \ - sql_stmt_tests/collectextract14.testcase \ - sql_stmt_tests/collectextract15.testcase \ - sql_stmt_tests/collectextract16.testcase \ - sql_stmt_tests/collectextract17.testcase \ - sql_stmt_tests/collectextract18.testcase \ - sql_stmt_tests/collectextract19.testcase \ - sql_stmt_tests/collectextract1.testcase \ - sql_stmt_tests/collectextract20.testcase \ - sql_stmt_tests/collectextract21.testcase \ - sql_stmt_tests/collectextract22.testcase \ - sql_stmt_tests/collectextract2.testcase \ - sql_stmt_tests/collectextract3.testcase \ - sql_stmt_tests/collectextract4.testcase \ - sql_stmt_tests/collectextract5.testcase \ - sql_stmt_tests/collectextract6.testcase \ - sql_stmt_tests/collectextract7.testcase \ - sql_stmt_tests/collectextract8.testcase \ - sql_stmt_tests/collectextract9.testcase \ - sql_stmt_tests/compressgeometry10.testcase \ - sql_stmt_tests/compressgeometry11.testcase \ - sql_stmt_tests/compressgeometry12.testcase \ - sql_stmt_tests/compressgeometry13.testcase \ - sql_stmt_tests/compressgeometry14.testcase \ - sql_stmt_tests/compressgeometry15.testcase \ - sql_stmt_tests/compressgeometry17.testcase \ - sql_stmt_tests/compressgeometry18.testcase \ - sql_stmt_tests/compressgeometry19.testcase \ - sql_stmt_tests/compressgeometry1.testcase \ - sql_stmt_tests/compressgeometry20.testcase \ - sql_stmt_tests/compressgeometry21.testcase \ - sql_stmt_tests/compressgeometry22.testcase \ - sql_stmt_tests/compressgeometry23.testcase \ - sql_stmt_tests/compressgeometry24.testcase \ - sql_stmt_tests/compressgeometry25.testcase \ - sql_stmt_tests/compressgeometry26.testcase \ - sql_stmt_tests/compressgeometry27.testcase \ - sql_stmt_tests/compressgeometry28.testcase \ - sql_stmt_tests/compressgeometry29.testcase \ - sql_stmt_tests/compressgeometry2.testcase \ - sql_stmt_tests/compressgeometry30.testcase \ - sql_stmt_tests/compressgeometry31.testcase \ - sql_stmt_tests/compressgeometry32.testcase \ - sql_stmt_tests/compressgeometry33.testcase \ - sql_stmt_tests/compressgeometry34.testcase \ - sql_stmt_tests/compressgeometry35.testcase \ - sql_stmt_tests/compressgeometry36.testcase \ - sql_stmt_tests/compressgeometry37.testcase \ - sql_stmt_tests/compressgeometry38.testcase \ - sql_stmt_tests/compressgeometry39.testcase \ - sql_stmt_tests/compressgeometry3.testcase \ - sql_stmt_tests/compressgeometry40.testcase \ - sql_stmt_tests/compressgeometry41.testcase \ - sql_stmt_tests/compressgeometry42.testcase \ - sql_stmt_tests/compressgeometry43.testcase \ - sql_stmt_tests/compressgeometry44.testcase \ - sql_stmt_tests/compressgeometry45.testcase \ - sql_stmt_tests/compressgeometry46.testcase \ - sql_stmt_tests/compressgeometry47.testcase \ - sql_stmt_tests/compressgeometry48.testcase \ - sql_stmt_tests/compressgeometry49.testcase \ - sql_stmt_tests/compressgeometry4.testcase \ - sql_stmt_tests/compressgeometry50.testcase \ - sql_stmt_tests/compressgeometry51.testcase \ - sql_stmt_tests/compressgeometry52.testcase \ - sql_stmt_tests/compressgeometry53.testcase \ - sql_stmt_tests/compressgeometry54.testcase \ - sql_stmt_tests/compressgeometry55.testcase \ - sql_stmt_tests/compressgeometry56.testcase \ - sql_stmt_tests/compressgeometry57.testcase \ - sql_stmt_tests/compressgeometry58.testcase \ - sql_stmt_tests/compressgeometry59.testcase \ - sql_stmt_tests/compressgeometry5.testcase \ - sql_stmt_tests/compressgeometry60.testcase \ - sql_stmt_tests/compressgeometry61.testcase \ - sql_stmt_tests/compressgeometry62.testcase \ - sql_stmt_tests/compressgeometry63.testcase \ - sql_stmt_tests/compressgeometry64.testcase \ - sql_stmt_tests/compressgeometry65.testcase \ - sql_stmt_tests/compressgeometry66.testcase \ - sql_stmt_tests/compressgeometry67.testcase \ - sql_stmt_tests/compressgeometry68.testcase \ - sql_stmt_tests/compressgeometry69.testcase \ - sql_stmt_tests/compressgeometry6.testcase \ - sql_stmt_tests/compressgeometry7.testcase \ - sql_stmt_tests/compressgeometry8.testcase \ - sql_stmt_tests/compressgeometry9.testcase \ - sql_stmt_geos_tests/convexhull10.testcase \ - sql_stmt_geos_tests/convexhull1.testcase \ - sql_stmt_geos_tests/convexhull2.testcase \ - sql_stmt_geos_tests/convexhull3.testcase \ - sql_stmt_geos_tests/convexhull4.testcase \ - sql_stmt_geos_tests/convexhull5.testcase \ - sql_stmt_geos_tests/convexhull6.testcase \ - sql_stmt_geos_tests/convexhull7.testcase \ - sql_stmt_geos_tests/convexhull8.testcase \ - sql_stmt_geos_tests/convexhull9.testcase \ - sql_stmt_mathsql_tests/cos00.testcase \ - sql_stmt_mathsql_tests/cos0.testcase \ - sql_stmt_mathsql_tests/cos-text.testcase \ - sql_stmt_mathsql_tests/cot00.testcase \ - sql_stmt_mathsql_tests/cot0.testcase \ - sql_stmt_mathsql_tests/cotpi2.testcase \ - sql_stmt_mathsql_tests/cot-text.testcase \ - sql_stmt_geosadvanced_tests/coveredby1.testcase \ - sql_stmt_geosadvanced_tests/coveredby2.testcase \ - sql_stmt_geosadvanced_tests/covers1.testcase \ - sql_stmt_geosadvanced_tests/covers2.testcase \ - sql_stmt_geosadvanced_tests/covers_covered1.testcase \ - sql_stmt_geosadvanced_tests/covers_covered2.testcase \ - sql_stmt_geosadvanced_tests/covers_covered3.testcase \ - sql_stmt_geosadvanced_tests/covers_covered4.testcase \ - sql_stmt_geosadvanced_tests/covers_covered5.testcase \ - sql_stmt_geosadvanced_tests/covers_covered6.testcase \ - sql_stmt_geosadvanced_tests/covers_covered7.testcase \ - sql_stmt_geosadvanced_tests/createtopo10.testcase \ - sql_stmt_geosadvanced_tests/createtopo11.testcase \ - sql_stmt_geosadvanced_tests/createtopo12.testcase \ - sql_stmt_geosadvanced_tests/createtopo13.testcase \ - sql_stmt_geosadvanced_tests/createtopo14.testcase \ - sql_stmt_geosadvanced_tests/createtopo15.testcase \ - sql_stmt_geosadvanced_tests/createtopo16.testcase \ - sql_stmt_geosadvanced_tests/createtopo17.testcase \ - sql_stmt_geosadvanced_tests/createtopo18.testcase \ - sql_stmt_geosadvanced_tests/createtopo1.testcase \ - sql_stmt_geosadvanced_tests/createtopo2.testcase \ - sql_stmt_geosadvanced_tests/createtopo3.testcase \ - sql_stmt_geosadvanced_tests/createtopo4.testcase \ - sql_stmt_geosadvanced_tests/createtopo5.testcase \ - sql_stmt_geosadvanced_tests/createtopo6.testcase \ - sql_stmt_geosadvanced_tests/createtopo7.testcase \ - sql_stmt_geosadvanced_tests/createtopo8.testcase \ - sql_stmt_geosadvanced_tests/createtopo9.testcase \ - sql_stmt_mathsql_tests/degrees45.testcase \ - sql_stmt_mathsql_tests/degrees.testcase \ - sql_stmt_mathsql_tests/degreestext.testcase \ - sql_stmt_geos_tests/difference10.testcase \ - sql_stmt_geos_tests/difference11.testcase \ - sql_stmt_geos_tests/difference12.testcase \ - sql_stmt_geos_tests/difference1.testcase \ - sql_stmt_geos_tests/difference2.testcase \ - sql_stmt_geos_tests/difference3.testcase \ - sql_stmt_geos_tests/difference4.testcase \ - sql_stmt_geos_tests/difference6.testcase \ - sql_stmt_geos_tests/difference7.testcase \ - sql_stmt_geos_tests/difference8.testcase \ - sql_stmt_geos_tests/difference9.testcase \ - sql_stmt_tests/dimension1.testcase \ - sql_stmt_tests/dimension2.testcase \ - sql_stmt_tests/dimension3.testcase \ - sql_stmt_tests/dimension4.testcase \ - sql_stmt_tests/dimension5.testcase \ - sql_stmt_tests/dimension6.testcase \ - sql_stmt_tests/dimension7.testcase \ - sql_stmt_tests/dimension8.testcase \ - sql_stmt_tests/dissolve10.testcase \ - sql_stmt_tests/dissolve11.testcase \ - sql_stmt_tests/dissolve12.testcase \ - sql_stmt_tests/dissolve13.testcase \ - sql_stmt_tests/dissolve14.testcase \ - sql_stmt_tests/dissolve15.testcase \ - sql_stmt_tests/dissolve16.testcase \ - sql_stmt_tests/dissolve17.testcase \ - sql_stmt_tests/dissolve18.testcase \ - sql_stmt_tests/dissolve19.testcase \ - sql_stmt_tests/dissolve1.testcase \ - sql_stmt_tests/dissolve20.testcase \ - sql_stmt_tests/dissolve21.testcase \ - sql_stmt_tests/dissolve22.testcase \ - sql_stmt_tests/dissolve23.testcase \ - sql_stmt_tests/dissolve24.testcase \ - sql_stmt_tests/dissolve25.testcase \ - sql_stmt_tests/dissolve26.testcase \ - sql_stmt_tests/dissolve27.testcase \ - sql_stmt_tests/dissolve28.testcase \ - sql_stmt_tests/dissolve29.testcase \ - sql_stmt_tests/dissolve2.testcase \ - sql_stmt_tests/dissolve30.testcase \ - sql_stmt_tests/dissolve3.testcase \ - sql_stmt_tests/dissolve4.testcase \ - sql_stmt_tests/dissolve5.testcase \ - sql_stmt_tests/dissolve6.testcase \ - sql_stmt_tests/dissolve7.testcase \ - sql_stmt_tests/dissolve8.testcase \ - sql_stmt_tests/dissolve9.testcase \ - sql_stmt_geos_tests/distance1.testcase \ - sql_stmt_geos_tests/distance2.testcase \ - sql_stmt_geos_tests/distance3.testcase \ - sql_stmt_geos_tests/distance4.testcase \ - sql_stmt_geos_tests/distance5.testcase \ - sql_stmt_geos_tests/distance6.testcase \ - sql_stmt_geos_tests/distance7.testcase \ - sql_stmt_geos_tests/distance8.testcase \ - sql_stmt_geos_tests/distance9.testcase \ - sql_stmt_geos_tests/distance10.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr1.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr2.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr3.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr4.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr5.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr6.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr7.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr8.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr9.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr10.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr11.testcase \ - sql_stmt_geosadvanced_tests/distance_geogr12.testcase \ - sql_stmt_tests/dm_m.testcase \ - sql_stmt_tests/DSC_1467.JPG \ - sql_stmt_tests/DSCN0042.JPG \ - sql_stmt_tests/emptyfile.txt \ - sql_stmt_tests/endpoint1.testcase \ - sql_stmt_tests/envelope1.testcase \ - sql_stmt_tests/envelope2.testcase \ - sql_stmt_tests/envelope3.testcase \ - sql_stmt_tests/envelope4.testcase \ - sql_stmt_tests/envelope5.testcase \ - sql_stmt_tests/envelope6.testcase \ - sql_stmt_tests/envelope7.testcase \ - sql_stmt_tests/envintersects10.testcase \ - sql_stmt_tests/envintersects1.testcase \ - sql_stmt_tests/envintersects2.testcase \ - sql_stmt_tests/envintersects3.testcase \ - sql_stmt_tests/envintersects4.testcase \ - sql_stmt_tests/envintersects5.testcase \ - sql_stmt_tests/envintersects6.testcase \ - sql_stmt_tests/envintersects7.testcase \ - sql_stmt_tests/envintersects8.testcase \ - sql_stmt_tests/envintersects9.testcase \ - sql_stmt_tests/ewkb10.testcase \ - sql_stmt_tests/ewkb11.testcase \ - sql_stmt_tests/ewkb12.testcase \ - sql_stmt_tests/ewkb1.testcase \ - sql_stmt_tests/ewkb2.testcase \ - sql_stmt_tests/ewkb3.testcase \ - sql_stmt_tests/ewkb4.testcase \ - sql_stmt_tests/ewkb5.testcase \ - sql_stmt_tests/ewkb6.testcase \ - sql_stmt_tests/ewkb7.testcase \ - sql_stmt_tests/ewkb8.testcase \ - sql_stmt_tests/ewkb9.testcase \ - sql_stmt_mathsql_tests/exp00.testcase \ - sql_stmt_mathsql_tests/exp0.testcase \ - sql_stmt_mathsql_tests/exp10.testcase \ - sql_stmt_mathsql_tests/exp1.testcase \ - sql_stmt_tests/expand1.testcase \ - sql_stmt_tests/expand2.testcase \ - sql_stmt_tests/expand3.testcase \ - sql_stmt_tests/expand4.testcase \ - sql_stmt_tests/expand5.testcase \ - sql_stmt_tests/expand6.testcase \ - sql_stmt_tests/expand7.testcase \ - sql_stmt_mathsql_tests/expneg.testcase \ - sql_stmt_mathsql_tests/exptext.testcase \ - sql_stmt_tests/extent1.testcase \ - sql_stmt_tests/extractmultilinestring1.testcase \ - sql_stmt_tests/extractmultilinestring2.testcase \ - sql_stmt_tests/extractmultilinestring3.testcase \ - sql_stmt_tests/extractmultipoint1.testcase \ - sql_stmt_tests/extractmultipoint2.testcase \ - sql_stmt_tests/extractmultipoint3.testcase \ - sql_stmt_tests/extractmultipolygon1.testcase \ - sql_stmt_tests/extractmultipolygon2.testcase \ - sql_stmt_tests/extractmultipolygon3.testcase \ - sql_stmt_tests/fath_m.testcase \ - sql_stmt_tests/fdo_ogr1.testcase \ - sql_stmt_tests/fdo_ogr2.testcase \ - sql_stmt_tests/fdo-wkb.sqlite_RO \ - sql_stmt_mathsql_tests/floor32.testcase \ - sql_stmt_mathsql_tests/floorint.testcase \ - sql_stmt_mathsql_tests/floornull.testcase \ - sql_stmt_tests/fromewkt1.testcase \ - sql_stmt_tests/fromewkt2.testcase \ - sql_stmt_tests/fromewkt3.testcase \ - sql_stmt_tests/fromewkt4.testcase \ - sql_stmt_tests/fromewkt5.testcase \ - sql_stmt_tests/fromewkt6.testcase \ - sql_stmt_tests/fromewkt7.testcase \ - sql_stmt_tests/fromewkt8.testcase \ - sql_stmt_tests/fromewkt9.testcase \ - sql_stmt_tests/fromewkt10.testcase \ - sql_stmt_tests/fromewkt11.testcase \ - sql_stmt_tests/fromewkt12.testcase \ - sql_stmt_tests/fromewkt13.testcase \ - sql_stmt_tests/fromewkt14.testcase \ - sql_stmt_tests/fromewkt15.testcase \ - sql_stmt_tests/fromewkt16.testcase \ - sql_stmt_tests/fromewkt17.testcase \ - sql_stmt_tests/fromewkt18.testcase \ - sql_stmt_tests/fromewkt19.testcase \ - sql_stmt_tests/fromewkt20.testcase \ - sql_stmt_tests/fromewkt22.testcase \ - sql_stmt_tests/fromewkt23.testcase \ - sql_stmt_tests/fromewkt24.testcase \ - sql_stmt_tests/fromewkt25.testcase \ - sql_stmt_tests/fromewkt26.testcase \ - sql_stmt_tests/fromewkt27.testcase \ - sql_stmt_tests/fromewkt28.testcase \ - sql_stmt_tests/fromewkt29.testcase \ - sql_stmt_tests/fromewkt30.testcase \ - sql_stmt_tests/fromewkt31.testcase \ - sql_stmt_tests/fromewkt32.testcase \ - sql_stmt_tests/fromewkt33.testcase \ - sql_stmt_tests/fromewkt34.testcase \ - sql_stmt_tests/fromewkt35.testcase \ - sql_stmt_tests/fromewkt36.testcase \ - sql_stmt_tests/fromewkt37.testcase \ - sql_stmt_tests/fromewkt38.testcase \ - sql_stmt_tests/fromewkt39.testcase \ - sql_stmt_tests/fromgeojson10.testcase \ - sql_stmt_tests/fromgeojson11.testcase \ - sql_stmt_tests/fromgeojson12.testcase \ - sql_stmt_tests/fromgeojson13.testcase \ - sql_stmt_tests/fromgeojson14.testcase \ - sql_stmt_tests/fromgeojson15.testcase \ - sql_stmt_tests/fromgeojson16.testcase \ - sql_stmt_tests/fromgeojson17.testcase \ - sql_stmt_tests/fromgeojson18.testcase \ - sql_stmt_tests/fromgeojson19.testcase \ - sql_stmt_tests/fromgeojson1.testcase \ - sql_stmt_tests/fromgeojson20.testcase \ - sql_stmt_tests/fromgeojson21.testcase \ - sql_stmt_tests/fromgeojson22.testcase \ - sql_stmt_tests/fromgeojson23.testcase \ - sql_stmt_tests/fromgeojson24.testcase \ - sql_stmt_tests/fromgeojson25.testcase \ - sql_stmt_tests/fromgeojson26.testcase \ - sql_stmt_tests/fromgeojson27.testcase \ - sql_stmt_tests/fromgeojson28.testcase \ - sql_stmt_tests/fromgeojson29.testcase \ - sql_stmt_tests/fromgeojson2.testcase \ - sql_stmt_tests/fromgeojson30.testcase \ - sql_stmt_tests/fromgeojson31.testcase \ - sql_stmt_tests/fromgeojson32.testcase \ - sql_stmt_tests/fromgeojson3.testcase \ - sql_stmt_tests/fromgeojson4.testcase \ - sql_stmt_tests/fromgeojson5.testcase \ - sql_stmt_tests/fromgeojson6.testcase \ - sql_stmt_tests/fromgeojson7.testcase \ - sql_stmt_tests/fromgeojson8.testcase \ - sql_stmt_tests/fromgeojson9.testcase \ - sql_stmt_tests/fromgml10.testcase \ - sql_stmt_tests/fromgml11.testcase \ - sql_stmt_tests/fromgml12.testcase \ - sql_stmt_tests/fromgml13.testcase \ - sql_stmt_tests/fromgml14.testcase \ - sql_stmt_tests/fromgml15.testcase \ - sql_stmt_tests/fromgml16.testcase \ - sql_stmt_tests/fromgml17.testcase \ - sql_stmt_tests/fromgml18.testcase \ - sql_stmt_tests/fromgml19.testcase \ - sql_stmt_tests/fromgml1.testcase \ - sql_stmt_tests/fromgml20.testcase \ - sql_stmt_tests/fromgml21.testcase \ - sql_stmt_tests/fromgml22.testcase \ - sql_stmt_tests/fromgml23.testcase \ - sql_stmt_tests/fromgml24.testcase \ - sql_stmt_tests/fromgml25.testcase \ - sql_stmt_tests/fromgml26.testcase \ - sql_stmt_tests/fromgml27.testcase \ - sql_stmt_tests/fromgml28.testcase \ - sql_stmt_tests/fromgml29.testcase \ - sql_stmt_tests/fromgml2.testcase \ - sql_stmt_tests/fromgml30.testcase \ - sql_stmt_tests/fromgml31.testcase \ - sql_stmt_tests/fromgml32.testcase \ - sql_stmt_tests/fromgml33.testcase \ - sql_stmt_tests/fromgml34.testcase \ - sql_stmt_tests/fromgml35.testcase \ - sql_stmt_tests/fromgml36.testcase \ - sql_stmt_tests/fromgml37.testcase \ - sql_stmt_tests/fromgml38.testcase \ - sql_stmt_tests/fromgml39.testcase \ - sql_stmt_tests/fromgml3.testcase \ - sql_stmt_tests/fromgml40.testcase \ - sql_stmt_tests/fromgml41.testcase \ - sql_stmt_proj_tests/fromgml42.testcase \ - sql_stmt_tests/fromgml43.testcase \ - sql_stmt_tests/fromgml4.testcase \ - sql_stmt_tests/fromgml5.testcase \ - sql_stmt_tests/fromgml6.testcase \ - sql_stmt_tests/fromgml7.testcase \ - sql_stmt_tests/fromgml8.testcase \ - sql_stmt_tests/fromgml9.testcase \ - sql_stmt_tests/fromWkb10.testcase \ - sql_stmt_tests/fromWkb11.testcase \ - sql_stmt_tests/fromWkb12.testcase \ - sql_stmt_tests/fromWkb13.testcase \ - sql_stmt_tests/fromWkb14.testcase \ - sql_stmt_tests/fromWkb15.testcase \ - sql_stmt_tests/fromWkb16.testcase \ - sql_stmt_tests/fromWkb17.testcase \ - sql_stmt_tests/fromWkb18.testcase \ - sql_stmt_tests/fromWkb19.testcase \ - sql_stmt_tests/fromWkb1.testcase \ - sql_stmt_tests/fromWkb20.testcase \ - sql_stmt_tests/fromWkb21.testcase \ - sql_stmt_tests/fromWkb22.testcase \ - sql_stmt_tests/fromWkb23.testcase \ - sql_stmt_tests/fromWkb2.testcase \ - sql_stmt_tests/fromWkb3.testcase \ - sql_stmt_tests/fromWkb4.testcase \ - sql_stmt_tests/fromWkb5.testcase \ - sql_stmt_tests/fromWkb6.testcase \ - sql_stmt_tests/fromWkb7.testcase \ - sql_stmt_tests/fromWkb8.testcase \ - sql_stmt_tests/fromWkb9.testcase \ - sql_stmt_tests/ft_m.testcase \ - sql_stmt_tests/garsmbr10.testcase \ - sql_stmt_tests/garsmbr11.testcase \ - sql_stmt_tests/garsmbr12.testcase \ - sql_stmt_tests/garsmbr13.testcase \ - sql_stmt_tests/garsmbr14.testcase \ - sql_stmt_tests/garsmbr15.testcase \ - sql_stmt_tests/garsmbr16.testcase \ - sql_stmt_tests/garsmbr17.testcase \ - sql_stmt_tests/garsmbr18.testcase \ - sql_stmt_tests/garsmbr1.testcase \ - sql_stmt_tests/garsmbr20.testcase \ - sql_stmt_tests/garsmbr21.testcase \ - sql_stmt_tests/garsmbr22.testcase \ - sql_stmt_tests/garsmbr23.testcase \ - sql_stmt_tests/garsmbr24.testcase \ - sql_stmt_tests/garsmbr25.testcase \ - sql_stmt_tests/garsmbr26.testcase \ - sql_stmt_tests/garsmbr27.testcase \ - sql_stmt_tests/garsmbr28.testcase \ - sql_stmt_tests/garsmbr29.testcase \ - sql_stmt_tests/garsmbr2.testcase \ - sql_stmt_tests/garsmbr30.testcase \ - sql_stmt_tests/garsmbr31.testcase \ - sql_stmt_tests/garsmbr32.testcase \ - sql_stmt_tests/garsmbr33.testcase \ - sql_stmt_tests/garsmbr34.testcase \ - sql_stmt_tests/garsmbr35.testcase \ - sql_stmt_tests/garsmbr36.testcase \ - sql_stmt_tests/garsmbr3.testcase \ - sql_stmt_tests/garsmbr4.testcase \ - sql_stmt_tests/garsmbr5.testcase \ - sql_stmt_tests/garsmbr6.testcase \ - sql_stmt_tests/garsmbr7.testcase \ - sql_stmt_tests/garsmbr8.testcase \ - sql_stmt_tests/garsmbr9.testcase \ - sql_stmt_tests/geodesic-len1.testcase \ - sql_stmt_tests/geodesic-len2.testcase \ - sql_stmt_tests/geodesic-len3.testcase \ - sql_stmt_tests/geodesic-len4.testcase \ - sql_stmt_tests/geodesic-len5.testcase \ - sql_stmt_tests/geodesic-len6.testcase \ - sql_stmt_tests/geodesic-len7.testcase \ - sql_stmt_tests/geodesic-len8.testcase \ - sql_stmt_tests/geojson1.testcase \ - sql_stmt_tests/geojson2.testcase \ - sql_stmt_tests/geojson3.testcase \ - sql_stmt_tests/geojson4.testcase \ - sql_stmt_tests/geojson5.testcase \ - sql_stmt_tests/geojson6.testcase \ - sql_stmt_tests/geomcollfromtext1.testcase \ - sql_stmt_tests/geomcollfromtext2.testcase \ - sql_stmt_tests/geomconstraints10.testcase \ - sql_stmt_tests/geomconstraints11.testcase \ - sql_stmt_tests/geomconstraints12.testcase \ - sql_stmt_tests/geomconstraints13.testcase \ - sql_stmt_tests/geomconstraints14.testcase \ - sql_stmt_tests/geomconstraints15.testcase \ - sql_stmt_tests/geomconstraints16.testcase \ - sql_stmt_tests/geomconstraints17.testcase \ - sql_stmt_tests/geomconstraints18.testcase \ - sql_stmt_tests/geomconstraints19.testcase \ - sql_stmt_tests/geomconstraints1.testcase \ - sql_stmt_tests/geomconstraints20.testcase \ - sql_stmt_tests/geomconstraints21.testcase \ - sql_stmt_tests/geomconstraints22.testcase \ - sql_stmt_tests/geomconstraints23.testcase \ - sql_stmt_tests/geomconstraints24.testcase \ - sql_stmt_tests/geomconstraints25.testcase \ - sql_stmt_tests/geomconstraints26.testcase \ - sql_stmt_tests/geomconstraints27.testcase \ - sql_stmt_tests/geomconstraints28.testcase \ - sql_stmt_tests/geomconstraints2.testcase \ - sql_stmt_tests/geomconstraints3.testcase \ - sql_stmt_tests/geomconstraints4.testcase \ - sql_stmt_tests/geomconstraints5.testcase \ - sql_stmt_tests/geomconstraints6.testcase \ - sql_stmt_tests/geomconstraints7.testcase \ - sql_stmt_tests/geomconstraints8.testcase \ - sql_stmt_tests/geomconstraints9.testcase \ - sql_stmt_tests/geometryn10.testcase \ - sql_stmt_tests/geometryn11.testcase \ - sql_stmt_tests/geometryn12.testcase \ - sql_stmt_tests/geometryn13.testcase \ - sql_stmt_tests/geometryn14.testcase \ - sql_stmt_tests/geometryn15.testcase \ - sql_stmt_tests/geometryn16.testcase \ - sql_stmt_tests/geometryn17.testcase \ - sql_stmt_tests/geometryn18.testcase \ - sql_stmt_tests/geometryn19.testcase \ - sql_stmt_tests/geometryn1.testcase \ - sql_stmt_tests/geometryn20.testcase \ - sql_stmt_tests/geometryn2.testcase \ - sql_stmt_tests/geometryn3.testcase \ - sql_stmt_tests/geometryn4.testcase \ - sql_stmt_tests/geometryn5.testcase \ - sql_stmt_tests/geometryn6.testcase \ - sql_stmt_tests/geometryn7.testcase \ - sql_stmt_tests/geometryn8.testcase \ - sql_stmt_tests/geometryn9.testcase \ - sql_stmt_tests/geometryn.testcase \ - sql_stmt_tests/geomfromewkb1.testcase \ - sql_stmt_tests/geomfromewkb2.testcase \ - sql_stmt_tests/geomfromkml10.testcase \ - sql_stmt_tests/geomfromkml11.testcase \ - sql_stmt_tests/geomfromkml12.testcase \ - sql_stmt_tests/geomfromkml13.testcase \ - sql_stmt_tests/geomfromkml14.testcase \ - sql_stmt_tests/geomfromkml15.testcase \ - sql_stmt_tests/geomfromkml16.testcase \ - sql_stmt_tests/geomfromkml17.testcase \ - sql_stmt_tests/geomfromkml18.testcase \ - sql_stmt_tests/geomfromkml19.testcase \ - sql_stmt_tests/geomfromkml1.testcase \ - sql_stmt_tests/geomfromkml20.testcase \ - sql_stmt_tests/geomfromkml21.testcase \ - sql_stmt_tests/geomfromkml22.testcase \ - sql_stmt_tests/geomfromkml23.testcase \ - sql_stmt_tests/geomfromkml2.testcase \ - sql_stmt_tests/geomfromkml3.testcase \ - sql_stmt_tests/geomfromkml4.testcase \ - sql_stmt_tests/geomfromkml5.testcase \ - sql_stmt_tests/geomfromkml6.testcase \ - sql_stmt_tests/geomfromkml7.testcase \ - sql_stmt_tests/geomfromkml8.testcase \ - sql_stmt_tests/geomfromkml9.testcase \ - sql_stmt_tests/geomfromtext1.testcase \ - sql_stmt_tests/geomfromtext2.testcase \ - sql_stmt_tests/geomfromtext3.testcase \ - sql_stmt_tests/geomfromtext4.testcase \ - sql_stmt_tests/geomfromtext5.testcase \ - sql_stmt_tests/geomfromtext6.testcase \ - sql_stmt_tests/geomfromtext7.testcase \ - sql_stmt_tests/geomfromtext8.testcase \ - sql_stmt_tests/geomfromtext9.testcase \ - sql_stmt_tests/geomfromtext10.testcase \ - sql_stmt_tests/geomfromtext11.testcase \ - sql_stmt_tests/geomfromtext12.testcase \ - sql_stmt_tests/geomfromtext13.testcase \ - sql_stmt_tests/geomfromtext14.testcase \ - sql_stmt_tests/geomfromtext15.testcase \ - sql_stmt_tests/geomfromtext16.testcase \ - sql_stmt_tests/geomfromtext17.testcase \ - sql_stmt_tests/geomfromtext18.testcase \ - sql_stmt_tests/geomfromtext19.testcase \ - sql_stmt_tests/geomfromtext20.testcase \ - sql_stmt_tests/geomfromtext21.testcase \ - sql_stmt_tests/geomfromtext22.testcase \ - sql_stmt_tests/geomfromtext23.testcase \ - sql_stmt_tests/geomfromtext24.testcase \ - sql_stmt_tests/geomfromtext25.testcase \ - sql_stmt_tests/geomfromtext26.testcase \ - sql_stmt_tests/geomfromtext27.testcase \ - sql_stmt_tests/geomfromtext28.testcase \ - sql_stmt_tests/geomfromtext29.testcase \ - sql_stmt_tests/geomfromtext30.testcase \ - sql_stmt_tests/geomfromtext31.testcase \ - sql_stmt_tests/geomfromtext32.testcase \ - sql_stmt_tests/geomfromtext33.testcase \ - sql_stmt_tests/geomfromtext34.testcase \ - sql_stmt_tests/geomfromtext35.testcase \ - sql_stmt_tests/geomfromtext36.testcase \ - sql_stmt_tests/geomfromtext37.testcase \ - sql_stmt_tests/geomfromtext38.testcase \ - sql_stmt_tests/geomfromtext39.testcase \ - sql_stmt_tests/geomfromtext40.testcase \ - sql_stmt_tests/geomfromtext41.testcase \ - sql_stmt_tests/geomfromtext42.testcase \ - sql_stmt_tests/geomfromtext43.testcase \ - sql_stmt_tests/geomfromtext44.testcase \ - sql_stmt_tests/geomfromtext45.testcase \ - sql_stmt_tests/geomtype10.testcase \ - sql_stmt_tests/geomtype11.testcase \ - sql_stmt_tests/geomtype12.testcase \ - sql_stmt_tests/geomtype13.testcase \ - sql_stmt_tests/geomtype14.testcase \ - sql_stmt_tests/geomtype15.testcase \ - sql_stmt_tests/geomtype16.testcase \ - sql_stmt_tests/geomtype17.testcase \ - sql_stmt_tests/geomtype18.testcase \ - sql_stmt_tests/geomtype19.testcase \ - sql_stmt_tests/geomtype1.testcase \ - sql_stmt_tests/geomtype20.testcase \ - sql_stmt_tests/geomtype21.testcase \ - sql_stmt_tests/geomtype22.testcase \ - sql_stmt_tests/geomtype23.testcase \ - sql_stmt_tests/geomtype24.testcase \ - sql_stmt_tests/geomtype25.testcase \ - sql_stmt_tests/geomtype26.testcase \ - sql_stmt_tests/geomtype27.testcase \ - sql_stmt_tests/geomtype28.testcase \ - sql_stmt_tests/geomtype29.testcase \ - sql_stmt_tests/geomtype2.testcase \ - sql_stmt_tests/geomtype30.testcase \ - sql_stmt_tests/geomtype31.testcase \ - sql_stmt_tests/geomtype32.testcase \ - sql_stmt_tests/geomtype33.testcase \ - sql_stmt_tests/geomtype34.testcase \ - sql_stmt_tests/geomtype35.testcase \ - sql_stmt_tests/geomtype36.testcase \ - sql_stmt_tests/geomtype37.testcase \ - sql_stmt_tests/geomtype38.testcase \ - sql_stmt_tests/geomtype39.testcase \ - sql_stmt_tests/geomtype3.testcase \ - sql_stmt_tests/geomtype40.testcase \ - sql_stmt_tests/geomtype41.testcase \ - sql_stmt_tests/geomtype42.testcase \ - sql_stmt_tests/geomtype43.testcase \ - sql_stmt_tests/geomtype44.testcase \ - sql_stmt_tests/geomtype45.testcase \ - sql_stmt_tests/geomtype46.testcase \ - sql_stmt_tests/geomtype47.testcase \ - sql_stmt_tests/geomtype48.testcase \ - sql_stmt_tests/geomtype49.testcase \ - sql_stmt_tests/geomtype4.testcase \ - sql_stmt_tests/geomtype50.testcase \ - sql_stmt_tests/geomtype51.testcase \ - sql_stmt_tests/geomtype52.testcase \ - sql_stmt_tests/geomtype53.testcase \ - sql_stmt_tests/geomtype54.testcase \ - sql_stmt_tests/geomtype55.testcase \ - sql_stmt_tests/geomtype56.testcase \ - sql_stmt_tests/geomtype57.testcase \ - sql_stmt_tests/geomtype58.testcase \ - sql_stmt_tests/geomtype59.testcase \ - sql_stmt_tests/geomtype5.testcase \ - sql_stmt_tests/geomtype60.testcase \ - sql_stmt_tests/geomtype61.testcase \ - sql_stmt_tests/geomtype62.testcase \ - sql_stmt_tests/geomtype63.testcase \ - sql_stmt_tests/geomtype64.testcase \ - sql_stmt_tests/geomtype65.testcase \ - sql_stmt_tests/geomtype66.testcase \ - sql_stmt_tests/geomtype67.testcase \ - sql_stmt_tests/geomtype68.testcase \ - sql_stmt_tests/geomtype69.testcase \ - sql_stmt_tests/geomtype6.testcase \ - sql_stmt_tests/geomtype7.testcase \ - sql_stmt_tests/geomtype8.testcase \ - sql_stmt_tests/geomtype9.testcase \ - sql_stmt_tests/gml10.testcase \ - sql_stmt_tests/gml11.testcase \ - sql_stmt_tests/gml12.testcase \ - sql_stmt_tests/gml13.testcase \ - sql_stmt_tests/gml14.testcase \ - sql_stmt_tests/gml15.testcase \ - sql_stmt_tests/gml16.testcase \ - sql_stmt_tests/gml1.testcase \ - sql_stmt_tests/gml2.testcase \ - sql_stmt_tests/gml3.testcase \ - sql_stmt_tests/gml4.testcase \ - sql_stmt_tests/gml5.testcase \ - sql_stmt_tests/gml6.testcase \ - sql_stmt_tests/gml7.testcase \ - sql_stmt_tests/gml8.testcase \ - sql_stmt_tests/gml9.testcase \ - sql_stmt_tests/greatcircle-badblob.testcase \ - sql_stmt_tests/greatcircle-poly2.testcase \ - sql_stmt_tests/greatcircle-poly3.testcase \ - sql_stmt_tests/greatcircle-poly4.testcase \ - sql_stmt_tests/greatcircle-poly5.testcase \ - sql_stmt_tests/greatcircle-poly6.testcase \ - sql_stmt_tests/greatcircle-poly7.testcase \ - sql_stmt_tests/greatcircle-poly.testcase \ - sql_stmt_tests/greatcircle.testcase \ - sql_stmt_tests/greatcircle-text.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase \ - sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase \ - sql_stmt_tests/ind_ch_m.testcase \ - sql_stmt_tests/ind_ft_m.testcase \ - sql_stmt_tests/ind_yd_m.testcase \ - sql_stmt_tests/in_m.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint10.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint11.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint12.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint13.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint14.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint1.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint2.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint3.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint4.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint5.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint6.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint7.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint8.testcase \ - sql_stmt_geosadvanced_tests/interpolatepoint9.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase \ - sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase \ - sql_stmt_geos_tests/intersection10.testcase \ - sql_stmt_geos_tests/intersection11.testcase \ - sql_stmt_geos_tests/intersection12.testcase \ - sql_stmt_geos_tests/intersection1.testcase \ - sql_stmt_geos_tests/intersection2.testcase \ - sql_stmt_geos_tests/intersection3.testcase \ - sql_stmt_geos_tests/intersection4.testcase \ - sql_stmt_geos_tests/intersection5.testcase \ - sql_stmt_geos_tests/intersection6.testcase \ - sql_stmt_geos_tests/intersection7.testcase \ - sql_stmt_geos_tests/intersection8.testcase \ - sql_stmt_geos_tests/intersection9.testcase \ - sql_stmt_tests/is3d1.testcase \ - sql_stmt_tests/is3d2.testcase \ - sql_stmt_tests/is3d3.testcase \ - sql_stmt_tests/is3d4.testcase \ - sql_stmt_tests/is3d5.testcase \ - sql_stmt_tests/is3d6.testcase \ - sql_stmt_geos_tests/isclosed10.testcase \ - sql_stmt_geos_tests/isclosed1.testcase \ - sql_stmt_geos_tests/isclosed2.testcase \ - sql_stmt_geos_tests/isclosed3.testcase \ - sql_stmt_geos_tests/isclosed4.testcase \ - sql_stmt_geos_tests/isclosed5.testcase \ - sql_stmt_geos_tests/isclosed6.testcase \ - sql_stmt_geos_tests/isclosed7.testcase \ - sql_stmt_geos_tests/isclosed8.testcase \ - sql_stmt_geos_tests/isclosed9.testcase \ - sql_stmt_tests/isempty2.testcase \ - sql_stmt_tests/isempty3.testcase \ - sql_stmt_tests/isempty4.testcase \ - sql_stmt_tests/isempty.testcase \ - sql_stmt_tests/ismeasured1.testcase \ - sql_stmt_tests/ismeasured2.testcase \ - sql_stmt_tests/ismeasured3.testcase \ - sql_stmt_tests/ismeasured4.testcase \ - sql_stmt_tests/ismeasured5.testcase \ - sql_stmt_tests/ismeasured6.testcase \ - sql_stmt_geos_tests/isring1.testcase \ - sql_stmt_geos_tests/isring2.testcase \ - sql_stmt_geos_tests/isring3.testcase \ - sql_stmt_geos_tests/isring4.testcase \ - sql_stmt_geos_tests/isring5.testcase \ - sql_stmt_geos_tests/isring6.testcase \ - sql_stmt_geos_tests/isring7.testcase \ - sql_stmt_geos_tests/isring8.testcase \ - sql_stmt_geos_tests/isring9.testcase \ - sql_stmt_geos_tests/issimple1.testcase \ - sql_stmt_geos_tests/issimple2.testcase \ - sql_stmt_geos_tests/issimple3.testcase \ - sql_stmt_geos_tests/issimple4.testcase \ - sql_stmt_geos_tests/issimple5.testcase \ - sql_stmt_geos_tests/issimple6.testcase \ - sql_stmt_geos_tests/isvalid10.testcase \ - sql_stmt_geos_tests/isvalid11.testcase \ - sql_stmt_geos_tests/isvalid12.testcase \ - sql_stmt_geos_tests/isvalid13.testcase \ - sql_stmt_geos_tests/isvalid14.testcase \ - sql_stmt_geos_tests/isvalid15.testcase \ - sql_stmt_geos_tests/isvalid16.testcase \ - sql_stmt_geos_tests/isvalid17.testcase \ - sql_stmt_geos_tests/isvalid18.testcase \ - sql_stmt_geos_tests/isvalid19.testcase \ - sql_stmt_geos_tests/isvalid1.testcase \ - sql_stmt_geos_tests/isvalid20.testcase \ - sql_stmt_geos_tests/isvalid2.testcase \ - sql_stmt_geos_tests/isvalid3.testcase \ - sql_stmt_geos_tests/isvalid4.testcase \ - sql_stmt_geos_tests/isvalid5.testcase \ - sql_stmt_geos_tests/isvalid6.testcase \ - sql_stmt_geos_tests/isvalid7.testcase \ - sql_stmt_geos_tests/isvalid8.testcase \ - sql_stmt_geos_tests/isvalid9.testcase \ - sql_stmt_tests/isXblob5.testcase \ - sql_stmt_tests/isXblob6.testcase \ - sql_stmt_tests/isXblob7.testcase \ - sql_stmt_tests/k3b-icon.png \ - sql_stmt_tests/km_m.testcase \ - sql_stmt_tests/ktorrent_grad1.jpg \ - sql_stmt_tests/ktorrent_sidebar.gif \ - sql_stmt_tests/La_folla_durante_il_Palio.jpg \ - sql_stmt_tests/lhr1.testcase \ - sql_stmt_tests/lhr2.testcase \ - sql_stmt_tests/lhr3.testcase \ - sql_stmt_tests/lhr4.testcase \ - sql_stmt_tests/lhr5.testcase \ - sql_stmt_tests/lhr6.testcase \ - sql_stmt_tests/linefromtext1.testcase \ - sql_stmt_tests/linefromtext2.testcase \ - sql_stmt_geosadvanced_tests/linemerge10.testcase \ - sql_stmt_geosadvanced_tests/linemerge1.testcase \ - sql_stmt_geosadvanced_tests/linemerge2.testcase \ - sql_stmt_geosadvanced_tests/linemerge3.testcase \ - sql_stmt_geosadvanced_tests/linemerge4.testcase \ - sql_stmt_geosadvanced_tests/linemerge5.testcase \ - sql_stmt_geosadvanced_tests/linemerge6.testcase \ - sql_stmt_geosadvanced_tests/linemerge7.testcase \ - sql_stmt_geosadvanced_tests/linemerge8.testcase \ - sql_stmt_geosadvanced_tests/linemerge9.testcase \ - sql_stmt_tests/linesfromrings1.testcase \ - sql_stmt_tests/linesfromrings2.testcase \ - sql_stmt_tests/linesfromrings3.testcase \ - sql_stmt_tests/linesfromrings4.testcase \ - sql_stmt_tests/linesfromrings5.testcase \ - sql_stmt_tests/linesfromrings6.testcase \ - sql_stmt_tests/linesfromrings7.testcase \ - sql_stmt_geosadvanced_tests/linesnodes10.testcase \ - sql_stmt_geosadvanced_tests/linesnodes11.testcase \ - sql_stmt_geosadvanced_tests/linesnodes12.testcase \ - sql_stmt_geosadvanced_tests/linesnodes13.testcase \ - sql_stmt_geosadvanced_tests/linesnodes14.testcase \ - sql_stmt_geosadvanced_tests/linesnodes15.testcase \ - sql_stmt_geosadvanced_tests/linesnodes16.testcase \ - sql_stmt_geosadvanced_tests/linesnodes17.testcase \ - sql_stmt_geosadvanced_tests/linesnodes18.testcase \ - sql_stmt_geosadvanced_tests/linesnodes19.testcase \ - sql_stmt_geosadvanced_tests/linesnodes1.testcase \ - sql_stmt_geosadvanced_tests/linesnodes2.testcase \ - sql_stmt_geosadvanced_tests/linesnodes3.testcase \ - sql_stmt_geosadvanced_tests/linesnodes4.testcase \ - sql_stmt_geosadvanced_tests/linesnodes5.testcase \ - sql_stmt_geosadvanced_tests/linesnodes6.testcase \ - sql_stmt_geosadvanced_tests/linesnodes7.testcase \ - sql_stmt_geosadvanced_tests/linesnodes8.testcase \ - sql_stmt_geosadvanced_tests/linesnodes9.testcase \ - sql_stmt_geosadvanced_tests/linesubstring10.testcase \ - sql_stmt_geosadvanced_tests/linesubstring11.testcase \ - sql_stmt_geosadvanced_tests/linesubstring12.testcase \ - sql_stmt_geosadvanced_tests/linesubstring13.testcase \ - sql_stmt_geosadvanced_tests/linesubstring14.testcase \ - sql_stmt_geosadvanced_tests/linesubstring15.testcase \ - sql_stmt_geosadvanced_tests/linesubstring16.testcase \ - sql_stmt_geosadvanced_tests/linesubstring17.testcase \ - sql_stmt_geosadvanced_tests/linesubstring18.testcase \ - sql_stmt_geosadvanced_tests/linesubstring19.testcase \ - sql_stmt_geosadvanced_tests/linesubstring1.testcase \ - sql_stmt_geosadvanced_tests/linesubstring20.testcase \ - sql_stmt_geosadvanced_tests/linesubstring21.testcase \ - sql_stmt_geosadvanced_tests/linesubstring22.testcase \ - sql_stmt_geosadvanced_tests/linesubstring23.testcase \ - sql_stmt_geosadvanced_tests/linesubstring24.testcase \ - sql_stmt_geosadvanced_tests/linesubstring25.testcase \ - sql_stmt_geosadvanced_tests/linesubstring26.testcase \ - sql_stmt_geosadvanced_tests/linesubstring2.testcase \ - sql_stmt_geosadvanced_tests/linesubstring3.testcase \ - sql_stmt_geosadvanced_tests/linesubstring4.testcase \ - sql_stmt_geosadvanced_tests/linesubstring5.testcase \ - sql_stmt_geosadvanced_tests/linesubstring6.testcase \ - sql_stmt_geosadvanced_tests/linesubstring7.testcase \ - sql_stmt_geosadvanced_tests/linesubstring8.testcase \ - sql_stmt_geosadvanced_tests/linesubstring9.testcase \ - sql_stmt_tests/link_m.testcase \ - sql_stmt_tests/locatemeasure10.testcase \ - sql_stmt_tests/locatemeasure11.testcase \ - sql_stmt_tests/locatemeasure12.testcase \ - sql_stmt_tests/locatemeasure13.testcase \ - sql_stmt_tests/locatemeasure14.testcase \ - sql_stmt_tests/locatemeasure15.testcase \ - sql_stmt_tests/locatemeasure16.testcase \ - sql_stmt_tests/locatemeasure17.testcase \ - sql_stmt_tests/locatemeasure1.testcase \ - sql_stmt_tests/locatemeasure2.testcase \ - sql_stmt_tests/locatemeasure3.testcase \ - sql_stmt_tests/locatemeasure4.testcase \ - sql_stmt_tests/locatemeasure5.testcase \ - sql_stmt_tests/locatemeasure6.testcase \ - sql_stmt_tests/locatemeasure7.testcase \ - sql_stmt_tests/locatemeasure8.testcase \ - sql_stmt_tests/locatemeasure9.testcase \ - sql_stmt_geosadvanced_tests/locatepoint10.testcase \ - sql_stmt_geosadvanced_tests/locatepoint11.testcase \ - sql_stmt_geosadvanced_tests/locatepoint12.testcase \ - sql_stmt_geosadvanced_tests/locatepoint1.testcase \ - sql_stmt_geosadvanced_tests/locatepoint2.testcase \ - sql_stmt_geosadvanced_tests/locatepoint3.testcase \ - sql_stmt_geosadvanced_tests/locatepoint4.testcase \ - sql_stmt_geosadvanced_tests/locatepoint5.testcase \ - sql_stmt_geosadvanced_tests/locatepoint6.testcase \ - sql_stmt_geosadvanced_tests/locatepoint7.testcase \ - sql_stmt_geosadvanced_tests/locatepoint8.testcase \ - sql_stmt_geosadvanced_tests/locatepoint9.testcase \ - sql_stmt_mathsql_tests/log10-0.0.testcase \ - sql_stmt_mathsql_tests/log10-100.0.testcase \ - sql_stmt_mathsql_tests/log10-100.testcase \ - sql_stmt_mathsql_tests/log10-text.testcase \ - sql_stmt_mathsql_tests/log2-0.0.testcase \ - sql_stmt_mathsql_tests/log2-0.testcase \ - sql_stmt_mathsql_tests/log2-4.0.testcase \ - sql_stmt_mathsql_tests/log2-4.testcase \ - sql_stmt_mathsql_tests/log2-text.testcase \ - sql_stmt_mathsql_tests/logn00.testcase \ - sql_stmt_mathsql_tests/logn0.testcase \ - sql_stmt_mathsql_tests/logn10.testcase \ - sql_stmt_mathsql_tests/logn1.testcase \ - sql_stmt_mathsql_tests/logn2-01.testcase \ - sql_stmt_mathsql_tests/logn2-02.testcase \ - sql_stmt_mathsql_tests/logn2-2.2.testcase \ - sql_stmt_mathsql_tests/logn2-4.2int.testcase \ - sql_stmt_mathsql_tests/logn2-4.2.testcase \ - sql_stmt_mathsql_tests/logn2-text2.testcase \ - sql_stmt_mathsql_tests/logn2-text3.testcase \ - sql_stmt_mathsql_tests/logn2-text4.testcase \ - sql_stmt_mathsql_tests/logn2-text.testcase \ - sql_stmt_mathsql_tests/logn-text.testcase \ - sql_stmt_tests/makeline10.testcase \ - sql_stmt_tests/makeline11.testcase \ - sql_stmt_tests/makeline12.testcase \ - sql_stmt_tests/makeline13.testcase \ - sql_stmt_tests/makeline14.testcase \ - sql_stmt_tests/makeline15.testcase \ - sql_stmt_tests/makeline16.testcase \ - sql_stmt_tests/makeline17.testcase \ - sql_stmt_tests/makeline18.testcase \ - sql_stmt_tests/makeline19.testcase \ - sql_stmt_tests/makeline20.testcase \ - sql_stmt_tests/makeline21.testcase \ - sql_stmt_tests/makeline22.testcase \ - sql_stmt_tests/makeline23.testcase \ - sql_stmt_tests/makeline24.testcase \ - sql_stmt_tests/makeline2.testcase \ - sql_stmt_tests/makeline3.testcase \ - sql_stmt_tests/makeline4.testcase \ - sql_stmt_tests/makeline5.testcase \ - sql_stmt_tests/makeline6.testcase \ - sql_stmt_tests/makeline7.testcase \ - sql_stmt_tests/makeline8.testcase \ - sql_stmt_tests/makeline9.testcase \ - sql_stmt_tests/makeline.testcase \ - sql_stmt_tests/makepoint10.testcase \ - sql_stmt_tests/makepoint11.testcase \ - sql_stmt_tests/makepoint12.testcase \ - sql_stmt_tests/makepoint13.testcase \ - sql_stmt_tests/makepoint14.testcase \ - sql_stmt_tests/makepoint15.testcase \ - sql_stmt_tests/makepoint1.testcase \ - sql_stmt_tests/makepoint2.testcase \ - sql_stmt_tests/makepoint3.testcase \ - sql_stmt_tests/makepoint4.testcase \ - sql_stmt_tests/makepoint5.testcase \ - sql_stmt_tests/makepoint6.testcase \ - sql_stmt_tests/makepoint7.testcase \ - sql_stmt_tests/makepoint8.testcase \ - sql_stmt_tests/makepoint9.testcase \ - sql_stmt_tests/makepointm-null1.testcase \ - sql_stmt_tests/makepointm-null2.testcase \ - sql_stmt_tests/makepointm-null3.testcase \ - sql_stmt_tests/makepointm-null4.testcase \ - sql_stmt_tests/makepointm-null5.testcase \ - sql_stmt_tests/makepointm-null6.testcase \ - sql_stmt_tests/makepointm-null7.testcase \ - sql_stmt_tests/makepointm-null8.testcase \ - sql_stmt_tests/makepoint-null1.testcase \ - sql_stmt_tests/makepoint-null2.testcase \ - sql_stmt_tests/makepoint-null3.testcase \ - sql_stmt_tests/makepoint-null4.testcase \ - sql_stmt_tests/makepoint-null5.testcase \ - sql_stmt_tests/makepoint-null6.testcase \ - sql_stmt_tests/makepoint-null7.testcase \ - sql_stmt_tests/makepointzm-null10.testcase \ - sql_stmt_tests/makepointzm-null1.testcase \ - sql_stmt_tests/makepointzm-null2.testcase \ - sql_stmt_tests/makepointzm-null3.testcase \ - sql_stmt_tests/makepointzm-null4.testcase \ - sql_stmt_tests/makepointzm-null5.testcase \ - sql_stmt_tests/makepointzm-null6.testcase \ - sql_stmt_tests/makepointzm-null7.testcase \ - sql_stmt_tests/makepointzm-null8.testcase \ - sql_stmt_tests/makepointzm-null9.testcase \ - sql_stmt_tests/makepointz-null1.testcase \ - sql_stmt_tests/makepointz-null2.testcase \ - sql_stmt_tests/makepointz-null3.testcase \ - sql_stmt_tests/makepointz-null4.testcase \ - sql_stmt_tests/makepointz-null5.testcase \ - sql_stmt_tests/makepointz-null6.testcase \ - sql_stmt_tests/makepointz-null7.testcase \ - sql_stmt_tests/makepointz-null8.testcase \ - sql_stmt_tests/maxm1.testcase \ - sql_stmt_tests/maxm2.testcase \ - sql_stmt_tests/maxm3.testcase \ - sql_stmt_tests/maxm4.testcase \ - sql_stmt_tests/maxm5.testcase \ - sql_stmt_tests/maxm6.testcase \ - sql_stmt_tests/maxm7.testcase \ - sql_stmt_tests/maxz1.testcase \ - sql_stmt_tests/maxz2.testcase \ - sql_stmt_tests/maxz3.testcase \ - sql_stmt_tests/maxz4.testcase \ - sql_stmt_tests/maxz5.testcase \ - sql_stmt_tests/maxz6.testcase \ - sql_stmt_tests/maxz7.testcase \ - sql_stmt_tests/mbr10.testcase \ - sql_stmt_tests/mbr11.testcase \ - sql_stmt_tests/mbr12.testcase \ - sql_stmt_tests/mbr13.testcase \ - sql_stmt_tests/mbr14.testcase \ - sql_stmt_tests/mbr15.testcase \ - sql_stmt_tests/mbr16.testcase \ - sql_stmt_tests/mbr17.testcase \ - sql_stmt_tests/mbr18.testcase \ - sql_stmt_tests/mbr19.testcase \ - sql_stmt_tests/mbr1.testcase \ - sql_stmt_tests/mbr20.testcase \ - sql_stmt_tests/mbr21.testcase \ - sql_stmt_tests/mbr22.testcase \ - sql_stmt_tests/mbr23.testcase \ - sql_stmt_tests/mbr24.testcase \ - sql_stmt_tests/mbr25.testcase \ - sql_stmt_tests/mbr26.testcase \ - sql_stmt_tests/mbr27.testcase \ - sql_stmt_tests/mbr28.testcase \ - sql_stmt_tests/mbr29.testcase \ - sql_stmt_tests/mbr2.testcase \ - sql_stmt_tests/mbr30.testcase \ - sql_stmt_tests/mbr31.testcase \ - sql_stmt_tests/mbr32.testcase \ - sql_stmt_tests/mbr3.testcase \ - sql_stmt_tests/mbr4.testcase \ - sql_stmt_tests/mbr5.testcase \ - sql_stmt_tests/mbr6.testcase \ - sql_stmt_tests/mbr7.testcase \ - sql_stmt_tests/mbr8.testcase \ - sql_stmt_tests/mbr9.testcase \ - sql_stmt_tests/mbrminmax1.testcase \ - sql_stmt_tests/mbrminmax2.testcase \ - sql_stmt_tests/mbrminmax3.testcase \ - sql_stmt_tests/mbrminmax4.testcase \ - sql_stmt_tests/mbrminmax5.testcase \ - sql_stmt_tests/mbrminmax6.testcase \ - sql_stmt_tests/mbrminmax7.testcase \ - sql_stmt_tests/mbrminmax8.testcase \ - sql_stmt_tests/m_ch.testcase \ - sql_stmt_tests/m_cm.testcase \ - sql_stmt_tests/m_dm.testcase \ - sql_stmt_tests/m_fath.testcase \ - sql_stmt_tests/m_ft.testcase \ - sql_stmt_tests/m_ft-text.testcase \ - sql_stmt_tests/mi_m.testcase \ - sql_stmt_tests/m_ind_ch.testcase \ - sql_stmt_tests/m_ind_ft.testcase \ - sql_stmt_tests/m_ind_yd.testcase \ - sql_stmt_tests/minm1.testcase \ - sql_stmt_tests/minm2.testcase \ - sql_stmt_tests/minm3.testcase \ - sql_stmt_tests/minm4.testcase \ - sql_stmt_tests/minm5.testcase \ - sql_stmt_tests/minm6.testcase \ - sql_stmt_tests/m_in.testcase \ - sql_stmt_tests/m_in_us.testcase \ - sql_stmt_tests/minz1.testcase \ - sql_stmt_tests/minz2.testcase \ - sql_stmt_tests/minz3.testcase \ - sql_stmt_tests/minz4.testcase \ - sql_stmt_tests/minz5.testcase \ - sql_stmt_tests/minz6.testcase \ - sql_stmt_tests/m_km.testcase \ - sql_stmt_tests/mlinefromtext1.testcase \ - sql_stmt_tests/mlinefromtext2.testcase \ - sql_stmt_tests/m_ln.testcase \ - sql_stmt_tests/m_mi.testcase \ - sql_stmt_tests/m_mm.testcase \ - sql_stmt_tests/mm_m.testcase \ - sql_stmt_tests/m_nm.testcase \ - sql_stmt_tests/mpointfromtext1.testcase \ - sql_stmt_tests/mpointfromtext2.testcase \ - sql_stmt_tests/mpolygonfromtext1.testcase \ - sql_stmt_tests/mpolygonfromtext2.testcase \ - sql_stmt_tests/m_us_ch.testcase \ - sql_stmt_tests/m_us_ft.testcase \ - sql_stmt_tests/m_usmi.testcase \ - sql_stmt_tests/m_yd.testcase \ - sql_stmt_tests/m_yd_us.testcase \ - sql_stmt_tests/ndims1.testcase \ - sql_stmt_tests/ndims2.testcase \ - sql_stmt_tests/ndims3.testcase \ - sql_stmt_tests/ndims4.testcase \ - sql_stmt_tests/ndims5.testcase \ - sql_stmt_tests/ndims6.testcase \ - sql_stmt_tests/nm_m.testcase \ - sql_stmt_tests/normalizelonlat10.testcase \ - sql_stmt_tests/normalizelonlat11.testcase \ - sql_stmt_tests/normalizelonlat12.testcase \ - sql_stmt_tests/normalizelonlat13.testcase \ - sql_stmt_tests/normalizelonlat14.testcase \ - sql_stmt_tests/normalizelonlat15.testcase \ - sql_stmt_tests/normalizelonlat16.testcase \ - sql_stmt_tests/normalizelonlat17.testcase \ - sql_stmt_tests/normalizelonlat18.testcase \ - sql_stmt_tests/normalizelonlat19.testcase \ - sql_stmt_tests/normalizelonlat1.testcase \ - sql_stmt_tests/normalizelonlat20.testcase \ - sql_stmt_tests/normalizelonlat21.testcase \ - sql_stmt_tests/normalizelonlat22.testcase \ - sql_stmt_tests/normalizelonlat23.testcase \ - sql_stmt_tests/normalizelonlat24.testcase \ - sql_stmt_tests/normalizelonlat25.testcase \ - sql_stmt_tests/normalizelonlat26.testcase \ - sql_stmt_tests/normalizelonlat27.testcase \ - sql_stmt_tests/normalizelonlat2.testcase \ - sql_stmt_tests/normalizelonlat3.testcase \ - sql_stmt_tests/normalizelonlat4.testcase \ - sql_stmt_tests/normalizelonlat5.testcase \ - sql_stmt_tests/normalizelonlat6.testcase \ - sql_stmt_tests/normalizelonlat7.testcase \ - sql_stmt_tests/normalizelonlat8.testcase \ - sql_stmt_tests/normalizelonlat9.testcase \ - sql_stmt_tests/npoints1.testcase \ - sql_stmt_tests/npoints2.testcase \ - sql_stmt_tests/npoints3.testcase \ - sql_stmt_tests/npoints4.testcase \ - sql_stmt_tests/npoints5.testcase \ - sql_stmt_tests/npoints6.testcase \ - sql_stmt_tests/nrings1.testcase \ - sql_stmt_tests/nrings2.testcase \ - sql_stmt_tests/nrings3.testcase \ - sql_stmt_tests/nrings4.testcase \ - sql_stmt_tests/nrings5.testcase \ - sql_stmt_tests/nrings6.testcase \ - sql_stmt_tests/numgeometries1.testcase \ - sql_stmt_tests/numgeometries2.testcase \ - sql_stmt_tests/numgeometries3.testcase \ - sql_stmt_tests/numgeometries4.testcase \ - sql_stmt_tests/numgeometries5.testcase \ - sql_stmt_tests/numgeometries6.testcase \ - sql_stmt_tests/NumPoints2.testcase \ - sql_stmt_tests/NumPoints3.testcase \ - sql_stmt_tests/NumPoints4.testcase \ - sql_stmt_tests/NumPoints5.testcase \ - sql_stmt_tests/NumPoints6.testcase \ - sql_stmt_tests/NumPoints7.testcase \ - sql_stmt_tests/NumPoints.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve10.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve11.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve12.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve13.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve14.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve1.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve2.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve3.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve4.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve5.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve6.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve7.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve8.testcase \ - sql_stmt_geosadvanced_tests/offsetcurve9.testcase \ - sql_stmt_proj_tests/output10.testcase \ - sql_stmt_proj_tests/output11.testcase \ - sql_stmt_proj_tests/output12.testcase \ - sql_stmt_proj_tests/output13.testcase \ - sql_stmt_proj_tests/output14.testcase \ - sql_stmt_proj_tests/output15.testcase \ - sql_stmt_proj_tests/output16.testcase \ - sql_stmt_proj_tests/output17.testcase \ - sql_stmt_proj_tests/output18.testcase \ - sql_stmt_proj_tests/output19.testcase \ - sql_stmt_proj_tests/output1.testcase \ - sql_stmt_proj_tests/output20.testcase \ - sql_stmt_proj_tests/output21.testcase \ - sql_stmt_proj_tests/output22.testcase \ - sql_stmt_proj_tests/output23.testcase \ - sql_stmt_proj_tests/output24.testcase \ - sql_stmt_proj_tests/output25.testcase \ - sql_stmt_proj_tests/output26.testcase \ - sql_stmt_proj_tests/output27.testcase \ - sql_stmt_proj_tests/output28.testcase \ - sql_stmt_proj_tests/output29.testcase \ - sql_stmt_proj_tests/output2.testcase \ - sql_stmt_proj_tests/output30.testcase \ - sql_stmt_proj_tests/output31.testcase \ - sql_stmt_proj_tests/output32.testcase \ - sql_stmt_proj_tests/output33.testcase \ - sql_stmt_proj_tests/output34.testcase \ - sql_stmt_proj_tests/output35.testcase \ - sql_stmt_proj_tests/output36.testcase \ - sql_stmt_proj_tests/output37.testcase \ - sql_stmt_proj_tests/output38.testcase \ - sql_stmt_proj_tests/output3.testcase \ - sql_stmt_proj_tests/output4.testcase \ - sql_stmt_proj_tests/output5.testcase \ - sql_stmt_proj_tests/output6.testcase \ - sql_stmt_proj_tests/output7.testcase \ - sql_stmt_proj_tests/output8.testcase \ - sql_stmt_proj_tests/output9.testcase \ - sql_stmt_mathsql_tests/pi.testcase \ - sql_stmt_tests/pointfromtext1.testcase \ - sql_stmt_tests/pointfromtext2.testcase \ - sql_stmt_tests/pointn10.testcase \ - sql_stmt_tests/pointn11.testcase \ - sql_stmt_tests/pointn12.testcase \ - sql_stmt_tests/pointn13.testcase \ - sql_stmt_tests/pointn14.testcase \ - sql_stmt_tests/pointn15.testcase \ - sql_stmt_tests/pointn1.testcase \ - sql_stmt_tests/pointn2.testcase \ - sql_stmt_tests/pointn3.testcase \ - sql_stmt_tests/pointn4.testcase \ - sql_stmt_tests/pointn5.testcase \ - sql_stmt_tests/pointn6.testcase \ - sql_stmt_tests/pointn7.testcase \ - sql_stmt_tests/pointn8.testcase \ - sql_stmt_tests/pointn9.testcase \ - sql_stmt_geos_tests/pointonsurface1.testcase \ - sql_stmt_geos_tests/pointonsurface2.testcase \ - sql_stmt_geos_tests/pointonsurface3.testcase \ - sql_stmt_geos_tests/pointonsurface4.testcase \ - sql_stmt_geos_tests/pointonsurface5.testcase \ - sql_stmt_geos_tests/pointonsurface6.testcase \ - sql_stmt_geos_tests/pointonsurface7.testcase \ - sql_stmt_tests/polygonfromtext1.testcase \ - sql_stmt_tests/polygonfromtext2.testcase \ - sql_stmt_geos_tests/polygonize10.testcase \ - sql_stmt_geos_tests/polygonize11.testcase \ - sql_stmt_geos_tests/polygonize12.testcase \ - sql_stmt_geos_tests/polygonize13.testcase \ - sql_stmt_geos_tests/polygonize14.testcase \ - sql_stmt_geos_tests/polygonize1.testcase \ - sql_stmt_geos_tests/polygonize2.testcase \ - sql_stmt_geos_tests/polygonize3.testcase \ - sql_stmt_geos_tests/polygonize4.testcase \ - sql_stmt_geos_tests/polygonize5.testcase \ - sql_stmt_geos_tests/polygonize6.testcase \ - sql_stmt_geos_tests/polygonize7.testcase \ - sql_stmt_geos_tests/polygonize8.testcase \ - sql_stmt_geos_tests/polygonize9.testcase \ - sql_stmt_mathsql_tests/pow00-1.testcase \ - sql_stmt_mathsql_tests/pow00-2.testcase \ - sql_stmt_mathsql_tests/pow00double.testcase \ - sql_stmt_mathsql_tests/pow00.testcase \ - sql_stmt_mathsql_tests/pow-badarg1.testcase \ - sql_stmt_mathsql_tests/pow-badarg2.testcase \ - sql_stmt_mathsql_tests/pow-edom.testcase \ - sql_stmt_mathsql_tests/pow-fp.testcase \ - sql_stmt_geos_tests/ptdistancewithin10.testcase \ - sql_stmt_geos_tests/ptdistancewithin11.testcase \ - sql_stmt_geos_tests/ptdistancewithin12.testcase \ - sql_stmt_geos_tests/ptdistancewithin13.testcase \ - sql_stmt_geos_tests/ptdistancewithin14.testcase \ - sql_stmt_geos_tests/ptdistancewithin15.testcase \ - sql_stmt_geos_tests/ptdistancewithin16.testcase \ - sql_stmt_geos_tests/ptdistancewithin17.testcase \ - sql_stmt_geos_tests/ptdistancewithin18.testcase \ - sql_stmt_geos_tests/ptdistancewithin1.testcase \ - sql_stmt_geos_tests/ptdistancewithin2.testcase \ - sql_stmt_geos_tests/ptdistancewithin3.testcase \ - sql_stmt_geos_tests/ptdistancewithin4.testcase \ - sql_stmt_geos_tests/ptdistancewithin5.testcase \ - sql_stmt_geos_tests/ptdistancewithin6.testcase \ - sql_stmt_geos_tests/ptdistancewithin7.testcase \ - sql_stmt_geos_tests/ptdistancewithin8.testcase \ - sql_stmt_geos_tests/ptdistancewithin9.testcase \ - sql_stmt_geos_tests/ptdistwithin10.testcase \ - sql_stmt_geos_tests/ptdistwithin11.testcase \ - sql_stmt_geos_tests/ptdistwithin12.testcase \ - sql_stmt_geos_tests/ptdistwithin13.testcase \ - sql_stmt_geos_tests/ptdistwithin14.testcase \ - sql_stmt_geos_tests/ptdistwithin15.testcase \ - sql_stmt_geos_tests/ptdistwithin16.testcase \ - sql_stmt_geos_tests/ptdistwithin1.testcase \ - sql_stmt_geos_tests/ptdistwithin2.testcase \ - sql_stmt_geos_tests/ptdistwithin3.testcase \ - sql_stmt_geos_tests/ptdistwithin4.testcase \ - sql_stmt_geos_tests/ptdistwithin5.testcase \ - sql_stmt_geos_tests/ptdistwithin6.testcase \ - sql_stmt_geos_tests/ptdistwithin7.testcase \ - sql_stmt_geos_tests/ptdistwithin8.testcase \ - sql_stmt_geos_tests/ptdistwithin9.testcase \ - sql_stmt_mathsql_tests/rad0.testcase \ - sql_stmt_mathsql_tests/radpi.testcase \ - sql_stmt_mathsql_tests/rad-text.testcase \ - sql_stmt_tests/reflectcoords10.testcase \ - sql_stmt_tests/reflectcoords11.testcase \ - sql_stmt_tests/reflectcoords12.testcase \ - sql_stmt_tests/reflectcoords13.testcase \ - sql_stmt_tests/reflectcoords14.testcase \ - sql_stmt_tests/reflectcoords15.testcase \ - sql_stmt_tests/reflectcoords16.testcase \ - sql_stmt_tests/reflectcoords17.testcase \ - sql_stmt_tests/reflectcoords1.testcase \ - sql_stmt_tests/reflectcoords2.testcase \ - sql_stmt_tests/reflectcoords3.testcase \ - sql_stmt_tests/reflectcoords4.testcase \ - sql_stmt_tests/reflectcoords5.testcase \ - sql_stmt_tests/reflectcoords6.testcase \ - sql_stmt_tests/reflectcoords7.testcase \ - sql_stmt_tests/reflectcoords8.testcase \ - sql_stmt_tests/reflectcoords9.testcase \ - sql_stmt_geos_tests/relate1.testcase \ - sql_stmt_geos_tests/relate2.testcase \ - sql_stmt_geos_tests/relate3.testcase \ - sql_stmt_geos_tests/relate4.testcase \ - sql_stmt_geos_tests/relate5.testcase \ - sql_stmt_geos_tests/relate6.testcase \ - sql_stmt_geos_tests/relate7.testcase \ - sql_stmt_geos_tests/relate8.testcase \ - sql_stmt_geos_tests/relate9.testcase \ - sql_stmt_geos_tests/relations1.testcase \ - sql_stmt_geos_tests/relations2.testcase \ - sql_stmt_geos_tests/relations3.testcase \ - sql_stmt_geos_tests/relations4.testcase \ - sql_stmt_geos_tests/relations5.testcase \ - sql_stmt_geos_tests/relations6.testcase \ - sql_stmt_geos_tests/relations7.testcase \ - sql_stmt_geos_tests/relations8.testcase \ - sql_stmt_tests/reverse1.testcase \ - sql_stmt_tests/reverse2.testcase \ - sql_stmt_tests/reverse3.testcase \ - sql_stmt_tests/reverse4.testcase \ - sql_stmt_tests/reverse5.testcase \ - sql_stmt_tests/reverse6.testcase \ - sql_stmt_tests/ring10.testcase \ - sql_stmt_tests/ring11.testcase \ - sql_stmt_tests/ring12.testcase \ - sql_stmt_tests/ring13.testcase \ - sql_stmt_tests/ring14.testcase \ - sql_stmt_tests/ring15.testcase \ - sql_stmt_tests/ring16.testcase \ - sql_stmt_tests/ring17.testcase \ - sql_stmt_tests/ring18.testcase \ - sql_stmt_tests/ring19.testcase \ - sql_stmt_tests/ring1.testcase \ - sql_stmt_tests/ring20.testcase \ - sql_stmt_tests/ring21.testcase \ - sql_stmt_tests/ring22.testcase \ - sql_stmt_tests/ring23.testcase \ - sql_stmt_tests/ring24.testcase \ - sql_stmt_tests/ring25.testcase \ - sql_stmt_tests/ring26.testcase \ - sql_stmt_tests/ring27.testcase \ - sql_stmt_tests/ring28.testcase \ - sql_stmt_tests/ring2.testcase \ - sql_stmt_tests/ring3.testcase \ - sql_stmt_tests/ring4.testcase \ - sql_stmt_tests/ring5.testcase \ - sql_stmt_tests/ring6.testcase \ - sql_stmt_tests/ring7.testcase \ - sql_stmt_tests/ring8.testcase \ - sql_stmt_tests/ring9.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes1.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes2.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes3.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes4.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes5.testcase \ - sql_stmt_geosadvanced_tests/ringsnodes6.testcase \ - sql_stmt_tests/rotatecoords10.testcase \ - sql_stmt_tests/rotatecoords11.testcase \ - sql_stmt_tests/rotatecoords12.testcase \ - sql_stmt_tests/rotatecoords13.testcase \ - sql_stmt_tests/rotatecoords14.testcase \ - sql_stmt_tests/rotatecoords1.testcase \ - sql_stmt_tests/rotatecoords2.testcase \ - sql_stmt_tests/rotatecoords3.testcase \ - sql_stmt_tests/rotatecoords4.testcase \ - sql_stmt_tests/rotatecoords5.testcase \ - sql_stmt_tests/rotatecoords6.testcase \ - sql_stmt_tests/rotatecoords7.testcase \ - sql_stmt_tests/rotatecoords8.testcase \ - sql_stmt_tests/rotatecoords9.testcase \ - sql_stmt_mathsql_tests/round0.testcase \ - sql_stmt_mathsql_tests/round-29.testcase \ - sql_stmt_mathsql_tests/round29.testcase \ - sql_stmt_mathsql_tests/round30.testcase \ - sql_stmt_mathsql_tests/round-31.testcase \ - sql_stmt_mathsql_tests/round31.testcase \ - sql_stmt_mathsql_tests/round3.testcase \ - sql_stmt_mathsql_tests/round-text.testcase \ - sql_stmt_tests/routing1.testcase \ - sql_stmt_tests/routing2.testcase \ - sql_stmt_tests/routing3.testcase \ - sql_stmt_tests/routing4.testcase \ - sql_stmt_tests/routing5.testcase \ - sql_stmt_geos_tests/routing6.testcase \ - sql_stmt_tests/sandro.jpg \ - sql_stmt_tests/sanitizeGeometry10.testcase \ - sql_stmt_tests/sanitizeGeometry11.testcase \ - sql_stmt_tests/sanitizeGeometry12.testcase \ - sql_stmt_tests/sanitizeGeometry13.testcase \ - sql_stmt_tests/sanitizeGeometry14.testcase \ - sql_stmt_tests/sanitizeGeometry15.testcase \ - sql_stmt_tests/sanitizeGeometry16.testcase \ - sql_stmt_tests/sanitizeGeometry1.testcase \ - sql_stmt_tests/sanitizeGeometry2.testcase \ - sql_stmt_tests/sanitizeGeometry3.testcase \ - sql_stmt_tests/sanitizeGeometry4.testcase \ - sql_stmt_tests/sanitizeGeometry5.testcase \ - sql_stmt_tests/sanitizeGeometry6.testcase \ - sql_stmt_tests/sanitizeGeometry7.testcase \ - sql_stmt_tests/sanitizeGeometry8.testcase \ - sql_stmt_tests/sanitizeGeometry9.testcase \ - sql_stmt_tests/scalecoords10.testcase \ - sql_stmt_tests/scalecoords11.testcase \ - sql_stmt_tests/scalecoords12.testcase \ - sql_stmt_tests/scalecoords13.testcase \ - sql_stmt_tests/scalecoords1.testcase \ - sql_stmt_tests/scalecoords2.testcase \ - sql_stmt_tests/scalecoords3.testcase \ - sql_stmt_tests/scalecoords4.testcase \ - sql_stmt_tests/scalecoords5.testcase \ - sql_stmt_tests/scalecoords6.testcase \ - sql_stmt_tests/scalecoords7.testcase \ - sql_stmt_tests/scalecoords8.testcase \ - sql_stmt_tests/scalecoords9.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths10.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths11.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths12.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths13.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths14.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths15.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths16.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths17.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths18.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths19.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths1.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths20.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths21.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths22.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths23.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths24.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths25.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths26.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths27.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths28.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths29.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths2.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths30.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths31.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths32.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths3.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths4.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths5.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths6.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths7.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths8.testcase \ - sql_stmt_geosadvanced_tests/sharedpaths9.testcase \ - sql_stmt_tests/shiftcoords10.testcase \ - sql_stmt_tests/shiftcoords11.testcase \ - sql_stmt_tests/shiftcoords12.testcase \ - sql_stmt_tests/shiftcoords13.testcase \ - sql_stmt_tests/shiftcoords14.testcase \ - sql_stmt_tests/shiftcoords15.testcase \ - sql_stmt_tests/shiftcoords1.testcase \ - sql_stmt_tests/shiftcoords2.testcase \ - sql_stmt_tests/shiftcoords3.testcase \ - sql_stmt_tests/shiftcoords4.testcase \ - sql_stmt_tests/shiftcoords5.testcase \ - sql_stmt_tests/shiftcoords6.testcase \ - sql_stmt_tests/shiftcoords7.testcase \ - sql_stmt_tests/shiftcoords8.testcase \ - sql_stmt_tests/shiftcoords9.testcase \ - sql_stmt_tests/shiftlongitude10.testcase \ - sql_stmt_tests/shiftlongitude11.testcase \ - sql_stmt_tests/shiftlongitude12.testcase \ - sql_stmt_tests/shiftlongitude13.testcase \ - sql_stmt_tests/shiftlongitude14.testcase \ - sql_stmt_tests/shiftlongitude15.testcase \ - sql_stmt_tests/shiftlongitude16.testcase \ - sql_stmt_tests/shiftlongitude17.testcase \ - sql_stmt_tests/shiftlongitude18.testcase \ - sql_stmt_tests/shiftlongitude19.testcase \ - sql_stmt_tests/shiftlongitude1.testcase \ - sql_stmt_tests/shiftlongitude20.testcase \ - sql_stmt_tests/shiftlongitude21.testcase \ - sql_stmt_tests/shiftlongitude22.testcase \ - sql_stmt_tests/shiftlongitude23.testcase \ - sql_stmt_tests/shiftlongitude24.testcase \ - sql_stmt_tests/shiftlongitude25.testcase \ - sql_stmt_tests/shiftlongitude26.testcase \ - sql_stmt_tests/shiftlongitude2.testcase \ - sql_stmt_tests/shiftlongitude3.testcase \ - sql_stmt_tests/shiftlongitude4.testcase \ - sql_stmt_tests/shiftlongitude5.testcase \ - sql_stmt_tests/shiftlongitude6.testcase \ - sql_stmt_tests/shiftlongitude7.testcase \ - sql_stmt_tests/shiftlongitude8.testcase \ - sql_stmt_tests/shiftlongitude9.testcase \ - sql_stmt_geosadvanced_tests/shortestline1.testcase \ - sql_stmt_geosadvanced_tests/shortestline2.testcase \ - sql_stmt_geosadvanced_tests/shortestline3.testcase \ - sql_stmt_geosadvanced_tests/shortestline4.testcase \ - sql_stmt_geosadvanced_tests/shortestline5.testcase \ - sql_stmt_geosadvanced_tests/shortestline6.testcase \ - sql_stmt_geosadvanced_tests/shortestline7.testcase \ - sql_stmt_mathsql_tests/sign00.testcase \ - sql_stmt_mathsql_tests/sign01.testcase \ - sql_stmt_mathsql_tests/sign0.testcase \ - sql_stmt_mathsql_tests/sign10.testcase \ - sql_stmt_mathsql_tests/signeg2int.testcase \ - sql_stmt_mathsql_tests/signeg2.testcase \ - sql_stmt_mathsql_tests/signeg.testcase \ - sql_stmt_mathsql_tests/signtext.testcase \ - sql_stmt_geos_tests/simplify10.testcase \ - sql_stmt_geos_tests/simplify11.testcase \ - sql_stmt_geos_tests/simplify12.testcase \ - sql_stmt_geos_tests/simplify13.testcase \ - sql_stmt_geos_tests/simplify14.testcase \ - sql_stmt_geos_tests/simplify15.testcase \ - sql_stmt_geos_tests/simplify16.testcase \ - sql_stmt_geos_tests/simplify1.testcase \ - sql_stmt_geos_tests/simplify2.testcase \ - sql_stmt_geos_tests/simplify3.testcase \ - sql_stmt_geos_tests/simplify4.testcase \ - sql_stmt_geos_tests/simplify5.testcase \ - sql_stmt_geos_tests/simplify6.testcase \ - sql_stmt_geos_tests/simplify7.testcase \ - sql_stmt_geos_tests/simplify8.testcase \ - sql_stmt_geos_tests/simplify9.testcase \ - sql_stmt_mathsql_tests/sin00.testcase \ - sql_stmt_mathsql_tests/sin0.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase \ - sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase \ - sql_stmt_mathsql_tests/sin-pi2.testcase \ - sql_stmt_mathsql_tests/sinpi2.testcase \ - sql_stmt_mathsql_tests/sin-pi.testcase \ - sql_stmt_mathsql_tests/sinpi.testcase \ - sql_stmt_mathsql_tests/sin-text.testcase \ - sql_stmt_geosadvanced_tests/snap10.testcase \ - sql_stmt_geosadvanced_tests/snap1.testcase \ - sql_stmt_geosadvanced_tests/snap2.testcase \ - sql_stmt_geosadvanced_tests/snap3.testcase \ - sql_stmt_geosadvanced_tests/snap4.testcase \ - sql_stmt_geosadvanced_tests/snap5.testcase \ - sql_stmt_geosadvanced_tests/snap6.testcase \ - sql_stmt_geosadvanced_tests/snap7.testcase \ - sql_stmt_geosadvanced_tests/snap8.testcase \ - sql_stmt_geosadvanced_tests/snap9.testcase \ - sql_stmt_tests/spatialindex.testcase \ - sql_stmt_mathsql_tests/sqrt00.testcase \ - sql_stmt_mathsql_tests/sqrt0.testcase \ - sql_stmt_mathsql_tests/sqrt-10.testcase \ - sql_stmt_mathsql_tests/sqrt-1.testcase \ - sql_stmt_mathsql_tests/sqrt-640.testcase \ - sql_stmt_mathsql_tests/sqrt-64.testcase \ - sql_stmt_mathsql_tests/sqrt-text.testcase \ - sql_stmt_tests/srid10.testcase \ - sql_stmt_tests/srid11.testcase \ - sql_stmt_tests/srid1.testcase \ - sql_stmt_tests/srid2.testcase \ - sql_stmt_tests/srid3.testcase \ - sql_stmt_tests/srid4.testcase \ - sql_stmt_tests/srid5.testcase \ - sql_stmt_tests/srid6.testcase \ - sql_stmt_tests/srid7.testcase \ - sql_stmt_tests/srid8.testcase \ - sql_stmt_tests/srid9.testcase \ - sql_stmt_tests/SridFromAuthCRS2.testcase \ - sql_stmt_tests/SridFromAuthCRS3.testcase \ - sql_stmt_tests/SridFromAuthCRS4.testcase \ - sql_stmt_tests/SridFromAuthCRS5.testcase \ - sql_stmt_tests/SridFromAuthCRS6.testcase \ - sql_stmt_tests/SridFromAuthCRS.testcase \ - sql_stmt_geos_tests/st_area1.testcase \ - sql_stmt_geos_tests/st_area2.testcase \ - sql_stmt_geos_tests/st_area3.testcase \ - sql_stmt_geos_tests/st_area4.testcase \ - sql_stmt_geos_tests/st_area5.testcase \ - sql_stmt_geos_tests/st_area6.testcase \ - sql_stmt_geos_tests/st_area7.testcase \ - sql_stmt_geos_tests/st_area8.testcase \ - sql_stmt_geos_tests/st_area9.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid1.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid2.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid3.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid4.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid5.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid6.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid7.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid8.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid9.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid10.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid11.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid12.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid13.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid14.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid15.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid16.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid17.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid18.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid19.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid20.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid21.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid22.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid23.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid24.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid25.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid26.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid27.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid28.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid29.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid30.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid31.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid32.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid33.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid34.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid35.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid36.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid37.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid38.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid39.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid40.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid41.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid42.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid43.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid44.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid45.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid46.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid47.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid48.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid49.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid50.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid51.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid52.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid53.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid54.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid55.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid56.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid57.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid58.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid59.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid60.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid61.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid62.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid63.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid64.testcase \ - sql_stmt_lwgeom_tests/st_snaptogrid65.testcase \ - sql_stmt_lwgeom_tests/st_makevalid1.testcase \ - sql_stmt_lwgeom_tests/st_makevalid2.testcase \ - sql_stmt_lwgeom_tests/st_makevalid3.testcase \ - sql_stmt_lwgeom_tests/st_makevalid4.testcase \ - sql_stmt_lwgeom_tests/st_makevalid5.testcase \ - sql_stmt_lwgeom_tests/st_makevalid6.testcase \ - sql_stmt_lwgeom_tests/st_makevalid7.testcase \ - sql_stmt_lwgeom_tests/st_makevalid8.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded1.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded2.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded3.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded4.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded5.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded6.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded7.testcase \ - sql_stmt_lwgeom_tests/st_makevaliddiscarded8.testcase \ - sql_stmt_lwgeom_tests/st_segmentize1.testcase \ - sql_stmt_lwgeom_tests/st_segmentize2.testcase \ - sql_stmt_lwgeom_tests/st_segmentize3.testcase \ - sql_stmt_lwgeom_tests/st_segmentize4.testcase \ - sql_stmt_lwgeom_tests/st_segmentize5.testcase \ - sql_stmt_lwgeom_tests/st_segmentize6.testcase \ - sql_stmt_lwgeom_tests/st_segmentize7.testcase \ - sql_stmt_lwgeom_tests/st_segmentize8.testcase \ - sql_stmt_lwgeom_tests/st_segmentize9.testcase \ - sql_stmt_lwgeom_tests/st_segmentize10.testcase \ - sql_stmt_lwgeom_tests/st_segmentize11.testcase \ - sql_stmt_lwgeom_tests/st_segmentize12.testcase \ - sql_stmt_lwgeom_tests/st_segmentize13.testcase \ - sql_stmt_lwgeom_tests/st_segmentize14.testcase \ - sql_stmt_lwgeom_tests/st_segmentize16.testcase \ - sql_stmt_lwgeom_tests/st_segmentize16.testcase \ - sql_stmt_lwgeom_tests/st_segmentize17.testcase \ - sql_stmt_lwgeom_tests/st_segmentize18.testcase \ - sql_stmt_lwgeom_tests/st_segmentize19.testcase \ - sql_stmt_lwgeom_tests/st_segmentize20.testcase \ - sql_stmt_lwgeom_tests/st_segmentize21.testcase \ - sql_stmt_lwgeom_tests/st_segmentize22.testcase \ - sql_stmt_lwgeom_tests/st_segmentize23.testcase \ - sql_stmt_lwgeom_tests/st_segmentize24.testcase \ - sql_stmt_lwgeom_tests/st_segmentize25.testcase \ - sql_stmt_lwgeom_tests/st_segmentize26.testcase \ - sql_stmt_lwgeom_tests/st_segmentize27.testcase \ - sql_stmt_lwgeom_tests/st_segmentize28.testcase \ - sql_stmt_lwgeom_tests/st_segmentize29.testcase \ - sql_stmt_lwgeom_tests/st_segmentize30.testcase \ - sql_stmt_lwgeom_tests/st_segmentize31.testcase \ - sql_stmt_lwgeom_tests/st_azimuth1.testcase \ - sql_stmt_lwgeom_tests/st_azimuth2.testcase \ - sql_stmt_lwgeom_tests/st_azimuth3.testcase \ - sql_stmt_lwgeom_tests/st_azimuth4.testcase \ - sql_stmt_lwgeom_tests/st_azimuth5.testcase \ - sql_stmt_lwgeom_tests/st_azimuth6.testcase \ - sql_stmt_lwgeom_tests/st_azimuth7.testcase \ - sql_stmt_lwgeom_tests/st_azimuth8.testcase \ - sql_stmt_lwgeom_tests/st_azimuth9.testcase \ - sql_stmt_lwgeom_tests/st_azimuth10.testcase \ - sql_stmt_lwgeom_tests/st_azimuth11.testcase \ - sql_stmt_lwgeom_tests/st_azimuth12.testcase \ - sql_stmt_lwgeom_tests/st_azimuth13.testcase \ - sql_stmt_lwgeom_tests/st_azimuth14.testcase \ - sql_stmt_lwgeom_tests/st_azimuth15.testcase \ - sql_stmt_lwgeom_tests/st_azimuth16.testcase \ - sql_stmt_lwgeom_tests/st_azimuth17.testcase \ - sql_stmt_lwgeom_tests/st_geohash1.testcase \ - sql_stmt_lwgeom_tests/st_geohash2.testcase \ - sql_stmt_lwgeom_tests/st_geohash3.testcase \ - sql_stmt_lwgeom_tests/st_geohash4.testcase \ - sql_stmt_lwgeom_tests/st_geohash5.testcase \ - sql_stmt_lwgeom_tests/st_geohash6.testcase \ - sql_stmt_lwgeom_tests/st_geohash7.testcase \ - sql_stmt_lwgeom_tests/st_geohash8.testcase \ - sql_stmt_lwgeom_tests/st_geohash9.testcase \ - sql_stmt_lwgeom_tests/st_geohash10.testcase \ - sql_stmt_lwgeom_tests/st_asx3d1.testcase \ - sql_stmt_lwgeom_tests/st_asx3d2.testcase \ - sql_stmt_lwgeom_tests/st_asx3d3.testcase \ - sql_stmt_lwgeom_tests/st_asx3d4.testcase \ - sql_stmt_lwgeom_tests/st_asx3d5.testcase \ - sql_stmt_lwgeom_tests/st_asx3d6.testcase \ - sql_stmt_lwgeom_tests/st_asx3d7.testcase \ - sql_stmt_lwgeom_tests/st_asx3d8.testcase \ - sql_stmt_lwgeom_tests/st_asx3d9.testcase \ - sql_stmt_lwgeom_tests/st_asx3d10.testcase \ - sql_stmt_lwgeom_tests/st_asx3d11.testcase \ - sql_stmt_lwgeom_tests/st_asx3d12.testcase \ - sql_stmt_lwgeom_tests/st_asx3d13.testcase \ - sql_stmt_lwgeom_tests/st_asx3d14.testcase \ - sql_stmt_lwgeom_tests/st_asx3d15.testcase \ - sql_stmt_lwgeom_tests/st_asx3d16.testcase \ - sql_stmt_lwgeom_tests/st_asx3d17.testcase \ - sql_stmt_lwgeom_tests/st_asx3d18.testcase \ - sql_stmt_lwgeom_tests/st_asx3d19.testcase \ - sql_stmt_lwgeom_tests/st_asx3d20.testcase \ - sql_stmt_lwgeom_tests/st_asx3d21.testcase \ - sql_stmt_lwgeom_tests/st_asx3d22.testcase \ - sql_stmt_lwgeom_tests/st_asx3d23.testcase \ - sql_stmt_lwgeom_tests/st_asx3d24.testcase \ - sql_stmt_lwgeom_tests/st_asx3d25.testcase \ - sql_stmt_lwgeom_tests/st_asx3d26.testcase \ - sql_stmt_lwgeom_tests/st_asx3d27.testcase \ - sql_stmt_lwgeom_tests/st_asx3d28.testcase \ - sql_stmt_lwgeom_tests/st_asx3d29.testcase \ - sql_stmt_lwgeom_tests/st_asx3d30.testcase \ - sql_stmt_lwgeom_tests/3ddistance1.testcase \ - sql_stmt_lwgeom_tests/3ddistance2.testcase \ - sql_stmt_lwgeom_tests/3ddistance3.testcase \ - sql_stmt_lwgeom_tests/3ddistance4.testcase \ - sql_stmt_lwgeom_tests/3ddistance5.testcase \ - sql_stmt_lwgeom_tests/3ddistance6.testcase \ - sql_stmt_lwgeom_tests/3ddistance7.testcase \ - sql_stmt_lwgeom_tests/3ddistance8.testcase \ - sql_stmt_lwgeom_tests/3ddistance9.testcase \ - sql_stmt_lwgeom_tests/3ddistance10.testcase \ - sql_stmt_lwgeom_tests/maxdistance1.testcase \ - sql_stmt_lwgeom_tests/maxdistance2.testcase \ - sql_stmt_lwgeom_tests/maxdistance3.testcase \ - sql_stmt_lwgeom_tests/maxdistance4.testcase \ - sql_stmt_lwgeom_tests/maxdistance5.testcase \ - sql_stmt_lwgeom_tests/maxdistance6.testcase \ - sql_stmt_lwgeom_tests/maxdistance7.testcase \ - sql_stmt_lwgeom_tests/maxdistance8.testcase \ - sql_stmt_lwgeom_tests/maxdistance9.testcase \ - sql_stmt_lwgeom_tests/maxdistance10.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance1.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance2.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance3.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance4.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance5.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance6.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance7.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance8.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance9.testcase \ - sql_stmt_lwgeom_tests/3dmaxdistance10.testcase \ - sql_stmt_lwgeom_tests/st_split1.testcase \ - sql_stmt_lwgeom_tests/st_split2.testcase \ - sql_stmt_lwgeom_tests/st_split3.testcase \ - sql_stmt_lwgeom_tests/st_split4.testcase \ - sql_stmt_lwgeom_tests/st_split5.testcase \ - sql_stmt_lwgeom_tests/st_split6.testcase \ - sql_stmt_lwgeom_tests/st_split7.testcase \ - sql_stmt_lwgeom_tests/st_split8.testcase \ - sql_stmt_lwgeom_tests/st_split9.testcase \ - sql_stmt_lwgeom_tests/st_split10.testcase \ - sql_stmt_lwgeom_tests/st_split11.testcase \ - sql_stmt_lwgeom_tests/st_split12.testcase \ - sql_stmt_lwgeom_tests/st_split13.testcase \ - sql_stmt_lwgeom_tests/st_split14.testcase \ - sql_stmt_lwgeom_tests/st_split15.testcase \ - sql_stmt_lwgeom_tests/st_split16.testcase \ - sql_stmt_lwgeom_tests/st_split17.testcase \ - sql_stmt_lwgeom_tests/st_split18.testcase \ - sql_stmt_lwgeom_tests/st_split19.testcase \ - sql_stmt_lwgeom_tests/st_split20.testcase \ - sql_stmt_lwgeom_tests/st_split21.testcase \ - sql_stmt_lwgeom_tests/st_split22.testcase \ - sql_stmt_lwgeom_tests/st_split23.testcase \ - sql_stmt_lwgeom_tests/st_split24.testcase \ - sql_stmt_lwgeom_tests/st_split25.testcase \ - sql_stmt_lwgeom_tests/st_split26.testcase \ - sql_stmt_lwgeom_tests/st_split27.testcase \ - sql_stmt_lwgeom_tests/st_split28.testcase \ - sql_stmt_lwgeom_tests/st_split29.testcase \ - sql_stmt_lwgeom_tests/st_split30.testcase \ - sql_stmt_lwgeom_tests/st_split31.testcase \ - sql_stmt_lwgeom_tests/st_split32.testcase \ - sql_stmt_lwgeom_tests/st_split33.testcase \ - sql_stmt_lwgeom_tests/st_split34.testcase \ - sql_stmt_lwgeom_tests/st_split35.testcase \ - sql_stmt_lwgeom_tests/st_split36.testcase \ - sql_stmt_lwgeom_tests/st_split37.testcase \ - sql_stmt_lwgeom_tests/st_split38.testcase \ - sql_stmt_lwgeom_tests/st_split39.testcase \ - sql_stmt_lwgeom_tests/st_split40.testcase \ - sql_stmt_lwgeom_tests/st_split41.testcase \ - sql_stmt_lwgeom_tests/st_split42.testcase \ - sql_stmt_lwgeom_tests/st_split43.testcase \ - sql_stmt_lwgeom_tests/st_split44.testcase \ - sql_stmt_lwgeom_tests/st_split45.testcase \ - sql_stmt_lwgeom_tests/st_split46.testcase \ - sql_stmt_lwgeom_tests/st_split47.testcase \ - sql_stmt_lwgeom_tests/st_split48.testcase \ - sql_stmt_lwgeom_tests/st_split49.testcase \ - sql_stmt_tests/startpoint1.testcase \ - sql_stmt_tests/startpoint2.testcase \ - sql_stmt_tests/startpoint3.testcase \ - sql_stmt_mathsql_tests/stddev.testcase \ - sql_stmt_geos_tests/st_length1.testcase \ - sql_stmt_geos_tests/st_length2.testcase \ - sql_stmt_geos_tests/st_length3.testcase \ - sql_stmt_geos_tests/st_length4.testcase \ - sql_stmt_geos_tests/st_length5.testcase \ - sql_stmt_geos_tests/st_length6.testcase \ - sql_stmt_geos_tests/st_length7.testcase \ - sql_stmt_geos_tests/st_length8.testcase \ - sql_stmt_geos_tests/st_length9.testcase \ - sql_stmt_geos_tests/st_length10.testcase \ - sql_stmt_geos_tests/st_length11.testcase \ - sql_stmt_geos_tests/st_length12.testcase \ - sql_stmt_geos_tests/st_length13.testcase \ - sql_stmt_geos_tests/st_length14.testcase \ - sql_stmt_geos_tests/st_length15.testcase \ - sql_stmt_geos_tests/st_length16.testcase \ - sql_stmt_geos_tests/st_length17.testcase \ - sql_stmt_geos_tests/st_length18.testcase \ - sql_stmt_geos_tests/st_perimeter1.testcase \ - sql_stmt_geos_tests/st_perimeter2.testcase \ - sql_stmt_geos_tests/st_perimeter3.testcase \ - sql_stmt_geos_tests/st_perimeter4.testcase \ - sql_stmt_geos_tests/st_perimeter5.testcase \ - sql_stmt_geos_tests/st_perimeter6.testcase \ - sql_stmt_geos_tests/st_perimeter7.testcase \ - sql_stmt_geos_tests/st_perimeter8.testcase \ - sql_stmt_geos_tests/st_perimeter9.testcase \ - sql_stmt_geos_tests/st_perimeter10.testcase \ - sql_stmt_geos_tests/st_perimeter11.testcase \ - sql_stmt_geos_tests/st_perimeter12.testcase \ - sql_stmt_geos_tests/st_perimeter13.testcase \ - sql_stmt_geos_tests/st_perimeter14.testcase \ - sql_stmt_geos_tests/st_perimeter15.testcase \ - sql_stmt_geos_tests/st_perimeter16.testcase \ - sql_stmt_geos_tests/st_perimeter17.testcase \ - sql_stmt_geos_tests/st_perimeter18.testcase \ - sql_stmt_tests/st_m1.testcase \ - sql_stmt_tests/st_m2.testcase \ - sql_stmt_tests/st_m3.testcase \ - sql_stmt_tests/st_m4.testcase \ - sql_stmt_tests/st_m5.testcase \ - sql_stmt_tests/st_m6.testcase \ - sql_stmt_tests/st_m8.testcase \ - sql_stmt_tests/st_x1.testcase \ - sql_stmt_tests/st_x2.testcase \ - sql_stmt_tests/st_x3.testcase \ - sql_stmt_tests/st_x4.testcase \ - sql_stmt_tests/st_x5.testcase \ - sql_stmt_tests/st_x6.testcase \ - sql_stmt_tests/st_x7.testcase \ - sql_stmt_tests/st_x8.testcase \ - sql_stmt_tests/st_x9.testcase \ - sql_stmt_tests/st_y1.testcase \ - sql_stmt_tests/st_y2.testcase \ - sql_stmt_tests/st_y3.testcase \ - sql_stmt_tests/st_y4.testcase \ - sql_stmt_tests/st_y5.testcase \ - sql_stmt_tests/st_y7.testcase \ - sql_stmt_tests/st_y8.testcase \ - sql_stmt_tests/st_y9.testcase \ - sql_stmt_tests/st_z1.testcase \ - sql_stmt_tests/st_z2.testcase \ - sql_stmt_tests/st_z3.testcase \ - sql_stmt_tests/st_z4.testcase \ - sql_stmt_tests/st_z5.testcase \ - sql_stmt_tests/st_z6.testcase \ - sql_stmt_tests/st_z7.testcase \ - sql_stmt_tests/st_z8.testcase \ - sql_stmt_tests/st_z9.testcase \ - sql_stmt_tests/swapcoords10.testcase \ - sql_stmt_tests/swapcoords11.testcase \ - sql_stmt_tests/swapcoords1.testcase \ - sql_stmt_tests/swapcoords2.testcase \ - sql_stmt_tests/swapcoords3.testcase \ - sql_stmt_tests/swapcoords4.testcase \ - sql_stmt_tests/swapcoords5.testcase \ - sql_stmt_tests/swapcoords6.testcase \ - sql_stmt_tests/swapcoords7.testcase \ - sql_stmt_tests/swapcoords8.testcase \ - sql_stmt_tests/swapcoords9.testcase \ - sql_stmt_geos_tests/symdifference10.testcase \ - sql_stmt_geos_tests/symdifference11.testcase \ - sql_stmt_geos_tests/symdifference1.testcase \ - sql_stmt_geos_tests/symdifference2.testcase \ - sql_stmt_geos_tests/symdifference3.testcase \ - sql_stmt_geos_tests/symdifference4.testcase \ - sql_stmt_geos_tests/symdifference5.testcase \ - sql_stmt_geos_tests/symdifference6.testcase \ - sql_stmt_geos_tests/symdifference7.testcase \ - sql_stmt_geos_tests/symdifference8.testcase \ - sql_stmt_geos_tests/symdifference9.testcase \ - sql_stmt_mathsql_tests/tan00.testcase \ - sql_stmt_mathsql_tests/tan0.testcase \ - sql_stmt_mathsql_tests/tanpi4.testcase \ - sql_stmt_mathsql_tests/tan-pi.testcase \ - sql_stmt_mathsql_tests/tanpi.testcase \ - sql_stmt_mathsql_tests/tan-text.testcase \ - sql_stmt_tests/testdb1.sqlite \ - sql_stmt_tests/testFDO.sqlite \ - sql_stmt_tests/testFGF.sqlite \ - sql_stmt_tests/togars10.testcase \ - sql_stmt_tests/togars11.testcase \ - sql_stmt_tests/togars12.testcase \ - sql_stmt_tests/togars1.testcase \ - sql_stmt_tests/togars2.testcase \ - sql_stmt_tests/togars3.testcase \ - sql_stmt_tests/togars4.testcase \ - sql_stmt_tests/togars5.testcase \ - sql_stmt_tests/togars6.testcase \ - sql_stmt_tests/togars7.testcase \ - sql_stmt_tests/togars8.testcase \ - sql_stmt_tests/togars9.testcase \ - sql_stmt_proj_tests/transform10.testcase \ - sql_stmt_proj_tests/transform11.testcase \ - sql_stmt_proj_tests/transform12.testcase \ - sql_stmt_proj_tests/transform13.testcase \ - sql_stmt_proj_tests/transform14.testcase \ - sql_stmt_proj_tests/transform15.testcase \ - sql_stmt_proj_tests/transform16.testcase \ - sql_stmt_proj_tests/transform17.testcase \ - sql_stmt_proj_tests/transform18.testcase \ - sql_stmt_proj_tests/transform19.testcase \ - sql_stmt_proj_tests/transform1.testcase \ - sql_stmt_proj_tests/transform20.testcase \ - sql_stmt_proj_tests/transform21.testcase \ - sql_stmt_proj_tests/transform2.testcase \ - sql_stmt_proj_tests/transform3.testcase \ - sql_stmt_proj_tests/transform4.testcase \ - sql_stmt_proj_tests/transform5.testcase \ - sql_stmt_proj_tests/transform6.testcase \ - sql_stmt_proj_tests/transform7.testcase \ - sql_stmt_proj_tests/transform8.testcase \ - sql_stmt_proj_tests/transform9.testcase \ - sql_stmt_tests/translate10.testcase \ - sql_stmt_tests/translate11.testcase \ - sql_stmt_tests/translate12.testcase \ - sql_stmt_tests/translate13.testcase \ - sql_stmt_tests/translate14.testcase \ - sql_stmt_tests/translate15.testcase \ - sql_stmt_tests/translate16.testcase \ - sql_stmt_tests/translate17.testcase \ - sql_stmt_tests/translate18.testcase \ - sql_stmt_tests/translate19.testcase \ - sql_stmt_tests/translate1.testcase \ - sql_stmt_tests/translate2.testcase \ - sql_stmt_tests/translate3.testcase \ - sql_stmt_tests/translate4.testcase \ - sql_stmt_tests/translate5.testcase \ - sql_stmt_tests/translate6.testcase \ - sql_stmt_tests/translate7.testcase \ - sql_stmt_tests/translate8.testcase \ - sql_stmt_tests/translate9.testcase \ - sql_stmt_tests/trivial.sqlite_RO \ - sql_stmt_geosadvanced_tests/unaryunion1.testcase \ - sql_stmt_geosadvanced_tests/unaryunion2.testcase \ - sql_stmt_geosadvanced_tests/unaryunion3.testcase \ - sql_stmt_geosadvanced_tests/unaryunion4.testcase \ - sql_stmt_geosadvanced_tests/unaryunion5.testcase \ - sql_stmt_geosadvanced_tests/unaryunion6.testcase \ - sql_stmt_geosadvanced_tests/unaryunion7.testcase \ - sql_stmt_geosadvanced_tests/unaryunion8.testcase \ - sql_stmt_geostrunk_tests/delaunay1.testcase \ - sql_stmt_geostrunk_tests/delaunay2.testcase \ - sql_stmt_geostrunk_tests/delaunay3.testcase \ - sql_stmt_geostrunk_tests/delaunay4.testcase \ - sql_stmt_geostrunk_tests/delaunay5.testcase \ - sql_stmt_geostrunk_tests/delaunay6.testcase \ - sql_stmt_geostrunk_tests/delaunay7.testcase \ - sql_stmt_geostrunk_tests/delaunay8.testcase \ - sql_stmt_geostrunk_tests/delaunay9.testcase \ - sql_stmt_geostrunk_tests/delaunay10.testcase \ - sql_stmt_geostrunk_tests/delaunay11.testcase \ - sql_stmt_geostrunk_tests/delaunay12.testcase \ - sql_stmt_geostrunk_tests/delaunay13.testcase \ - sql_stmt_geostrunk_tests/delaunay14.testcase \ - sql_stmt_geostrunk_tests/delaunay15.testcase \ - sql_stmt_geostrunk_tests/delaunay16.testcase \ - sql_stmt_geostrunk_tests/delaunay17.testcase \ - sql_stmt_geostrunk_tests/delaunay18.testcase \ - sql_stmt_geostrunk_tests/delaunay19.testcase \ - sql_stmt_geostrunk_tests/voronoj1.testcase \ - sql_stmt_geostrunk_tests/voronoj2.testcase \ - sql_stmt_geostrunk_tests/voronoj3.testcase \ - sql_stmt_geostrunk_tests/voronoj4.testcase \ - sql_stmt_geostrunk_tests/voronoj5.testcase \ - sql_stmt_geostrunk_tests/voronoj6.testcase \ - sql_stmt_geostrunk_tests/voronoj8.testcase \ - sql_stmt_geostrunk_tests/voronoj9.testcase \ - sql_stmt_geostrunk_tests/voronoj10.testcase \ - sql_stmt_geostrunk_tests/voronoj11.testcase \ - sql_stmt_geostrunk_tests/voronoj12.testcase \ - sql_stmt_geostrunk_tests/voronoj13.testcase \ - sql_stmt_geostrunk_tests/voronoj14.testcase \ - sql_stmt_geostrunk_tests/voronoj15.testcase \ - sql_stmt_geostrunk_tests/voronoj16.testcase \ - sql_stmt_geostrunk_tests/voronoj17.testcase \ - sql_stmt_geostrunk_tests/voronoj18.testcase \ - sql_stmt_geostrunk_tests/voronoj19.testcase \ - sql_stmt_geostrunk_tests/voronoj20.testcase \ - sql_stmt_geostrunk_tests/concave_hull1.testcase \ - sql_stmt_geostrunk_tests/concave_hull2.testcase \ - sql_stmt_geostrunk_tests/concave_hull3.testcase \ - sql_stmt_geostrunk_tests/concave_hull4.testcase \ - sql_stmt_geostrunk_tests/concave_hull5.testcase \ - sql_stmt_geostrunk_tests/concave_hull6.testcase \ - sql_stmt_geostrunk_tests/concave_hull7.testcase \ - sql_stmt_geostrunk_tests/concave_hull8.testcase \ - sql_stmt_geostrunk_tests/concave_hull9.testcase \ - sql_stmt_geostrunk_tests/concave_hull10.testcase \ - sql_stmt_geostrunk_tests/concave_hull11.testcase \ - sql_stmt_geostrunk_tests/concave_hull12.testcase \ - sql_stmt_geostrunk_tests/concave_hull13.testcase \ - sql_stmt_geostrunk_tests/concave_hull14.testcase \ - sql_stmt_geostrunk_tests/concave_hull15.testcase \ - sql_stmt_geostrunk_tests/concave_hull16.testcase \ - sql_stmt_geostrunk_tests/concave_hull17.testcase \ - sql_stmt_geostrunk_tests/concave_hull18.testcase \ - sql_stmt_geostrunk_tests/concave_hull19.testcase \ - sql_stmt_tests/uncompressgeom1.testcase \ - sql_stmt_tests/uncompressgeom2.testcase \ - sql_stmt_tests/uncompressgeom3.testcase \ - sql_stmt_geos_tests/union10.testcase \ - sql_stmt_geos_tests/union11.testcase \ - sql_stmt_geos_tests/union12.testcase \ - sql_stmt_geos_tests/union13.testcase \ - sql_stmt_geos_tests/union14.testcase \ - sql_stmt_geos_tests/union15.testcase \ - sql_stmt_geos_tests/union16.testcase \ - sql_stmt_geos_tests/union17.testcase \ - sql_stmt_geos_tests/union18.testcase \ - sql_stmt_geos_tests/union19.testcase \ - sql_stmt_geos_tests/union1.testcase \ - sql_stmt_geos_tests/union20.testcase \ - sql_stmt_geos_tests/union21.testcase \ - sql_stmt_geos_tests/union22.testcase \ - sql_stmt_geos_tests/union23.testcase \ - sql_stmt_geos_tests/union24.testcase \ - sql_stmt_geos_tests/union25.testcase \ - sql_stmt_geos_tests/union26.testcase \ - sql_stmt_geos_tests/union27.testcase \ - sql_stmt_geos_tests/union28.testcase \ - sql_stmt_geos_tests/union29.testcase \ - sql_stmt_geos_tests/union2.testcase \ - sql_stmt_geos_tests/union3.testcase \ - sql_stmt_geos_tests/union4.testcase \ - sql_stmt_geos_tests/union5.testcase \ - sql_stmt_geos_tests/union6.testcase \ - sql_stmt_geos_tests/union7.testcase \ - sql_stmt_geos_tests/union8.testcase \ - sql_stmt_geos_tests/union9.testcase \ - sql_stmt_geosadvanced_tests/hexgrid1.testcase \ - sql_stmt_geosadvanced_tests/hexgrid2.testcase \ - sql_stmt_geosadvanced_tests/hexgrid3.testcase \ - sql_stmt_geosadvanced_tests/hexgrid4.testcase \ - sql_stmt_geosadvanced_tests/hexgrid5.testcase \ - sql_stmt_geosadvanced_tests/hexgrid6.testcase \ - sql_stmt_geosadvanced_tests/hexgrid7.testcase \ - sql_stmt_geosadvanced_tests/hexgrid8.testcase \ - sql_stmt_geosadvanced_tests/hexgrid9.testcase \ - sql_stmt_geosadvanced_tests/hexgrid10.testcase \ - sql_stmt_geosadvanced_tests/hexgrid11.testcase \ - sql_stmt_geosadvanced_tests/hexgrid12.testcase \ - sql_stmt_geosadvanced_tests/hexgrid13.testcase \ - sql_stmt_geosadvanced_tests/hexgrid14.testcase \ - sql_stmt_geosadvanced_tests/hexgrid15.testcase \ - sql_stmt_geosadvanced_tests/hexgrid16.testcase \ - sql_stmt_geosadvanced_tests/hexgrid17.testcase \ - sql_stmt_geosadvanced_tests/hexgrid18.testcase \ - sql_stmt_geosadvanced_tests/hexgrid19.testcase \ - sql_stmt_geosadvanced_tests/hexgrid20.testcase \ - sql_stmt_geosadvanced_tests/hexgrid21.testcase \ - sql_stmt_geosadvanced_tests/hexgrid22.testcase \ - sql_stmt_geosadvanced_tests/hexgrid23.testcase \ - sql_stmt_geosadvanced_tests/squaregrid1.testcase \ - sql_stmt_geosadvanced_tests/squaregrid2.testcase \ - sql_stmt_geosadvanced_tests/squaregrid3.testcase \ - sql_stmt_geosadvanced_tests/squaregrid4.testcase \ - sql_stmt_geosadvanced_tests/squaregrid5.testcase \ - sql_stmt_geosadvanced_tests/squaregrid6.testcase \ - sql_stmt_geosadvanced_tests/squaregrid7.testcase \ - sql_stmt_geosadvanced_tests/squaregrid8.testcase \ - sql_stmt_geosadvanced_tests/squaregrid9.testcase \ - sql_stmt_geosadvanced_tests/squaregrid10.testcase \ - sql_stmt_geosadvanced_tests/squaregrid11.testcase \ - sql_stmt_geosadvanced_tests/squaregrid12.testcase \ - sql_stmt_geosadvanced_tests/squaregrid13.testcase \ - sql_stmt_geosadvanced_tests/squaregrid14.testcase \ - sql_stmt_geosadvanced_tests/squaregrid15.testcase \ - sql_stmt_geosadvanced_tests/squaregrid16.testcase \ - sql_stmt_geosadvanced_tests/squaregrid17.testcase \ - sql_stmt_geosadvanced_tests/squaregrid18.testcase \ - sql_stmt_geosadvanced_tests/squaregrid19.testcase \ - sql_stmt_geosadvanced_tests/squaregrid20.testcase \ - sql_stmt_geosadvanced_tests/squaregrid21.testcase \ - sql_stmt_geosadvanced_tests/squaregrid22.testcase \ - sql_stmt_geosadvanced_tests/squaregrid23.testcase \ - sql_stmt_geosadvanced_tests/trianggrid1.testcase \ - sql_stmt_geosadvanced_tests/trianggrid2.testcase \ - sql_stmt_geosadvanced_tests/trianggrid3.testcase \ - sql_stmt_geosadvanced_tests/trianggrid4.testcase \ - sql_stmt_geosadvanced_tests/trianggrid5.testcase \ - sql_stmt_geosadvanced_tests/trianggrid6.testcase \ - sql_stmt_geosadvanced_tests/trianggrid7.testcase \ - sql_stmt_geosadvanced_tests/trianggrid8.testcase \ - sql_stmt_geosadvanced_tests/trianggrid9.testcase \ - sql_stmt_geosadvanced_tests/trianggrid10.testcase \ - sql_stmt_geosadvanced_tests/trianggrid11.testcase \ - sql_stmt_geosadvanced_tests/trianggrid12.testcase \ - sql_stmt_geosadvanced_tests/trianggrid13.testcase \ - sql_stmt_geosadvanced_tests/trianggrid14.testcase \ - sql_stmt_geosadvanced_tests/trianggrid15.testcase \ - sql_stmt_geosadvanced_tests/trianggrid16.testcase \ - sql_stmt_geosadvanced_tests/trianggrid17.testcase \ - sql_stmt_geosadvanced_tests/trianggrid18.testcase \ - sql_stmt_geosadvanced_tests/trianggrid19.testcase \ - sql_stmt_geosadvanced_tests/trianggrid20.testcase \ - sql_stmt_geosadvanced_tests/trianggrid21.testcase \ - sql_stmt_geosadvanced_tests/trianggrid22.testcase \ - sql_stmt_geosadvanced_tests/trianggrid23.testcase \ - sql_stmt_tests/us_ch_m.testcase \ - sql_stmt_tests/us_ft_m.testcase \ - sql_stmt_tests/us_in_m.testcase \ - sql_stmt_tests/us_mi_m.testcase \ - sql_stmt_tests/us_yd_m.testcase \ - sql_stmt_mathsql_tests/variance.testcase \ - sql_stmt_tests/wkb10.testcase \ - sql_stmt_tests/wkb11.testcase \ - sql_stmt_tests/wkb12.testcase \ - sql_stmt_tests/wkb13.testcase \ - sql_stmt_tests/wkb14.testcase \ - sql_stmt_tests/wkb15.testcase \ - sql_stmt_tests/wkb16.testcase \ - sql_stmt_tests/wkb17.testcase \ - sql_stmt_tests/wkb18.testcase \ - sql_stmt_tests/wkb19.testcase \ - sql_stmt_tests/wkb1.testcase \ - sql_stmt_tests/wkb20.testcase \ - sql_stmt_tests/wkb21.testcase \ - sql_stmt_tests/wkb22.testcase \ - sql_stmt_tests/wkb23.testcase \ - sql_stmt_tests/wkb24.testcase \ - sql_stmt_tests/wkb25.testcase \ - sql_stmt_tests/wkb26.testcase \ - sql_stmt_tests/wkb27.testcase \ - sql_stmt_tests/wkb28.testcase \ - sql_stmt_tests/wkb29.testcase \ - sql_stmt_tests/wkb2.testcase \ - sql_stmt_tests/wkb30.testcase \ - sql_stmt_tests/wkb31.testcase \ - sql_stmt_tests/wkb32.testcase \ - sql_stmt_tests/wkb33.testcase \ - sql_stmt_tests/wkb34.testcase \ - sql_stmt_tests/wkb35.testcase \ - sql_stmt_tests/wkb36.testcase \ - sql_stmt_tests/wkb3.testcase \ - sql_stmt_tests/wkb4.testcase \ - sql_stmt_tests/wkb5.testcase \ - sql_stmt_tests/wkb6.testcase \ - sql_stmt_tests/wkb7.testcase \ - sql_stmt_tests/wkb8.testcase \ - sql_stmt_tests/wkb9.testcase \ - sql_stmt_tests/wkbtosql1.testcase \ - sql_stmt_tests/wkbtosql2.testcase \ - sql_stmt_tests/wkbtosql3.testcase \ - sql_stmt_tests/wkttosql1.testcase \ - sql_stmt_tests/wkttosql2.testcase \ - sql_stmt_tests/wkttosql3.testcase \ - sql_stmt_tests/yd_m.testcase - -all: all-am + books.xml books.xsd opera.xml opera.xsd \ + movies.xml movies.xsd books-bad.xml books-bad.xsd \ + inspire-data-example.xml stazioni_se.xml \ + raster_se.xml sld_sample.xml thunderstorm_mild.svg \ + tile000.jpeg tile101.jpeg tile111.jpeg \ + test.webp tile100.jpeg tile110.jpeg \ + Apple-iPhone-4.jpg empty.png empty.tif \ + test.wfs testDescribeFeatureType.wfs \ + getcapabilities-1.0.0.wfs \ + getcapabilities-1.1.0.wfs \ + describefeaturetype.wfs \ + 22.dxf f06.dxf l02.dxf p05.dxf \ + archaic.dxf linked.dxf hatch.dxf \ + symbol.dxf gpkg_test.sqlite gpkg_test.gpkg + +SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ + sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \ + sql_stmt_mathsql_tests sql_stmt_proj_tests \ + sql_stmt_security_tests sql_stmt_tests \ + sql_stmt_xmlsec_tests sql_stmt_geopackage_tests + +all: all-recursive .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -3165,129 +1101,322 @@ clean-checkPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + +check_add_tile_triggers$(EXEEXT): $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_DEPENDENCIES) + @rm -f check_add_tile_triggers$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_LDADD) $(LIBS) + +check_add_tile_triggers_bad_table_name$(EXEEXT): $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_bad_table_name_DEPENDENCIES) + @rm -f check_add_tile_triggers_bad_table_name$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_LDADD) $(LIBS) + check_bufovflw$(EXEEXT): $(check_bufovflw_OBJECTS) $(check_bufovflw_DEPENDENCIES) $(EXTRA_check_bufovflw_DEPENDENCIES) @rm -f check_bufovflw$(EXEEXT) - $(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS) + check_create$(EXEEXT): $(check_create_OBJECTS) $(check_create_DEPENDENCIES) $(EXTRA_check_create_DEPENDENCIES) @rm -f check_create$(EXEEXT) - $(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS) + +check_createBaseTables$(EXEEXT): $(check_createBaseTables_OBJECTS) $(check_createBaseTables_DEPENDENCIES) $(EXTRA_check_createBaseTables_DEPENDENCIES) + @rm -f check_createBaseTables$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_createBaseTables_OBJECTS) $(check_createBaseTables_LDADD) $(LIBS) + check_dbf_load$(EXEEXT): $(check_dbf_load_OBJECTS) $(check_dbf_load_DEPENDENCIES) $(EXTRA_check_dbf_load_DEPENDENCIES) @rm -f check_dbf_load$(EXEEXT) - $(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS) + +check_dxf$(EXEEXT): $(check_dxf_OBJECTS) $(check_dxf_DEPENDENCIES) $(EXTRA_check_dxf_DEPENDENCIES) + @rm -f check_dxf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_dxf_OBJECTS) $(check_dxf_LDADD) $(LIBS) + check_endian$(EXEEXT): $(check_endian_OBJECTS) $(check_endian_DEPENDENCIES) $(EXTRA_check_endian_DEPENDENCIES) @rm -f check_endian$(EXEEXT) - $(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS) + check_exif$(EXEEXT): $(check_exif_OBJECTS) $(check_exif_DEPENDENCIES) $(EXTRA_check_exif_DEPENDENCIES) @rm -f check_exif$(EXEEXT) - $(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS) + +check_exif2$(EXEEXT): $(check_exif2_OBJECTS) $(check_exif2_DEPENDENCIES) $(EXTRA_check_exif2_DEPENDENCIES) + @rm -f check_exif2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_exif2_OBJECTS) $(check_exif2_LDADD) $(LIBS) + check_extension$(EXEEXT): $(check_extension_OBJECTS) $(check_extension_DEPENDENCIES) $(EXTRA_check_extension_DEPENDENCIES) @rm -f check_extension$(EXEEXT) - $(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS) + check_extra_relations_fncts$(EXEEXT): $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_DEPENDENCIES) $(EXTRA_check_extra_relations_fncts_DEPENDENCIES) @rm -f check_extra_relations_fncts$(EXEEXT) - $(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS) + check_fdo1$(EXEEXT): $(check_fdo1_OBJECTS) $(check_fdo1_DEPENDENCIES) $(EXTRA_check_fdo1_DEPENDENCIES) @rm -f check_fdo1$(EXEEXT) - $(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS) + check_fdo2$(EXEEXT): $(check_fdo2_OBJECTS) $(check_fdo2_DEPENDENCIES) $(EXTRA_check_fdo2_DEPENDENCIES) @rm -f check_fdo2$(EXEEXT) - $(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS) + check_fdo3$(EXEEXT): $(check_fdo3_OBJECTS) $(check_fdo3_DEPENDENCIES) $(EXTRA_check_fdo3_DEPENDENCIES) @rm -f check_fdo3$(EXEEXT) - $(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS) + check_fdo_bufovflw$(EXEEXT): $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_DEPENDENCIES) $(EXTRA_check_fdo_bufovflw_DEPENDENCIES) @rm -f check_fdo_bufovflw$(EXEEXT) - $(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS) + check_gaia_utf8$(EXEEXT): $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_DEPENDENCIES) $(EXTRA_check_gaia_utf8_DEPENDENCIES) @rm -f check_gaia_utf8$(EXEEXT) - $(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS) + check_gaia_util$(EXEEXT): $(check_gaia_util_OBJECTS) $(check_gaia_util_DEPENDENCIES) $(EXTRA_check_gaia_util_DEPENDENCIES) @rm -f check_gaia_util$(EXEEXT) - $(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS) + check_geom_aux$(EXEEXT): $(check_geom_aux_OBJECTS) $(check_geom_aux_DEPENDENCIES) $(EXTRA_check_geom_aux_DEPENDENCIES) @rm -f check_geom_aux$(EXEEXT) - $(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS) + check_geometry_cols$(EXEEXT): $(check_geometry_cols_OBJECTS) $(check_geometry_cols_DEPENDENCIES) $(EXTRA_check_geometry_cols_DEPENDENCIES) @rm -f check_geometry_cols$(EXEEXT) - $(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS) + check_geoscvt_fncts$(EXEEXT): $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_DEPENDENCIES) $(EXTRA_check_geoscvt_fncts_DEPENDENCIES) @rm -f check_geoscvt_fncts$(EXEEXT) - $(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS) + +check_get_normal_row$(EXEEXT): $(check_get_normal_row_OBJECTS) $(check_get_normal_row_DEPENDENCIES) $(EXTRA_check_get_normal_row_DEPENDENCIES) + @rm -f check_get_normal_row$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_row_OBJECTS) $(check_get_normal_row_LDADD) $(LIBS) + +check_get_normal_row_bad_geopackage$(EXEEXT): $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage_DEPENDENCIES) + @rm -f check_get_normal_row_bad_geopackage$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_LDADD) $(LIBS) + +check_get_normal_row_bad_geopackage2$(EXEEXT): $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage2_DEPENDENCIES) + @rm -f check_get_normal_row_bad_geopackage2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_LDADD) $(LIBS) + +check_get_normal_zoom$(EXEEXT): $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_DEPENDENCIES) + @rm -f check_get_normal_zoom$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_LDADD) $(LIBS) + +check_get_normal_zoom_bad_geopackage$(EXEEXT): $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage_DEPENDENCIES) + @rm -f check_get_normal_zoom_bad_geopackage$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_LDADD) $(LIBS) + +check_get_normal_zoom_bad_geopackage2$(EXEEXT): $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) + @rm -f check_get_normal_zoom_bad_geopackage2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_LDADD) $(LIBS) + +check_get_normal_zoom_extension_load$(EXEEXT): $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_extension_load_DEPENDENCIES) + @rm -f check_get_normal_zoom_extension_load$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_LDADD) $(LIBS) + +check_gpkgConvert$(EXEEXT): $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_DEPENDENCIES) $(EXTRA_check_gpkgConvert_DEPENDENCIES) + @rm -f check_gpkgConvert$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_LDADD) $(LIBS) + +check_gpkgCreateFeaturesTable$(EXEEXT): $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateFeaturesTable_DEPENDENCIES) + @rm -f check_gpkgCreateFeaturesTable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_LDADD) $(LIBS) + +check_gpkgCreateTilesTable$(EXEEXT): $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTable_DEPENDENCIES) + @rm -f check_gpkgCreateTilesTable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_LDADD) $(LIBS) + +check_gpkgCreateTilesTableMissingSRID$(EXEEXT): $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) + @rm -f check_gpkgCreateTilesTableMissingSRID$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_LDADD) $(LIBS) + +check_gpkgCreateTilesZoomLevel$(EXEEXT): $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesZoomLevel_DEPENDENCIES) + @rm -f check_gpkgCreateTilesZoomLevel$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_LDADD) $(LIBS) + +check_gpkgGetImageFormat$(EXEEXT): $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_LDADD) $(LIBS) + +check_gpkgGetImageFormat_nonblob$(EXEEXT): $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonblob_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat_nonblob$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_LDADD) $(LIBS) + +check_gpkgGetImageFormat_nonimage$(EXEEXT): $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonimage_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat_nonimage$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_LDADD) $(LIBS) + +check_gpkgGetImageFormat_png$(EXEEXT): $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_png_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat_png$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_LDADD) $(LIBS) + +check_gpkgGetImageFormat_tiff$(EXEEXT): $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_tiff_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat_tiff$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_LDADD) $(LIBS) + +check_gpkgGetImageFormat_webp$(EXEEXT): $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_webp_DEPENDENCIES) + @rm -f check_gpkgGetImageFormat_webp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_LDADD) $(LIBS) + +check_gpkgInsertEpsgSRID$(EXEEXT): $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_DEPENDENCIES) $(EXTRA_check_gpkgInsertEpsgSRID_DEPENDENCIES) + @rm -f check_gpkgInsertEpsgSRID$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_LDADD) $(LIBS) + +check_gpkgVirtual$(EXEEXT): $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_DEPENDENCIES) $(EXTRA_check_gpkgVirtual_DEPENDENCIES) + @rm -f check_gpkgVirtual$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_LDADD) $(LIBS) + +check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT): $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) + @rm -f check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_LDADD) $(LIBS) + +check_gpkg_base_core_contents_data_table_def$(EXEEXT): $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) + @rm -f check_gpkg_base_core_contents_data_table_def$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_LDADD) $(LIBS) + +check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) + @rm -f check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD) $(LIBS) + +check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) + @rm -f check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD) $(LIBS) + +check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT): $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) + @rm -f check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD) $(LIBS) + check_init$(EXEEXT): $(check_init_OBJECTS) $(check_init_DEPENDENCIES) $(EXTRA_check_init_DEPENDENCIES) @rm -f check_init$(EXEEXT) - $(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS) + check_init2$(EXEEXT): $(check_init2_OBJECTS) $(check_init2_DEPENDENCIES) $(EXTRA_check_init2_DEPENDENCIES) @rm -f check_init2$(EXEEXT) - $(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS) + +check_libxml2$(EXEEXT): $(check_libxml2_OBJECTS) $(check_libxml2_DEPENDENCIES) $(EXTRA_check_libxml2_DEPENDENCIES) + @rm -f check_libxml2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_libxml2_OBJECTS) $(check_libxml2_LDADD) $(LIBS) + check_math_funcs$(EXEEXT): $(check_math_funcs_OBJECTS) $(check_math_funcs_DEPENDENCIES) $(EXTRA_check_math_funcs_DEPENDENCIES) @rm -f check_math_funcs$(EXEEXT) - $(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS) + check_mbrcache$(EXEEXT): $(check_mbrcache_OBJECTS) $(check_mbrcache_DEPENDENCIES) $(EXTRA_check_mbrcache_DEPENDENCIES) @rm -f check_mbrcache$(EXEEXT) - $(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS) + +check_md5$(EXEEXT): $(check_md5_OBJECTS) $(check_md5_DEPENDENCIES) $(EXTRA_check_md5_DEPENDENCIES) + @rm -f check_md5$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_md5_OBJECTS) $(check_md5_LDADD) $(LIBS) + +check_metacatalog$(EXEEXT): $(check_metacatalog_OBJECTS) $(check_metacatalog_DEPENDENCIES) $(EXTRA_check_metacatalog_DEPENDENCIES) + @rm -f check_metacatalog$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_metacatalog_OBJECTS) $(check_metacatalog_LDADD) $(LIBS) + +check_multithread$(EXEEXT): $(check_multithread_OBJECTS) $(check_multithread_DEPENDENCIES) $(EXTRA_check_multithread_DEPENDENCIES) + @rm -f check_multithread$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_multithread_OBJECTS) $(check_multithread_LDADD) $(LIBS) + check_recover_geom$(EXEEXT): $(check_recover_geom_OBJECTS) $(check_recover_geom_DEPENDENCIES) $(EXTRA_check_recover_geom_DEPENDENCIES) @rm -f check_recover_geom$(EXEEXT) - $(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS) + check_relations_fncts$(EXEEXT): $(check_relations_fncts_OBJECTS) $(check_relations_fncts_DEPENDENCIES) $(EXTRA_check_relations_fncts_DEPENDENCIES) @rm -f check_relations_fncts$(EXEEXT) - $(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS) + check_shp_load$(EXEEXT): $(check_shp_load_OBJECTS) $(check_shp_load_DEPENDENCIES) $(EXTRA_check_shp_load_DEPENDENCIES) @rm -f check_shp_load$(EXEEXT) - $(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS) + check_shp_load_3d$(EXEEXT): $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_DEPENDENCIES) $(EXTRA_check_shp_load_3d_DEPENDENCIES) @rm -f check_shp_load_3d$(EXEEXT) - $(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS) + check_spatialindex$(EXEEXT): $(check_spatialindex_OBJECTS) $(check_spatialindex_DEPENDENCIES) $(EXTRA_check_spatialindex_DEPENDENCIES) @rm -f check_spatialindex$(EXEEXT) - $(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS) + check_sql_stmt$(EXEEXT): $(check_sql_stmt_OBJECTS) $(check_sql_stmt_DEPENDENCIES) $(EXTRA_check_sql_stmt_DEPENDENCIES) @rm -f check_sql_stmt$(EXEEXT) - $(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS) + +check_styling$(EXEEXT): $(check_styling_OBJECTS) $(check_styling_DEPENDENCIES) $(EXTRA_check_styling_DEPENDENCIES) + @rm -f check_styling$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_styling_OBJECTS) $(check_styling_LDADD) $(LIBS) + check_version$(EXEEXT): $(check_version_OBJECTS) $(check_version_DEPENDENCIES) $(EXTRA_check_version_DEPENDENCIES) @rm -f check_version$(EXEEXT) - $(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS) + check_virtual_ovflw$(EXEEXT): $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_DEPENDENCIES) $(EXTRA_check_virtual_ovflw_DEPENDENCIES) @rm -f check_virtual_ovflw$(EXEEXT) - $(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS) + +check_virtualbbox$(EXEEXT): $(check_virtualbbox_OBJECTS) $(check_virtualbbox_DEPENDENCIES) $(EXTRA_check_virtualbbox_DEPENDENCIES) + @rm -f check_virtualbbox$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_virtualbbox_OBJECTS) $(check_virtualbbox_LDADD) $(LIBS) + check_virtualtable1$(EXEEXT): $(check_virtualtable1_OBJECTS) $(check_virtualtable1_DEPENDENCIES) $(EXTRA_check_virtualtable1_DEPENDENCIES) @rm -f check_virtualtable1$(EXEEXT) - $(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS) + check_virtualtable2$(EXEEXT): $(check_virtualtable2_OBJECTS) $(check_virtualtable2_DEPENDENCIES) $(EXTRA_check_virtualtable2_DEPENDENCIES) @rm -f check_virtualtable2$(EXEEXT) - $(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS) + check_virtualtable3$(EXEEXT): $(check_virtualtable3_OBJECTS) $(check_virtualtable3_DEPENDENCIES) $(EXTRA_check_virtualtable3_DEPENDENCIES) @rm -f check_virtualtable3$(EXEEXT) - $(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS) + check_virtualtable4$(EXEEXT): $(check_virtualtable4_OBJECTS) $(check_virtualtable4_DEPENDENCIES) $(EXTRA_check_virtualtable4_DEPENDENCIES) @rm -f check_virtualtable4$(EXEEXT) - $(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS) + check_virtualtable5$(EXEEXT): $(check_virtualtable5_OBJECTS) $(check_virtualtable5_DEPENDENCIES) $(EXTRA_check_virtualtable5_DEPENDENCIES) @rm -f check_virtualtable5$(EXEEXT) - $(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS) + check_virtualtable6$(EXEEXT): $(check_virtualtable6_OBJECTS) $(check_virtualtable6_DEPENDENCIES) $(EXTRA_check_virtualtable6_DEPENDENCIES) @rm -f check_virtualtable6$(EXEEXT) - $(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS) + +check_virtualxpath$(EXEEXT): $(check_virtualxpath_OBJECTS) $(check_virtualxpath_DEPENDENCIES) $(EXTRA_check_virtualxpath_DEPENDENCIES) + @rm -f check_virtualxpath$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_virtualxpath_OBJECTS) $(check_virtualxpath_LDADD) $(LIBS) + +check_wfsin$(EXEEXT): $(check_wfsin_OBJECTS) $(check_wfsin_DEPENDENCIES) $(EXTRA_check_wfsin_DEPENDENCIES) + @rm -f check_wfsin$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(check_wfsin_OBJECTS) $(check_wfsin_LDADD) $(LIBS) + check_xls_load$(EXEEXT): $(check_xls_load_OBJECTS) $(check_xls_load_DEPENDENCIES) $(EXTRA_check_xls_load_DEPENDENCIES) @rm -f check_xls_load$(EXEEXT) - $(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS) + shape_3d$(EXEEXT): $(shape_3d_OBJECTS) $(shape_3d_DEPENDENCIES) $(EXTRA_shape_3d_DEPENDENCIES) @rm -f shape_3d$(EXEEXT) - $(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS) + shape_cp1252$(EXEEXT): $(shape_cp1252_OBJECTS) $(shape_cp1252_DEPENDENCIES) $(EXTRA_shape_cp1252_DEPENDENCIES) @rm -f shape_cp1252$(EXEEXT) - $(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS) + shape_primitives$(EXEEXT): $(shape_primitives_OBJECTS) $(shape_primitives_DEPENDENCIES) $(EXTRA_shape_primitives_DEPENDENCIES) @rm -f shape_primitives$(EXEEXT) - $(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS) + shape_utf8_1$(EXEEXT): $(shape_utf8_1_OBJECTS) $(shape_utf8_1_DEPENDENCIES) $(EXTRA_shape_utf8_1_DEPENDENCIES) @rm -f shape_utf8_1$(EXEEXT) - $(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS) + shape_utf8_1ex$(EXEEXT): $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_DEPENDENCIES) $(EXTRA_shape_utf8_1ex_DEPENDENCIES) @rm -f shape_utf8_1ex$(EXEEXT) - $(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS) + shape_utf8_2$(EXEEXT): $(shape_utf8_2_OBJECTS) $(shape_utf8_2_DEPENDENCIES) $(EXTRA_shape_utf8_2_DEPENDENCIES) @rm -f shape_utf8_2$(EXEEXT) - $(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -3295,11 +1424,16 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers_bad_table_name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_bufovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_create.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_createBaseTables.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dbf_load.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dxf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_endian.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extension.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extra_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo1.Po@am__quote@ @@ -3311,24 +1445,57 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geom_aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geometry_cols.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geoscvt_fncts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_extension_load.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgConvert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateFeaturesTable.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesTable.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesTableMissingSRID.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesZoomLevel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonblob.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonimage.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_png.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_tiff.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_webp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgInsertEpsgSRID.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgVirtual.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_container_data_file_format_application_id.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_contents_data_table_def.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_table_def.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_values_default.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_opt_extension_mechanism_extensions_data_table_def.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libxml2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_math_funcs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_mbrcache.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_md5.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_metacatalog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_multithread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_recover_geom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_spatialindex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sql_stmt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_styling.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_version.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtual_ovflw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualbbox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable6.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualxpath.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_wfsin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_xls_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_cp1252.Po@am__quote@ @@ -3338,25 +1505,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_2.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -3364,26 +1531,62 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -3395,15 +1598,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -3412,102 +1611,733 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - fi; \ - echo "$${col}$$dashes$${std}"; \ - echo "$${col}$$banner$${std}"; \ - test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ - test -z "$$report" || echo "$${col}$$report$${std}"; \ - echo "$${col}$$dashes$${std}"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +check_endian.log: check_endian$(EXEEXT) + @p='check_endian$(EXEEXT)'; \ + b='check_endian'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_version.log: check_version$(EXEEXT) + @p='check_version$(EXEEXT)'; \ + b='check_version'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_init.log: check_init$(EXEEXT) + @p='check_init$(EXEEXT)'; \ + b='check_init'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_init2.log: check_init2$(EXEEXT) + @p='check_init2$(EXEEXT)'; \ + b='check_init2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_geom_aux.log: check_geom_aux$(EXEEXT) + @p='check_geom_aux$(EXEEXT)'; \ + b='check_geom_aux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_geometry_cols.log: check_geometry_cols$(EXEEXT) + @p='check_geometry_cols$(EXEEXT)'; \ + b='check_geometry_cols'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_create.log: check_create$(EXEEXT) + @p='check_create$(EXEEXT)'; \ + b='check_create'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_bufovflw.log: check_bufovflw$(EXEEXT) + @p='check_bufovflw$(EXEEXT)'; \ + b='check_bufovflw'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_fdo1.log: check_fdo1$(EXEEXT) + @p='check_fdo1$(EXEEXT)'; \ + b='check_fdo1'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_fdo2.log: check_fdo2$(EXEEXT) + @p='check_fdo2$(EXEEXT)'; \ + b='check_fdo2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_fdo3.log: check_fdo3$(EXEEXT) + @p='check_fdo3$(EXEEXT)'; \ + b='check_fdo3'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_fdo_bufovflw.log: check_fdo_bufovflw$(EXEEXT) + @p='check_fdo_bufovflw$(EXEEXT)'; \ + b='check_fdo_bufovflw'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_md5.log: check_md5$(EXEEXT) + @p='check_md5$(EXEEXT)'; \ + b='check_md5'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_dbf_load.log: check_dbf_load$(EXEEXT) + @p='check_dbf_load$(EXEEXT)'; \ + b='check_dbf_load'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_shp_load.log: check_shp_load$(EXEEXT) + @p='check_shp_load$(EXEEXT)'; \ + b='check_shp_load'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_shp_load_3d.log: check_shp_load_3d$(EXEEXT) + @p='check_shp_load_3d$(EXEEXT)'; \ + b='check_shp_load_3d'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_cp1252.log: shape_cp1252$(EXEEXT) + @p='shape_cp1252$(EXEEXT)'; \ + b='shape_cp1252'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_primitives.log: shape_primitives$(EXEEXT) + @p='shape_primitives$(EXEEXT)'; \ + b='shape_primitives'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_utf8_1.log: shape_utf8_1$(EXEEXT) + @p='shape_utf8_1$(EXEEXT)'; \ + b='shape_utf8_1'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_utf8_1ex.log: shape_utf8_1ex$(EXEEXT) + @p='shape_utf8_1ex$(EXEEXT)'; \ + b='shape_utf8_1ex'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_utf8_2.log: shape_utf8_2$(EXEEXT) + @p='shape_utf8_2$(EXEEXT)'; \ + b='shape_utf8_2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +shape_3d.log: shape_3d$(EXEEXT) + @p='shape_3d$(EXEEXT)'; \ + b='shape_3d'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_xls_load.log: check_xls_load$(EXEEXT) + @p='check_xls_load$(EXEEXT)'; \ + b='check_xls_load'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_math_funcs.log: check_math_funcs$(EXEEXT) + @p='check_math_funcs$(EXEEXT)'; \ + b='check_math_funcs'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gaia_util.log: check_gaia_util$(EXEEXT) + @p='check_gaia_util$(EXEEXT)'; \ + b='check_gaia_util'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gaia_utf8.log: check_gaia_utf8$(EXEEXT) + @p='check_gaia_utf8$(EXEEXT)'; \ + b='check_gaia_utf8'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_extension.log: check_extension$(EXEEXT) + @p='check_extension$(EXEEXT)'; \ + b='check_extension'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_recover_geom.log: check_recover_geom$(EXEEXT) + @p='check_recover_geom$(EXEEXT)'; \ + b='check_recover_geom'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_sql_stmt.log: check_sql_stmt$(EXEEXT) + @p='check_sql_stmt$(EXEEXT)'; \ + b='check_sql_stmt'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_multithread.log: check_multithread$(EXEEXT) + @p='check_multithread$(EXEEXT)'; \ + b='check_multithread'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable1.log: check_virtualtable1$(EXEEXT) + @p='check_virtualtable1$(EXEEXT)'; \ + b='check_virtualtable1'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable2.log: check_virtualtable2$(EXEEXT) + @p='check_virtualtable2$(EXEEXT)'; \ + b='check_virtualtable2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable3.log: check_virtualtable3$(EXEEXT) + @p='check_virtualtable3$(EXEEXT)'; \ + b='check_virtualtable3'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable4.log: check_virtualtable4$(EXEEXT) + @p='check_virtualtable4$(EXEEXT)'; \ + b='check_virtualtable4'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable5.log: check_virtualtable5$(EXEEXT) + @p='check_virtualtable5$(EXEEXT)'; \ + b='check_virtualtable5'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualtable6.log: check_virtualtable6$(EXEEXT) + @p='check_virtualtable6$(EXEEXT)'; \ + b='check_virtualtable6'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtual_ovflw.log: check_virtual_ovflw$(EXEEXT) + @p='check_virtual_ovflw$(EXEEXT)'; \ + b='check_virtual_ovflw'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_mbrcache.log: check_mbrcache$(EXEEXT) + @p='check_mbrcache$(EXEEXT)'; \ + b='check_mbrcache'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_spatialindex.log: check_spatialindex$(EXEEXT) + @p='check_spatialindex$(EXEEXT)'; \ + b='check_spatialindex'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_exif.log: check_exif$(EXEEXT) + @p='check_exif$(EXEEXT)'; \ + b='check_exif'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_exif2.log: check_exif2$(EXEEXT) + @p='check_exif2$(EXEEXT)'; \ + b='check_exif2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_relations_fncts.log: check_relations_fncts$(EXEEXT) + @p='check_relations_fncts$(EXEEXT)'; \ + b='check_relations_fncts'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_extra_relations_fncts.log: check_extra_relations_fncts$(EXEEXT) + @p='check_extra_relations_fncts$(EXEEXT)'; \ + b='check_extra_relations_fncts'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_geoscvt_fncts.log: check_geoscvt_fncts$(EXEEXT) + @p='check_geoscvt_fncts$(EXEEXT)'; \ + b='check_geoscvt_fncts'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_libxml2.log: check_libxml2$(EXEEXT) + @p='check_libxml2$(EXEEXT)'; \ + b='check_libxml2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_styling.log: check_styling$(EXEEXT) + @p='check_styling$(EXEEXT)'; \ + b='check_styling'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualxpath.log: check_virtualxpath$(EXEEXT) + @p='check_virtualxpath$(EXEEXT)'; \ + b='check_virtualxpath'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_virtualbbox.log: check_virtualbbox$(EXEEXT) + @p='check_virtualbbox$(EXEEXT)'; \ + b='check_virtualbbox'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_wfsin.log: check_wfsin$(EXEEXT) + @p='check_wfsin$(EXEEXT)'; \ + b='check_wfsin'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_dxf.log: check_dxf$(EXEEXT) + @p='check_dxf$(EXEEXT)'; \ + b='check_dxf'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_metacatalog.log: check_metacatalog$(EXEEXT) + @p='check_metacatalog$(EXEEXT)'; \ + b='check_metacatalog'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_createBaseTables.log: check_createBaseTables$(EXEEXT) + @p='check_createBaseTables$(EXEEXT)'; \ + b='check_createBaseTables'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgCreateTilesTable.log: check_gpkgCreateTilesTable$(EXEEXT) + @p='check_gpkgCreateTilesTable$(EXEEXT)'; \ + b='check_gpkgCreateTilesTable'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgCreateTilesTableMissingSRID.log: check_gpkgCreateTilesTableMissingSRID$(EXEEXT) + @p='check_gpkgCreateTilesTableMissingSRID$(EXEEXT)'; \ + b='check_gpkgCreateTilesTableMissingSRID'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgCreateTilesZoomLevel.log: check_gpkgCreateTilesZoomLevel$(EXEEXT) + @p='check_gpkgCreateTilesZoomLevel$(EXEEXT)'; \ + b='check_gpkgCreateTilesZoomLevel'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgInsertEpsgSRID.log: check_gpkgInsertEpsgSRID$(EXEEXT) + @p='check_gpkgInsertEpsgSRID$(EXEEXT)'; \ + b='check_gpkgInsertEpsgSRID'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgCreateFeaturesTable.log: check_gpkgCreateFeaturesTable$(EXEEXT) + @p='check_gpkgCreateFeaturesTable$(EXEEXT)'; \ + b='check_gpkgCreateFeaturesTable'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkg_base_core_container_data_file_format_application_id.log: check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) + @p='check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT)'; \ + b='check_gpkg_base_core_container_data_file_format_application_id'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkg_base_core_spatial_ref_sys_data_table_def.log: check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) + @p='check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT)'; \ + b='check_gpkg_base_core_spatial_ref_sys_data_table_def'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkg_base_core_spatial_ref_sys_data_values_default.log: check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) + @p='check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT)'; \ + b='check_gpkg_base_core_spatial_ref_sys_data_values_default'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkg_base_core_contents_data_table_def.log: check_gpkg_base_core_contents_data_table_def$(EXEEXT) + @p='check_gpkg_base_core_contents_data_table_def$(EXEEXT)'; \ + b='check_gpkg_base_core_contents_data_table_def'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkg_opt_extension_mechanism_extensions_data_table_def.log: check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) + @p='check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT)'; \ + b='check_gpkg_opt_extension_mechanism_extensions_data_table_def'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_add_tile_triggers.log: check_add_tile_triggers$(EXEEXT) + @p='check_add_tile_triggers$(EXEEXT)'; \ + b='check_add_tile_triggers'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_add_tile_triggers_bad_table_name.log: check_add_tile_triggers_bad_table_name$(EXEEXT) + @p='check_add_tile_triggers_bad_table_name$(EXEEXT)'; \ + b='check_add_tile_triggers_bad_table_name'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_row.log: check_get_normal_row$(EXEEXT) + @p='check_get_normal_row$(EXEEXT)'; \ + b='check_get_normal_row'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_row_bad_geopackage.log: check_get_normal_row_bad_geopackage$(EXEEXT) + @p='check_get_normal_row_bad_geopackage$(EXEEXT)'; \ + b='check_get_normal_row_bad_geopackage'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_row_bad_geopackage2.log: check_get_normal_row_bad_geopackage2$(EXEEXT) + @p='check_get_normal_row_bad_geopackage2$(EXEEXT)'; \ + b='check_get_normal_row_bad_geopackage2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_zoom.log: check_get_normal_zoom$(EXEEXT) + @p='check_get_normal_zoom$(EXEEXT)'; \ + b='check_get_normal_zoom'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_zoom_extension_load.log: check_get_normal_zoom_extension_load$(EXEEXT) + @p='check_get_normal_zoom_extension_load$(EXEEXT)'; \ + b='check_get_normal_zoom_extension_load'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_zoom_bad_geopackage.log: check_get_normal_zoom_bad_geopackage$(EXEEXT) + @p='check_get_normal_zoom_bad_geopackage$(EXEEXT)'; \ + b='check_get_normal_zoom_bad_geopackage'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_get_normal_zoom_bad_geopackage2.log: check_get_normal_zoom_bad_geopackage2$(EXEEXT) + @p='check_get_normal_zoom_bad_geopackage2$(EXEEXT)'; \ + b='check_get_normal_zoom_bad_geopackage2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat.log: check_gpkgGetImageFormat$(EXEEXT) + @p='check_gpkgGetImageFormat$(EXEEXT)'; \ + b='check_gpkgGetImageFormat'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat_nonimage.log: check_gpkgGetImageFormat_nonimage$(EXEEXT) + @p='check_gpkgGetImageFormat_nonimage$(EXEEXT)'; \ + b='check_gpkgGetImageFormat_nonimage'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat_nonblob.log: check_gpkgGetImageFormat_nonblob$(EXEEXT) + @p='check_gpkgGetImageFormat_nonblob$(EXEEXT)'; \ + b='check_gpkgGetImageFormat_nonblob'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat_png.log: check_gpkgGetImageFormat_png$(EXEEXT) + @p='check_gpkgGetImageFormat_png$(EXEEXT)'; \ + b='check_gpkgGetImageFormat_png'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat_tiff.log: check_gpkgGetImageFormat_tiff$(EXEEXT) + @p='check_gpkgGetImageFormat_tiff$(EXEEXT)'; \ + b='check_gpkgGetImageFormat_tiff'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgGetImageFormat_webp.log: check_gpkgGetImageFormat_webp$(EXEEXT) + @p='check_gpkgGetImageFormat_webp$(EXEEXT)'; \ + b='check_gpkgGetImageFormat_webp'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgConvert.log: check_gpkgConvert$(EXEEXT) + @p='check_gpkgConvert$(EXEEXT)'; \ + b='check_gpkgConvert'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check_gpkgVirtual.log: check_gpkgVirtual$(EXEEXT) + @p='check_gpkgVirtual$(EXEEXT)'; \ + b='check_gpkgVirtual'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -3539,21 +2369,47 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am +check: check-recursive all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-am +installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ @@ -3566,6 +2422,9 @@ install-strip: fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: @@ -3576,92 +2435,93 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-am +clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am -distclean: distclean-am +distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags -dvi: dvi-am +dvi: dvi-recursive dvi-am: -html: html-am +html: html-recursive html-am: -info: info-am +info: info-recursive info-am: install-data-am: -install-dvi: install-dvi-am +install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: -install-html: install-html-am +install-html: install-html-recursive install-html-am: -install-info: install-info-am +install-info: install-info-recursive install-info-am: install-man: -install-pdf: install-pdf-am +install-pdf: install-pdf-recursive install-pdf-am: -install-ps: install-ps-am +install-ps: install-ps-recursive install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool -pdf: pdf-am +pdf: pdf-recursive pdf-am: -ps: ps-am +ps: ps-recursive ps-am: uninstall-am: -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-TESTS check-am clean clean-checkPROGRAMS clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ + uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/spatialite/test/archaic.dxf b/src/spatialite/test/archaic.dxf new file mode 100644 index 0000000..2b4ffe6 --- /dev/null +++ b/src/spatialite/test/archaic.dxf @@ -0,0 +1,628 @@ + 0 +SECTION + 2 +ENTITIES + 0 +POLYLINE + 8 +0708 + 66 + 1 + 70 + 136 + 0 +VERTEX + 8 +0708 + 70 + 32 + 10 + 1640917.36 + 20 + 4862170.21 + 30 + 72.73 + 0 +VERTEX + 8 +0708 + 70 + 32 + 10 + 1640911.27 + 20 + 4862198.25 + 30 + 72.70 + 0 +SEQEND + 8 +0708 + 0 +POLYLINE + 8 +0906 + 66 + 1 + 70 + 136 + 0 +VERTEX + 8 +0906 + 70 + 32 + 10 + 1647065.00 + 20 + 4867860.00 + 30 + 556.52 + 0 +VERTEX + 8 +0906 + 70 + 32 + 10 + 1647188.00 + 20 + 4862307.00 + 30 + 591.63 + 0 +VERTEX + 8 +0906 + 70 + 32 + 10 + 1640495.00 + 20 + 4862161.00 + 30 + 633.96 + 0 +VERTEX + 8 +0906 + 70 + 32 + 10 + 1640377.00 + 20 + 4867715.00 + 30 + 669.08 + 0 +VERTEX + 8 +0906 + 70 + 32 + 10 + 1647065.00 + 20 + 4867860.00 + 30 + 556.52 + 0 +SEQEND + 8 +0906 + 0 +POLYLINE + 8 +0906 + 66 + 1 + 70 + 136 + 0 +VERTEX + 8 +0201 + 70 + 32 + 10 + 1646450.28 + 20 + 4862772.46 + 30 + 54.29 + 0 +VERTEX + 8 +0201 + 70 + 32 + 10 + 1646457.94 + 20 + 4862771.33 + 30 + 54.11 + 0 +VERTEX + 8 +0201 + 70 + 32 + 10 + 1646455.68 + 20 + 4862761.50 + 30 + 54.49 + 0 +SEQEND + 8 +0201 + 0 +POLYLINE + 8 +0714 + 66 + 1 + 70 + 136 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641969.01 + 20 + 4865226.08 + 30 + 518.87 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641972.82 + 20 + 4865242.18 + 30 + 519.69 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641975.04 + 20 + 4865250.21 + 30 + 520.89 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641976.45 + 20 + 4865256.96 + 30 + 520.73 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641981.46 + 20 + 4865273.74 + 30 + 518.06 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641983.69 + 20 + 4865275.16 + 30 + 517.08 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641987.97 + 20 + 4865277.87 + 30 + 515.20 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641996.91 + 20 + 4865277.48 + 30 + 512.35 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642004.36 + 20 + 4865276.13 + 30 + 509.62 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642006.15 + 20 + 4865269.78 + 30 + 505.74 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642004.58 + 20 + 4865257.76 + 30 + 502.83 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642000.05 + 20 + 4865250.78 + 30 + 503.03 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641996.31 + 20 + 4865243.13 + 30 + 503.32 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641994.92 + 20 + 4865233.87 + 30 + 503.97 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641994.58 + 20 + 4865229.88 + 30 + 504.11 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641995.36 + 20 + 4865221.81 + 30 + 504.33 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641997.57 + 20 + 4865207.30 + 30 + 505.28 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642001.17 + 20 + 4865185.76 + 30 + 506.86 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642005.45 + 20 + 4865159.45 + 30 + 506.90 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642005.70 + 20 + 4865157.77 + 30 + 506.77 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1642000.11 + 20 + 4865158.99 + 30 + 510.70 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641996.97 + 20 + 4865160.79 + 30 + 512.04 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641993.70 + 20 + 4865165.58 + 30 + 513.18 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641992.25 + 20 + 4865169.70 + 30 + 513.39 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641988.16 + 20 + 4865187.15 + 30 + 513.18 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641984.13 + 20 + 4865194.87 + 30 + 514.36 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641975.01 + 20 + 4865209.96 + 30 + 517.48 + 0 +VERTEX + 8 +0714 + 70 + 32 + 10 + 1641969.01 + 20 + 4865226.08 + 30 + 518.87 + 0 +SEQEND + 8 +0714 + 0 +POINT + 8 +0907 + 10 + 1645244.54 + 20 + 4866102.58 + 30 + 567.93 + 0 +POINT + 8 +0231 + 10 + 1647000.63 + 20 + 4867829.22 + 30 + 272.16 + 0 +POINT + 8 +0231 + 10 + 1646343.31 + 20 + 4867805.90 + 30 + 397.27 + 0 +POINT + 8 +0231 + 10 + 1642506.09 + 20 + 4866841.75 + 30 + 381.54 + 0 +POINT + 8 +0231 + 10 + 1642112.33 + 20 + 4864688.20 + 30 + 433.96 + 0 +POINT + 8 +0231 + 10 + 1641734.62 + 20 + 4865794.25 + 30 + 603.60 + 0 +POINT + 8 +0231 + 10 + 1640659.45 + 20 + 4862849.61 + 30 + 97.58 + 0 +POINT + 8 +0231 + 10 + 1646492.89 + 20 + 4862739.77 + 30 + 52.88 + 0 +TEXT + 8 +1014 + 10 + 1642628.16 + 20 + 4864868.39 + 30 + 299.30 + 40 + 15.00 + 50 + .00 + 51 + .00 + 1 +299.3 + 0 +TEXT + 8 +1016 + 10 + 1647132.59 + 20 + 4862749.38 + 30 + 34.00 + 40 + 15.00 + 50 + 26.00 + 51 + .00 + 1 +34 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/asprintf4win.h b/src/spatialite/test/asprintf4win.h index 6a5b01f..3725072 100644 --- a/src/spatialite/test/asprintf4win.h +++ b/src/spatialite/test/asprintf4win.h @@ -40,41 +40,44 @@ #endif int -asprintf(char **buffer, char *fmt, ...) +asprintf (char **buffer, char *fmt, ...) { /* Guess we need no more than 200 chars of space. */ int size = 200; int nchars; va_list ap; - - *buffer = (char*)malloc(size); - if (*buffer == NULL) return -1; - + + *buffer = (char *) malloc (size); + if (*buffer == NULL) + return -1; + /* Try to print in the allocated space. */ - va_start(ap, fmt); - nchars = vsnprintf(*buffer, size, fmt, ap); - va_end(ap); + va_start (ap, fmt); + nchars = vsnprintf (*buffer, size, fmt, ap); + va_end (ap); if (nchars >= size) - { - char *tmpbuff; - /* Reallocate buffer now that we know how much space is needed. */ - size = nchars+1; - tmpbuff = (char*)realloc(*buffer, size); - - - if (tmpbuff == NULL) { /* we need to free it*/ - free(*buffer); - return -1; - } - - *buffer=tmpbuff; - /* Try again. */ - va_start(ap, fmt); - nchars = vsnprintf(*buffer, size, fmt, ap); - va_end(ap); - } + { + char *tmpbuff; + /* Reallocate buffer now that we know how much space is needed. */ + size = nchars + 1; + tmpbuff = (char *) realloc (*buffer, size); + + + if (tmpbuff == NULL) + { /* we need to free it */ + free (*buffer); + return -1; + } + + *buffer = tmpbuff; + /* Try again. */ + va_start (ap, fmt); + nchars = vsnprintf (*buffer, size, fmt, ap); + va_end (ap); + } - if (nchars < 0) return nchars; + if (nchars < 0) + return nchars; return size; } diff --git a/src/spatialite/test/books-bad.xml b/src/spatialite/test/books-bad.xml new file mode 100644 index 0000000..390b187 --- /dev/null +++ b/src/spatialite/test/books-bad.xml @@ -0,0 +1,9 @@ + +The Pickwick PapersOliver TwistDavid Copperfield +A Christmas CarolHard Times +The Scarlet Letter +Vanity Fair +The Luck of Barry Lyndon +Lord JimThe Secret AgentHeart of Darkness + diff --git a/src/spatialite/test/books-bad.xsd b/src/spatialite/test/books-bad.xsd new file mode 100644 index 0000000..697cd6c --- /dev/null +++ b/src/spatialite/test/books-bad.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/spatialite/test/books.xml b/src/spatialite/test/books.xml new file mode 100644 index 0000000..1dc8ea5 --- /dev/null +++ b/src/spatialite/test/books.xml @@ -0,0 +1,9 @@ + +The Pickwick PapersOliver TwistDavid Copperfield +A Christmas CarolHard Times +The Scarlet Letter +Vanity Fair +The Luck of Barry Lyndon +Lord JimThe Secret AgentHeart of Darkness + diff --git a/src/spatialite/test/books.xsd b/src/spatialite/test/books.xsd new file mode 100644 index 0000000..970518c --- /dev/null +++ b/src/spatialite/test/books.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/spatialite/test/check_add_tile_triggers.c b/src/spatialite/test/check_add_tile_triggers.c new file mode 100644 index 0000000..1c8819b --- /dev/null +++ b/src/spatialite/test/check_add_tile_triggers.c @@ -0,0 +1,492 @@ +/* + + check_add_tile_triggers.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_add_tile_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* test the trigger works - several different cases here */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 0, 0, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 4 result: %i (%s)\n", ret, + err_msg); + return -4; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 5: %s\n", + err_msg); + sqlite3_free (err_msg); + return -5; + } + sqlite3_free (err_msg); + + /* create matrix level 0 and 4 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -6; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -7; + } + + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 1, 0, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 8 result: %i\n", ret); + return -8; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 9: %s\n", + err_msg); + sqlite3_free (err_msg); + return -9; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 0, 0, 1, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 10 result: %i\n", ret); + return -10; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 11: %s\n", + err_msg); + sqlite3_free (err_msg); + return -11; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 16, 3, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 12 result: %i\n", ret); + return -12; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 13: %s\n", + err_msg); + sqlite3_free (err_msg); + return -13; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 6, 16, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 14 result: %i\n", ret); + return -14; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 15: %s\n", + err_msg); + sqlite3_free (err_msg); + return -15; + } + sqlite3_free (err_msg); + + /* Check a proper INSERT */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (0, 0 ,0, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT error 21: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (4, 15 , 15, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT error 22: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + + /* check negative row / column numbers */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, -1, 15, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 23 result: %i\n", ret); + return -23; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 24: %s\n", + err_msg); + sqlite3_free (err_msg); + return -24; + } + sqlite3_free (err_msg); + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 15, -1, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected INSERT INTO 25 result: %i\n", ret); + return -25; + } + if (strcmp + (err_msg, + "insert on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") + != 0) + { + fprintf (stderr, "unexpected INSERT INTO error message 26: %s\n", + err_msg); + sqlite3_free (err_msg); + return -26; + } + sqlite3_free (err_msg); + + /* try some update checks */ + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET zoom_level = 1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 27 result: %i\n", ret); + return -27; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 28: %s\n", err_msg); + sqlite3_free (err_msg); + return -28; + } + sqlite3_free (err_msg); + + + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET zoom_level = -1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 29 result: %i\n", ret); + return -29; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 30: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET tile_column = -1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 31 result: %i\n", ret); + return -31; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 32: %s\n", err_msg); + sqlite3_free (err_msg); + return -32; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET tile_row = -1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 33 result: %i\n", ret); + return -33; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 34: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET tile_row = 1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 35 result: %i\n", ret); + return -35; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 36: %s\n", err_msg); + sqlite3_free (err_msg); + return -36; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "UPDATE test1_matrix_tiles SET tile_column = 1 WHERE id = 1", + NULL, NULL, &err_msg); + if (ret != SQLITE_CONSTRAINT) + { + fprintf (stderr, "unexpected UPDATE 37 result: %i\n", ret); + return -37; + } + if (strcmp + (err_msg, + "update on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") + != 0) + { + fprintf (stderr, "unexpected UPDATE error message 38: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } + sqlite3_free (err_msg); + + /* test trigger setup, bad table type */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(0)", NULL, NULL, + &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "unexpected SELECT gpkgAddTileTriggers(0) result: %i\n", + ret); + return -100; + } + if (strcmp + (err_msg, + "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type") + != 0) + { + fprintf (stderr, + "unexpected SELECT gpkgAddTileTriggers(0) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -101; + } + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_add_tile_triggers_bad_table_name.c b/src/spatialite/test/check_add_tile_triggers_bad_table_name.c new file mode 100644 index 0000000..13df038 --- /dev/null +++ b/src/spatialite/test/check_add_tile_triggers_bad_table_name.c @@ -0,0 +1,199 @@ +/* + + check_add_tile_triggers_bad_table_name.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_add_tile_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create a minimal raster_format_metadata table (not spec compliant) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE raster_format_metadata error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -5; + } + + /* add in a test entry */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO raster_format_metadata VALUES (\"mytable_tiles\", \"tile_data\", \"image/png\", 24)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT raster_format_metadata error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -6; + } + + /* create a minimal tile_matrix_metadata table (not spec compliant) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } + ret = + sqlite3_exec (db_handle, + "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } + /* add in a test entry */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO tile_matrix_metadata VALUES (\"mytable_tiles\", 0, 1, 1)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + + /* create a target table */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS mytable_tiles", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP mytable_tiles error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + ret = + sqlite3_exec (db_handle, + "CREATE TABLE mytable_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + + /* test trigger setup */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddTileTriggers(\"no_such_table\")", NULL, + NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Unexpected gpkgAddTileTriggers result: %i\n", ret); + return -12; + } + if (strcmp (err_msg, "no such table: main.no_such_table") != 0) + { + fprintf (stderr, + "SELECT gpkgAddTileTriggers unexpected error message: %s\n", + err_msg); + sqlite3_free (err_msg); + return -13; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_bufovflw.c b/src/spatialite/test/check_bufovflw.c index fb287ab..9f519e6 100644 --- a/src/spatialite/test/check_bufovflw.c +++ b/src/spatialite/test/check_bufovflw.c @@ -46,29 +46,34 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include +#include "config.h" + #include "sqlite3.h" #include "spatialite.h" #include -void cleanup_shapefile(const char *filename) +void +cleanup_shapefile (const char *filename) { char nam[1000]; - - if (!filename) { - return; - } - - snprintf(nam, 1000, "%s.dbf", filename); - unlink(nam); - snprintf(nam, 1000, "%s.prj", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shp", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shx", filename); - unlink(nam); + + if (!filename) + { + return; + } + + snprintf (nam, 1000, "%s.dbf", filename); + unlink (nam); + snprintf (nam, 1000, "%s.prj", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shp", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shx", filename); + unlink (nam); } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -85,8 +90,10 @@ int main (int argc, char *argv[]) char *table_b; char *topology; char *auth; +#ifndef OMIT_PROJ /* including PROJ.4 */ char *kml1; char *kml2; +#endif /* end including PROJ.4 */ char *resvalue; char *pk; char *name; @@ -100,1528 +107,1839 @@ int main (int argc, char *argv[]) int len; char frmt[2048]; int row_count; - char *dumpname = __FILE__"dump"; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } + char *dumpname = __FILE__ "dump"; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } /* setting up very long table and column names */ - suffix = malloc(suffix_len); - memset(suffix, 'z', suffix_len); - suffix[suffix_len-1] = '\0'; - - table_a = sqlite3_mprintf("table_a_%s", suffix); - table_b = sqlite3_mprintf("table_b_%s", suffix); - shape2 = sqlite3_mprintf("shape_table_2_%s", suffix); - shape2geom = sqlite3_mprintf("shape_table_2_geom_%s", suffix); - shape = sqlite3_mprintf("shape_table_%s", suffix); - dbf = sqlite3_mprintf("dbf_tbale_%s", suffix); - pk = sqlite3_mprintf("id_%s", suffix); - name = sqlite3_mprintf("name_%s", suffix); - geom = sqlite3_mprintf("geom_%s", suffix); - topology = sqlite3_mprintf("topology_%s_", suffix); + suffix = malloc (suffix_len); + memset (suffix, 'z', suffix_len); + suffix[suffix_len - 1] = '\0'; + + table_a = sqlite3_mprintf ("table_a_%s", suffix); + table_b = sqlite3_mprintf ("table_b_%s", suffix); + shape2 = sqlite3_mprintf ("shape_table_2_%s", suffix); + shape2geom = sqlite3_mprintf ("shape_table_2_geom_%s", suffix); + shape = sqlite3_mprintf ("shape_table_%s", suffix); + dbf = sqlite3_mprintf ("dbf_tbale_%s", suffix); + pk = sqlite3_mprintf ("id_%s", suffix); + name = sqlite3_mprintf ("name_%s", suffix); + geom = sqlite3_mprintf ("geom_%s", suffix); + topology = sqlite3_mprintf ("topology_%s_", suffix); /* creating table "A" */ - sql = sqlite3_mprintf("CREATE TABLE %s (\n" - "%s INTEGER NOT NULL PRIMARY KEY,\n" - "%s TEXT NOT NULL)", table_a, pk, name); + sql = sqlite3_mprintf ("CREATE TABLE %s (\n" + "%s INTEGER NOT NULL PRIMARY KEY,\n" + "%s TEXT NOT NULL)", table_a, pk, name); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -3; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } /* adding a POINT Geometry to table "A" */ - sql = sqlite3_mprintf("SELECT AddGeometryColumn(%Q, %Q, " - "4326, 'POINT', 'XY')", table_a, geom); + sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, " + "4326, 'POINT', 'XY')", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -4; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } /* creating a Spatial Index on table "A" */ - sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom); + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -5; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -5; + } /* inserting few valid rows on table "A" */ - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk, name, geom); + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk, + name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -6; - } - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -6; + } + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk, + name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -106; - } - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -106; + } + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk, + name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -206; - } - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -206; + } + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk, + name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -306; - } - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -306; + } + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a, + pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -406; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -406; + } /* inserting few invalid geometries on table "A" */ - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name, geom); + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name, + geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_a, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test2; - sqlite3_close(handle); - return -7; - } -test2: - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_a, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test2; + sqlite3_close (handle); + return -7; + } + test2: + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a, + pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_a, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test3; - sqlite3_close(handle); - return -8; - } -test3: - sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " - "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))", table_a, pk, name, geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_a, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test3; + sqlite3_close (handle); + return -8; + } + test3: + sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " + "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))", + table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_a, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test4; - sqlite3_close(handle); - return -9; - } -test4: + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_a, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test4; + sqlite3_close (handle); + return -9; + } + test4: /* checking for validity (table A) */ - sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" - "SELECT ROWID FROM SpatialIndex WHERE " - "f_table_name = %Q AND f_geometry_column = %Q " - "AND search_frame = BuildCircleMbr(3, 30, 1))", table_a, table_a, geom); + sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" + "SELECT ROWID FROM SpatialIndex WHERE " + "f_table_name = %Q AND f_geometry_column = %Q " + "AND search_frame = BuildCircleMbr(3, 30, 1))", + table_a, table_a, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -10; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n", rows, columns); - return -11; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -10; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n", + rows, columns); + return -11; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]); - return -12; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]); + return -12; + } sqlite3_free_table (results); /* creating table "B" */ - sql = sqlite3_mprintf("CREATE TABLE %s AS " - "SELECT * FROM %s", table_b, table_a); + sql = sqlite3_mprintf ("CREATE TABLE %s AS " + "SELECT * FROM %s", table_b, table_a); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -13; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -13; + } /* recovering Geometry for table "B" */ - sql = sqlite3_mprintf("SELECT RecoverGeometryColumn(%Q, %Q, " - "4326, 'POINT', 'XY')", table_b, geom); + sql = sqlite3_mprintf ("SELECT RecoverGeometryColumn(%Q, %Q, " + "4326, 'POINT', 'XY')", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -14; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -14; + } /* creating a Spatial Index on table "B" */ - sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -15; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } /* checking for validity (table B) */ - sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" - "SELECT ROWID FROM SpatialIndex WHERE " - "f_table_name = %Q AND f_geometry_column = %Q " - "AND search_frame = BuildCircleMbr(2, 20, 1))", table_b, table_b, geom); + sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" + "SELECT ROWID FROM SpatialIndex WHERE " + "f_table_name = %Q AND f_geometry_column = %Q " + "AND search_frame = BuildCircleMbr(2, 20, 1))", + table_b, table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -16; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n", rows, columns); - return -17; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -16; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n", + rows, columns); + return -17; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]); - return -18; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]); + return -18; + } sqlite3_free_table (results); /* deleting one row from Table B */ - sql = sqlite3_mprintf("DELETE FROM %s WHERE %s = 2", table_b, pk); + sql = sqlite3_mprintf ("DELETE FROM %s WHERE %s = 2", table_b, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -19; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -19; + } /* updating one row into Table B */ - sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-3, -30, 4326) " - "WHERE %s = 4", table_b, geom, pk); + sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-3, -30, 4326) " + "WHERE %s = 4", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -20; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -20; + } /* invalid updates table "B" */ - sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-2, -20) " - "WHERE %s = 2", table_b, geom, pk); + sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-2, -20) " + "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_b, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test5; - sqlite3_free(sql); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -21; - } -test5: - sql = sqlite3_mprintf("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) " - "WHERE %s = 2", table_b, geom, pk); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_b, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test5; + sqlite3_free (sql); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -21; + } + test5: + sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) " + "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_b, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test6; - sqlite3_free(sql); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -22; - } -test6: - sql = sqlite3_mprintf("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) " - "WHERE %s = 2", table_b, geom, pk); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_b, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test6; + sqlite3_free (sql); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -22; + } + test6: + sql = + sqlite3_mprintf + ("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) " + "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - sql = sqlite3_mprintf("%s.%s violates Geometry constraint " - "[geom-type or SRID not allowed]", table_b, geom); - ret = strcmp(sql, err_msg); - sqlite3_free(sql); - if (ret == 0) - goto test7; - sqlite3_free(sql); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -23; - } -test7: + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " + "[geom-type or SRID not allowed]", table_b, + geom); + ret = strcmp (sql, err_msg); + sqlite3_free (sql); + if (ret == 0) + goto test7; + sqlite3_free (sql); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -23; + } + test7: /* VACUUM - thus invalidating TABLE-B Spatial Index */ ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -24; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -24; + } /* checking the Spatial Index on table "B" */ - sql = sqlite3_mprintf("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -25; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n", rows, columns); - return -26; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -25; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n", + rows, columns); + return -26; + } value = results[1]; - if (strcmp ("0", value) != 0) { - fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n", results[1]); - return -27; - } + if (strcmp ("0", value) != 0) + { + fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n", + results[1]); + return -27; + } sqlite3_free_table (results); /* checking the Spatial Index all table */ - ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -28; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n", rows, columns); - return -29; - } + ret = + sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -28; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n", + rows, columns); + return -29; + } value = results[1]; - if (strcmp ("0", value) != 0) { - fprintf (stderr, "Unexpected result (check RTree ALL): %s\n", results[1]); - return -30; - } + if (strcmp ("0", value) != 0) + { + fprintf (stderr, "Unexpected result (check RTree ALL): %s\n", + results[1]); + return -30; + } sqlite3_free_table (results); /* recovering the Spatial Index all table */ - ret = sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -34; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n", rows, columns); - return -35; - } + ret = + sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -34; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n", + rows, columns); + return -35; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n", results[1]); - return -36; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n", + results[1]); + return -36; + } sqlite3_free_table (results); /* recovering the Spatial Index on table "B" */ - sql = sqlite3_mprintf("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -37; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n", rows, columns); - return -38; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -37; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n", + rows, columns); + return -38; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n", results[1]); - return -39; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n", + results[1]); + return -39; + } sqlite3_free_table (results); /* updating layer statistics for table "B" */ - sql = sqlite3_mprintf("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom); + sql = + sqlite3_mprintf ("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -40; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n", rows, columns); - return -41; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -40; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n", + rows, columns); + return -41; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n", results[1]); - return -42; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n", + results[1]); + return -42; + } + sqlite3_free_table (results); + +/* retieving the LayerExtent for table "B" */ + sql = + sqlite3_mprintf ("SELECT ST_AsText(GetLayerExtent(%Q, %Q))", table_b, + geom); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "GetLayerExtent TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -140; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (GetLayerExtent TABLE-B): r=%d c=%d\n", + rows, columns); + return -141; + } + value = results[1]; + if (strcmp ("POLYGON((-3 -30, 5 -30, 5 50, -3 50, -3 -30))", value) != 0) + { + fprintf (stderr, "Unexpected result (GetLayerExtent TABLE-B): %s\n", + results[1]); + return -142; + } sqlite3_free_table (results); /* updating layer statistics ALL */ - ret = sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -43; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (statistics ALL): r=%d c=%d\n", rows, columns); - return -44; - } + ret = + sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -43; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (statistics ALL): r=%d c=%d\n", + rows, columns); + return -44; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (statistics ALL): %s\n", results[1]); - return -45; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (statistics ALL): %s\n", + results[1]); + return -45; + } sqlite3_free_table (results); /* disabling the Spatial Index on table "B" */ - sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -46; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); - return -47; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -46; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", + rows, columns); + return -47; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); - return -48; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", + results[1]); + return -48; + } sqlite3_free_table (results); /* creating an MbrCache on table "B" */ - sql = sqlite3_mprintf("SELECT CreateMbrCache(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT CreateMbrCache(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -49; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); - return -50; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -49; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", + rows, columns); + return -50; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); - return -51; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", + results[1]); + return -51; + } sqlite3_free_table (results); /* checking the MbrCache on table "B" */ - sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" - "SELECT ROWID FROM cache_%s_%s WHERE " - "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b, table_b, geom); + sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" + "SELECT ROWID FROM cache_%s_%s WHERE " + "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b, + table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test MbrCache error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -52; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n", rows, columns); - return -53; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test MbrCache error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -52; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n", + rows, columns); + return -53; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]); - return -54; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]); + return -54; + } sqlite3_free_table (results); /* disabling the Spatial Index [MbrCache] on table "B" */ - sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); + sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -55; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); - return -56; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -55; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", + rows, columns); + return -56; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); - return -57; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", + results[1]); + return -57; + } sqlite3_free_table (results); /* discarding geometry from table "B" */ - sql = sqlite3_mprintf("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom); + sql = + sqlite3_mprintf ("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -58; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n", rows, columns); - return -59; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -58; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n", + rows, columns); + return -59; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n", results[1]); - return -60; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n", + results[1]); + return -60; + } sqlite3_free_table (results); -#ifdef GEOS_ADVANCED /* GEOS advanced features */ - /* creating a topology */ - sql = sqlite3_mprintf("SELECT CreateTopologyTables(%Q, 4326, 'XY')", topology); + sql = + sqlite3_mprintf ("SELECT CreateTopologyTables(%Q, 4326, 'XY')", + topology); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -61; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n", rows, columns); - return -62; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -61; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n", + rows, columns); + return -62; + } value = results[1]; - if (strcmp ("1", value) != 0) { - fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n", results[1]); - return -63; - } + if (strcmp ("1", value) != 0) + { + fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n", + results[1]); + return -63; + } sqlite3_free_table (results); -#endif /* end GEOS advanced features */ - - sqlite3_free(table_a); - sqlite3_free(table_b); - sqlite3_free(pk); - sqlite3_free(name); - sqlite3_free(geom); - sqlite3_free(topology); + sqlite3_free (table_a); + sqlite3_free (table_b); + sqlite3_free (pk); + sqlite3_free (name); + sqlite3_free (geom); + sqlite3_free (topology); /* inserting a CRS (very long auth) */ - auth = sqlite3_mprintf("authority_%s", suffix); - sql = sqlite3_mprintf("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, " - "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, " - "'silly CRS', 'silly proj def', 'silly wkt def')", auth); + auth = sqlite3_mprintf ("authority_%s", suffix); + sql = + sqlite3_mprintf + ("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, " + "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, " + "'silly CRS', 'silly proj def', 'silly wkt def')", auth); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT CRS error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -64; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT CRS error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -64; + } /* checking for validity (SRID from Auth) */ - sql = sqlite3_mprintf("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122); + sql = sqlite3_mprintf ("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -65; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n", rows, columns); - return -66; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -65; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, + "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n", + rows, columns); + return -66; + } value = results[1]; - if (strcmp ("325834", value) != 0) { - fprintf (stderr, "Unexpected result (SRID from Auth): %s\n", results[1]); - return -67; - } + if (strcmp ("325834", value) != 0) + { + fprintf (stderr, "Unexpected result (SRID from Auth): %s\n", + results[1]); + return -67; + } sqlite3_free_table (results); /* deleting the odd CRS */ sql = "DELETE FROM spatial_ref_sys WHERE srid = 325834"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -68; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -68; + } + + sqlite3_free (auth); - sqlite3_free(auth); +#ifndef OMIT_PROJ /* only if PROJ is supported */ /* checking AsKML (1) */ - kml1 = sqlite3_mprintf("kml_name_%s", suffix); - kml2 = sqlite3_mprintf("kml_description_%s", suffix); - strcpy(frmt, "%s%s" - "%1.0f,%1.0f" - "0,0 " - "%1.0f,%1.0f"); - strcat(frmt, "" - "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" - "" - "5,5 5,%1.0f %1.0f,%1.0f " - "%1.0f,5 5,5" - ""); - resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION(" - "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " - "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" - ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + kml1 = sqlite3_mprintf ("kml_name_%s", suffix); + kml2 = sqlite3_mprintf ("kml_description_%s", suffix); + strcpy (frmt, "%s%s" + "%1.0f,%1.0f" + "0,0 " + "%1.0f,%1.0f"); + strcat (frmt, "" + "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" + "" + "5,5 5,%1.0f %1.0f,%1.0f " + "%1.0f,5 5,5" + ""); + resvalue = + sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf + ("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION(" + "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " + "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", kml1, + kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -69; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n", rows, columns); - return -70; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -69; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n", + rows, columns); + return -70; + } value = results[1]; - if (strcmp (resvalue, value) != 0) { - fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]); - return -71; - } + if (strcmp (resvalue, value) != 0) + { + fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]); + return -71; + } sqlite3_free_table (results); - sqlite3_free(kml1); - sqlite3_free(kml2); - sqlite3_free(resvalue); + sqlite3_free (kml1); + sqlite3_free (kml2); + sqlite3_free (resvalue); /* checking AsKML (2) */ - kml1 = sqlite3_mprintf("%1.0f", 1e128); - kml2 = sqlite3_mprintf("%2.0f", 2e128); - strcpy(frmt, "%s%s" - "%1.0f,%1.0f,%1.0f" - "0,0,0 " - "%1.0f,%1.0f,%1.0f"); - strcat(frmt, "" - "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0" - "" - "5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f " - "%1.0f,5,0 5,5,0" - ""); - resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ(" - "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " - "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" - ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128); + kml1 = sqlite3_mprintf ("%1.0f", 1e128); + kml2 = sqlite3_mprintf ("%2.0f", 2e128); + strcpy (frmt, "%s%s" + "%1.0f,%1.0f,%1.0f" + "0,0,0 " + "%1.0f,%1.0f,%1.0f"); + strcat (frmt, "" + "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0" + "" + "5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f " + "%1.0f,5,0 5,5,0" + ""); + resvalue = + sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf + ("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ(" + "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " + "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" + ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -72; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n", rows, columns); - return -73; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -72; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n", + rows, columns); + return -73; + } value = results[1]; - if (strcmp (resvalue, value) != 0) { - fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]); - return -74; - } + if (strcmp (resvalue, value) != 0) + { + fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]); + return -74; + } sqlite3_free_table (results); - sqlite3_free(kml1); - sqlite3_free(kml2); - sqlite3_free(resvalue); + sqlite3_free (kml1); + sqlite3_free (kml2); + sqlite3_free (resvalue); + +#endif /* end including PROJ.4 */ /* checking AsGML (1) */ - strcpy(frmt, "" - "%1.0f,%1.0f" - "" - "0,0 %1.0f,%1.0f" - ""); - strcat(frmt, "" - "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" - "" - "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5" - ""); - resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION(" - "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " - "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" - ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128); + strcpy (frmt, + "" + "%1.0f,%1.0f" + "" + "0,0 %1.0f,%1.0f" + ""); + strcat (frmt, + "" + "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" + "" + "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5" + ""); + resvalue = + sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION(" + "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " + "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" + ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -75; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n", rows, columns); - return -76; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -75; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n", + rows, columns); + return -76; + } value = results[1]; - if (strcmp (resvalue, value) != 0) { - fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]); - return -77; - } + if (strcmp (resvalue, value) != 0) + { + fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]); + return -77; + } sqlite3_free_table (results); - sqlite3_free(resvalue); + sqlite3_free (resvalue); /* checking AsGML (2) */ - strcpy(frmt, "" - "%1.0f %1.0f %1.0f" - "" - "0 0 0 " - "%1.0f %1.0f %1.0f" - ""); - strcat(frmt, "" - "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0" - "" - "5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f " - "%1.0f 5 0 5 5 0" - ""); - resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ(" - "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " - "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" - ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128); + strcpy (frmt, + "" + "%1.0f %1.0f %1.0f" + "" + "0 0 0 " + "%1.0f %1.0f %1.0f" + ""); + strcat (frmt, + "" + "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0" + "" + "5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f " + "%1.0f 5 0 5 5 0" + ""); + resvalue = + sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ(" + "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " + "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" + ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -78; - } - if (rows != 1 || columns != 1) { - fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n", rows, columns); - return -79; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -78; + } + if (rows != 1 || columns != 1) + { + fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n", + rows, columns); + return -79; + } value = results[1]; - if (strcmp (resvalue, value) != 0) { - fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]); - return -80; - } + if (strcmp (resvalue, value) != 0) + { + fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]); + return -80; + } sqlite3_free_table (results); - sqlite3_free(resvalue); + sqlite3_free (resvalue); /* checking WKT 2D */ - resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), " - "LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " - "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(" - "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " - "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); + resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), " + "LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " + "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(" + "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " + "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "WKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -81; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (WKT 2D)\n"); - return -82; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string); - return -83; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (WKT 2D)\n"); + return -82; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string); + return -83; + } + free (string); + sqlite3_free (resvalue); /* checking WKT 3D */ - resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), " - "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(" - "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf ("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), " + "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128); + sql = + sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(" + "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "WKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -84; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (WKT 3D)\n"); - return -85; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string); - return -86; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (WKT 3D)\n"); + return -85; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string); + return -86; + } + free (string); + sqlite3_free (resvalue); /* checking WKT M */ - resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), " - "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(" - "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf ("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), " + "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128); + sql = + sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(" + "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "WKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -87; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (WKT M)\n"); - return -88; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (WKT M): %s\n", string); - return -89; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (WKT M)\n"); + return -88; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (WKT M): %s\n", string); + return -89; + } + free (string); + sqlite3_free (resvalue); /* checking WKT 3D M */ - resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), " - "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " - "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " - "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(" - "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " - "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " - "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), " + "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " + "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " + "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(" + "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " + "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " + "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "WKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); return -90; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n"); - return -91; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string); - return -92; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n"); + return -91; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string); + return -92; + } + free (string); + sqlite3_free (resvalue); /* checking EWKT 2D */ - resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," - "LINESTRING(0 0,%1.0f %1.0f)," - "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," - "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION(" - "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " - "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," + "LINESTRING(0 0,%1.0f %1.0f)," + "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," + "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION(" + "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " + "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "EWKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -93; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n"); - return -94; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string); - return -95; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n"); + return -94; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string); + return -95; + } + free (string); + sqlite3_free (resvalue); /* checking EWKT 3D */ - resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f)," - "LINESTRING(0 0 0,%1.0f %1.0f %1.0f)," - "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," - "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ(" - "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f)," + "LINESTRING(0 0 0,%1.0f %1.0f %1.0f)," + "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," + "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ(" + "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "EWKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -96; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n"); - return -97; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string); - return -98; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n"); + return -97; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string); + return -98; + } + free (string); + sqlite3_free (resvalue); /* checking EWKT M */ - resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f)," - "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f)," - "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," - "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM(" - "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f)," + "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f)," + "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," + "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM(" + "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { + { fprintf (stderr, "EWKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -99; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (EWKT M)\n"); - return -100; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (EWKT M): %s\n", string); - return -101; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (EWKT M)\n"); + return -100; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (EWKT M): %s\n", string); + return -101; + } + free (string); + sqlite3_free (resvalue); /* checking EWKT 3D M */ - resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f)," - "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f)," - "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0)," - "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" - "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " - "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " - "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f)," + "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f)," + "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0)," + "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" + "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " + "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " + "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { - fprintf (stderr, "EWKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); + { + fprintf (stderr, "EWKT 3D M: error \"%s\"\n", + sqlite3_errmsg (handle)); return -102; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n"); - return -103; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string); - return -104; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n"); + return -103; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string); + return -104; + } + free (string); + sqlite3_free (resvalue); /* checking WKT Strict */ - resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," - "LINESTRING(0 0,%1.0f %1.0f)," - "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," - "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" - "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " - "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " - "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," + "LINESTRING(0 0,%1.0f %1.0f)," + "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," + "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" + "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " + "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " + "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { - fprintf (stderr, "WKT Strict: error \"%s\"\n", sqlite3_errmsg (handle)); + { + fprintf (stderr, "WKT Strict: error \"%s\"\n", + sqlite3_errmsg (handle)); return -105; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (WKT Strict)\n"); - return -106; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string); - return -107; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (WKT Strict)\n"); + return -106; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string); + return -107; + } + free (string); + sqlite3_free (resvalue); /* checking GeoJSON 2D */ - resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" - "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," - "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]}," - "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]}," - "{\"type\":\"Polygon\",\"coordinates\":" - "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]]," - "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION(" - "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " - "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " - "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" + "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," + "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]}," + "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]}," + "{\"type\":\"Polygon\",\"coordinates\":" + "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]]," + "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION(" + "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " + "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " + "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { - fprintf (stderr, "GeoJSON 2D: error \"%s\"\n", sqlite3_errmsg (handle)); + { + fprintf (stderr, "GeoJSON 2D: error \"%s\"\n", + sqlite3_errmsg (handle)); return -108; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n"); - return -109; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string); - return -110; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n"); + return -109; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string); + return -110; + } + free (string); + sqlite3_free (resvalue); /* checking GeoJSON 3D */ - resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" - "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," - "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]}," - "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]}," - "{\"type\":\"Polygon\",\"coordinates\":" - "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]]," - "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); - sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ(" - "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " - "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " - "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)", - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, - 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + resvalue = + sqlite3_mprintf + ("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" + "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," + "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]}," + "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]}," + "{\"type\":\"Polygon\",\"coordinates\":" + "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]]," + "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); + sql = + sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ(" + "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " + "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " + "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)", + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, + 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); - sqlite3_free(sql); + sqlite3_free (sql); if (ret != SQLITE_OK) - { - fprintf (stderr, "GeoJSON 3D: error \"%s\"\n", sqlite3_errmsg (handle)); + { + fprintf (stderr, "GeoJSON 3D: error \"%s\"\n", + sqlite3_errmsg (handle)); return -111; - } + } string = NULL; while (1) - { + { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) - { + { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) - { - value = (const char *)sqlite3_column_text(stmt, 0); - len = sqlite3_column_bytes(stmt, 0); - string = malloc(len + 1); - strcpy(string, value); - } - } - } + { + value = (const char *) sqlite3_column_text (stmt, 0); + len = sqlite3_column_bytes (stmt, 0); + string = malloc (len + 1); + strcpy (string, value); + } + } + } ret = sqlite3_finalize (stmt); - if (string == NULL) { - fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n"); - return -112; - } - if (strcmp (resvalue, string) != 0) { - fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string); - return -113; - } - free(string); - sqlite3_free(resvalue); + if (string == NULL) + { + fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n"); + return -112; + } + if (strcmp (resvalue, string) != 0) + { + fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string); + return -113; + } + free (string); + sqlite3_free (resvalue); /* checking gaiaDequotedSql */ - resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'"); - if (strcmp(resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0) { - fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue); - return -114; - } - free(resvalue); - - resvalue = gaiaDequotedSql("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\""); - if (strcmp(resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0) { - fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue); - return -115; - } - free(resvalue); - - resvalue = gaiaDequotedSql("abcdefghijkmlnopqrtsuvwyz"); - if (strcmp(resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0) { - fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue); - return -116; - } - free(resvalue); - - resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'"); - if (resvalue != NULL) { - fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue); - return -117; - } - + resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'"); + if (strcmp (resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0) + { + fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue); + return -114; + } + free (resvalue); + + resvalue = gaiaDequotedSql ("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\""); + if (strcmp (resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0) + { + fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue); + return -115; + } + free (resvalue); + + resvalue = gaiaDequotedSql ("abcdefghijkmlnopqrtsuvwyz"); + if (strcmp (resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0) + { + fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue); + return -116; + } + free (resvalue); + + resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'"); + if (resvalue != NULL) + { + fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue); + return -117; + } + /* checking load_shapefile */ - ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326, + ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -118; - } - if (row_count != 2) { - fprintf (stderr, "unexpected row count for load_shapefile: %i\n", row_count); - sqlite3_close(handle); - return -119; - } + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -118; + } + if (row_count != 2) + { + fprintf (stderr, "unexpected row count for load_shapefile: %i\n", + row_count); + sqlite3_close (handle); + return -119; + } /* checking dump_shapefile */ - ret = dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -120; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for shapefile: %i\n", row_count); - sqlite3_close(handle); - return -121; - } + ret = + dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -120; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, "unexpected dump row count for shapefile: %i\n", + row_count); + sqlite3_close (handle); + return -121; + } + +#ifndef OMIT_PROJ /* including PROJ.4 */ /* checking dump_kml */ - ret = dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10); - if (!ret) { - fprintf (stderr, "dump_kml() error: %s\n", err_msg); - sqlite3_close(handle); - return -122; - } - unlink(dumpname); + ret = + dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10); + if (!ret) + { + fprintf (stderr, "dump_kml() error: %s\n", err_msg); + sqlite3_close (handle); + return -122; + } + unlink (dumpname); +#endif /* end including PROJ.4 */ + /* checking dump_geojson */ - ret = dump_geojson(handle, shape, "col1", dumpname, 10, 5); - if (!ret) { - fprintf (stderr, "dump_geojson() error: %s\n", err_msg); - sqlite3_close(handle); - return -123; - } - unlink(dumpname); + ret = dump_geojson (handle, shape, "col1", dumpname, 10, 5); + if (!ret) + { + fprintf (stderr, "dump_geojson() error: %s\n", err_msg); + sqlite3_close (handle); + return -123; + } + unlink (dumpname); /* dropping virtual geometry */ - sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", shape); + sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", shape); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -124; - } - sqlite3_free(shape); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -124; + } + sqlite3_free (shape); /* checking load_dbf */ - ret = load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_dbf() error: %s\n", err_msg); - sqlite3_close(handle); - return -125; - } - if (row_count != 2) { - fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); - sqlite3_close(handle); - return -126; - } + ret = + load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, "load_dbf() error: %s\n", err_msg); + sqlite3_close (handle); + return -125; + } + if (row_count != 2) + { + fprintf (stderr, "unexpected row count for load_dbf: %i\n", + row_count); + sqlite3_close (handle); + return -126; + } /* checking dump_dbf */ ret = dump_dbf (handle, dbf, dumpname, "CP1252", err_msg); - if (!ret) { - fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); - sqlite3_close(handle); - return -127; - } - unlink(dumpname); - sqlite3_free(dbf); + if (!ret) + { + fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); + sqlite3_close (handle); + return -127; + } + unlink (dumpname); + sqlite3_free (dbf); /* checking load_shapefile (2) */ - ret = load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252", 25832, - shape2geom, 0, 1, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg); - sqlite3_close(handle); - return -128; - } - if (row_count != 10) { - fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n", row_count); - sqlite3_close(handle); - return -129; - } - xtable = gaiaDoubleQuotedSql(shape2); - sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " - "VALUES (1250000, 0.1, 'alpha')", xtable); + ret = + load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252", + 25832, shape2geom, 0, 1, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg); + sqlite3_close (handle); + return -128; + } + if (row_count != 10) + { + fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n", + row_count); + sqlite3_close (handle); + return -129; + } + xtable = gaiaDoubleQuotedSql (shape2); + sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " + "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -130; - } - sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " - "VALUES (1250000, 0.1, 'alpha')", xtable); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -130; + } + sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " + "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -131; - } - sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) " - "VALUES (1250000, 0.1, 'alpha')", xtable); - free(xtable); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -131; + } + sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) " + "VALUES (1250000, 0.1, 'alpha')", xtable); + free (xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -132; - } - - remove_duplicated_rows(handle, shape2); - elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem", "mul_id"); - sqlite3_free(shape2); - sqlite3_free(shape2geom); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -132; + } + + remove_duplicated_rows (handle, shape2); + elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem", + "mul_id"); + sqlite3_free (shape2); + sqlite3_free (shape2geom); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -133; - } - - spatialite_cleanup(); - free(suffix); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup_ex (cache); + free (suffix); + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_create.c b/src/spatialite/test/check_create.c index 5ec93e5..602eca5 100644 --- a/src/spatialite/test/check_create.c +++ b/src/spatialite/test/check_create.c @@ -47,84 +47,217 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" +#include "spatialite/gaiaaux.h" -int main (int argc, char *argv[]) +static int +checkCache (void) +{ + int i; + int max = 1024; + void *cache[1024]; + char msg[64]; + const char *m; + + for (i = 0; i < max; i++) + { + cache[i] = spatialite_alloc_connection (); + } + + for (i = 0; i < max; i++) + { + if (cache[i] != NULL) + { + sprintf (msg, "Err%d", i); + gaiaSetGeosErrorMsg_r (cache[i], msg); + sprintf (msg, "Warn%d", i); + gaiaSetGeosWarningMsg_r (cache[i], msg); + sprintf (msg, "Aux%d", i); + gaiaSetGeosAuxErrorMsg_r (cache[i], msg); + } + } + + for (i = 0; i < max; i++) + { + if (cache[i] != NULL) + { + sprintf (msg, "Err%d", i); + m = gaiaGetGeosErrorMsg_r (cache[i]); + if (m == NULL) + { + fprintf (stderr, "unexpected NULL: GeosErrorMsg %d\n", i); + return -200 + i; + } + if (strcmp (m, msg) != 0) + { + fprintf (stderr, "unexpected GeosErrorMsg %d \"%s\"\n", i, + m); + return -300 + i; + } + sprintf (msg, "Warn%d", i); + m = gaiaGetGeosWarningMsg_r (cache[i]); + if (m == NULL) + { + fprintf (stderr, "unexpected NULL: GeosWarningMsg %d\n", + i); + return -400 + i; + } + if (strcmp (m, msg) != 0) + { + fprintf (stderr, + "unexpected GeosWarningErrorMsg %d \"%s\"\n", i, + m); + return -500 + i; + } + sprintf (msg, "Aux%d", i); + m = gaiaGetGeosAuxErrorMsg_r (cache[i]); + if (m == NULL) + { + fprintf (stderr, "unexpected NULL: GeosAuxErrorMsg %d\n", + i); + return -600 + i; + } + if (strcmp (m, msg) != 0) + { + fprintf (stderr, "unexpected GeosAuxErrorMsg %d \"%s\"\n", + i, m); + return -700 + i; + } + } + } + + for (i = 0; i < max; i++) + { + if (cache[i] != NULL) + spatialite_cleanup_ex (cache[i]); + } + return 0; +} + +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; sqlite3_int64 log_pk; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } ret = sqlite3_exec (handle, "SELECT HasProj()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasProj() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -3; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasProj() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } ret = sqlite3_exec (handle, "SELECT HasGeos()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasGeos() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -4; - } - ret = sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -5; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasGeos() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } + ret = + sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -5; + } ret = sqlite3_exec (handle, "SELECT HasIconv()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasIconv() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -6; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasIconv() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -6; + } ret = sqlite3_exec (handle, "SELECT HasMathSql()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasMathSql() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -7; - } - ret = sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -8; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasMathSql() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -7; + } + ret = + sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -8; + } ret = sqlite3_exec (handle, "SELECT HasFreeXL()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasFreeXL() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasFreeXL() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -9; + } ret = sqlite3_exec (handle, "SELECT HasEpsg()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "HasEpsg() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -10; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasEpsg() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -10; + } + ret = sqlite3_exec (handle, "SELECT HasGeosTrunk()", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasGeoTrunk() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -11; + } + ret = sqlite3_exec (handle, "SELECT HasLwGeom()", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasLwGeom() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -12; + } + ret = sqlite3_exec (handle, "SELECT HasLibXml2()", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "HasLibXml2() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -13; + } gaiaInsertIntoSqlLog (handle, "test", "sql_statement_ok", &log_pk); gaiaUpdateSqlLog (handle, log_pk, 1, NULL); @@ -132,12 +265,19 @@ int main (int argc, char *argv[]) gaiaUpdateSqlLog (handle, log_pk, 0, "some error message"); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -11; - } - - spatialite_cleanup(); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -11; + } + + spatialite_cleanup_ex (cache); + + ret = checkCache (); + if (ret != 0) + return ret; + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_createBaseTables.c b/src/spatialite/test/check_createBaseTables.c new file mode 100644 index 0000000..6dc3615 --- /dev/null +++ b/src/spatialite/test/check_createBaseTables.c @@ -0,0 +1,173 @@ +/* + + check_createBaseTables.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_createBaseTables.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -100; + } + + /* check application ID is OK */ + ret = + sqlite3_prepare_v2 (db_handle, "PRAGMA application_id", + strlen ("PRAGMA application_id"), &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -101; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (sqlite3_column_int (stmt, 0) != 0x47503130) + { + fprintf (stderr, "wrong application_id: %i\n", + sqlite3_column_int (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -36; + } + ret = sqlite3_finalize (stmt); + + /* check creation when the tables already exist */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Unexpected duplicate gpkgCreateBaseTables() result: %i, (%s)\n", + ret, err_msg); + return -110; + } + if (strcmp ("table gpkg_spatial_ref_sys already exists", err_msg) != 0) + { + fprintf (stderr, + "Unexpected duplicate gpkgCreateBaseTables() error message: %s\n", + err_msg); + return -111; + } + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_dbf_load.c b/src/spatialite/test/check_dbf_load.c index 09c5567..569dd07 100644 --- a/src/spatialite/test/check_dbf_load.c +++ b/src/spatialite/test/check_dbf_load.c @@ -50,50 +50,72 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory databse: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, "load_dbf() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 2) + { + fprintf (stderr, "unexpected row count for load_dbf: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory databse: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_dbf() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 2) { - fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -5; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -5; + } + + spatialite_cleanup_ex (cache); + +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_dxf.c b/src/spatialite/test/check_dxf.c new file mode 100644 index 0000000..468507c --- /dev/null +++ b/src/spatialite/test/check_dxf.c @@ -0,0 +1,1449 @@ +/* + + check_dxf.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" +#include "spatialite/gg_dxf.h" + +#ifndef OMIT_GEOS /* only if GEOS is enabled */ + +static int +check_22_auto (int cache_mode) +{ +/* testing 22.dxf - pass #1 autoDims */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, NULL, + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"22.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./22.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"22.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_22_2d (int cache_mode) +{ +/* testing 22.dxf - pass #2 force 2D */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_2D, "abdc_", NULL, + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"22.dx\" 2D)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./22.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 2D\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 2D byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 2D append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 2D mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 2D append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_22_3d (int cache_mode) +{ +/* testing 22.dxf - pass #3 force 3D */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_3D, "abdc_", NULL, + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"22.dx\" 3D)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./22.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 3D\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 3D byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 3D append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 3D mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" 3D append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_22_single (int cache_mode) +{ +/* testing 22.dxf - pass #4 single layer */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, "VUOVIA", + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"22.dx\" single)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./22.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"22.dxf\" byLayers single\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" single byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"22.dxf\" single append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" single mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"22.dxf\" single append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_merano (int cache_mode) +{ +/* testing f06.dxf / l02.dxf / p02.dxf [merano samples] */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, + GAIA_DXF_RING_UNLINKED); + if (dxf == NULL) + { + fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./f06.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./f06.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"f06.dxf\" byLayer\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"f06.dxf\" byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"f06.dxf\" append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"f06.dxf\" mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"f06.dxf\" append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + dxf = + gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"l02.dx\")\n"); + return -9; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./l02.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./l02.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"l02.dxf\" byLayer\n"); + return -10; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"l02.dxf\" byLayer\n"); + return -11; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"l02.dxf\" append byLayer\n"); + return -12; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"l02.dxf\" append mixed\n"); + return -13; + } + gaiaDestroyDxfParser (dxf); + + dxf = + gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, + GAIA_DXF_RING_UNLINKED); + if (dxf == NULL) + { + fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); + return -14; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./p05.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./p05.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"p05.dxf\" byLayer\n"); + return -15; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"p05.dxf\" byLayer\n"); + return -16; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"p05.dxf\" append byLayer\n"); + return -17; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"p05.dxf\" mixed\n"); + return -18; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"p05.dxf\" append mixed\n"); + return -19; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -20; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_archaic (int cache_mode) +{ +/* testing archaic.dxf */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, NULL, NULL, + GAIA_DXF_RING_NONE); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"archaic.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./archaic.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./archaic.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"archaic.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"archaic.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"archaic.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"archaic.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"archaic.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_linked (int cache_mode) +{ +/* testing linked.dxf */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./linked.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"linked.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"linked.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"linked.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"linked.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_linked_legacy (int cache_mode) +{ +/* testing linked.dxf - legacy DB */ + int ret; + sqlite3 *handle; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -2; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./linked.dxf"); + if (ret == 0) + { + fprintf (stderr, + "Unable to parse \"linked.dxf\" byLayers auto legacy\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"linked.dxf\" auto byLayer legacy\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"linked.dxf\" auto append byLayer legacy\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed legacy\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"linked.dxf\" auto append mixed legacy\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -10; + } + return 0; +} + +static int +check_hatch (int cache_mode) +{ +/* testing hatch.dxf */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"hatch.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_hatch_legacy (int cache_mode) +{ +/* testing hatch.dxf - legacy DB */ + int ret; + sqlite3 *handle; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -2; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"hatch.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -10; + } + return 0; +} + +static int +check_symbol (int cache_mode) +{ +/* testing symbol.dxf */ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"symbol.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + return 0; +} + +static int +check_symbol_legacy (int cache_mode) +{ +/* testing symbol.dxf - legacy DB */ + int ret; + sqlite3 *handle; + gaiaDxfParserPtr dxf; + void *cache; + if (cache_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); + + ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -2; + } + + if (cache_mode) + spatialite_init_ex (handle, cache, 0); + + dxf = + gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, + GAIA_DXF_RING_LINKED); + if (dxf == NULL) + { + fprintf (stderr, + "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); + return -3; + } + + if (cache_mode) + ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf"); + else + ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); + if (ret == 0) + { + fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); + return -4; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); + return -5; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); + if (ret == 0) + { + fprintf (stderr, + "Unable to load \"symbol.dxf\" auto append byLayer\n"); + return -6; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); + return -7; + } + + ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); + if (ret == 0) + { + fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); + return -8; + } + gaiaDestroyDxfParser (dxf); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + if (cache_mode) + spatialite_cleanup_ex (cache); + else + spatialite_cleanup (); + ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -10; + } + return 0; +} + +#endif /* GEOS enabled */ + +int +main (int argc, char *argv[]) +{ + int cache_mode; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + +#ifndef OMIT_GEOS /* only if GEOS is enabled */ + + for (cache_mode = 0; cache_mode <= 1; cache_mode++) + { + fprintf (stderr, "\n******* Testing DXF in %s cache-mode\n\n", + cache_mode ? "current" : "legacy"); + + if (check_22_auto (cache_mode) != 0) + return -1; + + if (check_22_2d (cache_mode) != 0) + return -2; + + if (check_22_3d (cache_mode) != 0) + return -3; + + if (check_22_single (cache_mode) != 0) + return 4; + + if (check_merano (cache_mode) != 0) + return -5; + + if (check_archaic (cache_mode) != 0) + return -6; + + if (check_linked (cache_mode) != 0) + return -7; + + if (check_linked_legacy (cache_mode) != 0) + return -8; + + if (check_hatch (cache_mode) != 0) + return -9; + + if (check_hatch_legacy (cache_mode) != 0) + return -10; + + if (check_symbol (cache_mode) != 0) + return -11; + + if (check_symbol_legacy (cache_mode) != 0) + return -12; + } + +#endif /* GEOS enabled */ + + spatialite_shutdown (); + return 0; +} diff --git a/src/spatialite/test/check_endian.c b/src/spatialite/test/check_endian.c index bf3b44d..cf40e0e 100644 --- a/src/spatialite/test/check_endian.c +++ b/src/spatialite/test/check_endian.c @@ -46,6 +46,7 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #include "sqlite3.h" +#include "spatialite.h" #include #define LITTLE_ENDIAN_ENCODED 1 @@ -53,7 +54,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #define LITTLE_ENDIAN_ARCH 1 #define BIG_ENDIAN_ARCH 0 -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { unsigned char buf_in[8]; unsigned char buf_out[8]; @@ -63,100 +65,133 @@ int main (int argc, char *argv[]) float flt_val; double dbl_val; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + /* testing short values [16 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xfd; - shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { - fprintf(stderr, "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n", - buf_out[0], buf_out[1]); - return -1; - } - shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { - fprintf(stderr, "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n", - buf_out[0], buf_out[1]); - return -2; - } - shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { - fprintf(stderr, "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n", - buf_out[0], buf_out[1]); - return -3; - } - shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { - fprintf(stderr, "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n", - buf_out[0], buf_out[1]); - return -4; - } - shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { - fprintf(stderr, "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n", - buf_out[0], buf_out[1]); - return -5; - } - shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { - fprintf(stderr, "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n", - buf_out[0], buf_out[1]); - return -6; - } - + shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) + { + fprintf (stderr, + "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n", + buf_out[0], buf_out[1]); + return -1; + } + shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) + { + fprintf (stderr, + "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n", + buf_out[0], buf_out[1]); + return -2; + } + shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) + { + fprintf (stderr, + "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n", + buf_out[0], buf_out[1]); + return -3; + } + shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) + { + fprintf (stderr, + "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n", + buf_out[0], buf_out[1]); + return -4; + } + shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) + { + fprintf (stderr, + "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n", + buf_out[0], buf_out[1]); + return -5; + } + shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) + { + fprintf (stderr, + "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n", + buf_out[0], buf_out[1]); + return -6; + } + /* testing int values [32 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; - int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { - fprintf(stderr, "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -7; - } - int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { - fprintf(stderr, "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -8; - } - int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -9; - } - int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -10; - } - int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -11; - } - int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -12; - } - + int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce + || buf_out[3] != 0xfd) + { + fprintf (stderr, + "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -7; + } + int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce + || buf_out[3] != 0xfd) + { + fprintf (stderr, + "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -8; + } + int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -9; + } + int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -10; + } + int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -11; + } + int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -12; + } + /* testing long values [64 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; @@ -166,109 +201,145 @@ int main (int argc, char *argv[]) buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; - i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || - buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { - fprintf(stderr, "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -13; - } - i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || - buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { - fprintf(stderr, "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -14; - } - i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -15; - } - i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -16; - } - i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -17; - } - i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -18; - } - + i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 + || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a + || buf_out[6] != 0xce || buf_out[7] != 0xfd) + { + fprintf (stderr, + "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -13; + } + i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 + || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a + || buf_out[6] != 0xce || buf_out[7] != 0xfd) + { + fprintf (stderr, + "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -14; + } + i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -15; + } + i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -16; + } + i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -17; + } + i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -18; + } + /* testing float values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; - flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { - fprintf(stderr, "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -19; - } - flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { - fprintf(stderr, "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -20; - } - flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -21; - } - flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -22; - } - flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -23; - } - flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { - fprintf(stderr, "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3]); - return -24; - } - + flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce + || buf_out[3] != 0xfd) + { + fprintf (stderr, + "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -19; + } + flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce + || buf_out[3] != 0xfd) + { + fprintf (stderr, + "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -20; + } + flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -21; + } + flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -22; + } + flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -23; + } + flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec + || buf_out[3] != 0xdf) + { + fprintf (stderr, + "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3]); + return -24; + } + /* testing double values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; @@ -278,60 +349,79 @@ int main (int argc, char *argv[]) buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; - dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || - buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { - fprintf(stderr, "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -25; - } - dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || - buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { - fprintf(stderr, "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -26; - } - dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -27; - } - dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -28; - } - dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -29; - } - dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); - if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || - buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { - fprintf(stderr, "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", - buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], - buf_out[6], buf_out[7]); - return -30; - } - + dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 + || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a + || buf_out[6] != 0xce || buf_out[7] != 0xfd) + { + fprintf (stderr, + "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -25; + } + dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 + || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a + || buf_out[6] != 0xce || buf_out[7] != 0xfd) + { + fprintf (stderr, + "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -26; + } + dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -27; + } + dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -28; + } + dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -29; + } + dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); + if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a + || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 + || buf_out[6] != 0xec || buf_out[7] != 0xdf) + { + fprintf (stderr, + "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", + buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], + buf_out[5], buf_out[6], buf_out[7]); + return -30; + } + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_exif.c b/src/spatialite/test/check_exif.c index c6a35e0..74d1b13 100644 --- a/src/spatialite/test/check_exif.c +++ b/src/spatialite/test/check_exif.c @@ -51,136 +51,139 @@ the terms of any one of the MPL, the GPL or the LGPL. #include -static sqlite3_int64 -get_pixel_x(gaiaExifTagListPtr tag_list, int *ok) +static sqlite3_int64 +get_pixel_x (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageWidth */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) - { - if (tag->TagId == 0xA002) - { - /* ok, this one is the ExifImageWidth tag */ - if (tag->Type == 3 && tag->Count == 1) - { - *ok = 1; - return *(tag->ShortValues + 0); - } - else if (tag->Type == 4 && tag->Count == 1) - { - *ok = 1; - return *(tag->LongValues + 0); - } - } - tag = tag->Next; - } + { + if (tag->TagId == 0xA002) + { + /* ok, this one is the ExifImageWidth tag */ + if (tag->Type == 3 && tag->Count == 1) + { + *ok = 1; + return *(tag->ShortValues + 0); + } + else if (tag->Type == 4 && tag->Count == 1) + { + *ok = 1; + return *(tag->LongValues + 0); + } + } + tag = tag->Next; + } return 0; } -static sqlite3_int64 -get_pixel_y(gaiaExifTagListPtr tag_list, int *ok) +static sqlite3_int64 +get_pixel_y (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageLength */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) - { - if (tag->TagId == 0xA003) - { - /* ok, this one is the ExifImageLength tag */ - if (tag->Type == 3 && tag->Count == 1) - { - *ok = 1; - return *(tag->ShortValues + 0); - } - else if (tag->Type == 4 && tag->Count == 1) - { - *ok = 1; - return *(tag->LongValues + 0); - } - } - tag = tag->Next; - } + { + if (tag->TagId == 0xA003) + { + /* ok, this one is the ExifImageLength tag */ + if (tag->Type == 3 && tag->Count == 1) + { + *ok = 1; + return *(tag->ShortValues + 0); + } + else if (tag->Type == 4 && tag->Count == 1) + { + *ok = 1; + return *(tag->LongValues + 0); + } + } + tag = tag->Next; + } return 0; } -static void -get_make(gaiaExifTagListPtr tag_list, const char **str, int *ok) +static void +get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Make */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) - { - if (tag->TagId == 0x010F) - { - /* ok, this one is the Make tag */ - if (tag->Type == 2) - { - *ok = 1; - *str = tag->StringValue; - return; - } - } - tag = tag->Next; - } + { + if (tag->TagId == 0x010F) + { + /* ok, this one is the Make tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } return; } -static void -get_model(gaiaExifTagListPtr tag_list, const char **str, int *ok) +static void +get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Model */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) - { - if (tag->TagId == 0x0110) - { - /* ok, this one is the Model tag */ - if (tag->Type == 2) - { - *ok = 1; - *str = tag->StringValue; - return; - } - } - tag = tag->Next; - } + { + if (tag->TagId == 0x0110) + { + /* ok, this one is the Model tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } return; } -static void -get_date(gaiaExifTagListPtr tag_list, const char **str, int *ok) +static void +get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Date */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) - { - if (tag->TagId == 0x9003) - { - /* ok, this one is the Make tag */ - if (tag->Type == 2) - { - *ok = 1; - *str = tag->StringValue; - return; - } - } - tag = tag->Next; - } + { + if (tag->TagId == 0x9003) + { + /* ok, this one is the Make tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } return; } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { + int ret; + sqlite3 *handle; FILE *fl; int sz = 0; int rd; @@ -195,375 +198,491 @@ int main (int argc, char *argv[]) gaiaExifTagListPtr tag_list = NULL; double longitude; double latitude; - - spatialite_init (0); - - fl = fopen("sql_stmt_tests/DSC_1467.JPG", "rb"); - if (!fl) { - fprintf(stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n"); - return -1; - } - if (fseek(fl, 0, SEEK_END) == 0) - sz = ftell(fl); - if (sz <= 14) { - fprintf(stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n"); - return -2; - } - - blob = (unsigned char *) malloc(sz); - rewind(fl); - rd = fread(blob, 1, sz, fl); - if (rd != sz) { - fprintf(stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n"); - return -3; - } - - tag_list = gaiaGetExifTags(blob, sz); - if (tag_list == NULL) { - fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n"); - return -4; - } - - val64 = get_pixel_x(tag_list, &ok); - if (!ok) { - fprintf(stderr, "DSC_1467.JPG: PixelX tag not found\n"); - return -5; - } - if (val64 != 2128) { - fprintf(stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n", (int)val64); - return -6; - } - - val64 = get_pixel_y(tag_list, &ok); - if (!ok) { - fprintf(stderr, "DSC_1467.JPG: PixelY tag not found\n"); - return -7; - } - if (val64 != 1416) { - fprintf(stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n", (int)val64); - return -8; - } - - get_make(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSC_1467.JPG: Make tag not found\n"); - return -9; - } - if (strcmp(result, "NIKON CORPORATION") != 0) { - fprintf(stderr, "DSC_1467.JPG: Make unexpected value: %s|\n", result); - return -10; - }; - - get_model(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSC_1467.JPG: Model tag not found\n"); - return -11; - } - if (strcmp(result, "NIKON D700") != 0) { - fprintf(stderr, "DSC_1467.JPG: Model unexpected value: %s|\n", result); - return -12; - }; - - get_date(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSC_1467.JPG: Date tag not found\n"); - return -13; - } - if (strcmp(result, "2011:03:26 11:01:13") != 0) { - fprintf(stderr, "DSC_1467.JPG: Date unexpected value: %s|\n", result); - return -14; - }; - - for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) - { - pT = gaiaGetExifTagByPos(tag_list, i); - if (pT) - { - gaiaExifTagGetName(pT, tag_name, 128); - gaiaExifTagGetValueType(pT); - gaiaIsExifGpsTag(pT); - gaiaExifTagGetValueType(pT); - gaiaExifTagGetNumValues(pT); - gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); - } - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -100; + } + + spatialite_init_ex (handle, cache, 0); + + fl = fopen ("sql_stmt_tests/DSC_1467.JPG", "rb"); + if (!fl) + { + fprintf (stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n"); + return -1; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + if (sz <= 14) + { + fprintf (stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n"); + return -2; + } + + blob = (unsigned char *) malloc (sz); + rewind (fl); + rd = fread (blob, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n"); + return -3; + } + + tag_list = gaiaGetExifTags (blob, sz); + if (tag_list == NULL) + { + fprintf (stderr, + "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n"); + return -4; + } + + val64 = get_pixel_x (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "DSC_1467.JPG: PixelX tag not found\n"); + return -5; + } + if (val64 != 2128) + { + fprintf (stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n", + (int) val64); + return -6; + } + + val64 = get_pixel_y (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "DSC_1467.JPG: PixelY tag not found\n"); + return -7; + } + if (val64 != 1416) + { + fprintf (stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n", + (int) val64); + return -8; + } + + get_make (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSC_1467.JPG: Make tag not found\n"); + return -9; + } + if (strcmp (result, "NIKON CORPORATION") != 0) + { + fprintf (stderr, "DSC_1467.JPG: Make unexpected value: %s|\n", + result); + return -10; + }; + + get_model (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSC_1467.JPG: Model tag not found\n"); + return -11; + } + if (strcmp (result, "NIKON D700") != 0) + { + fprintf (stderr, "DSC_1467.JPG: Model unexpected value: %s|\n", + result); + return -12; + }; + + get_date (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSC_1467.JPG: Date tag not found\n"); + return -13; + } + if (strcmp (result, "2011:03:26 11:01:13") != 0) + { + fprintf (stderr, "DSC_1467.JPG: Date unexpected value: %s|\n", + result); + return -14; + }; + + for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) + { + pT = gaiaGetExifTagByPos (tag_list, i); + if (pT) + { + gaiaExifTagGetName (pT, tag_name, 128); + gaiaExifTagGetValueType (pT); + gaiaIsExifGpsTag (pT); + gaiaExifTagGetValueType (pT); + gaiaExifTagGetNumValues (pT); + gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); + } + } pT = gaiaGetExifTagById (tag_list, 0x0112); - if (pT == NULL) { - fprintf(stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n", result); - return -15; - }; + if (pT == NULL) + { + fprintf (stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n", + result); + return -15; + }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); - if (pT == NULL) { - fprintf(stderr, "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n", result); - return -16; - }; + if (pT == NULL) + { + fprintf (stderr, + "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n", + result); + return -16; + }; for (i = 0x0000; i < 0xffff; i++) - { - gaiaExifTag tag; - tag.Gps = 0; - tag.TagId = i; - gaiaExifTagGetName(&tag, tag_name, 128); - } + { + gaiaExifTag tag; + tag.Gps = 0; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } for (i = 0x0000; i < 0xffff; i++) - { - gaiaExifTag tag; - tag.Gps = 1; - tag.TagId = i; - gaiaExifTagGetName(&tag, tag_name, 128); - } + { + gaiaExifTag tag; + tag.Gps = 1; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } if (blob) - free(blob); + free (blob); if (tag_list) - gaiaExifTagsFree(tag_list); - fclose(fl); - - fl = fopen("sql_stmt_tests/DSCN0042.JPG", "rb"); - if (!fl) { - fprintf(stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n"); - return -100; - } - if (fseek(fl, 0, SEEK_END) == 0) - sz = ftell(fl); - if (sz <= 14) { - fprintf(stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n"); - return -17; - } - - blob = (unsigned char *) malloc(sz); - rewind(fl); - rd = fread(blob, 1, sz, fl); - if (rd != sz) { - fprintf(stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n"); - return -18; - } - - tag_list = gaiaGetExifTags(blob, sz); - if (tag_list == NULL) { - fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n"); - return -19; - } - - val64 = get_pixel_x(tag_list, &ok); - if (!ok) { - fprintf(stderr, "DSCN0042.JPG: PixelX tag not found\n"); - return -20; - } - if (val64 != 640) { - fprintf(stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n", (int)val64); - return -21; - } - - val64 = get_pixel_y(tag_list, &ok); - if (!ok) { - fprintf(stderr, "DSCN0042.JPG: PixelY tag not found\n"); - return -22; - } - if (val64 != 480) { - fprintf(stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n", (int)val64); - return -23; - } - - get_make(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSCN0042.JPG: Make tag not found\n"); - return -24; - } - if (strcmp(result, "NIKON") != 0) { - fprintf(stderr, "DSCN0042.JPG: Make unexpected value: %s|\n", result); - return -25; - }; - - get_model(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSCN0042.JPG: Model tag not found\n"); - return -26; - } - if (strcmp(result, "COOLPIX P6000") != 0) { - fprintf(stderr, "DSCN0042.JPG: Model unexpected value: %s|\n", result); - return -27; - }; - - get_date(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "DSCN0042.JPG: Date tag not found\n"); - return -28; - } - if (strcmp(result, "2008:10:22 17:00:07") != 0) { - fprintf(stderr, "DSCN0042.JPG: Date unexpected value: %s|\n", result); - return -29; - }; - - for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) - { - pT = gaiaGetExifTagByPos(tag_list, i); - if (pT) - { - gaiaExifTagGetName(pT, tag_name, 128); - gaiaExifTagGetValueType(pT); - gaiaIsExifGpsTag(pT); - gaiaExifTagGetValueType(pT); - gaiaExifTagGetNumValues(pT); - gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); - } - } + gaiaExifTagsFree (tag_list); + fclose (fl); + + fl = fopen ("sql_stmt_tests/DSCN0042.JPG", "rb"); + if (!fl) + { + fprintf (stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n"); + return -100; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + if (sz <= 14) + { + fprintf (stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n"); + return -17; + } + + blob = (unsigned char *) malloc (sz); + rewind (fl); + rd = fread (blob, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n"); + return -18; + } + + tag_list = gaiaGetExifTags (blob, sz); + if (tag_list == NULL) + { + fprintf (stderr, + "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n"); + return -19; + } + + val64 = get_pixel_x (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "DSCN0042.JPG: PixelX tag not found\n"); + return -20; + } + if (val64 != 640) + { + fprintf (stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n", + (int) val64); + return -21; + } + + val64 = get_pixel_y (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "DSCN0042.JPG: PixelY tag not found\n"); + return -22; + } + if (val64 != 480) + { + fprintf (stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n", + (int) val64); + return -23; + } + + get_make (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSCN0042.JPG: Make tag not found\n"); + return -24; + } + if (strcmp (result, "NIKON") != 0) + { + fprintf (stderr, "DSCN0042.JPG: Make unexpected value: %s|\n", + result); + return -25; + }; + + get_model (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSCN0042.JPG: Model tag not found\n"); + return -26; + } + if (strcmp (result, "COOLPIX P6000") != 0) + { + fprintf (stderr, "DSCN0042.JPG: Model unexpected value: %s|\n", + result); + return -27; + }; + + get_date (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "DSCN0042.JPG: Date tag not found\n"); + return -28; + } + if (strcmp (result, "2008:10:22 17:00:07") != 0) + { + fprintf (stderr, "DSCN0042.JPG: Date unexpected value: %s|\n", + result); + return -29; + }; + + for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) + { + pT = gaiaGetExifTagByPos (tag_list, i); + if (pT) + { + gaiaExifTagGetName (pT, tag_name, 128); + gaiaExifTagGetValueType (pT); + gaiaIsExifGpsTag (pT); + gaiaExifTagGetValueType (pT); + gaiaExifTagGetNumValues (pT); + gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); + } + } pT = gaiaGetExifTagById (tag_list, 0x0112); - if (pT == NULL) { - fprintf(stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n", result); - return -30; - }; + if (pT == NULL) + { + fprintf (stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n", + result); + return -30; + }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); - if (pT == NULL) { - fprintf(stderr, "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n", result); - return -31; - }; + if (pT == NULL) + { + fprintf (stderr, + "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n", + result); + return -31; + }; for (i = 0x0000; i < 0xffff; i++) - { - gaiaExifTag tag; - tag.Gps = 0; - tag.TagId = i; - gaiaExifTagGetName(&tag, tag_name, 128); - } + { + gaiaExifTag tag; + tag.Gps = 0; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } for (i = 0x0000; i < 0xffff; i++) - { - gaiaExifTag tag; - tag.Gps = 1; - tag.TagId = i; - gaiaExifTagGetName(&tag, tag_name, 128); - } - - if (!gaiaGetGpsLatLong(blob, sz, human, 8192)) { - fprintf(stderr, "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n"); - return -32; - } - if (strcmp(human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0) { - fprintf(stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n", human); - return -33; - }; - if (!gaiaGetGpsLatLong(blob, sz, human, 20)) { - fprintf(stderr, "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n"); - return -34; - } - if (strcmp(human, "N 43.00 27.00 52.04 ") != 0) { - fprintf(stderr, "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n", human); - return -35; - }; - if (!gaiaGetGpsCoords(blob, sz, &longitude, &latitude)) { - fprintf(stderr, "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n"); - return -36; - } - if (longitude != 11.881478 || latitude != 43.464455) { - fprintf(stderr, "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude); - return -37; - }; + { + gaiaExifTag tag; + tag.Gps = 1; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } + + if (!gaiaGetGpsLatLong (blob, sz, human, 8192)) + { + fprintf (stderr, + "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n"); + return -32; + } + if (strcmp (human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0) + { + fprintf (stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n", + human); + return -33; + }; + if (!gaiaGetGpsLatLong (blob, sz, human, 20)) + { + fprintf (stderr, + "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n"); + return -34; + } + if (strcmp (human, "N 43.00 27.00 52.04 ") != 0) + { + fprintf (stderr, + "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n", + human); + return -35; + }; + if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude)) + { + fprintf (stderr, + "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n"); + return -36; + } + if (longitude != 11.881478 || latitude != 43.464455) + { + fprintf (stderr, + "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n", + longitude, latitude); + return -37; + }; if (blob) - free(blob); + free (blob); if (tag_list) - gaiaExifTagsFree(tag_list); - fclose(fl); - - fl = fopen("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb"); - if (!fl) { - fprintf(stderr, "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); - return -50; - } - if (fseek(fl, 0, SEEK_END) == 0) - sz = ftell(fl); - if (sz <= 14) { - fprintf(stderr, "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); - return -51; - } - - blob = (unsigned char *) malloc(sz); - rewind(fl); - rd = fread(blob, 1, sz, fl); - if (rd != sz) { - fprintf(stderr, "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); - return -52; - } - - tag_list = gaiaGetExifTags(blob, sz); - if (tag_list == NULL) { - fprintf(stderr, "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n"); - return -53; - } - - val64 = get_pixel_x(tag_list, &ok); - if (!ok) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX tag not found\n"); - return -54; - } - if (val64 != 1280) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n", (int)val64); - return -55; - } - - val64 = get_pixel_y(tag_list, &ok); - if (!ok) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY tag not found\n"); - return -56; - } - if (val64 != 960) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n", (int)val64); - return -57; - } - - get_make(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make tag not found\n"); - return -58; - } - if (strcmp(result, "Nokia") != 0) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n", result); - return -59; - }; - - get_model(tag_list, &result, &ok); - if (!ok) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model tag not found\n"); - return -60; - } - if (strcmp(result, "6630") != 0) { - fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n", result); - return -61; - }; - - for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) - { - pT = gaiaGetExifTagByPos(tag_list, i); - if (pT) - { - gaiaExifTagGetName(pT, tag_name, 128); - gaiaExifTagGetValueType(pT); - gaiaIsExifGpsTag(pT); - gaiaExifTagGetValueType(pT); - gaiaExifTagGetNumValues(pT); - gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); - } - } + gaiaExifTagsFree (tag_list); + fclose (fl); + + fl = fopen ("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb"); + if (!fl) + { + fprintf (stderr, + "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); + return -50; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + if (sz <= 14) + { + fprintf (stderr, + "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); + return -51; + } + + blob = (unsigned char *) malloc (sz); + rewind (fl); + rd = fread (blob, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, + "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); + return -52; + } + + tag_list = gaiaGetExifTags (blob, sz); + if (tag_list == NULL) + { + fprintf (stderr, + "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n"); + return -53; + } + + val64 = get_pixel_x (tag_list, &ok); + if (!ok) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: PixelX tag not found\n"); + return -54; + } + if (val64 != 1280) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n", + (int) val64); + return -55; + } + + val64 = get_pixel_y (tag_list, &ok); + if (!ok) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: PixelY tag not found\n"); + return -56; + } + if (val64 != 960) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n", + (int) val64); + return -57; + } + + get_make (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: Make tag not found\n"); + return -58; + } + if (strcmp (result, "Nokia") != 0) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n", + result); + return -59; + }; + + get_model (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: Model tag not found\n"); + return -60; + } + if (strcmp (result, "6630") != 0) + { + fprintf (stderr, + "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n", + result); + return -61; + }; + + for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) + { + pT = gaiaGetExifTagByPos (tag_list, i); + if (pT) + { + gaiaExifTagGetName (pT, tag_name, 128); + gaiaExifTagGetValueType (pT); + gaiaIsExifGpsTag (pT); + gaiaExifTagGetValueType (pT); + gaiaExifTagGetNumValues (pT); + gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); + } + } for (i = 0x0000; i < 0xffff; i++) - { - gaiaExifTag tag; - tag.Gps = 0; - tag.TagId = i; - gaiaExifTagGetName(&tag, tag_name, 128); - } + { + gaiaExifTag tag; + tag.Gps = 0; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } if (blob) - free(blob); + free (blob); if (tag_list) - gaiaExifTagsFree(tag_list); - fclose(fl); - - spatialite_cleanup(); - + gaiaExifTagsFree (tag_list); + fclose (fl); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_exif2.c b/src/spatialite/test/check_exif2.c new file mode 100644 index 0000000..fb1f039 --- /dev/null +++ b/src/spatialite/test/check_exif2.c @@ -0,0 +1,411 @@ +/* + + check_exif.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include + +static sqlite3_int64 +get_pixel_x (gaiaExifTagListPtr tag_list, int *ok) +{ +/* trying to retrieve the ExifImageWidth */ + gaiaExifTagPtr tag = tag_list->First; + *ok = 0; + + while (tag) + { + if (tag->TagId == 0xA002) + { + /* ok, this one is the ExifImageWidth tag */ + if (tag->Type == 3 && tag->Count == 1) + { + *ok = 1; + return *(tag->ShortValues + 0); + } + else if (tag->Type == 4 && tag->Count == 1) + { + *ok = 1; + return *(tag->LongValues + 0); + } + } + tag = tag->Next; + } + return 0; +} + +static sqlite3_int64 +get_pixel_y (gaiaExifTagListPtr tag_list, int *ok) +{ +/* trying to retrieve the ExifImageLength */ + gaiaExifTagPtr tag = tag_list->First; + *ok = 0; + + while (tag) + { + if (tag->TagId == 0xA003) + { + /* ok, this one is the ExifImageLength tag */ + if (tag->Type == 3 && tag->Count == 1) + { + *ok = 1; + return *(tag->ShortValues + 0); + } + else if (tag->Type == 4 && tag->Count == 1) + { + *ok = 1; + return *(tag->LongValues + 0); + } + } + tag = tag->Next; + } + return 0; +} + +static void +get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok) +{ +/* trying to retrieve the Make */ + gaiaExifTagPtr tag = tag_list->First; + *ok = 0; + + while (tag) + { + if (tag->TagId == 0x010F) + { + /* ok, this one is the Make tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } + return; +} + +static void +get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok) +{ +/* trying to retrieve the Model */ + gaiaExifTagPtr tag = tag_list->First; + *ok = 0; + + while (tag) + { + if (tag->TagId == 0x0110) + { + /* ok, this one is the Model tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } + return; +} + +static void +get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok) +{ +/* trying to retrieve the Date */ + gaiaExifTagPtr tag = tag_list->First; + *ok = 0; + + while (tag) + { + if (tag->TagId == 0x9003) + { + /* ok, this one is the Make tag */ + if (tag->Type == 2) + { + *ok = 1; + *str = tag->StringValue; + return; + } + } + tag = tag->Next; + } + return; +} + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + FILE *fl; + int sz = 0; + int rd; + int ok; + int i; + char tag_name[128]; + char human[8192]; + gaiaExifTagPtr pT; + sqlite3_int64 val64; + const char *result; + unsigned char *blob = NULL; + gaiaExifTagListPtr tag_list = NULL; + double longitude; + double latitude; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -100; + } + + spatialite_init_ex (handle, cache, 0); + + fl = fopen ("Apple-iPhone-4.jpg", "rb"); + if (!fl) + { + fprintf (stderr, "cannot open EXIF-JPEG image: Apple-iPhone-4.jpg\n"); + return -100; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + if (sz <= 14) + { + fprintf (stderr, + "invalid size EXIF-JPEG image: Apple-iPhone-4.jpg\n"); + return -17; + } + + blob = (unsigned char *) malloc (sz); + rewind (fl); + rd = fread (blob, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error EXIF-JPEG image: Apple-iPhone-4.jpg\n"); + return -18; + } + + tag_list = gaiaGetExifTags (blob, sz); + if (tag_list == NULL) + { + fprintf (stderr, + "cannot extract EXIF tags from JPEG image: Apple-iPhone-4.jpg\n"); + return -19; + } + + val64 = get_pixel_x (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "Apple-iPhone-4.jpg: PixelX tag not found\n"); + return -20; + } + if (val64 != 1296) + { + fprintf (stderr, "Apple-iPhone-4.jpg: PixelX unexpected value: %d\n", + (int) val64); + return -21; + } + + val64 = get_pixel_y (tag_list, &ok); + if (!ok) + { + fprintf (stderr, "Apple-iPhone-4.jpg: PixelY tag not found\n"); + return -22; + } + if (val64 != 968) + { + fprintf (stderr, "Apple-iPhone-4.jpg: PixelY unexpected value: %d\n", + (int) val64); + return -23; + } + + get_make (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Make tag not found\n"); + return -24; + } + if (strcmp (result, "Apple") != 0) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Make unexpected value: %s|\n", + result); + return -25; + }; + + get_model (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Model tag not found\n"); + return -26; + } + if (strcmp (result, "iPhone 4") != 0) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Model unexpected value: %s|\n", + result); + return -27; + }; + + get_date (tag_list, &result, &ok); + if (!ok) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Date tag not found\n"); + return -28; + } + if (strcmp (result, "2011:01:13 14:33:39") != 0) + { + fprintf (stderr, "Apple-iPhone-4.jpg: Date unexpected value: %s|\n", + result); + return -29; + }; + + for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) + { + pT = gaiaGetExifTagByPos (tag_list, i); + if (pT) + { + gaiaExifTagGetName (pT, tag_name, 128); + gaiaExifTagGetValueType (pT); + gaiaIsExifGpsTag (pT); + gaiaExifTagGetValueType (pT); + gaiaExifTagGetNumValues (pT); + gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); + } + } + + pT = gaiaGetExifTagById (tag_list, 0x0112); + if (pT == NULL) + { + fprintf (stderr, + "Apple-iPhone-4.jpg: tag Orientation not found: %s|\n", + result); + return -30; + }; + + for (i = 0x0000; i < 0xffff; i++) + { + gaiaExifTag tag; + tag.Gps = 0; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } + for (i = 0x0000; i < 0xffff; i++) + { + gaiaExifTag tag; + tag.Gps = 1; + tag.TagId = i; + gaiaExifTagGetName (&tag, tag_name, 128); + } + + if (!gaiaGetGpsLatLong (blob, sz, human, 8192)) + { + fprintf (stderr, + "cannot extract GPS coords from JPEG image: Apple-iPhone-4.jpg\n"); + return -32; + } + if (strcmp (human, "N 41.00 51.18 0.00 / E 12.00 29.33 0.00") != 0) + { + fprintf (stderr, + "Apple-iPhone-4.jpg: GPS coords unexpected value: %s|\n", + human); + return -33; + }; + if (!gaiaGetGpsLatLong (blob, sz, human, 18)) + { + fprintf (stderr, + "cannot extract GPS coords(18) from JPEG image: Apple-iPhone-4.jpg\n"); + return -34; + } + if (strcmp (human, "N 41.00 51.18 0.00") != 0) + { + fprintf (stderr, + "Apple-iPhone-4.jpg: GPS coords(18) unexpected value: %s|\n", + human); + return -35; + }; + if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude)) + { + fprintf (stderr, + "cannot extract GPS long/lat from JPEG image: Apple-iPhone-4.jpg\n"); + return -36; + } + if (longitude != 12.488833000 || latitude != 41.853000000) + { + fprintf (stderr, + "Apple-iPhone-4.jpg: GPS long/lat unexpected values: %1.9f %1.9f|\n", + longitude, latitude); + return -37; + }; + + if (blob) + free (blob); + if (tag_list) + gaiaExifTagsFree (tag_list); + fclose (fl); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_extension.c b/src/spatialite/test/check_extension.c index d49b594..05769a3 100644 --- a/src/spatialite/test/check_extension.c +++ b/src/spatialite/test/check_extension.c @@ -55,7 +55,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; char *sql_statement; @@ -65,110 +66,228 @@ int main (int argc, char *argv[]) int rows; int columns; - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + sqlite3_enable_load_extension (db_handle, 1); - -#if defined(_WIN32) || defined(__APPLE__) -#ifdef __APPLE__ /* Mac Os X */ - asprintf(&sql_statement, "SELECT load_extension('libspatialite.dylib')"); -#else /* Windows */ - asprintf(&sql_statement, "SELECT load_extension('libspatialite.dll')"); -#endif -#else /* neither Mac nor Windows: may be Linux or Unix */ - asprintf(&sql_statement, "SELECT load_extension('libspatialite.so')"); -#endif + + asprintf (&sql_statement, "SELECT load_extension('mod_spatialite')"); + ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "load_extension() error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - - asprintf(&sql_statement, "SELECT spatialite_version()"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: spatialite_version() bad result: %i/%i.\n", rows, columns); - return -11; - } - if (strcmp(results[1], VERSION) != 0) { - fprintf (stderr, "Unexpected error: spatialite_version() bad result: %s.\n", results[1]); - return -12; - } + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "load_extension() error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + + asprintf (&sql_statement, "SELECT spatialite_version()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: spatialite_version() bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcmp (results[1], VERSION) != 0) + { + fprintf (stderr, + "Unexpected error: spatialite_version() bad result: %s.\n", + results[1]); + return -12; + } + sqlite3_free_table (results); + + asprintf (&sql_statement, "SELECT geos_version()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error2: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } + +#ifndef OMIT_GEOS /* only if GEOS is supported */ + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: geos_version() bad result: %i/%i.\n", + rows, columns); + return -14; + } + /* we tolerate any string here, because versions always change */ + if (strlen (results[1]) == 0) + { + fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); + return -15; + } +#else /* GEOS is not supported */ + /* in this case we expect a NULL */ + if (results[1] != NULL) + { + fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); + return -15; + } +#endif /* end GEOS conditional */ sqlite3_free_table (results); - asprintf(&sql_statement, "SELECT geos_version()"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error2: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } - -#ifndef OMIT_GEOS /* only if GEOS is supported */ - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: geos_version() bad result: %i/%i.\n", rows, columns); - return -14; - } + asprintf (&sql_statement, "SELECT proj4_version()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error3: %s\n", err_msg); + sqlite3_free (err_msg); + return -16; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: proj4_version() bad result: %i/%i.\n", + rows, columns); + return -17; + } + +#ifndef OMIT_PROJ /* only if PROJ is supported */ /* we tolerate any string here, because versions always change */ - if (strlen(results[1]) == 0) { - fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); - return -15; - } + if (strlen (results[1]) == 0) + { + fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); + return -18; + } +#else /* PROJ is not supported */ + /* in this case we expect a NULL */ + if (results[1] != NULL) + { + fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); + return -19; + } +#endif /* end PROJ conditional */ + sqlite3_free_table (results); + + asprintf (&sql_statement, "SELECT spatialite_target_cpu()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error4: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: spatialite_target_cpu() bad result: %i/%i.\n", + rows, columns); + return -21; + } sqlite3_free_table (results); -#else /* GEOS is not supported */ + + asprintf (&sql_statement, "SELECT lwgeom_version()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error5: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: lwgeom_version() bad result: %i/%i.\n", + rows, columns); + return -23; + } + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ + /* we tolerate any string here, because versions always change */ + if (strlen (results[1]) == 0) + { + fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n"); + return -24; + } +#else /* LWGEOM is not supported */ /* in this case we expect a NULL */ - if (results[1] != NULL) { - fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); - return -15; - } -#endif /* end GEOS conditional */ - - - asprintf(&sql_statement, "SELECT proj4_version()"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error3: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: proj4_version() bad result: %i/%i.\n", rows, columns); - return -14; - } - -#ifndef OMIT_PROJ /* only if PROJ is supported */ + if (results[1] != NULL) + { + fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n"); + return -25; + } +#endif /* end LWGEOM conditional */ + sqlite3_free_table (results); + + asprintf (&sql_statement, "SELECT libxml2_version()"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error6: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: libxml2_version() bad result: %i/%i.\n", + rows, columns); + return -27; + } + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* we tolerate any string here, because versions always change */ - if (strlen(results[1]) == 0) { - fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); - return -15; - } -#else /* PROJ is not supported */ + if (strlen (results[1]) == 0) + { + fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n"); + return -28; + } +#else /* LIBXML2 is not supported */ /* in this case we expect a NULL */ - if (results[1] != NULL) { - fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); - return -15; - } -#endif /* end PROJ conditional */ + if (results[1] != NULL) + { + fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n"); + return -29; + } +#endif /* end LIBXML2 conditional */ + sqlite3_free_table (results); - sqlite3_free_table (results); sqlite3_close (db_handle); - spatialite_cleanup(); - + spatialite_cleanup (); + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_extra_relations_fncts.c b/src/spatialite/test/check_extra_relations_fncts.c index 8aa02ca..ee5c59a 100644 --- a/src/spatialite/test/check_extra_relations_fncts.c +++ b/src/spatialite/test/check_extra_relations_fncts.c @@ -54,183 +54,212 @@ the terms of any one of the MPL, the GPL or the LGPL. static const double double_eps = 0.00000001; -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int result; int returnValue = 0; gaiaRingPtr interior; - + /* Common setup */ - gaiaLinestringPtr linestr1 = gaiaAllocLinestring(0); - gaiaLinestringPtr linestr2 = gaiaAllocLinestring(0); - gaiaPolygonPtr poly1 = gaiaAllocPolygon(0, 0); - gaiaPolygonPtr poly2 = gaiaAllocPolygon(0, 0); - + gaiaLinestringPtr linestr1 = gaiaAllocLinestring (0); + gaiaLinestringPtr linestr2 = gaiaAllocLinestring (0); + gaiaPolygonPtr poly1 = gaiaAllocPolygon (0, 0); + gaiaPolygonPtr poly2 = gaiaAllocPolygon (0, 0); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + /* Tests start here */ - + /* zero length linestring */ - result = gaiaLinestringEquals(linestr1, linestr2); - if (result != 1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -1; - goto exit; - } - + result = gaiaLinestringEquals (linestr1, linestr2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -1; + goto exit; + } + /* non-matching linestring lengths */ gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); - linestr1 = gaiaAllocLinestring(2); - linestr2 = gaiaAllocLinestring(3); - gaiaSetPoint(linestr1->Coords, 0, 1, 3); /* line1, first point */ - gaiaSetPoint(linestr1->Coords, 1, 2, 4); /* line1, second point */ - gaiaSetPoint(linestr2->Coords, 0, 4, -2); /* line2, first point */ - gaiaSetPoint(linestr2->Coords, 1, 1, 5); /* line2, second point */ - gaiaSetPoint(linestr2->Coords, 2, 3, 4); /* line2, third point */ - result = gaiaLinestringEquals(linestr1, linestr2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -2; - goto exit; - } - + linestr1 = gaiaAllocLinestring (2); + linestr2 = gaiaAllocLinestring (3); + gaiaSetPoint (linestr1->Coords, 0, 1, 3); /* line1, first point */ + gaiaSetPoint (linestr1->Coords, 1, 2, 4); /* line1, second point */ + gaiaSetPoint (linestr2->Coords, 0, 4, -2); /* line2, first point */ + gaiaSetPoint (linestr2->Coords, 1, 1, 5); /* line2, second point */ + gaiaSetPoint (linestr2->Coords, 2, 3, 4); /* line2, third point */ + result = gaiaLinestringEquals (linestr1, linestr2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -2; + goto exit; + } + /* identical lines */ gaiaFreeLinestring (linestr2); - linestr2 = gaiaCloneLinestring(linestr1); - result = gaiaLinestringEquals(linestr1, linestr2); - if (result != 1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -3; - goto exit; - } - + linestr2 = gaiaCloneLinestring (linestr1); + result = gaiaLinestringEquals (linestr1, linestr2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -3; + goto exit; + } + /* not quite identical lines */ - gaiaSetPoint(linestr2->Coords, 1, 2, -4); - result = gaiaLinestringEquals(linestr1, linestr2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -4; - goto exit; - } - + gaiaSetPoint (linestr2->Coords, 1, 2, -4); + result = gaiaLinestringEquals (linestr1, linestr2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -4; + goto exit; + } + /* zero length polygon */ - result = gaiaPolygonEquals(poly1, poly2); - if (result != 1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -5; - goto exit; - } - + result = gaiaPolygonEquals (poly1, poly2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -5; + goto exit; + } + /* matching polygons */ gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); - poly1 = gaiaAllocPolygon(5, 0); - gaiaSetPoint(poly1->Exterior->Coords, 0, 0, 0); - gaiaSetPoint(poly1->Exterior->Coords, 1, 10, 0); - gaiaSetPoint(poly1->Exterior->Coords, 2, 10, 10); - gaiaSetPoint(poly1->Exterior->Coords, 3, 0, 10); - gaiaSetPoint(poly1->Exterior->Coords, 4, 0, 0); - poly2 = gaiaClonePolygon(poly1); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -6; - goto exit; - } - + poly1 = gaiaAllocPolygon (5, 0); + gaiaSetPoint (poly1->Exterior->Coords, 0, 0, 0); + gaiaSetPoint (poly1->Exterior->Coords, 1, 10, 0); + gaiaSetPoint (poly1->Exterior->Coords, 2, 10, 10); + gaiaSetPoint (poly1->Exterior->Coords, 3, 0, 10); + gaiaSetPoint (poly1->Exterior->Coords, 4, 0, 0); + poly2 = gaiaClonePolygon (poly1); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -6; + goto exit; + } + /* not quite matching polygons */ - gaiaSetPoint(poly2->Exterior->Coords, 2, 10, -10); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -7; - goto exit; - } - + gaiaSetPoint (poly2->Exterior->Coords, 2, 10, -10); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -7; + goto exit; + } + /* polygons with different numbers of interiors */ gaiaFreePolygon (poly2); - poly2 = gaiaAllocPolygon(5, 1); - gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); - gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); - gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); - gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10); - gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0); - interior = gaiaAddInteriorRing(poly2, 0, 4); - gaiaSetPoint(interior->Coords, 0, 1, 1); - gaiaSetPoint(interior->Coords, 1, 3, 2); - gaiaSetPoint(interior->Coords, 2, 3, 1); - gaiaSetPoint(interior->Coords, 3, 1, 1); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -8; - goto exit; - } - + poly2 = gaiaAllocPolygon (5, 1); + gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); + gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); + gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); + gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10); + gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0); + interior = gaiaAddInteriorRing (poly2, 0, 4); + gaiaSetPoint (interior->Coords, 0, 1, 1); + gaiaSetPoint (interior->Coords, 1, 3, 2); + gaiaSetPoint (interior->Coords, 2, 3, 1); + gaiaSetPoint (interior->Coords, 3, 1, 1); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -8; + goto exit; + } + /* same exteriors and interiors */ gaiaFreePolygon (poly1); - poly1 = gaiaClonePolygon(poly2); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -9; - goto exit; - } - + poly1 = gaiaClonePolygon (poly2); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -9; + goto exit; + } + /* slightly different interiors */ - gaiaSetPoint(interior->Coords, 2, 3, 3); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -10; - goto exit; - } + gaiaSetPoint (interior->Coords, 2, 3, 3); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -10; + goto exit; + } /* different number of exterior points */ - gaiaFreePolygon(poly2); - poly2 = gaiaAllocPolygon(4, 1); - gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); - gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); - gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); - gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 0); - interior = gaiaAddInteriorRing(poly2, 0, 4); - gaiaSetPoint(interior->Coords, 0, 1, 1); - gaiaSetPoint(interior->Coords, 1, 3, 2); - gaiaSetPoint(interior->Coords, 2, 3, 1); - gaiaSetPoint(interior->Coords, 3, 1, 1); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -11; - goto exit; - } - + gaiaFreePolygon (poly2); + poly2 = gaiaAllocPolygon (4, 1); + gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); + gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); + gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); + gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 0); + interior = gaiaAddInteriorRing (poly2, 0, 4); + gaiaSetPoint (interior->Coords, 0, 1, 1); + gaiaSetPoint (interior->Coords, 1, 3, 2); + gaiaSetPoint (interior->Coords, 2, 3, 1); + gaiaSetPoint (interior->Coords, 3, 1, 1); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -11; + goto exit; + } + /* same exterior points, but different number of points on first interior */ gaiaFreePolygon (poly2); - poly2 = gaiaAllocPolygon(5, 1); - gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); - gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); - gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); - gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10); - gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0); - interior = gaiaAddInteriorRing(poly2, 0, 5); - gaiaSetPoint(interior->Coords, 0, 1, 1); - gaiaSetPoint(interior->Coords, 1, 3, 2); - gaiaSetPoint(interior->Coords, 2, 3, 3); - gaiaSetPoint(interior->Coords, 3, 1, 3); - gaiaSetPoint(interior->Coords, 4, 1, 1); - result = gaiaPolygonEquals(poly1, poly2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -12; - goto exit; - } - + poly2 = gaiaAllocPolygon (5, 1); + gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); + gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); + gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); + gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10); + gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0); + interior = gaiaAddInteriorRing (poly2, 0, 5); + gaiaSetPoint (interior->Coords, 0, 1, 1); + gaiaSetPoint (interior->Coords, 1, 3, 2); + gaiaSetPoint (interior->Coords, 2, 3, 3); + gaiaSetPoint (interior->Coords, 3, 1, 3); + gaiaSetPoint (interior->Coords, 4, 1, 1); + result = gaiaPolygonEquals (poly1, poly2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -12; + goto exit; + } + /* Cleanup and exit */ -exit: + exit: gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); - + + spatialite_shutdown (); return returnValue; } diff --git a/src/spatialite/test/check_fdo1.c b/src/spatialite/test/check_fdo1.c index cae3399..9e7c0e8 100644 --- a/src/spatialite/test/check_fdo1.c +++ b/src/spatialite/test/check_fdo1.c @@ -42,6 +42,7 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #include +#include #include #include @@ -56,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #endif -int main (int argc, char *argv[]) +static int +do_test (int legacy_mode) { -#ifndef OMIT_GEOS /* only if GEOS is supported */ +#ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; @@ -67,359 +69,519 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = NULL; + if (!legacy_mode) + cache = spatialite_alloc_connection (); + else + spatialite_init (0); - spatialite_init (0); - ret = sqlite3_open_v2 ("sql_stmt_tests/testFDO.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open testFDO.sqlite db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1000; - } + ret = system ("cp sql_stmt_tests/testFDO.sqlite testFDO.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy testFDO.sqlite database\n"); + return -1001; + } + + ret = + sqlite3_open_v2 ("testFDO.sqlite", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open testFDO.sqlite db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1000; + } + + if (!legacy_mode) + spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -1; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -1; + } /* testing aggregate Union() PointZ WKT "p02" */ sql = "SELECT AsText(ST_Union(WKT_GEOMETRY)) FROM fdo_p02"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -3; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -4; - } - if (strcmp(results[1], "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)") != 0) { - fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); - return -5; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -3; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -4; + } + if (strcmp + (results[1], + "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)") + != 0) + { + fprintf (stderr, "Unexpected error: invalid result %s\n", results[1]); + return -5; + } sqlite3_free_table (results); /* testing aggregate Union() PointZ WKB "p03" */ - sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3"; + sql = + "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -7; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -8; - } - if (strcmp(results[1], "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)") != 0) { - fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -7; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -8; + } + if (strcmp + (results[1], + "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)") + != 0) + { + fprintf (stderr, "Unexpected error: invalid result |%s|\n", + results[1]); + return -9; + } sqlite3_free_table (results); /* testing aggregate Union() PointZ SpatiaLite "p05" */ - sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3"; + sql = + "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -11; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result |%s|\n", results[1]); - return -12; - } - if (strcmp(results[1], "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)") != 0) { - fprintf (stderr, "Unexpected error: invalid result b|%s|\n", results[1]); - return -13; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -11; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result %s\n", results[1]); + return -12; + } + if (strcmp + (results[1], + "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)") + != 0) + { + fprintf (stderr, "Unexpected error: invalid result b|%s|\n", + results[1]); + return -13; + } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKT "l05" */ sql = "SELECT Sum(GLength(WKT_GEOMETRY)) FROM fdo_l05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -15; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -16; - } - if (strncmp(results[1], "59.417763", 9) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -17; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -15; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -16; + } + if (strncmp (results[1], "59.417763", 9) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -17; + } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKB "l06" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -19; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -20; - } - if (strncmp(results[1], "273.076064", 10) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -21; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -19; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -20; + } + if (strncmp (results[1], "273.076064", 10) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -21; + } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ SpatiaLite "l07" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l07"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -23; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -24; - } - if (strncmp(results[1], "219.459808", 10) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -25; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -23; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -24; + } + if (strncmp (results[1], "219.459808", 10) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -25; + } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKT "f04" */ sql = "SELECT Sum(Area(WKT_GEOMETRY)) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -26; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -27; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -28; - } - if (strncmp(results[1], "9960.931239", 11) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -29; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -27; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -28; + } + if (strncmp (results[1], "9960.931239", 11) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -29; + } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKB "f05" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -31; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -32; - } - if (strncmp(results[1], "69972.113393", 12) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -33; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -31; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -32; + } + if (strncmp (results[1], "69972.113393", 12) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -33; + } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ SpatiaLite "f06" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -35; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -36; - } - if (strncmp(results[1], "1125.064396", 11) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -37; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -35; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -36; + } + if (strncmp (results[1], "1125.064396", 11) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -37; + } sqlite3_free_table (results); /* testing IsValid() LinestringZ WKB "l06" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -38; - } - if ((rows != 12) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -39; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } + if ((rows != 12) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -39; + } for (i = 1; i <= rows; i++) - { - if (results[i] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -40; - } - if (strcmp(results[i], "0") == 0) { - const char *geos_msg = gaiaGetGeosErrorMsg(); - if (strlen(geos_msg) == 0) - geos_msg = gaiaGetGeosWarningMsg(); - if (strlen(geos_msg) == 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -41; - } - } - } + { + if (results[i] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -40; + } + if (strcmp (results[i], "0") == 0) + { + const char *geos_msg; + if (legacy_mode) + geos_msg = gaiaGetGeosErrorMsg (); + else + geos_msg = gaiaGetGeosErrorMsg_r (cache); + if (geos_msg == NULL) + { + if (legacy_mode) + geos_msg = gaiaGetGeosWarningMsg (); + else + geos_msg = gaiaGetGeosWarningMsg_r (cache); + } + if (geos_msg == NULL) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -41; + } + } + } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKT "f04" */ sql = "SELECT IsValid(WKT_GEOMETRY) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -42; - } - if ((rows != 16) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -43; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -42; + } + if ((rows != 16) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -43; + } for (i = 1; i <= rows; i++) - { - if (results[i] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -44; - } - if (strcmp(results[i], "0") == 0) { - const char *geos_msg = gaiaGetGeosErrorMsg(); - if (strlen(geos_msg) == 0) - geos_msg = gaiaGetGeosWarningMsg(); - if (strlen(geos_msg) == 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -45; - } - } - } + { + if (results[i] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -44; + } + if (strcmp (results[i], "0") == 0) + { + const char *geos_msg; + if (legacy_mode) + geos_msg = gaiaGetGeosErrorMsg (); + else + geos_msg = gaiaGetGeosErrorMsg_r (cache); + if (geos_msg == NULL) + { + if (legacy_mode) + geos_msg = gaiaGetGeosWarningMsg (); + else + geos_msg = gaiaGetGeosWarningMsg_r (cache); + } + if (geos_msg == NULL) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -45; + } + } + } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKB "f05" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } - if ((rows != 13) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -47; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } + if ((rows != 13) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -47; + } for (i = 1; i <= rows; i++) - { - if (results[i] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -48; - } - if (strcmp(results[i], "0") == 0) { - const char *geos_msg = gaiaGetGeosErrorMsg(); - if (strlen(geos_msg) == 0) - geos_msg = gaiaGetGeosWarningMsg(); - if (strlen(geos_msg) == 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -49; - } - } - } + { + if (results[i] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -48; + } + if (strcmp (results[i], "0") == 0) + { + const char *geos_msg; + if (legacy_mode) + geos_msg = gaiaGetGeosErrorMsg (); + else + geos_msg = gaiaGetGeosErrorMsg_r (cache); + if (geos_msg == NULL) + { + if (legacy_mode) + geos_msg = gaiaGetGeosWarningMsg (); + else + geos_msg = gaiaGetGeosWarningMsg_r (cache); + } + if (geos_msg == NULL) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -49; + } + } + } sqlite3_free_table (results); /* testing DOUBLE and TEXT columns */ sql = "SELECT datum, hoehe FROM fdo_p05 WHERE OGC_FID = 5"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -50; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -51; - } - if (results[2] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -52; - } - if (strcmp(results[2], "1997/03/07") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -53; - } - if (results[3] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -54; - } - if (strcmp(results[3], "277.55") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -54; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -50; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -51; + } + if (results[2] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -52; + } + if (strcmp (results[2], "1997/03/07") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -53; + } + if (results[3] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -54; + } + if (strcmp (results[3], "277.55") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -54; + } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -56; - } - - spatialite_cleanup(); -#endif /* end GEOS conditional */ - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -56; + } + + spatialite_cleanup_ex (cache); + ret = unlink ("testFDO.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove testFDO database\n"); + return -57; + } +#endif /* end GEOS conditional */ + + return 0; +} + +int +main (int argc, char *argv[]) +{ + int ret; + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + fprintf (stderr, "********* testing in current mode\n"); + ret = do_test (0); + if (ret != 0) + return ret; + + fprintf (stderr, "********* testing in legacy mode\n"); + ret = do_test (1); + if (ret != 0) + return ret; + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_fdo2.c b/src/spatialite/test/check_fdo2.c index d8f1e9c..219975c 100644 --- a/src/spatialite/test/check_fdo2.c +++ b/src/spatialite/test/check_fdo2.c @@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -57,825 +58,981 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } /* creating a Point 2D WKT table */ sql = "CREATE TABLE pt_2d_wkt (id INTEGER, name TEXT, value DOUBLE)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkt', 'g', -1, 1, 2, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } /* creating a Point 3D WKT table */ sql = "CREATE TABLE pt_3d_wkt (id INTEGER, pic1 BLOB, pic2 BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkt', 'g', -1, 1, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } /* creating a Point 2D WKB table */ sql = "CREATE TABLE pt_2d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkb', 'g', -1, 1, 2, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -8; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkb', 'g', -1, 1, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_spl (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - sql = "SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -11; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + sql = + "SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } /* creating a Linestring 3D WKT table */ sql = "CREATE TABLE ln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkt', 'g', -1, 2, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } /* creating a Linestring 3D WKB table */ sql = "CREATE TABLE ln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkb', 'g', -1, 2, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -15; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } /* creating a Polygon 3D WKT table */ sql = "CREATE TABLE pg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -16; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -16; + } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkt', 'g', -1, 3, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -17; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } /* creating a Polygon 3D WKB table */ sql = "CREATE TABLE pg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkb', 'g', -1, 3, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -19; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -19; + } /* creating a MultiPoint 3D WKT table */ sql = "CREATE TABLE mpt_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -20; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } /* creating a MultiPoint 3D WKB table */ sql = "CREATE TABLE mpt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkb', 'g', -1, 4, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } /* creating a MultiLinestring 3D WKT table */ sql = "CREATE TABLE mln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkt', 'g', -1, 5, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } /* creating a MultiLinestring 3D WKB table */ sql = "CREATE TABLE mln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -26; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkb', 'g', -1, 5, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -27; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -27; + } /* creating a MultiPolygon 3D WKT table */ sql = "CREATE TABLE mpg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -28; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -28; + } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkt', 'g', -1, 6, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } /* creating a MultiPolygon 3D WKB table */ sql = "CREATE TABLE mpg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkb', 'g', -1, 6, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -31; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } /* creating a GeometryCollection 3D WKT table */ sql = "CREATE TABLE gcoll_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -32; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -32; + } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkt', 'g', -1, 7, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -33; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } /* creating a GeometryCollection 3D WKB table */ sql = "CREATE TABLE gcoll_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkb', 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -36; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -36; + } /* Inserting into pt_2d_wkt */ - sql = "INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))"; + sql = + "INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -37; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -37; + } /* Updating pt_2d_wkt */ - sql = "UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; + sql = + "UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -38; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } /* Deleting form pt_2d_wkt */ sql = "DELETE FROM fdo_pt_2d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -39; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } /* Inserting into pt_3d_wkt */ - sql = "INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))"; + sql = + "INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -40; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -40; + } /* Updating pt_3d_wkt */ - sql = "UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; + sql = + "UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -41; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -41; + } /* Inserting into pt_2d_wkb */ - sql = "INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))"; + sql = + "INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -42; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -42; + } /* Updating pt_2d_wkb */ - sql = "UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; + sql = + "UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -43; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -43; + } /* Inserting into pt_3d_wkb */ - sql = "INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; + sql = + "INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -44; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -44; + } /* Updating pt_3d_wkb */ - sql = "UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; + sql = + "UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } /* Inserting into pt_3d_spl */ - sql = "INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; + sql = + "INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } /* Updating pt_3d_spl */ - sql = "UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; + sql = + "UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } /* Inserting into ln_3d_wkt */ - sql = "INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; + sql = + "INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } /* Inserting into ln_3d_wkb */ - sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; + sql = + "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -49; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -49; + } /* Inserting into ln_3d_wkb */ - sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))"; + sql = + "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -50; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -50; + } /* Inserting into ln_3d_wkb */ - sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))"; + sql = + "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -51; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -51; + } /* Inserting into ln_3d_wkb */ - sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))"; + sql = + "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -52; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -52; + } /* Inserting into pg_3d_wkt */ - sql = "INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; + sql = + "INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -53; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -53; + } /* Inserting into pg_3d_wkb */ - sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; + sql = + "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } /* Inserting into pg_3d_wkb */ - sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))"; + sql = + "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } /* Inserting into pg_3d_wkb */ - sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))"; + sql = + "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -56; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -56; + } /* Inserting into pg_3d_wkb */ - sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))"; + sql = + "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -57; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -57; + } /* Inserting into mpt_3d_wkt */ - sql = "INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; + sql = + "INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -58; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -58; + } /* Inserting into mpt_3d_wkb */ - sql = "INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; + sql = + "INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -59; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -59; + } /* Inserting into mln_3d_wkt */ - sql = "INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; + sql = + "INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -60; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -60; + } /* Inserting into mln_3d_wkb */ - sql = "INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; + sql = + "INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -61; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -61; + } /* Inserting into mpg_3d_wkt */ - sql = "INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; + sql = + "INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -62; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -62; + } /* Inserting into mpg_3d_wkb */ - sql = "INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; + sql = + "INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -63; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -63; + } /* Inserting into gcoll_3d_wkt */ - sql = "INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; + sql = + "INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -64; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -64; + } /* Inserting into gcoll_3d_wkb */ - sql = "INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; + sql = + "INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -65; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -65; + } /* checking MultiPoint 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpt_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -66; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -67; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -68; - } - if (strcmp(results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -69; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -67; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -68; + } + if (strcmp (results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -69; + } sqlite3_free_table (results); /* checking MultiLinestring 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mln_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -70; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -71; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -72; - } - if (strcmp(results[1], "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -73; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -70; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -71; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -72; + } + if (strcmp + (results[1], + "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -73; + } sqlite3_free_table (results); /* checking MultiPolygon 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpg_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -74; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -75; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -76; - } - if (strcmp(results[1], "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -77; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -74; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -75; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -76; + } + if (strcmp + (results[1], + "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") + != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -77; + } sqlite3_free_table (results); /* checking GeometryCollection 3D WKT */ sql = "SELECT AsText(g) FROM fdo_gcoll_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -78; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -79; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -80; - } - if (strcmp(results[1], "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -81; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -78; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -79; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -80; + } + if (strcmp + (results[1], + "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") + != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -81; + } sqlite3_free_table (results); /* dropping an FDO virtual table */ sql = "DROP TABLE fdo_mpt_3d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -82; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -82; + } /* discarding an FDO Geometry column */ sql = "SELECT DiscardFDOGeometryColumn('fdo_mpt_3d_wkt', 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -83; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -83; + } sql = "SELECT DiscardFDOGeometryColumn(1, 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -84; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -84; + } sql = "SELECT DiscardFDOGeometryColumn('mpt_3d_wkt', 2)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -85; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -85; + } /* recovering an FDO Geometry column */ sql = "SELECT RecoverFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -86; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -86; + } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -66; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } sql = "SELECT AddFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -67; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -67; + } sql = "SELECT AddFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -68; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -68; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -69; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -69; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -70; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -70; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -71; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -71; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -72; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -72; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -73; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -73; + } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -74; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -74; + } sql = "SELECT RecoverFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -75; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -75; + } sql = "SELECT RecoverFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -76; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -76; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -77; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -77; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -78; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -78; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -79; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -79; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -80; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -80; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -81; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -81; + } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -82; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -82; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -83; - } - - spatialite_cleanup(); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -83; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_fdo3.c b/src/spatialite/test/check_fdo3.c index 1d15ce5..a85c30e 100644 --- a/src/spatialite/test/check_fdo3.c +++ b/src/spatialite/test/check_fdo3.c @@ -42,6 +42,7 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #include +#include #include #include @@ -56,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_GEOS /* only if GEOS is supported */ +#ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; @@ -66,107 +68,151 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; - - spatialite_init (0); - ret = sqlite3_open_v2 ("sql_stmt_tests/testFGF.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open testFDO.sqlite db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1000; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = system ("cp sql_stmt_tests/testFGF.sqlite testFGF.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy testFGF.sqlite database\n"); + return -1001; + } + ret = + sqlite3_open_v2 ("testFGF.sqlite", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open testFGF.sqlite db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1000; + } + + spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -1; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -1; + } /* testing aggregate Union() Point FGF "HouseNumbers" */ - sql = "SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'"; + sql = + "SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -3; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -4; - } - if (strcmp(results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0) { - fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); - return -5; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -3; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -4; + } + if (strcmp + (results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0) + { + fprintf (stderr, "Unexpected error: invalid result |%s|\n", + results[1]); + return -5; + } sqlite3_free_table (results); /* testing Sum(GLength()) Linestring FGF "Centrerlines" */ sql = "SELECT Sum(GLength(Geometry)) FROM fdo_Centerlines"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -7; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -8; - } - if (strncmp(results[1], "895.3351", 7) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -7; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -8; + } + if (strncmp (results[1], "895.3351", 7) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -9; + } sqlite3_free_table (results); /* testing Sum(Area()) Polygon FGF "AssessmentParcels" */ sql = "SELECT Sum(Area(Geometry)) FROM fdo_AssessmentParcels"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -11; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -12; - } - if (strncmp(results[1], "9022.1792", 9) != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -13; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -11; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -12; + } + if (strncmp (results[1], "9022.1792", 9) != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -13; + } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -15; - } - - spatialite_cleanup(); -#endif /* end GEOS conditional */ - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -15; + } + + spatialite_cleanup_ex (cache); + ret = unlink ("testFGF.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove testFGF database\n"); + return -16; + } +#endif /* end GEOS conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_fdo_bufovflw.c b/src/spatialite/test/check_fdo_bufovflw.c index 686e66b..5eb9624 100644 --- a/src/spatialite/test/check_fdo_bufovflw.c +++ b/src/spatialite/test/check_fdo_bufovflw.c @@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -62,233 +63,283 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } /* setting up very long table and column names */ - suffix = malloc(suffix_len); - memset(suffix, 'z', suffix_len); - suffix[suffix_len-1] = '\0'; + suffix = malloc (suffix_len); + memset (suffix, 'z', suffix_len); + suffix[suffix_len - 1] = '\0'; - pt_2d_wkt = sqlite3_mprintf("pt_2d_wkt_%s", suffix); - pt_3d_wkt = sqlite3_mprintf("pt_3d_wkt_%s", suffix); - geometry = sqlite3_mprintf("geometry_%s", suffix); + pt_2d_wkt = sqlite3_mprintf ("pt_2d_wkt_%s", suffix); + pt_3d_wkt = sqlite3_mprintf ("pt_3d_wkt_%s", suffix); + geometry = sqlite3_mprintf ("geometry_%s", suffix); /* creating a Point 2D WKT table */ - sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt); + sql = + sqlite3_mprintf + ("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - sql = sqlite3_mprintf( "SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')", pt_2d_wkt, geometry); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + sql = + sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')", + pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } /* creating a Point 3D WKT table */ - sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)", pt_3d_wkt); + sql = + sqlite3_mprintf ("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)", + pt_3d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } - sql = sqlite3_mprintf("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + sql = + sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", + pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } /* Inserting into pt_2d_wkt */ - sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES " - "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))", - pt_2d_wkt, geometry); + sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES " + "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))", + pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -8; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } /* Inserting (take two) into pt_2d_wkt */ - sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES " - "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))", - pt_2d_wkt, geometry); + sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES " + "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))", + pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } /* Updating pt_2d_wkt */ - sql = sqlite3_mprintf("UPDATE %s SET name = 'beta', value = 0.2, " - "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1", - pt_2d_wkt, geometry); + sql = sqlite3_mprintf ("UPDATE %s SET name = 'beta', value = 0.2, " + "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1", + pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } /* Deleting form pt_2d_wkt */ - sql = sqlite3_mprintf("DELETE FROM %s WHERE id = 1", pt_2d_wkt); + sql = sqlite3_mprintf ("DELETE FROM %s WHERE id = 1", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -11; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } /* Inserting into pt_3d_wkt */ - sql = sqlite3_mprintf("INSERT INTO %s (id, pic1, pic2, %s) VALUES " - "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))", - pt_3d_wkt, geometry); + sql = sqlite3_mprintf ("INSERT INTO %s (id, pic1, pic2, %s) VALUES " + "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))", + pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } /* checking pt_2d_wkt */ - sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt); + sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -14; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -15; - } - if (strcmp(results[1], "POINT(2 3)") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -16; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -14; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -15; + } + if (strcmp (results[1], "POINT(2 3)") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -16; + } sqlite3_free_table (results); /* checking pt_3d_wkt */ - sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt); + sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -17; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -18; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -19; - } - if (strcmp(results[1], "POINT Z(1 2 3)") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -20; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -18; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -19; + } + if (strcmp (results[1], "POINT Z(1 2 3)") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -20; + } sqlite3_free_table (results); /* dropping an FDO virtual table */ - sql = sqlite3_mprintf("DROP TABLE %s", pt_2d_wkt); + sql = sqlite3_mprintf ("DROP TABLE %s", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } /* discarding an FDO Geometry column */ - sql = sqlite3_mprintf("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt, geometry); + sql = + sqlite3_mprintf ("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt, + geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } /* recovering an FDO Geometry column */ - sql = sqlite3_mprintf("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); + sql = + sqlite3_mprintf + ("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, + geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -25; - } - - spatialite_cleanup(); - - sqlite3_free(pt_2d_wkt); - sqlite3_free(pt_3d_wkt); - sqlite3_free(geometry); - free(suffix); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -25; + } + + spatialite_cleanup_ex (cache); + + sqlite3_free (pt_2d_wkt); + sqlite3_free (pt_3d_wkt); + sqlite3_free (geometry); + free (suffix); + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_gaia_utf8.c b/src/spatialite/test/check_gaia_utf8.c index cc50199..5fda3b9 100644 --- a/src/spatialite/test/check_gaia_utf8.c +++ b/src/spatialite/test/check_gaia_utf8.c @@ -56,62 +56,77 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ - void * converter; +#ifndef OMIT_ICONV /* only if ICONV is supported */ + void *converter; char *test_str1; int err; - asprintf(&test_str1, "Hello World"); - gaiaConvertCharset(&test_str1, "ASCII", "UTF-8"); - if (strcmp(test_str1, "Hello World") != 0) { - fprintf(stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1); - free(test_str1); - return -1; - } - free(test_str1); + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + asprintf (&test_str1, "Hello World"); + gaiaConvertCharset (&test_str1, "ASCII", "UTF-8"); + if (strcmp (test_str1, "Hello World") != 0) + { + fprintf (stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1); + free (test_str1); + return -1; + } + free (test_str1); #if 0 /* TODO: this will cause a buffer overflow */ - asprintf(&test_str1, "Hello World"); - gaiaConvertCharset(&test_str1, "ASCII", "UTF-16LE"); - if (memcmp(test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0) { - fprintf(stderr, "bad ASCII to UTF-16LE conversion\n"); - free(test_str1); - return -2; - } - free(test_str1); + asprintf (&test_str1, "Hello World"); + gaiaConvertCharset (&test_str1, "ASCII", "UTF-16LE"); + if (memcmp (test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0) + { + fprintf (stderr, "bad ASCII to UTF-16LE conversion\n"); + free (test_str1); + return -2; + } + free (test_str1); #endif converter = gaiaCreateUTF8Converter ("CP1252"); - if (! converter) { - fprintf(stderr, "null UTF8 converter\n"); - return -3; - } - - test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err); - if (memcmp("Hello world", test_str1, strlen("Hello world") + 1) != 0) { - fprintf(stderr, "bad conversion to UTF8: %s\n", test_str1); - free(test_str1); - return -4; - } - free(test_str1); - + if (!converter) + { + fprintf (stderr, "null UTF8 converter\n"); + return -3; + } + + test_str1 = + gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"), + &err); + if (memcmp ("Hello world", test_str1, strlen ("Hello world") + 1) != 0) + { + fprintf (stderr, "bad conversion to UTF8: %s\n", test_str1); + free (test_str1); + return -4; + } + free (test_str1); + gaiaFreeUTF8Converter (converter); converter = NULL; /* test null converter */ gaiaFreeUTF8Converter (converter); - - test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err); - if ((test_str1 != NULL) || (err != 1)) { - fprintf(stderr, "unexpected null converter result: %s, %i\n", test_str1, err); - return -5; - } + + test_str1 = + gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"), + &err); + if ((test_str1 != NULL) || (err != 1)) + { + fprintf (stderr, "unexpected null converter result: %s, %i\n", + test_str1, err); + return -5; + } /* there is no sane way to test this automatically */ - printf("Local codeset: %s\n", gaiaGetLocaleCharset() ); -#endif /* end ICONV conditional */ + printf ("Local codeset: %s\n", gaiaGetLocaleCharset ()); +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_gaia_util.c b/src/spatialite/test/check_gaia_util.c index 9a832aa..0609a74 100644 --- a/src/spatialite/test/check_gaia_util.c +++ b/src/spatialite/test/check_gaia_util.c @@ -54,360 +54,436 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int result; char *test_str1; char *quoted_str; - + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + result = gaiaIsReservedSqliteName ("AUTOINCREMENT"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); - return -1; - } + if (!result) + { + fprintf (stderr, + "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", + result); + return -1; + } result = gaiaIsReservedSqliteName ("AUTOINCREMEN"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n", result); - return -2; - } + if (result) + { + fprintf (stderr, + "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n", + result); + return -2; + } result = gaiaIsReservedSqliteName ("AUTOINCREMENTED"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); - return -3; - } + if (result) + { + fprintf (stderr, + "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", + result); + return -3; + } result = gaiaIsReservedSqliteName ("foo"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n", result); - return -4; - } - - result = gaiaIsReservedSqliteName ("ALL"); /* first item */ - if (!result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n", result); - return -5; - } - - result = gaiaIsReservedSqliteName ("WHERE"); /* last item */ - if (!result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n", result); - return -6; - } - + if (result) + { + fprintf (stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n", + result); + return -4; + } + + result = gaiaIsReservedSqliteName ("ALL"); /* first item */ + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n", + result); + return -5; + } + + result = gaiaIsReservedSqliteName ("WHERE"); /* last item */ + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n", + result); + return -6; + } + result = gaiaIsReservedSqliteName ("autoincrement"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqliteName() fail for autoincrement: %i\n", result); - return -7; - } - + if (!result) + { + fprintf (stderr, + "gaiaIsReservedSqliteName() fail for autoincrement: %i\n", + result); + return -7; + } + result = gaiaIsReservedSqlName ("SELECT"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n", result); - return -8; - } + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n", + result); + return -8; + } result = gaiaIsReservedSqlName ("select"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for select: %i\n", result); - return -9; - } - + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for select: %i\n", + result); + return -9; + } + result = gaiaIsReservedSqlName ("foo"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for foo: %i\n", result); - return -10; - } + if (result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for foo: %i\n", + result); + return -10; + } result = gaiaIsReservedSqlName ("ABSOLUTE"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n", result); - return -11; - } + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n", + result); + return -11; + } result = gaiaIsReservedSqlName ("ZONE"); - if (!result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n", result); - return -12; - } + if (!result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n", + result); + return -12; + } result = gaiaIsReservedSqlName ("SELECTED"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n", result); - return -13; - } - + if (result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n", + result); + return -13; + } + result = gaiaIsReservedSqlName ("SELEC"); - if (result) { - fprintf(stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n", result); - return -14; - } - - result = gaiaIllegalSqlName(NULL); - if (!result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n", result); - return -15; - } - - result = gaiaIllegalSqlName("a"); - if (result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for a: %i\n", result); - return -16; - } - result = gaiaIllegalSqlName("-"); - if (!result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for -: %i\n", result); - return -17; - } - result = gaiaIllegalSqlName("AbbcdE0187r"); - if (result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n", result); - return -18; - } - result = gaiaIllegalSqlName("AbbcdE0187+"); - if (!result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n", result); - return -19; - } - result = gaiaIllegalSqlName(""); - if (!result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); - return -20; - } - result = gaiaIllegalSqlName("_ABCedFg"); - if (!result) { - fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); - return -21; - } - - asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar"); - gaiaCleanSqlString(test_str1); - if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) { - fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); - free(test_str1); - return -22; - } - free(test_str1); - - asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); - gaiaCleanSqlString(test_str1); - if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) { - fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); - free(test_str1); - return -23; - } - free(test_str1); - - asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "'"); - gaiaCleanSqlString(test_str1); - if (strcmp(test_str1, "SELECT Foo from '';") != 0) { - fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); - free(test_str1); - return -24; - } - free(test_str1); + if (result) + { + fprintf (stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n", + result); + return -14; + } + + result = gaiaIllegalSqlName (NULL); + if (!result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n", + result); + return -15; + } + + result = gaiaIllegalSqlName ("a"); + if (result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for a: %i\n", result); + return -16; + } + result = gaiaIllegalSqlName ("-"); + if (!result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for -: %i\n", result); + return -17; + } + result = gaiaIllegalSqlName ("AbbcdE0187r"); + if (result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n", + result); + return -18; + } + result = gaiaIllegalSqlName ("AbbcdE0187+"); + if (!result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n", + result); + return -19; + } + result = gaiaIllegalSqlName (""); + if (!result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", + result); + return -20; + } + result = gaiaIllegalSqlName ("_ABCedFg"); + if (!result) + { + fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", + result); + return -21; + } + + asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar"); + gaiaCleanSqlString (test_str1); + if (strcmp (test_str1, "SELECT Foo from Bar;") != 0) + { + fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); + free (test_str1); + return -22; + } + free (test_str1); + + asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); + gaiaCleanSqlString (test_str1); + if (strcmp (test_str1, "SELECT Foo from Bar;") != 0) + { + fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); + free (test_str1); + return -23; + } + free (test_str1); + + asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "'"); + gaiaCleanSqlString (test_str1); + if (strcmp (test_str1, "SELECT Foo from '';") != 0) + { + fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); + free (test_str1); + return -24; + } + free (test_str1); #if 0 /* TODO: This will cause a buffer overflow */ - asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'"); - gaiaCleanSqlString(test_str1); - if (strcmp(test_str1, "SELECT Foo from '';") != 0) { - fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); - free(test_str1); - return -25; - } - free(test_str1); + asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'"); + gaiaCleanSqlString (test_str1); + if (strcmp (test_str1, "SELECT Foo from '';") != 0) + { + fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); + free (test_str1); + return -25; + } + free (test_str1); #endif - asprintf(&test_str1, " "); - gaiaCleanSqlString(test_str1); - if (strcmp(test_str1, "") != 0) { - fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); - free(test_str1); - return -26; - } - free(test_str1); - - asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar"); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -27; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -28; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'"); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "SELECT Foo from '';") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -29; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "SELECT %s from %s ; ", "Foo", "Bar"); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "SELECT Foo from Bar ;") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -30; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "SELECT %s from %s;", "'", "Bar"); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "SELECT '' from Bar;") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -31; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "My Name"); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "My Name") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -32; - } - free(test_str1); - free(quoted_str); - - quoted_str = gaiaDoubleQuotedSql(NULL); - if (quoted_str != NULL) { - fprintf(stderr, "gaiaDoubleQuotedSql NULL failure: %s\n", quoted_str); - free(quoted_str); - return -33; - } - - quoted_str = gaiaSingleQuotedSql(NULL); - if (quoted_str != NULL) { - fprintf(stderr, "gaiaSingleQuotedSql NULL failure: %s\n", quoted_str); - free(quoted_str); - return -34; - } - - quoted_str = gaiaQuotedSql("foo", GAIA_SQL_SINGLE_QUOTE); - if (strcmp(quoted_str, "foo") != 0) { - fprintf(stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n", quoted_str); - free(quoted_str); - return -35; - } - free(quoted_str); - - quoted_str = gaiaQuotedSql("foo", GAIA_SQL_DOUBLE_QUOTE); - if (strcmp(quoted_str, "foo") != 0) { - fprintf(stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n", quoted_str); - free(quoted_str); - return -36; - } - free(quoted_str); - - quoted_str = gaiaQuotedSql("foo", 1000); - if (quoted_str != NULL) { - fprintf(stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str); - free(quoted_str); - return -37; - } - - asprintf(&test_str1, "My \"Name"); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "My \"\"Name") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -38; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "My \"Name "); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "My \"\"Name") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -39; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "%s", ""); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -40; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, " "); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str); - free(test_str1); - free(quoted_str); - return -41; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "' "); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "'") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -42; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "'"); - quoted_str = gaiaDoubleQuotedSql(test_str1); - if (strcmp(quoted_str, "'") != 0) { - fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -43; - } - free(test_str1); - free(quoted_str); - - asprintf(&test_str1, "\""); - quoted_str = gaiaSingleQuotedSql(test_str1); - if (strcmp(quoted_str, "\"") != 0) { - fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); - free(test_str1); - free(quoted_str); - return -44; - } - free(test_str1); - free(quoted_str); - + asprintf (&test_str1, " "); + gaiaCleanSqlString (test_str1); + if (strcmp (test_str1, "") != 0) + { + fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); + free (test_str1); + return -26; + } + free (test_str1); + + asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar"); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -27; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -28; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'"); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "SELECT Foo from '';") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -29; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "SELECT %s from %s ; ", "Foo", "Bar"); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "SELECT Foo from Bar ;") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -30; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "SELECT %s from %s;", "'", "Bar"); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "SELECT '' from Bar;") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -31; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "My Name"); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "My Name") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -32; + } + free (test_str1); + free (quoted_str); + + quoted_str = gaiaDoubleQuotedSql (NULL); + if (quoted_str != NULL) + { + fprintf (stderr, "gaiaDoubleQuotedSql NULL failure: %s\n", + quoted_str); + free (quoted_str); + return -33; + } + + quoted_str = gaiaSingleQuotedSql (NULL); + if (quoted_str != NULL) + { + fprintf (stderr, "gaiaSingleQuotedSql NULL failure: %s\n", + quoted_str); + free (quoted_str); + return -34; + } + + quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_SINGLE_QUOTE); + if (strcmp (quoted_str, "foo") != 0) + { + fprintf (stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n", + quoted_str); + free (quoted_str); + return -35; + } + free (quoted_str); + + quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_DOUBLE_QUOTE); + if (strcmp (quoted_str, "foo") != 0) + { + fprintf (stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n", + quoted_str); + free (quoted_str); + return -36; + } + free (quoted_str); + + quoted_str = gaiaQuotedSql ("foo", 1000); + if (quoted_str != NULL) + { + fprintf (stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str); + free (quoted_str); + return -37; + } + + asprintf (&test_str1, "My \"Name"); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "My \"\"Name") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -38; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "My \"Name "); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "My \"\"Name") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -39; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "%s", ""); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -40; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, " "); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str); + free (test_str1); + free (quoted_str); + return -41; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "' "); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "'") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -42; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "'"); + quoted_str = gaiaDoubleQuotedSql (test_str1); + if (strcmp (quoted_str, "'") != 0) + { + fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -43; + } + free (test_str1); + free (quoted_str); + + asprintf (&test_str1, "\""); + quoted_str = gaiaSingleQuotedSql (test_str1); + if (strcmp (quoted_str, "\"") != 0) + { + fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); + free (test_str1); + free (quoted_str); + return -44; + } + free (test_str1); + free (quoted_str); + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_geom_aux.c b/src/spatialite/test/check_geom_aux.c index e276fbd..8829fa7 100644 --- a/src/spatialite/test/check_geom_aux.c +++ b/src/spatialite/test/check_geom_aux.c @@ -50,7 +50,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -80,916 +81,984 @@ int main (int argc, char *argv[]) double max; int cnt; gaiaOutBuffer wkt; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1000; + } + + spatialite_init_ex (handle, cache, 0); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1000; - } gaiaOutBufferInitialize (&wkt); /* testing Dynamic Line */ - dyn = gaiaAllocDynamicLine(); - pt1 = gaiaAppendPointToDynamicLine(dyn, 1.0, 2.0); - pt2 = gaiaAppendPointToDynamicLine(dyn, 10.0, 11.0); - gaiaDynamicLineInsertAfter(dyn, pt1, 2.0, 3.0); - gaiaDynamicLineInsertBefore(dyn, pt2, 9.0, 10.0); - gaiaAppendPointToDynamicLine(dyn, 11.0, 12.0); - gaiaDynamicLineDeletePoint(dyn, pt2); - dyn2 = gaiaCloneDynamicLine(dyn); - dyn3 = gaiaReverseDynamicLine(dyn2); - + dyn = gaiaAllocDynamicLine (); + pt1 = gaiaAppendPointToDynamicLine (dyn, 1.0, 2.0); + pt2 = gaiaAppendPointToDynamicLine (dyn, 10.0, 11.0); + gaiaDynamicLineInsertAfter (dyn, pt1, 2.0, 3.0); + gaiaDynamicLineInsertBefore (dyn, pt2, 9.0, 10.0); + gaiaAppendPointToDynamicLine (dyn, 11.0, 12.0); + gaiaDynamicLineDeletePoint (dyn, pt2); + dyn2 = gaiaCloneDynamicLine (dyn); + dyn3 = gaiaReverseDynamicLine (dyn2); + pt = dyn3->First; cnt = 0; while (pt) - { - /* testing result */ - switch (cnt) - { - case 0: - if (pt->X != 11.0 || pt->Y != 12.0) - { - fprintf(stderr, "ReverseDynamicLine: unexpected result (0)\n"); - return -1; - } - break; - case 1: - if (pt->X != 9.0 || pt->Y != 10.0) - { - fprintf(stderr, "ReverseDynamicLine: unexpected result (1)\n"); - return -3; - } - break; - case 2: - if (pt->X != 2.0 || pt->Y != 3.0) - { - fprintf(stderr, "ReverseDynamicLine: unexpected result (2)\n"); - return -4; - } - break; - case 3: - if (pt->X != 1.0 || pt->Y != 2.0) - { - fprintf(stderr, "ReverseDynamicLine: unexpected result (3)\n"); - return -5; - } - break; - default: - fprintf(stderr, "ReverseDynamicLine: Point count > 4\n"); - return -6; - }; - cnt++; - pt = pt->Next; - } - - gaiaFreeDynamicLine(dyn3); - gaiaFreeDynamicLine(dyn2); + { + /* testing result */ + switch (cnt) + { + case 0: + if (pt->X != 11.0 || pt->Y != 12.0) + { + fprintf (stderr, + "ReverseDynamicLine: unexpected result (0)\n"); + return -1; + } + break; + case 1: + if (pt->X != 9.0 || pt->Y != 10.0) + { + fprintf (stderr, + "ReverseDynamicLine: unexpected result (1)\n"); + return -3; + } + break; + case 2: + if (pt->X != 2.0 || pt->Y != 3.0) + { + fprintf (stderr, + "ReverseDynamicLine: unexpected result (2)\n"); + return -4; + } + break; + case 3: + if (pt->X != 1.0 || pt->Y != 2.0) + { + fprintf (stderr, + "ReverseDynamicLine: unexpected result (3)\n"); + return -5; + } + break; + default: + fprintf (stderr, "ReverseDynamicLine: Point count > 4\n"); + return -6; + }; + cnt++; + pt = pt->Next; + } + + gaiaFreeDynamicLine (dyn3); + gaiaFreeDynamicLine (dyn2); xy[0] = 10.0; xy[1] = 20.0; xy[2] = 11.0; xy[3] = 21.0; xy[4] = 12.0; xy[5] = 22.0; - dyn3 = gaiaCreateDynamicLine(xy, 3); - dyn2 = gaiaDynamicLineJoinAfter(dyn, pt1, dyn3); - + dyn3 = gaiaCreateDynamicLine (xy, 3); + dyn2 = gaiaDynamicLineJoinAfter (dyn, pt1, dyn3); + pt = dyn2->First; cnt = 0; while (pt) - { - /* testing result */ - switch (cnt) - { - case 0: - if (pt->X != 1.0 || pt->Y != 2.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (0)\n"); - return -7; - } - break; - case 1: - if (pt->X != 10.0 || pt->Y != 20.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (1)\n"); - return -8; - } - break; - case 2: - if (pt->X != 11.0 || pt->Y != 21.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (2)\n"); - return -9; - } - break; - case 3: - if (pt->X != 12.0 || pt->Y != 22.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (3)\n"); - return -10; - } - break; - case 4: - if (pt->X != 2.0 || pt->Y != 3.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (4)\n"); - return -11; - } - break; - case 5: - if (pt->X != 9.0 || pt->Y != 10.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (5)\n"); - return -12; - } - break; - case 6: - if (pt->X != 11.0 || pt->Y != 12.0) - { - fprintf(stderr, "DynamicLineJoinAfter: unexpected result (6)\n"); - return -13; - } - break; - default: - fprintf(stderr, "DynamicLineJoinAfter: Point count > 7\n"); - return -14; - }; - cnt++; - pt = pt->Next; - } - - gaiaFreeDynamicLine(dyn2); - dyn2 = gaiaDynamicLineJoinBefore(dyn, pt1, dyn3); - + { + /* testing result */ + switch (cnt) + { + case 0: + if (pt->X != 1.0 || pt->Y != 2.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (0)\n"); + return -7; + } + break; + case 1: + if (pt->X != 10.0 || pt->Y != 20.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (1)\n"); + return -8; + } + break; + case 2: + if (pt->X != 11.0 || pt->Y != 21.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (2)\n"); + return -9; + } + break; + case 3: + if (pt->X != 12.0 || pt->Y != 22.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (3)\n"); + return -10; + } + break; + case 4: + if (pt->X != 2.0 || pt->Y != 3.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (4)\n"); + return -11; + } + break; + case 5: + if (pt->X != 9.0 || pt->Y != 10.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (5)\n"); + return -12; + } + break; + case 6: + if (pt->X != 11.0 || pt->Y != 12.0) + { + fprintf (stderr, + "DynamicLineJoinAfter: unexpected result (6)\n"); + return -13; + } + break; + default: + fprintf (stderr, "DynamicLineJoinAfter: Point count > 7\n"); + return -14; + }; + cnt++; + pt = pt->Next; + } + + gaiaFreeDynamicLine (dyn2); + dyn2 = gaiaDynamicLineJoinBefore (dyn, pt1, dyn3); + pt = dyn2->First; cnt = 0; while (pt) - { - /* testing result */ - switch (cnt) - { - case 0: - if (pt->X != 10.0 || pt->Y != 20.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (0)\n"); - return -15; - } - break; - case 1: - if (pt->X != 11.0 || pt->Y != 21.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (1)\n"); - return -16; - } - break; - case 2: - if (pt->X != 12.0 || pt->Y != 22.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (2)\n"); - return -17; - } - break; - case 3: - if (pt->X != 1.0 || pt->Y != 2.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (3)\n"); - return -18; - } - break; - case 4: - if (pt->X != 2.0 || pt->Y != 3.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (4)\n"); - return -19; - } - break; - case 5: - if (pt->X != 9.0 || pt->Y != 10.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (5)\n"); - return -20; - } - break; - case 6: - if (pt->X != 11.0 || pt->Y != 12.0) - { - fprintf(stderr, "DynamicLineJoinBefore: unexpected result (6)\n"); - return -21; - } - break; - default: - fprintf(stderr, "DynamicLineJoinBefore: Point count > 7\n"); - return -22; - }; - cnt++; - pt = pt->Next; - } - - gaiaFreeDynamicLine(dyn3); - gaiaFreeDynamicLine(dyn2); - dyn3 = gaiaCloneDynamicLine(dyn); - pt1 = gaiaDynamicLineFindByCoords(dyn, 9.0, 10.0); - dyn2 = gaiaDynamicLineSplitBefore(dyn, pt1); - + { + /* testing result */ + switch (cnt) + { + case 0: + if (pt->X != 10.0 || pt->Y != 20.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (0)\n"); + return -15; + } + break; + case 1: + if (pt->X != 11.0 || pt->Y != 21.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (1)\n"); + return -16; + } + break; + case 2: + if (pt->X != 12.0 || pt->Y != 22.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (2)\n"); + return -17; + } + break; + case 3: + if (pt->X != 1.0 || pt->Y != 2.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (3)\n"); + return -18; + } + break; + case 4: + if (pt->X != 2.0 || pt->Y != 3.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (4)\n"); + return -19; + } + break; + case 5: + if (pt->X != 9.0 || pt->Y != 10.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (5)\n"); + return -20; + } + break; + case 6: + if (pt->X != 11.0 || pt->Y != 12.0) + { + fprintf (stderr, + "DynamicLineJoinBefore: unexpected result (6)\n"); + return -21; + } + break; + default: + fprintf (stderr, "DynamicLineJoinBefore: Point count > 7\n"); + return -22; + }; + cnt++; + pt = pt->Next; + } + + gaiaFreeDynamicLine (dyn3); + gaiaFreeDynamicLine (dyn2); + dyn3 = gaiaCloneDynamicLine (dyn); + pt1 = gaiaDynamicLineFindByCoords (dyn, 9.0, 10.0); + dyn2 = gaiaDynamicLineSplitBefore (dyn, pt1); + pt = dyn2->First; cnt = 0; while (pt) - { - /* testing result */ - switch (cnt) - { - case 0: - if (pt->X != 1.0 || pt->Y != 2.0) - { - fprintf(stderr, "DynamicLineSplitBefore: unexpected result (0)\n"); - return -23; - } - break; - case 1: - if (pt->X != 2.0 || pt->Y != 3.0) - { - fprintf(stderr, "DynamicLineSplitBefore: unexpected result (1)\n"); - return -24; - } - break; - default: - fprintf(stderr, "DynamicLineSplitBefore: Point count > 2\n"); - return -25; - }; - cnt++; - pt = pt->Next; - } - - gaiaFreeDynamicLine(dyn2); - gaiaFreeDynamicLine(dyn); - pt1 = gaiaDynamicLineFindByPos(dyn3, 1); - - dyn2 = gaiaDynamicLineSplitAfter(dyn3, pt1); - + { + /* testing result */ + switch (cnt) + { + case 0: + if (pt->X != 1.0 || pt->Y != 2.0) + { + fprintf (stderr, + "DynamicLineSplitBefore: unexpected result (0)\n"); + return -23; + } + break; + case 1: + if (pt->X != 2.0 || pt->Y != 3.0) + { + fprintf (stderr, + "DynamicLineSplitBefore: unexpected result (1)\n"); + return -24; + } + break; + default: + fprintf (stderr, "DynamicLineSplitBefore: Point count > 2\n"); + return -25; + }; + cnt++; + pt = pt->Next; + } + + gaiaFreeDynamicLine (dyn2); + gaiaFreeDynamicLine (dyn); + pt1 = gaiaDynamicLineFindByPos (dyn3, 1); + + dyn2 = gaiaDynamicLineSplitAfter (dyn3, pt1); + pt = dyn2->First; cnt = 0; while (pt) - { - /* testing result */ - switch (cnt) - { - case 0: - if (pt->X != 9.0 || pt->Y != 10.0) - { - fprintf(stderr, "DynamicLineSplitAfter: unexpected result (0)\n"); - return -26; - } - break; - case 1: - if (pt->X != 11.0 || pt->Y != 12.0) - { - fprintf(stderr, "DynamicLineSplitAfter: unexpected result (1)\n"); - return -27; - } - break; - default: - fprintf(stderr, "DynamicLineSplitAfter: Point count > 2\n"); - return -28; - }; - cnt++; - pt = pt->Next; - } - - gaiaFreeDynamicLine(dyn2); - gaiaFreeDynamicLine(dyn3); + { + /* testing result */ + switch (cnt) + { + case 0: + if (pt->X != 9.0 || pt->Y != 10.0) + { + fprintf (stderr, + "DynamicLineSplitAfter: unexpected result (0)\n"); + return -26; + } + break; + case 1: + if (pt->X != 11.0 || pt->Y != 12.0) + { + fprintf (stderr, + "DynamicLineSplitAfter: unexpected result (1)\n"); + return -27; + } + break; + default: + fprintf (stderr, "DynamicLineSplitAfter: Point count > 2\n"); + return -28; + }; + cnt++; + pt = pt->Next; + } + + gaiaFreeDynamicLine (dyn2); + gaiaFreeDynamicLine (dyn3); /* testing Geometry */ - geom_pt = gaiaAllocGeomColl(); - gaiaAddPointToGeomColl(geom_pt, 5.0, 5.0); - geom1 = gaiaAllocGeomColl(); - gaiaAddPointToGeomColl(geom1, 15.0, 15.0); - ln = gaiaAddLinestringToGeomColl(geom1, 2); - gaiaLineSetPoint(ln, 0, 1.0, 1.0, 0.0, 0.0); - gaiaLineSetPoint(ln, 1, 2.0, 2.0, 0.0, 0.0); - pg = gaiaAddPolygonToGeomColl(geom1, 5, 0); + geom_pt = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom_pt, 5.0, 5.0); + geom1 = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom1, 15.0, 15.0); + ln = gaiaAddLinestringToGeomColl (geom1, 2); + gaiaLineSetPoint (ln, 0, 1.0, 1.0, 0.0, 0.0); + gaiaLineSetPoint (ln, 1, 2.0, 2.0, 0.0, 0.0); + pg = gaiaAddPolygonToGeomColl (geom1, 5, 0); rng = pg->Exterior; - gaiaRingSetPoint(rng, 0, 1.0, 1.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 1, 5.0, 1.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 2, 5.0, 5.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 3, 1.0, 5.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 4, 1.0, 1.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 0, 1.0, 1.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 1, 5.0, 1.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 2, 5.0, 5.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 3, 1.0, 5.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 4, 1.0, 1.0, 0.0, 0.0); rng = gaiaAllocRing (5); - gaiaRingSetPoint(rng, 0, 2.0, 2.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 1, 3.0, 2.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 2, 3.0, 3.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 3, 2.0, 3.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 4, 2.0, 2.0, 0.0, 0.0); - gaiaInsertInteriorRing(pg, rng); - gaiaFreeRing(rng); + gaiaRingSetPoint (rng, 0, 2.0, 2.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 1, 3.0, 2.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 2, 3.0, 3.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 3, 2.0, 3.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 4, 2.0, 2.0, 0.0, 0.0); + gaiaInsertInteriorRing (pg, rng); + gaiaFreeRing (rng); rng = gaiaAllocRing (5); - gaiaRingSetPoint(rng, 0, 3.5, 3.5, 0.0, 0.0); - gaiaRingSetPoint(rng, 1, 4.0, 3.5, 0.0, 0.0); - gaiaRingSetPoint(rng, 2, 4.0, 4.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 3, 3.5, 4.0, 0.0, 0.0); - gaiaRingSetPoint(rng, 4, 3.5, 3.5, 0.0, 0.0); - gaiaInsertInteriorRing(pg, rng); - gaiaFreeRing(rng); - geom2 = gaiaCloneGeomColl(geom1); - - gaiaOutWkt(&wkt, geom2); + gaiaRingSetPoint (rng, 0, 3.5, 3.5, 0.0, 0.0); + gaiaRingSetPoint (rng, 1, 4.0, 3.5, 0.0, 0.0); + gaiaRingSetPoint (rng, 2, 4.0, 4.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 3, 3.5, 4.0, 0.0, 0.0); + gaiaRingSetPoint (rng, 4, 3.5, 3.5, 0.0, 0.0); + gaiaInsertInteriorRing (pg, rng); + gaiaFreeRing (rng); + geom2 = gaiaCloneGeomColl (geom1); + + gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) - { - fprintf(stderr, "Geom2D: unable to get WKT\n"); - return -29; - } + { + fprintf (stderr, "Geom2D: unable to get WKT\n"); + return -29; + } else - { - /* testing WKT result */ - if (strcmp(wkt.Buffer, "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) - { - /* unexpected result */ - fprintf(stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer); - return -30; - } - gaiaOutBufferReset (&wkt); - } - - gaiaMakeLine(NULL, geom2, &blob, &size); + { + /* testing WKT result */ + if (strcmp + (wkt.Buffer, + "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") + != 0) + { + /* unexpected result */ + fprintf (stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer); + return -30; + } + gaiaOutBufferReset (&wkt); + } + + gaiaMakeLine (NULL, geom2, &blob, &size); if (blob) - free(blob); - gaiaMakeLine(geom_pt, NULL, &blob, &size); + free (blob); + gaiaMakeLine (geom_pt, NULL, &blob, &size); if (blob) - free(blob); - gaiaMakeLine(geom_pt, geom2, &blob, &size); + free (blob); + gaiaMakeLine (geom_pt, geom2, &blob, &size); if (blob) - free(blob); - gaiaMakeLine(geom1, geom2, &blob, &size); + free (blob); + gaiaMakeLine (geom1, geom2, &blob, &size); if (blob) - free(blob); - gaiaFreeGeomColl(geom2); - geom2 = gaiaCloneGeomCollPoints(geom1); + free (blob); + gaiaFreeGeomColl (geom2); + geom2 = gaiaCloneGeomCollPoints (geom1); - gaiaOutWkt(&wkt, geom2); + gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) - { - fprintf(stderr, "Geom2D Points: unable to get WKT\n"); - return -30; - } + { + fprintf (stderr, "Geom2D Points: unable to get WKT\n"); + return -30; + } else - { - /* testing WKT result */ - if (strcmp(wkt.Buffer, "MULTIPOINT(15 15)") != 0) - { - /* unexpected result */ - fprintf(stderr, "Geom2D Points: unexpected result %s|\n", wkt.Buffer); - return -31; - } - gaiaOutBufferReset (&wkt); - } - - gaiaFreeGeomColl(geom2); - geom2 = gaiaCloneGeomCollLinestrings(geom1); - - gaiaOutWkt(&wkt, geom2); + { + /* testing WKT result */ + if (strcmp (wkt.Buffer, "MULTIPOINT(15 15)") != 0) + { + /* unexpected result */ + fprintf (stderr, "Geom2D Points: unexpected result %s|\n", + wkt.Buffer); + return -31; + } + gaiaOutBufferReset (&wkt); + } + + gaiaFreeGeomColl (geom2); + geom2 = gaiaCloneGeomCollLinestrings (geom1); + + gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) - { - fprintf(stderr, "Geom2D Lines: unable to get WKT\n"); - return -32; - } + { + fprintf (stderr, "Geom2D Lines: unable to get WKT\n"); + return -32; + } else - { - /* testing WKT result */ - if (strcmp(wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0) - { - /* unexpected result */ - fprintf(stderr, "Geom2D Lines: unexpected result %s|\n", wkt.Buffer); - return -33; - } - gaiaOutBufferReset (&wkt); - } - - gaiaFreeGeomColl(geom2); - geom2 = gaiaCloneGeomCollPolygons(geom1); - - gaiaOutWkt(&wkt, geom2); + { + /* testing WKT result */ + if (strcmp (wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0) + { + /* unexpected result */ + fprintf (stderr, "Geom2D Lines: unexpected result %s|\n", + wkt.Buffer); + return -33; + } + gaiaOutBufferReset (&wkt); + } + + gaiaFreeGeomColl (geom2); + geom2 = gaiaCloneGeomCollPolygons (geom1); + + gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) - { - fprintf(stderr, "Geom2D Polygons: unable to get WKT\n"); - return -34; - } + { + fprintf (stderr, "Geom2D Polygons: unable to get WKT\n"); + return -34; + } else - { - /* testing WKT result */ - if (strcmp(wkt.Buffer, "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) - { - /* unexpected result */ - fprintf(stderr, "Geom2D Polygons: unexpected result %s|\n", wkt.Buffer); - return -35; - } - gaiaOutBufferReset (&wkt); - } - - gaiaFreeGeomColl(geom2); - min = gaiaMeasureLength(geom1->FirstLinestring->DimensionModel, - geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); + { + /* testing WKT result */ + if (strcmp + (wkt.Buffer, + "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") + != 0) + { + /* unexpected result */ + fprintf (stderr, "Geom2D Polygons: unexpected result %s|\n", + wkt.Buffer); + return -35; + } + gaiaOutBufferReset (&wkt); + } + + gaiaFreeGeomColl (geom2); + min = gaiaMeasureLength (geom1->FirstLinestring->DimensionModel, + geom1->FirstLinestring->Coords, + geom1->FirstLinestring->Points); rng = geom1->FirstPolygon->Exterior; - min = gaiaMeasureArea(rng); - gaiaRingCentroid(rng, &min, &max); - gaiaIsPointOnPolygonSurface(geom1->FirstPolygon, 17.0, 22.0); - min = gaiaMinDistance(1.0, 2.0, geom1->FirstLinestring->DimensionModel, - geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); + min = gaiaMeasureArea (rng); + gaiaRingCentroid (rng, &min, &max); + gaiaIsPointOnPolygonSurface (geom1->FirstPolygon, 17.0, 22.0); + min = gaiaMinDistance (1.0, 2.0, geom1->FirstLinestring->DimensionModel, + geom1->FirstLinestring->Coords, + geom1->FirstLinestring->Points); /* cast XYZ */ - geom2 = gaiaCastGeomCollToXY(geom1); - gaiaFreeGeomColl(geom2); - geom2 = gaiaCastGeomCollToXYZ(geom1); - geom3 = gaiaCloneGeomColl(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollPoints(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollLinestrings(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollPolygons(geom2); - gaiaFreeGeomColl(geom3); + geom2 = gaiaCastGeomCollToXY (geom1); + gaiaFreeGeomColl (geom2); + geom2 = gaiaCastGeomCollToXYZ (geom1); + geom3 = gaiaCloneGeomColl (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollPoints (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollLinestrings (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollPolygons (geom2); + gaiaFreeGeomColl (geom3); rng = geom2->FirstPolygon->Exterior; - min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) - { - /* unexpected result */ - fprintf(stderr, "Geom3D Length: unexpected result %1.6f|\n", min); - return -36; - } + { + /* unexpected result */ + fprintf (stderr, "Geom3D Length: unexpected result %1.6f|\n", min); + return -36; + } - min = gaiaMeasureArea(rng); + min = gaiaMeasureArea (rng); if (min != 16.0) - { - /* unexpected result */ - fprintf(stderr, "Geom3D Area: unexpected result %1.6f|\n", min); - return -37; - } + { + /* unexpected result */ + fprintf (stderr, "Geom3D Area: unexpected result %1.6f|\n", min); + return -37; + } - gaiaRingCentroid(rng, &min, &max); + gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) - { - /* unexpected result */ - fprintf(stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n", min, max); - return -38; - } - - cnt = gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); + { + /* unexpected result */ + fprintf (stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n", + min, max); + return -38; + } + + cnt = gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) - { - /* unexpected result */ - fprintf(stderr, "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n", cnt); - return -39; - } - - min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + { + /* unexpected result */ + fprintf (stderr, + "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n", + cnt); + return -39; + } + + min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) - { - /* unexpected result */ - fprintf(stderr, "Geom3D MinDistance: unexpected result %1.6f|\n", min); - return -40; - } + { + /* unexpected result */ + fprintf (stderr, "Geom3D MinDistance: unexpected result %1.6f|\n", + min); + return -40; + } - gaiaFreeGeomColl(geom2); + gaiaFreeGeomColl (geom2); /* cast to XYM */ - geom2 = gaiaCastGeomCollToXYM(geom1); - geom3 = gaiaCloneGeomColl(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollPoints(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollLinestrings(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollPolygons(geom2); - gaiaFreeGeomColl(geom3); - min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + geom2 = gaiaCastGeomCollToXYM (geom1); + geom3 = gaiaCloneGeomColl (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollPoints (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollLinestrings (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollPolygons (geom2); + gaiaFreeGeomColl (geom3); + min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) - { - /* unexpected result */ - fprintf(stderr, "GeomM Length: unexpected result %1.6f|\n", min); - return -41; - } + { + /* unexpected result */ + fprintf (stderr, "GeomM Length: unexpected result %1.6f|\n", min); + return -41; + } rng = geom2->FirstPolygon->Exterior; - min = gaiaMeasureArea(rng); + min = gaiaMeasureArea (rng); if (min != 16.0) - { - /* unexpected result */ - fprintf(stderr, "GeomM Area: unexpected result %1.6f|\n", min); - return -42; - } + { + /* unexpected result */ + fprintf (stderr, "GeomM Area: unexpected result %1.6f|\n", min); + return -42; + } - gaiaRingCentroid(rng, &min, &max); + gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) - { - /* unexpected result */ - fprintf(stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n", min, max); - return -43; - } - - gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); + { + /* unexpected result */ + fprintf (stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n", + min, max); + return -43; + } + + gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) - { - /* unexpected result */ - fprintf(stderr, "GeomM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); - return -44; - } - - min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + { + /* unexpected result */ + fprintf (stderr, + "GeomM IsPointOnPolygonSurface: unexpected result %d|\n", + cnt); + return -44; + } + + min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) - { - /* unexpected result */ - fprintf(stderr, "GeomM MinDistance: unexpected result %1.6f|\n", min); - return -45; - } + { + /* unexpected result */ + fprintf (stderr, "GeomM MinDistance: unexpected result %1.6f|\n", + min); + return -45; + } - gaiaFreeGeomColl(geom2); + gaiaFreeGeomColl (geom2); /* cast to XYZM */ - geom2 = gaiaCastGeomCollToXYZM(geom1); - geom3 = gaiaCloneGeomColl(geom2); - gaiaFreeGeomColl(geom3); - gaiaMRangeGeometry(geom2, &min, &max); - gaiaZRangeGeometry(geom2, &min, &max); - geom3 = gaiaCloneGeomCollPoints(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollLinestrings(geom2); - gaiaFreeGeomColl(geom3); - geom3 = gaiaCloneGeomCollPolygons(geom2); - gaiaFreeGeomColl(geom3); - min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + geom2 = gaiaCastGeomCollToXYZM (geom1); + geom3 = gaiaCloneGeomColl (geom2); + gaiaFreeGeomColl (geom3); + gaiaMRangeGeometry (geom2, &min, &max); + gaiaZRangeGeometry (geom2, &min, &max); + geom3 = gaiaCloneGeomCollPoints (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollLinestrings (geom2); + gaiaFreeGeomColl (geom3); + geom3 = gaiaCloneGeomCollPolygons (geom2); + gaiaFreeGeomColl (geom3); + min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) - { - /* unexpected result */ - fprintf(stderr, "GeomZM Length: unexpected result %1.6f|\n", min); - return -46; - } + { + /* unexpected result */ + fprintf (stderr, "GeomZM Length: unexpected result %1.6f|\n", min); + return -46; + } rng = geom2->FirstPolygon->Exterior; - min = gaiaMeasureArea(rng); + min = gaiaMeasureArea (rng); if (min != 16.0) - { - /* unexpected result */ - fprintf(stderr, "GeomZM Area: unexpected result %1.6f|\n", min); - return -47; - } + { + /* unexpected result */ + fprintf (stderr, "GeomZM Area: unexpected result %1.6f|\n", min); + return -47; + } - gaiaRingCentroid(rng, &min, &max); + gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) - { - /* unexpected result */ - fprintf(stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n", min, max); - return -48; - } - - gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); + { + /* unexpected result */ + fprintf (stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n", + min, max); + return -48; + } + + gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) - { - /* unexpected result */ - fprintf(stderr, "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); - return -49; - } - - min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, - geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); + { + /* unexpected result */ + fprintf (stderr, + "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n", + cnt); + return -49; + } + + min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, + geom2->FirstLinestring->Coords, + geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) - { - /* unexpected result */ - fprintf(stderr, "GeomZM MinDistance: unexpected result %1.6f|\n", min); - return -50; - } + { + /* unexpected result */ + fprintf (stderr, "GeomZM MinDistance: unexpected result %1.6f|\n", + min); + return -50; + } + + gaiaFreeGeomColl (geom2); - gaiaFreeGeomColl(geom2); - - gaiaFreeGeomColl(geom_pt); - gaiaFreeGeomColl(geom1); + gaiaFreeGeomColl (geom_pt); + gaiaFreeGeomColl (geom1); - gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0); + gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0); if (min != 5.0 || max != 10.0) - { - /* unexpected result */ - fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); - return -51; - } + { + /* unexpected result */ + fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", + min, max); + return -51; + } /* same, reversed line direction */ - gaiaIntersect(&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0); + gaiaIntersect (&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0); if (min != 5.0 || max != 10.0) - { - /* unexpected result */ - fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); - return -52; - } + { + /* unexpected result */ + fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", + min, max); + return -52; + } /* non-intersecting MBRs*/ min = -20; max = -20; - gaiaIntersect(&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0); + gaiaIntersect (&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0); if (min != -20 || max != -20) - { - /* unexpected result */ - fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); - return -53; - } - -/* Just intersecting */ + { + /* unexpected result */ + fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", + min, max); + return -53; + } + +/* Just intersecting */ min = 0; - max = 0; - gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0); + max = 0; + gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0); if (min != 5.0 || max != 10.0) - { - /* unexpected result */ - fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); - return -54; - } + { + /* unexpected result */ + fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", + min, max); + return -54; + } /* cloning a Linestring XY */ - line1 = gaiaAllocLinestring(4); - gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); - gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); - gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); - gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); - gaiaFreeLinestring(line2); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); - gaiaFreeLinestring(line2); - gaiaFreeLinestring(line1); + line1 = gaiaAllocLinestring (4); + gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); + gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); + gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); + gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); + gaiaFreeLinestring (line2); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); + gaiaFreeLinestring (line2); + gaiaFreeLinestring (line1); /* cloning a Linestring XYZ */ - line1 = gaiaAllocLinestringXYZ(4); - gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); - gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); - gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); - gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); - gaiaFreeLinestring(line2); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); - gaiaFreeLinestring(line2); - gaiaFreeLinestring(line1); + line1 = gaiaAllocLinestringXYZ (4); + gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); + gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); + gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); + gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); + gaiaFreeLinestring (line2); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); + gaiaFreeLinestring (line2); + gaiaFreeLinestring (line1); /* cloning a Linestring XYM */ - line1 = gaiaAllocLinestringXYM(4); - gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); - gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); - gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); - gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); - gaiaFreeLinestring(line2); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); - gaiaFreeLinestring(line2); - gaiaFreeLinestring(line1); + line1 = gaiaAllocLinestringXYM (4); + gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); + gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); + gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); + gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); + gaiaFreeLinestring (line2); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); + gaiaFreeLinestring (line2); + gaiaFreeLinestring (line1); /* cloning a Linestring XYZM */ - line1 = gaiaAllocLinestringXYZM(4); - gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); - gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); - gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); - gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); - gaiaFreeLinestring(line2); - line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); - gaiaFreeLinestring(line2); - gaiaFreeLinestring(line1); + line1 = gaiaAllocLinestringXYZM (4); + gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); + gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); + gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); + gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); + gaiaFreeLinestring (line2); + line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); + gaiaFreeLinestring (line2); + gaiaFreeLinestring (line1); /* cloning a Ring XY */ - ring1 = gaiaAllocRing(5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); - gaiaFreeRing(ring2); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); - gaiaFreeRing(ring2); - gaiaFreeRing(ring1); + ring1 = gaiaAllocRing (5); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); + gaiaFreeRing (ring2); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); + gaiaFreeRing (ring2); + gaiaFreeRing (ring1); /* cloning a Ring XYZ */ - ring1 = gaiaAllocRingXYZ(5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); - gaiaFreeRing(ring2); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); - gaiaFreeRing(ring2); - gaiaFreeRing(ring1); + ring1 = gaiaAllocRingXYZ (5); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); + gaiaFreeRing (ring2); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); + gaiaFreeRing (ring2); + gaiaFreeRing (ring1); /* cloning a Ring XYM */ - ring1 = gaiaAllocRingXYM(5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); - gaiaFreeRing(ring2); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); - gaiaFreeRing(ring2); - gaiaFreeRing(ring1); + ring1 = gaiaAllocRingXYM (5); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); + gaiaFreeRing (ring2); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); + gaiaFreeRing (ring2); + gaiaFreeRing (ring1); /* cloning a Ring XYZM */ - ring1 = gaiaAllocRingXYZM(4); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); - gaiaFreeRing(ring2); - ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); - gaiaFreeRing(ring2); - gaiaFreeRing(ring1); + ring1 = gaiaAllocRingXYZM (4); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); + gaiaFreeRing (ring2); + ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); + gaiaFreeRing (ring2); + gaiaFreeRing (ring1); /* cloning a Polygon XY (1) */ - polyg1 = gaiaAllocPolygon(5, 1); + polyg1 = gaiaAllocPolygon (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XY (2) */ - polyg1 = gaiaAllocPolygon(5, 1); + polyg1 = gaiaAllocPolygon (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYZ (1) */ - polyg1 = gaiaAllocPolygonXYZ(5, 1); + polyg1 = gaiaAllocPolygonXYZ (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYZ (2) */ - polyg1 = gaiaAllocPolygonXYZ(5, 1); + polyg1 = gaiaAllocPolygonXYZ (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYM (1) */ - polyg1 = gaiaAllocPolygonXYM(5, 1); + polyg1 = gaiaAllocPolygonXYM (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYM (2) */ - polyg1 = gaiaAllocPolygonXYM(5, 1); + polyg1 = gaiaAllocPolygonXYM (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYZM (1) */ - polyg1 = gaiaAllocPolygonXYZM(5, 1); + polyg1 = gaiaAllocPolygonXYZM (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); /* cloning a Polygon XYZM (2) */ - polyg1 = gaiaAllocPolygonXYZM(5, 1); + polyg1 = gaiaAllocPolygonXYZM (5, 1); ring1 = polyg1->Exterior; - gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); - gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); - gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); - gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); - gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); - gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); - gaiaFreePolygon(polyg2); - polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); - gaiaFreePolygon(polyg2); - gaiaFreePolygon(polyg1); + gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); + gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); + gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); + gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); + gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); + gaiaFreePolygon (polyg2); + polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); + gaiaFreePolygon (polyg2); + gaiaFreePolygon (polyg1); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -1001; - } - spatialite_cleanup(); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -1001; + } + spatialite_cleanup_ex (cache); + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_geometry_cols.c b/src/spatialite/test/check_geometry_cols.c index 6c9dde0..ca6e4e7 100644 --- a/src/spatialite/test/check_geometry_cols.c +++ b/src/spatialite/test/check_geometry_cols.c @@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -56,140 +57,224 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -3; - } - - ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n", rows, columns); - return -5; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n", results[1]); - return -6; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } + + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n", + rows, columns); + return -5; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n", + results[1]); + return -6; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n", rows, columns); - return -8; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n", results[1]); - return -9; - } + + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n", + rows, columns); + return -8; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n", + results[1]); + return -9; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n", rows, columns); - return -11; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n", results[1]); - return -12; - } + + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n", + results[1]); + return -12; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result AddGeometryColumn bad result: %i/%i.\n", rows, columns); - return -14; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: AddGeometryColumn with good args failed: %s.\n", results[1]); - return -15; - } + + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result AddGeometryColumn bad result: %i/%i.\n", + rows, columns); + return -14; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: AddGeometryColumn with good args failed: %s.\n", + results[1]); + return -15; + } sqlite3_free_table (results); - - ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -16; - } - - ret = sqlite3_get_table (handle, "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -17; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n", rows, columns); - return -18; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: DiscardGeometryColumn failed: %s.\n", results[1]); - return -19; - } + + ret = + sqlite3_exec (handle, + "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -16; + } + + ret = + sqlite3_get_table (handle, + "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n", + rows, columns); + return -18; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: DiscardGeometryColumn failed: %s.\n", + results[1]); + return -19; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -20; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n", rows, columns); - return -21; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: RecoverGeometryColumn failed: %s.\n", results[1]); - return -22; - } + + ret = + sqlite3_get_table (handle, + "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n", + rows, columns); + return -21; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: RecoverGeometryColumn failed: %s.\n", + results[1]); + return -22; + } sqlite3_free_table (results); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -23; - } - - spatialite_cleanup(); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -23; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return 0; } diff --git a/src/spatialite/test/check_geoscvt_fncts.c b/src/spatialite/test/check_geoscvt_fncts.c index 2b44ffe..cb423d0 100644 --- a/src/spatialite/test/check_geoscvt_fncts.c +++ b/src/spatialite/test/check_geoscvt_fncts.c @@ -54,48 +54,56 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "spatialite.h" #include "spatialite/gaiageo.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_GEOS /* only if GEOS is supported */ +#ifndef OMIT_GEOS /* only if GEOS is supported */ gaiaGeomCollPtr result; void *resultVoid; int returnValue = 0; - + /* Common setup */ - - gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl(); - + gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + /* Tests start here */ - + /* null input test */ - result = gaiaFromGeos_XY ( (const void*) NULL ); - if (result != NULL) { - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -1; - goto exit; - } - - resultVoid = gaiaToGeos ((gaiaGeomCollPtr)NULL); - if (resultVoid != NULL) { - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -2; - goto exit; - } - + result = gaiaFromGeos_XY ((const void *) NULL); + if (result != NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -1; + goto exit; + } + + resultVoid = gaiaToGeos ((gaiaGeomCollPtr) NULL); + if (resultVoid != NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -2; + goto exit; + } + /* unknown type geometry collection */ - resultVoid = gaiaToGeos ( emptyGeometry ); - if (resultVoid != NULL) { - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -3; - goto exit; - } - + resultVoid = gaiaToGeos (emptyGeometry); + if (resultVoid != NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -3; + goto exit; + } + /* Cleanup and exit */ -exit: + exit: gaiaFreeGeomColl (emptyGeometry); + spatialite_shutdown (); return returnValue; -#endif /* end GEOS conditional */ +#endif /* end GEOS conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_get_normal_row.c b/src/spatialite/test/check_get_normal_row.c new file mode 100644 index 0000000..b25e828 --- /dev/null +++ b/src/spatialite/test/check_get_normal_row.c @@ -0,0 +1,450 @@ +/* + + check_get_normal_row.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011, 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create tables to support future testing */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* create matrix levels 0, 1, 2 and 4 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -5; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 2, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(2) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -6; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -7; + } + + /* Check a proper INSERT */ + ret = + sqlite3_exec (db_handle, + "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT error 11: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error12: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -13; + } + if (strcmp (results[1 * columns + 0], "0") != 0) + { + fprintf (stderr, "Unexpected result (got %s, expected 0)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -14; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error 2: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -16; + } + if (strcmp (results[1 * columns + 0], "3") != 0) + { + fprintf (stderr, "Unexpected result (got %s, expected 3)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -17; + } + sqlite3_free_table (results); + + /* test an out-of-range zoom number - expect exception */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 5, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for overrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -18; + } + if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") + != 0) + { + fprintf (stderr, + "Unexpected error message for overrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -19; + } + sqlite3_free (err_msg); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", -1, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for underrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -20; + } + if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") + != 0) + { + fprintf (stderr, + "Unexpected error message for underrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -21; + } + sqlite3_free (err_msg); + + /* test bad table name */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"no_such_table\", 0, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad table name level, got %i\n", + ret); + sqlite3_free (err_msg); + return -22; + } + if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") + != 0) + { + fprintf (stderr, "Unexpected error message for bad table name: %s\n", + err_msg); + sqlite3_free (err_msg); + return -23; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(3, 0, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); + sqlite3_free (err_msg); + return -26; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -27; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3.2, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); + sqlite3_free (err_msg); + return -28; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -29; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 1.6)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg3 type, got %i\n", ret); + sqlite3_free (err_msg); + return -30; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg3 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -31; + } + sqlite3_free (err_msg); + + /* test overrange row number */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 4)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for overrange row number level, got %i\n", + ret); + sqlite3_free (err_msg); + return -32; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow: row number outside of matrix height range") != 0) + { + fprintf (stderr, + "Unexpected error message for overrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -33; + } + sqlite3_free (err_msg); + + /* test underrange row number */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, -1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for underrange row number level, got %i\n", + ret); + sqlite3_free (err_msg); + return -34; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow: row number outside of matrix height range") != 0) + { + fprintf (stderr, + "Unexpected error message for underrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -35; + } + sqlite3_free (err_msg); + + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_row_bad_geopackage.c b/src/spatialite/test/check_get_normal_row_bad_geopackage.c new file mode 100644 index 0000000..5c7f24e --- /dev/null +++ b/src/spatialite/test/check_get_normal_row_bad_geopackage.c @@ -0,0 +1,182 @@ +/* + + check_get_normal_row_bad_geopackage.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011, 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create a corrupt tile_matrix_metadata table (not spec compliant) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height TEXT NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + ret = + sqlite3_exec (db_handle, + "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 0, 0, \"foo\")", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -6; + } + ret = + sqlite3_exec (db_handle, + "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 1, 0, \"4000000000\")", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -7; + } + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for broken geopackage, got %i\n", + ret); + sqlite3_free (err_msg); + return -9; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) + { + fprintf (stderr, + "Unexpected error message for broken geopackage: %s\n", + err_msg); + sqlite3_free (err_msg); + return -10; + } + sqlite3_free (err_msg); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 1, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for broken geopackage zoom1, got %i\n", ret); + sqlite3_free (err_msg); + return -11; + } + if (strcmp + (err_msg, + "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) + { + fprintf (stderr, + "Unexpected error message for broken geopackage zoom1: %s\n", + err_msg); + sqlite3_free (err_msg); + return -12; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_row_bad_geopackage2.c b/src/spatialite/test/check_get_normal_row_bad_geopackage2.c new file mode 100644 index 0000000..7597d03 --- /dev/null +++ b/src/spatialite/test/check_get_normal_row_bad_geopackage2.c @@ -0,0 +1,125 @@ +/* + + check_get_normal_row_bad_geopackage2 - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011, 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* delete the gpkg_tile_matrix table (deliberately broken) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + /* now do the query */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for broken geopackage, got %i\n", + ret); + sqlite3_free (err_msg); + return -5; + } + if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0) + { + fprintf (stderr, + "Unexpected error message for broken geopackage: %s\n", + err_msg); + sqlite3_free (err_msg); + return -6; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_zoom.c b/src/spatialite/test/check_get_normal_zoom.c new file mode 100644 index 0000000..e9da61b --- /dev/null +++ b/src/spatialite/test/check_get_normal_zoom.c @@ -0,0 +1,350 @@ +/* + + check_get_normal_zoom.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_zoom.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create tables to support future testing */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* create matrix levels 0, 1 and 4 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -5; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -6; + } + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + sqlite3_free_table (results); + return -10; + } + if (strcmp (results[1 * columns + 0], "4") != 0) + { + fprintf (stderr, "Unexpected result 0 (got %s, expected 4)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -11; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error 2: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -13; + } + if (strcmp (results[1 * columns + 0], "3") != 0) + { + fprintf (stderr, "Unexpected result 1 (got %s, expected 3)", + results[rows * columns + 0]); + return -14; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error 3: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + sqlite3_free_table (results); + return -16; + } + if (strcmp (results[1 * columns + 0], "0") != 0) + { + fprintf (stderr, "Unexpected result 4(got %s, expected 0)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -17; + } + sqlite3_free_table (results); + + /* test an out-of-range zoom number - expect exception */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for overrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -18; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") + != 0) + { + fprintf (stderr, + "Unexpected error message for overrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -19; + } + sqlite3_free (err_msg); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for underrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -20; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") + != 0) + { + fprintf (stderr, + "Unexpected error message for underrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -21; + } + sqlite3_free (err_msg); + + /* test bad table name */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad table name level, got %i\n", + ret); + sqlite3_free (err_msg); + return -22; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0) + { + fprintf (stderr, "Unexpected error message for bad table name: %s\n", + err_msg); + sqlite3_free (err_msg); + return -23; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); + sqlite3_free (err_msg); + return -26; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -27; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); + sqlite3_free (err_msg); + return -28; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -29; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_zoom_bad_geopackage.c b/src/spatialite/test/check_get_normal_zoom_bad_geopackage.c new file mode 100644 index 0000000..8825d1c --- /dev/null +++ b/src/spatialite/test/check_get_normal_zoom_bad_geopackage.c @@ -0,0 +1,149 @@ +/* + + check_get_normal_zoom_bad_geopackage.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create a corrupt gpkg_tile_matrix table (not spec compliant) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level TEXT NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + ret = + sqlite3_exec (db_handle, + "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", \"foo\", 1, 1)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT gpkg_tile_matrix zoom 0 error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -6; + } + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for broken geopackage, got %i\n", + ret); + sqlite3_free (err_msg); + return -7; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)") != + 0) + { + fprintf (stderr, + "Unexpected error message for broken geopackage: %s\n", + err_msg); + sqlite3_free (err_msg); + return -8; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_zoom_bad_geopackage2.c b/src/spatialite/test/check_get_normal_zoom_bad_geopackage2.c new file mode 100644 index 0000000..2ada23b --- /dev/null +++ b/src/spatialite/test/check_get_normal_zoom_bad_geopackage2.c @@ -0,0 +1,166 @@ +/* + + check_get_normal_zoom_bad_geopackage2 - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + /* create tables to support future testing */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* create matrix levels 0, 1 and 4 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -4; + } + + /* delete the tile_matrix_metadata table (deliberately broken) */ + ret = + sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + + /* now do the query */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for broken geopackage, got %i\n", + ret); + sqlite3_free (err_msg); + return -6; + } + if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0) + { + fprintf (stderr, + "Unexpected error message for broken geopackage: %s\n", + err_msg); + sqlite3_free (err_msg); + return -7; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_get_normal_zoom_extension_load.c b/src/spatialite/test/check_get_normal_zoom_extension_load.c new file mode 100644 index 0000000..5812533 --- /dev/null +++ b/src/spatialite/test/check_get_normal_zoom_extension_load.c @@ -0,0 +1,362 @@ +/* + + check_get_normal_zoom_extension_load.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_get_normal_zoom_extension_load.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sqlite3_enable_load_extension (db_handle, 1); + + ret = + sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "load_extension(mod_spatialite) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* create tables to support future testing */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* create matrix levels 0, 1 and 4 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -5; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -6; + } + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + sqlite3_free_table (results); + return -10; + } + if (strcmp (results[1 * columns + 0], "4") != 0) + { + fprintf (stderr, "Unexpected result 0 (got %s, expected 4)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -11; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error 2: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -13; + } + if (strcmp (results[1 * columns + 0], "3") != 0) + { + fprintf (stderr, "Unexpected result 1 (got %s, expected 3)", + results[rows * columns + 0]); + return -14; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error 3: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + sqlite3_free_table (results); + return -16; + } + if (strcmp (results[1 * columns + 0], "0") != 0) + { + fprintf (stderr, "Unexpected result 4(got %s, expected 0)", + results[rows * columns + 0]); + sqlite3_free_table (results); + return -17; + } + sqlite3_free_table (results); + + /* test an out-of-range zoom number - expect exception */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for overrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -18; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") + != 0) + { + fprintf (stderr, + "Unexpected error message for overrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -19; + } + sqlite3_free (err_msg); + + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for underrange zoom level, got %i\n", + ret); + sqlite3_free (err_msg); + return -20; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") + != 0) + { + fprintf (stderr, + "Unexpected error message for underrange zoom level: %s\n", + err_msg); + sqlite3_free (err_msg); + return -21; + } + sqlite3_free (err_msg); + + /* test bad table name */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad table name level, got %i\n", + ret); + sqlite3_free (err_msg); + return -22; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0) + { + fprintf (stderr, "Unexpected error message for bad table name: %s\n", + err_msg); + sqlite3_free (err_msg); + return -23; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); + sqlite3_free (err_msg); + return -26; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -27; + } + sqlite3_free (err_msg); + + /* test bad argument types */ + ret = + sqlite3_get_table (db_handle, + "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); + sqlite3_free (err_msg); + return -28; + } + if (strcmp + (err_msg, + "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") + != 0) + { + fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -29; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -100; + } + + /* this is a hack to avoid excess valgrind noise */ + spatialite_cleanup (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgConvert.c b/src/spatialite/test/check_gpkgConvert.c new file mode 100644 index 0000000..f605589 --- /dev/null +++ b/src/spatialite/test/check_gpkgConvert.c @@ -0,0 +1,307 @@ +/* + + check_gpkgConvert.c - Test case for GeoPackage Extensions + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Sandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include +#include + +#include "config.h" + +#ifdef ENABLE_GEOPACKAGE /* only if GEOPACKAGE is enabled */ + +#include "sqlite3.h" +#include "spatialite.h" + +static void +do_unlink_all () +{ +/* deleting all temporary files */ + unlink ("./copy-gpkg_test.sqlite"); + unlink ("./copy-test-legacy-3.0.1.sqlite"); + unlink ("./out1.gpkg"); + unlink ("./out2.gpkg"); + unlink ("./out1.sqlite"); + unlink ("./out2.sqlite"); +} + +static int +do_load_legacy (const char *path) +{ +/* loading the Legacy Test DB */ + sqlite3 *db_handle; + int ret; + void *cache = NULL; + const char *sql; + char *sql_err = NULL; + + cache = spatialite_alloc_connection (); + ret = sqlite3_open_v2 (path, &db_handle, SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open '%s': %s\n", path, + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + return 0; + } + spatialite_init_ex (db_handle, cache, 0); + +/* creating a table */ + sql = "CREATE TABLE test0 (id INTEGER NOT NULL PRIMARY KEY)"; + ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* adding a geometry */ + sql = "SELECT AddGeometryColumn('test0', 'geom', 4326, 'POINT', 'XY')"; + ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + +/* inserting one row */ + sql = "INSERT INTO test0 (id, geom) VALUES(1, MakePoint(1, 2, 4326))"; + ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + return 1; +} + +static sqlite3 * +connect_db (const char *path, int flags, void *cache) +{ +/* attempting to connect a SQLite DB file */ + sqlite3 *db_handle; + int ret; + + ret = sqlite3_open_v2 (path, &db_handle, flags, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open '%s': %s\n", path, + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + return NULL; + } + spatialite_init_ex (db_handle, cache, 0); + return db_handle; +} + +static int +already_existing (const char *path) +{ +/* check if a file already exists */ + FILE *in = fopen (path, "rb"); + if (in != NULL) + { + /* already existing and accessible */ + fclose (in); + return 1; + } + if (errno == ENOENT) + return 0; + return 1; +} + +static int +open_connections (const char *path_origin, const char *path_destination, + void *cache_in, void *cache_out, sqlite3 ** xhandle_in, + sqlite3 ** xhandle_out) +{ +/* establishing IN and OUT DB connections */ + sqlite3 *handle_in = NULL; + sqlite3 *handle_out = NULL; + + if (already_existing (path_destination)) + { + fprintf (stderr, "Already existing output destination:\n\"%s\"\n", + path_destination); + return 0; + } + +/* attempting to connect the IN DB */ + handle_in = connect_db (path_origin, SQLITE_OPEN_READONLY, cache_in); + if (handle_in == NULL) + goto error; + +/* attempting to connect the OUT DB */ + handle_out = + connect_db (path_destination, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, cache_out); + if (handle_out == NULL) + goto error; + *xhandle_in = handle_in; + *xhandle_out = handle_out; + return 1; + + error: + if (handle_in != NULL) + sqlite3_close (handle_in); + if (handle_out != NULL) + sqlite3_close (handle_out); + return 0; +} + +int +main (int argc, char *argv[]) +{ + sqlite3 *handle_in = NULL; + sqlite3 *handle_out = NULL; + void *cache_in = NULL; + void *cache_out = NULL; + const char *path_origin; + const char *path_destination; + int ret; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + do_unlink_all (); + +/* converting from SpatiaLite v4 to GPKG */ + ret = system ("cp ./gpkg_test.sqlite copy-gpkg_test.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy gpkg_test.sqlite database\n"); + return -1; + } + path_origin = "./copy-gpkg_test.sqlite"; + path_destination = "./out1.gpkg"; + cache_in = spatialite_alloc_connection (); + cache_out = spatialite_alloc_connection (); + if (!open_connections + (path_origin, path_destination, cache_in, cache_out, &handle_in, + &handle_out)) + { + do_unlink_all (); + return -1; + } + if (!gaiaSpatialite2GPKG + (handle_in, path_origin, handle_out, path_destination)) + { + do_unlink_all (); + return -1; + } + sqlite3_close (handle_in); + sqlite3_close (handle_out); + spatialite_cleanup_ex (cache_in); + spatialite_cleanup_ex (cache_out); + +/* converting from GPKG to SpatiaLite */ + path_origin = "./out1.gpkg"; + path_destination = "./out1.sqlite"; + cache_in = spatialite_alloc_connection (); + cache_out = spatialite_alloc_connection (); + if (!open_connections + (path_origin, path_destination, cache_in, cache_out, &handle_in, + &handle_out)) + { + do_unlink_all (); + return -1; + } + if (!gaiaGPKG2Spatialite + (handle_in, path_origin, handle_out, path_destination)) + { + do_unlink_all (); + return -1; + } + sqlite3_close (handle_in); + sqlite3_close (handle_out); + spatialite_cleanup_ex (cache_in); + spatialite_cleanup_ex (cache_out); + +/* converting from SpatiaLite v3 to GPKG */ + ret = + system ("cp ./test-legacy-3.0.1.sqlite copy-test-legacy-3.0.1.sqlite"); + if (ret != 0) + { + do_unlink_all (); + fprintf (stderr, "cannot copy test-legacy-3.0.1.sqlite database\n"); + return -1; + } + if (!do_load_legacy ("./copy-test-legacy-3.0.1.sqlite")) + { + do_unlink_all (); + return -1; + } + path_origin = "./copy-test-legacy-3.0.1.sqlite"; + path_destination = "./out2.sqlite"; + cache_in = spatialite_alloc_connection (); + cache_out = spatialite_alloc_connection (); + if (!open_connections + (path_origin, path_destination, cache_in, cache_out, &handle_in, + &handle_out)) + { + do_unlink_all (); + return -1; + } + if (!gaiaSpatialite2GPKG + (handle_in, path_origin, handle_out, path_destination)) + { + do_unlink_all (); + return -1; + } + sqlite3_close (handle_in); + sqlite3_close (handle_out); + spatialite_cleanup_ex (cache_in); + spatialite_cleanup_ex (cache_out); + + do_unlink_all (); + return 0; +} + +#endif /* endif GEOPACKAGE enabled */ diff --git a/src/spatialite/test/check_gpkgCreateFeaturesTable.c b/src/spatialite/test/check_gpkgCreateFeaturesTable.c new file mode 100644 index 0000000..9a771a5 --- /dev/null +++ b/src/spatialite/test/check_gpkgCreateFeaturesTable.c @@ -0,0 +1,534 @@ +/* + + check_gkpgCreateFeaturesTable.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012-2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gkpgCreateFeaturesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -100; + } + + ret = + sqlite3_exec (db_handle, + "CREATE TABLE \"testfeats1\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected create testfeats1 table result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -101; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgAddGeometryColumn() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -102; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column duplicate column name, got %i\n", + ret); + sqlite3_free (err_msg); + return -103; + } + +#if 0 + /* check gpkg_contents table entry is OK */ + ret = + sqlite3_get_table (db_handle, + "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -104; + } + if ((rows != 1) || (columns != 9)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -105; + } + if (strcmp (results[1 * columns + 0], "tiles") != 0) + { + fprintf (stderr, + "Unexpected data_type result (got %s, expected tiles)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -106; + } + if (results[1 * columns + 1] != NULL) + { + fprintf (stderr, + "Unexpected identifier result (got %s, expected NULL)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -107; + } + if (strcmp (results[1 * columns + 2], "") != 0) + { + fprintf (stderr, + "Unexpected description result (got %s, expected an empty string)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -108; + } + /* TODO: this test should be more rigorous */ + if (results[1 * columns + 3] == NULL) + { + fprintf (stderr, "Unexpected last_change result - null)", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -109; + } + if ((results[1 * columns + 4] == NULL) + || (strcmp (results[1 * columns + 4], "-180.0") != 0)) + { + fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", + results[1 * columns + 4]); + sqlite3_free_table (results); + return -110; + } + if ((results[1 * columns + 5] == NULL) + || (strcmp (results[1 * columns + 5], "-90.0") != 0)) + { + fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", + results[1 * columns + 5]); + sqlite3_free_table (results); + return -111; + } + if ((results[1 * columns + 6] == NULL) + || (strcmp (results[1 * columns + 6], "180.0") != 0)) + { + fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", + results[1 * columns + 6]); + sqlite3_free_table (results); + return -112; + } + if ((results[1 * columns + 7] == NULL) + || (strcmp (results[1 * columns + 7], "90.0") != 0)) + { + fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", + results[1 * columns + 7]); + sqlite3_free_table (results); + return -113; + } + if ((results[1 * columns + 8] == NULL) + || (strcmp (results[1 * columns + 8], "4326") != 0)) + { + fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", + results[1 * columns + 8]); + sqlite3_free_table (results); + return -114; + } + sqlite3_free_table (results); + + /* check gpkg_tile_matrix_set table entry is OK */ + ret = + sqlite3_get_table (db_handle, + "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -140; + } + if ((rows != 1) || (columns != 5)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -141; + } + if ((results[1 * columns + 0] == NULL) + || (strcmp (results[1 * columns + 0], "-180.0") != 0)) + { + fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -142; + } + if ((results[1 * columns + 1] == NULL) + || (strcmp (results[1 * columns + 1], "-90.0") != 0)) + { + fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -143; + } + if ((results[1 * columns + 2] == NULL) + || (strcmp (results[1 * columns + 2], "180.0") != 0)) + { + fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -144; + } + if ((results[1 * columns + 3] == NULL) + || (strcmp (results[1 * columns + 3], "90.0") != 0)) + { + fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -145; + } + if ((results[1 * columns + 4] == NULL) + || (strcmp (results[1 * columns + 4], "4326") != 0)) + { + fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", + results[1 * columns + 4]); + sqlite3_free_table (results); + return -146; + } + sqlite3_free_table (results); +#endif + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "CREATE TABLE \"ctd\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Unexpected create ctd table result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -200; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", 2.4, \"POINT\", 0, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad column type, got %i\n", + ret); + sqlite3_free (err_msg); + return -201; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 2: %s\n", + err_msg); + sqlite3_free (err_msg); + return -202; + } + sqlite3_free (err_msg); + + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", 4, 0, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad geom type, got %i\n", + ret); + sqlite3_free (err_msg); + return -203; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n", + err_msg); + sqlite3_free (err_msg); + return -204; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(8.3, \"the_geom\", \"POINT\", 0, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad table type, got %i\n", + ret); + sqlite3_free (err_msg); + return -205; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 1: %s\n", + err_msg); + sqlite3_free (err_msg); + return -206; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", \"z\", 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad z type, got %i\n", + ret); + sqlite3_free (err_msg); + return -207; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n", + err_msg); + sqlite3_free (err_msg); + return -208; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, \"m\", 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad m type, got %i\n", + ret); + sqlite3_free (err_msg); + return -209; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n", + err_msg); + sqlite3_free (err_msg); + return -210; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 3, 0, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad z value, got %i\n", + ret); + sqlite3_free (err_msg); + return -211; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n", + err_msg); + sqlite3_free (err_msg); + return -212; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 3, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad m value, got %i\n", + ret); + sqlite3_free (err_msg); + return -213; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n", + err_msg); + sqlite3_free (err_msg); + return -214; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 2, \"srid\")", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad srid type, got %i\n", + ret); + sqlite3_free (err_msg); + return -215; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 6: %s\n", + err_msg); + sqlite3_free (err_msg); + return -216; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"blah\", 0, 1, 4326)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add geometry column bad geom type value, got %i\n", + ret); + sqlite3_free (err_msg); + return -217; + } + if (strcmp + (err_msg, + "gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n", + err_msg); + sqlite3_free (err_msg); + return -218; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -300; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgCreateTilesTable.c b/src/spatialite/test/check_gpkgCreateTilesTable.c new file mode 100644 index 0000000..fcee473 --- /dev/null +++ b/src/spatialite/test/check_gpkgCreateTilesTable.c @@ -0,0 +1,487 @@ +/* + + check_gpkgCreateTilesTable.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgCreateTilesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -100; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"testtiles1\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -101; + } + + /* same, but using integer bounds */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"testtiles2\", 4326, -180, -90, 180, 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() integer bounds result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -102; + } + + /* check gpkg_contents table entry is OK */ + ret = + sqlite3_get_table (db_handle, + "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -104; + } + if ((rows != 1) || (columns != 9)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -105; + } + if (strcmp (results[1 * columns + 0], "tiles") != 0) + { + fprintf (stderr, + "Unexpected data_type result (got %s, expected tiles)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -106; + } + if (results[1 * columns + 1] != NULL) + { + fprintf (stderr, + "Unexpected identifier result (got %s, expected NULL)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -107; + } + if (strcmp (results[1 * columns + 2], "") != 0) + { + fprintf (stderr, + "Unexpected description result (got %s, expected an empty string)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -108; + } + /* TODO: this test should be more rigorous */ + if (results[1 * columns + 3] == NULL) + { + fprintf (stderr, "Unexpected last_change result - null)"); + sqlite3_free_table (results); + return -109; + } + if ((results[1 * columns + 4] == NULL) + || (strcmp (results[1 * columns + 4], "-180.0") != 0)) + { + fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", + results[1 * columns + 4]); + sqlite3_free_table (results); + return -110; + } + if ((results[1 * columns + 5] == NULL) + || (strcmp (results[1 * columns + 5], "-90.0") != 0)) + { + fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", + results[1 * columns + 5]); + sqlite3_free_table (results); + return -111; + } + if ((results[1 * columns + 6] == NULL) + || (strcmp (results[1 * columns + 6], "180.0") != 0)) + { + fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", + results[1 * columns + 6]); + sqlite3_free_table (results); + return -112; + } + if ((results[1 * columns + 7] == NULL) + || (strcmp (results[1 * columns + 7], "90.0") != 0)) + { + fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", + results[1 * columns + 7]); + sqlite3_free_table (results); + return -113; + } + if ((results[1 * columns + 8] == NULL) + || (strcmp (results[1 * columns + 8], "4326") != 0)) + { + fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", + results[1 * columns + 8]); + sqlite3_free_table (results); + return -114; + } + sqlite3_free_table (results); + + /* check gpkg_tile_matrix_set table entry is OK */ + ret = + sqlite3_get_table (db_handle, + "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error1: %s\n", err_msg); + sqlite3_free (err_msg); + return -140; + } + if ((rows != 1) || (columns != 5)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -141; + } + if ((results[1 * columns + 0] == NULL) + || (strcmp (results[1 * columns + 0], "-180.0") != 0)) + { + fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -142; + } + if ((results[1 * columns + 1] == NULL) + || (strcmp (results[1 * columns + 1], "-90.0") != 0)) + { + fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -143; + } + if ((results[1 * columns + 2] == NULL) + || (strcmp (results[1 * columns + 2], "180.0") != 0)) + { + fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -144; + } + if ((results[1 * columns + 3] == NULL) + || (strcmp (results[1 * columns + 3], "90.0") != 0)) + { + fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -145; + } + if ((results[1 * columns + 4] == NULL) + || (strcmp (results[1 * columns + 4], "4326") != 0)) + { + fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", + results[1 * columns + 4]); + sqlite3_free_table (results); + return -146; + } + sqlite3_free_table (results); + + sqlite3_free (err_msg); + + /* try some bad arguments */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(3, 4326, -180, -90, 180, 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-string table name, got %i\n", + ret); + sqlite3_free (err_msg); + return -150; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 1 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -151; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test2\", \"srid\", -180, -90, 180, 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-integer SRID value, got %i\n", + ret); + sqlite3_free (err_msg); + return -152; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 2 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -153; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test2\", 0, \"minx\", -90, 180, 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-numeric min_x, got %i\n", + ret); + sqlite3_free (err_msg); + return -154; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 3 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -155; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, \"min_y\", 180, 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-numeric min_y, got %i\n", + ret); + sqlite3_free (err_msg); + return -156; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 4 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -157; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, \"max_x\", 90)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-numeric max_x, got %i\n", + ret); + sqlite3_free (err_msg); + return -158; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 5 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -159; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, 180, \"max_y\")", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, non-numeric max_y, got %i\n", + ret); + sqlite3_free (err_msg); + return -160; + } + if (strcmp + (err_msg, + "gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable arg 6 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -161; + } + sqlite3_free (err_msg); + + /* try duplicate entry */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"testtiles2\", 0, -180, -85, 180, 85)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, duplicate table, got %i\n", + ret); + sqlite3_free (err_msg); + return -162; + } + sqlite3_free (err_msg); + + /* try duplicate entry */ + ret = + sqlite3_exec (db_handle, + "CREATE TABLE alreadythere (id INTEGER PRIMARY KEY AUTOINCREMENT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected error for add tiles table, existing table setup %i (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -164; + } + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"alreadythere\", 0, -180, -85, 180, 85)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add tiles table, duplicate table manual, got %i\n", + ret); + sqlite3_free (err_msg); + return -165; + } + if (strcmp (err_msg, "table alreadythere already exists") != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgCreateTilesTable dupe manual table: %s\n", + err_msg); + sqlite3_free (err_msg); + return -163; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgCreateTilesTableMissingSRID.c b/src/spatialite/test/check_gpkgCreateTilesTableMissingSRID.c new file mode 100644 index 0000000..075357c --- /dev/null +++ b/src/spatialite/test/check_gpkgCreateTilesTableMissingSRID.c @@ -0,0 +1,115 @@ +/* + + check_gpkgCreateTilesTableMissingSRID.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgCreateTilesTableMissingSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -100; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"testtile1\", 3.14, 10.1, 20.2, 30.3, 40.4)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "Expected error for bad SRID, got %i\n", ret); + sqlite3_free (err_msg); + return -102; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgCreateTilesZoomLevel.c b/src/spatialite/test/check_gpkgCreateTilesZoomLevel.c new file mode 100644 index 0000000..c56452c --- /dev/null +++ b/src/spatialite/test/check_gpkgCreateTilesZoomLevel.c @@ -0,0 +1,317 @@ +/* + + check_gpkgCreateTilesZoomLevel.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2011,2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgCreateTilesZoomLevel.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -3; + } + + /* create matrix level 0 */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -6; + } + + /* try duplicate entry */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, duplicate entry, got %i\n", + ret); + sqlite3_free (err_msg); + return -10; + } + sqlite3_free (err_msg); + + /* try some bad arguments */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(9.4, 4, 360, 180)", NULL, + NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, non-string table name, got %i\n", + ret); + sqlite3_free (err_msg); + return -18; + } + if (strcmp + (err_msg, + "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 1 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -21; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4.2, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, non-integer zoom, got %i\n", + ret); + sqlite3_free (err_msg); + return -20; + } + if (strcmp + (err_msg, + "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 2 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -21; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, \"x\", 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, non-numeric extent, got %i\n", + ret); + sqlite3_free (err_msg); + return -22; + } + if (strcmp + (err_msg, + "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 3 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -23; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, \"y\")", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, non-numeric height extent, got %i\n", + ret); + sqlite3_free (err_msg); + return -24; + } + if (strcmp + (err_msg, + "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 4 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -25; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", -1, 360, 180)", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for add zoom level, negative zoom, got %i\n", + ret); + sqlite3_free (err_msg); + return -26; + } + if (strcmp + (err_msg, + "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgAddGeometryColumn arg 2 bad value: %s\n", + err_msg); + sqlite3_free (err_msg); + return -27; + } + sqlite3_free (err_msg); + + /* Try float extent */ + ret = + sqlite3_exec (db_handle, + "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360.0, 180.0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -30; + } + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat.c b/src/spatialite/test/check_gpkgGetImageFormat.c new file mode 100644 index 0000000..5c269f7 --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat.c @@ -0,0 +1,159 @@ +/* + + check_gpkgGetImageFormat.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + void *cache = spatialite_alloc_connection (); + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"tile111.jpeg\"))"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "jpeg") != 0) + { + fprintf (stderr, "wrong image type: %s\n", + sqlite3_column_text (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat_nonblob.c b/src/spatialite/test/check_gpkgGetImageFormat_nonblob.c new file mode 100644 index 0000000..cde0dda --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat_nonblob.c @@ -0,0 +1,110 @@ +/* + + check_gpkgGetImageFormat_nonblob.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonblobsqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(1000)"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + /* TODO: check the error string */ + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat_nonimage.c b/src/spatialite/test/check_gpkgGetImageFormat_nonimage.c new file mode 100644 index 0000000..5aeb41b --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat_nonimage.c @@ -0,0 +1,129 @@ +/* + + check_gpkgGetImageFormat_nonimage.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonimage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(zeroblob(1000))"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "unknown") != 0) + { + fprintf (stderr, "wrong image type: %s\n", + sqlite3_column_text (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat_png.c b/src/spatialite/test/check_gpkgGetImageFormat_png.c new file mode 100644 index 0000000..8ea4263 --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat_png.c @@ -0,0 +1,159 @@ +/* + + check_gpkgGetImageFormat_png.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_png.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.png\"))"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "png") != 0) + { + fprintf (stderr, "wrong image type: %s\n", + sqlite3_column_text (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat_tiff.c b/src/spatialite/test/check_gpkgGetImageFormat_tiff.c new file mode 100644 index 0000000..c8bb404 --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat_tiff.c @@ -0,0 +1,159 @@ +/* + + check_gpkgGetImageFormat_tiff.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_tiff.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.tif\"))"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "tiff") != 0) + { + fprintf (stderr, "wrong image type: %s\n", + sqlite3_column_text (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgGetImageFormat_webp.c b/src/spatialite/test/check_gpkgGetImageFormat_webp.c new file mode 100644 index 0000000..1136e42 --- /dev/null +++ b/src/spatialite/test/check_gpkgGetImageFormat_webp.c @@ -0,0 +1,159 @@ +/* + + check_gpkgGetImageFormat_webp.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include +#include + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + int ret; + void *cache = spatialite_alloc_connection (); + char *old_SPATIALITE_SECURITY_ENV = NULL; +#ifdef _WIN32 + char *env; +#endif /* not WIN32 */ + + old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY=relaxed"); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", "relaxed", 1); +#endif + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_webp.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (old_SPATIALITE_SECURITY_ENV) + { +#ifdef _WIN32 + env = + sqlite3_mprintf ("SPATIALITE_SECURITY=%s", + old_SPATIALITE_SECURITY_ENV); + putenv (env); + sqlite3_free (env); +#else /* not WIN32 */ + setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); +#endif + } + else + { +#ifdef _WIN32 + putenv ("SPATIALITE_SECURITY="); +#else /* not WIN32 */ + unsetenv ("SPATIALITE_SECURITY"); +#endif + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"test.webp\"))"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, + sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i\n", ret); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "x-webp") != 0) + { + fprintf (stderr, "wrong image type: %s\n", + sqlite3_column_text (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgInsertEpsgSRID.c b/src/spatialite/test/check_gpkgInsertEpsgSRID.c new file mode 100644 index 0000000..9848ff9 --- /dev/null +++ b/src/spatialite/test/check_gpkgInsertEpsgSRID.c @@ -0,0 +1,260 @@ +/* + + check_gpkgInsertEpsgSRID.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkgInsertEpsgSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -100; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Unexpected gpkgInsertEpsgSRID() result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -101; + } + + /* check insert is OK */ + sql_statement = + "SELECT srs_name, organization, organization_coordsys_id FROM gpkg_spatial_ref_sys WHERE srs_id=3857"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "failed to prepare SELECT ... FROM gpkg_spatial_ref_sys: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -102; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -103; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -104; + } + if (strcasecmp + ((const char *) sqlite3_column_text (stmt, 0), + "WGS 84 / Pseudo-Mercator") != 0) + { + fprintf (stderr, "wrong srs_name: %s\n", + sqlite3_column_text (stmt, 0)); + return -105; + } + if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 1: %i\n", + sqlite3_column_type (stmt, 1)); + return -106; + } + if (strcasecmp ((const char *) sqlite3_column_text (stmt, 1), "epsg") != 0) + { + fprintf (stderr, "wrong organization: %s\n", + sqlite3_column_text (stmt, 1)); + return -107; + } + if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) + { + fprintf (stderr, "bad type for column 2: %i\n", + sqlite3_column_type (stmt, 2)); + return -108; + } + if (sqlite3_column_int (stmt, 2) != 3857) + { + fprintf (stderr, "wrong organization coordinate system ID: %i\n", + sqlite3_column_int (stmt, 2)); + return -109; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -129; + } + ret = sqlite3_finalize (stmt); + + sqlite3_free (err_msg); + + /* try no WKT, something of a hack here */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(40001)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgInsertEpsgSRID(40001) result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -130; + } + + /* try some bad arguments */ + ret = + sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(34.4)", NULL, NULL, + &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for insert value, non-integer id, got %i\n", + ret); + sqlite3_free (err_msg); + return -200; + } + if (strcmp + (err_msg, + "gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad type: %s\n", + err_msg); + sqlite3_free (err_msg); + return -201; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(9999999)", NULL, + NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for insert value, invalid id, got %i\n", + ret); + sqlite3_free (err_msg); + return -202; + } + if (strcmp + (err_msg, + "gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset") + != 0) + { + fprintf (stderr, + "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad value: %s\n", + err_msg); + sqlite3_free (err_msg); + return -203; + } + sqlite3_free (err_msg); + + ret = + sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL, + &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, + "Expected error for insert value, duplicate entry, got %i\n", + ret); + sqlite3_free (err_msg); + return -204; + } + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -400; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkgVirtual.c b/src/spatialite/test/check_gpkgVirtual.c new file mode 100644 index 0000000..bfc5ab9 --- /dev/null +++ b/src/spatialite/test/check_gpkgVirtual.c @@ -0,0 +1,686 @@ +/* + + check_gpkgVirtual.c - Test case for GeoPackage Extensions + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Sandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2014 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#include "config.h" + +#ifdef ENABLE_GEOPACKAGE /* only if GEOPACKAGE is enabled */ + +#include "sqlite3.h" +#include "spatialite.h" + +static void +do_unlink_all () +{ +/* deleting all temporary files */ + unlink ("./copy-gpkg_test.gpkg"); +} + +static int +test_table (sqlite3 * handle, const char *table) +{ +/* testing a 'raw' GPKG table */ + char *sql; + int ret; + sqlite3_stmt *stmt = NULL; + + sql = sqlite3_mprintf ("SELECT geom, IsValidGPB(geom), ST_Srid(geom), " + "ST_MinX(geom), ST_MaxX(geom), ST_MinY(geom), ST_MaxY(geom), " + "ST_Is3D(geom), ST_IsMeasured(geom), ST_MinZ(geom), ST_MaxZ(geom), " + "ST_MinM(geom), ST_MaxM(geom), ST_GeometryType(geom) FROM %s", + table); + + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free(sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table, + sqlite3_errmsg (handle)); + goto stop; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + int is_null = 0; + int has_z; + int has_m; + if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) + is_null = 1; + if (sqlite3_column_type (stmt, 1) != SQLITE_INTEGER) + { + fprintf (stderr, + "Unexpected ST_IsValidGPB: not an Integer\n"); + goto stop; + } + if (is_null) + { + if (sqlite3_column_int (stmt, 1) != 0) + { + fprintf (stderr, + "Unexpected result (NULL) ST_IsValidGPB=%d\n", + sqlite3_column_int (stmt, 1)); + goto stop; + } + continue; + } + else + { + if (sqlite3_column_int (stmt, 1) != 1) + { + fprintf (stderr, + "Unexpected result ST_IsValidGPB=%d\n", + sqlite3_column_int (stmt, 1)); + goto stop; + } + } + if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) + { + fprintf (stderr, "Unexpected ST_SRID: not an Integer\n"); + goto stop; + } + if (sqlite3_column_int (stmt, 2) != 4326) + { + fprintf (stderr, "Unexpected result ST_SRID=%d\n", + sqlite3_column_int (stmt, 2)); + goto stop; + } + if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT) + { + fprintf (stderr, "Unexpected ST_MinX: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT) + { + fprintf (stderr, "Unexpected ST_MaxX: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 5) != SQLITE_FLOAT) + { + fprintf (stderr, "Unexpected ST_MinY: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 6) != SQLITE_FLOAT) + { + fprintf (stderr, "Unexpected ST_MaxY: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 7) != SQLITE_INTEGER) + { + fprintf (stderr, "Unexpected ST_Is3D: not an Integer\n"); + goto stop; + } + has_z = sqlite3_column_int (stmt, 7); + if (sqlite3_column_type (stmt, 8) != SQLITE_INTEGER) + { + fprintf (stderr, + "Unexpected ST_IsMeasured: not an Integer\n"); + goto stop; + } + has_m = sqlite3_column_int (stmt, 8); + if (has_z) + { + if (sqlite3_column_type (stmt, 9) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected ST_MinZ: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 10) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected ST_MaxZ: not a Double\n"); + goto stop; + } + } + else + { + if (sqlite3_column_type (stmt, 9) != SQLITE_NULL) + { + fprintf (stderr, "Unexpected ST_MinZ: not NULL\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 10) != SQLITE_NULL) + { + fprintf (stderr, "Unexpected ST_MaxZ: not NULL\n"); + goto stop; + } + } + if (has_m) + { + if (sqlite3_column_type (stmt, 11) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected ST_MinM: not a Double\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 12) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected ST_MaxM: not a Double\n"); + goto stop; + } + } + else + { + if (sqlite3_column_type (stmt, 11) != SQLITE_NULL) + { + fprintf (stderr, "Unexpected ST_MinM: not NULL\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 12) != SQLITE_NULL) + { + fprintf (stderr, "Unexpected ST_MaxM: not NULL\n"); + goto stop; + } + } + if (sqlite3_column_type (stmt, 13) != SQLITE_TEXT) + { + fprintf (stderr, + "Unexpected ST_GeometryType: not TEXT\n"); + goto stop; + } + } + else + { + /* an unexpected error occurred */ + fprintf (stderr, "Error while querying from \"%s\": %s\n", + table, sqlite3_errmsg (handle)); + goto stop; + } + } + sqlite3_finalize (stmt); + return 1; + + stop: + if (stmt != NULL) + sqlite3_finalize (stmt); + return 0; +} + +static int +test_vtable (sqlite3 * handle, const char *table, int mode) +{ +/* testing a VirtualGPKG table */ + char *sql; + int ret; + sqlite3_stmt *stmt = NULL; + + if (mode) + { + sql = sqlite3_mprintf ("SELECT ROWID, first_name, " + "last_name, value1, value2 FROM vgpkg_%s", + table); + } + else + { + sql = sqlite3_mprintf ("SELECT geom, ST_AsText(geom), id, name " + "FROM vgpkg_%s", table); + } + + ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "SELECT FROM \"vgpkg_%s\" error: %s\n", table, + sqlite3_errmsg (handle)); + goto stop; + } + while (1) + { + /* scrolling the result set rows */ + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE) + break; /* end of result set */ + if (ret == SQLITE_ROW) + { + if (mode) + { + if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) + { + fprintf (stderr, + "Unexpected ROWID: not an INTEGER\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) + { + fprintf (stderr, + "Unexpected \"first_name\": not a TEXT string\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 2) != SQLITE_TEXT) + { + fprintf (stderr, + "Unexpected \"first_name\": not a TEXT string\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected \"first_name\": not a DOUBLE\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT) + { + fprintf (stderr, + "Unexpected \"first_name\": not a DOUBLE\n"); + goto stop; + } + } + else + { + if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) + continue; + if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) + { + fprintf (stderr, + "Unexpected ST_AsText: not a TEXT string\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) + { + fprintf (stderr, + "Unexpected \"id\": not an INTEGER\n"); + goto stop; + } + if (sqlite3_column_type (stmt, 3) != SQLITE_TEXT) + { + fprintf (stderr, + "Unexpected \"name\": not a TEXT string\n"); + goto stop; + } + } + } + else + { + /* an unexpected error occurred */ + fprintf (stderr, "Error while querying from \"vgpkg_%s\": %s\n", + table, sqlite3_errmsg (handle)); + goto stop; + } + } + sqlite3_finalize (stmt); + return 1; + + stop: + if (stmt != NULL) + sqlite3_finalize (stmt); + return 0; +} + +static int +test_vtable_out (sqlite3 * handle) +{ +/* testing VirtualGPKG insert/update/delete */ + const char *sql; + int ret; + char *sql_err = NULL; + + sql = "BEGIN"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "BEGIN error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = + "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) " + "VALUES ('z1', 'charlie', 1, 2, MakePoint(3, 3, 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #1 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = + "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) " + "VALUES ('z2', 'annie', 1.1, 2.2, MakePoint(4, 4, 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #2 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2) " + "VALUES ('z3', 'peter', 2.2, 3.3)"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #3 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "UPDATE vgpkg_test_pk SET geom = MakePoint(14, 14, 4326) " + "WHERE first_name = 'z1'"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE #1 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "UPDATE vgpkg_test_pk SET value1 = 13.4 " "WHERE ROWID = 3"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE #2 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "UPDATE vgpkg_test_pk SET geom = NULL, value2 = 51 " + "WHERE ROWID = 2"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE #3 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "DELETE FROM vgpkg_test_pk WHERE ROWID = 1"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE #1 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "DELETE FROM vgpkg_test_pk WHERE first_name > 'z'"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE #2 error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + sql = "ROLLBACK"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "ROLLBACK error: %s\n", sql_err); + sqlite3_free (sql_err); + return 0; + } + + return 1; +} + +int +main (int argc, char *argv[]) +{ + sqlite3 *db_handle; + int ret; + const char *sql; + void *cache = NULL; + char *sql_err = NULL; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + do_unlink_all (); + +/* directly testing GPKG */ + ret = system ("cp ./gpkg_test.gpkg copy-gpkg_test.gpkg"); + if (ret != 0) + { + fprintf (stderr, "cannot copy gpkg_test.gpkg database\n"); + return -1; + } + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 ("./copy-gpkg_test.gpkg", &db_handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open '%s': %s\n", "copy-gpkg_test.gpkg", + sqlite3_errmsg (db_handle)); + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + spatialite_init_ex (db_handle, cache, 0); + + if (!test_table (db_handle, "pt2d")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "ln3dz")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "pg2dm")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "mpt3dzm")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "mln2dm")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "mpg3dz")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_table (db_handle, "gc3dz")) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + +/* activating Auto GPKG Wrapping */ + sql = "SELECT AutoGPKGStart()"; + ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AutoGPKGStart error: %s\n", sql_err); + sqlite3_free (sql_err); + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + +/* testing the Virtual Tables */ + if (!test_vtable (db_handle, "pt2d", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "ln3dz", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "pg2dm", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "mpt3dzm", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "mln2dm", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "mpg3dz", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "gc3dz", 0)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable (db_handle, "test_pk", 1)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + if (!test_vtable_out (db_handle)) + { + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + +/* quitting Auto GPKG Wrapping */ + sql = "SELECT AutoGPKGStop()"; + ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AutoGPKGStop error: %s\n", sql_err); + sqlite3_free (sql_err); + do_unlink_all (); + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + return -1; + } + + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + do_unlink_all (); + return 0; +} + +#endif /* endif GEOPACKAGE enabled */ diff --git a/src/spatialite/test/check_gpkg_base_core_container_data_file_format_application_id.c b/src/spatialite/test/check_gpkg_base_core_container_data_file_format_application_id.c new file mode 100644 index 0000000..84d831a --- /dev/null +++ b/src/spatialite/test/check_gpkg_base_core_container_data_file_format_application_id.c @@ -0,0 +1,150 @@ +/* + + check_gpkg_base_core_container_data_file_format_application_id.c - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2012 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkg_base_core_container_data_file_format_application_id.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* + / Test Case ID: /base/core/container/data/file_format/application_id + / Test Purpose: Verify that the SQLite database header application id field indicates GeoPackage version 1.0 + / Test Method: Pass if the application id field of the SQLite database header contains “GP10” in ASCII. + / Reference: Clause 1.1.1.1.1 Req 2: + / Test Type: Basic + */ + ret = + sqlite3_prepare_v2 (db_handle, "PRAGMA application_id", + strlen ("PRAGMA application_id"), &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + if (sqlite3_column_int (stmt, 0) != 0x47503130) + { + fprintf (stderr, "wrong application_id: %i\n", + sqlite3_column_int (stmt, 0)); + return -33; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -34; + } + ret = sqlite3_finalize (stmt); + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkg_base_core_contents_data_table_def.c b/src/spatialite/test/check_gpkg_base_core_contents_data_table_def.c new file mode 100644 index 0000000..b8c228e --- /dev/null +++ b/src/spatialite/test/check_gpkg_base_core_contents_data_table_def.c @@ -0,0 +1,356 @@ +/* + + check_gpkg_base_core_contents_data_table_def - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#define __USE_GNU +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +struct tableDefinitionElement +{ + const char *column_name; + const char *column_type; + bool mayBeNull; + const char *defaultValue; + const char *keySignature; + bool wasFound; +}; + +struct tableDefinitionElement tableValues[] = { + {"table_name", "TEXT", false, NULL, "PRIMARY KEY", false}, + {"data_type", "TEXT", false, NULL, NULL, false}, + {"identifier", "TEXT", true, NULL, NULL, false}, + {"description", "TEXT", true, "''", NULL, false}, + {"min_x", "DOUBLE", true, NULL, NULL, false}, + {"min_y", "DOUBLE", true, NULL, NULL, false}, + {"max_x", "DOUBLE", true, NULL, NULL, false}, + {"max_y", "DOUBLE", true, NULL, NULL, false}, + {"srs_id", "INTEGER", true, NULL, NULL, false}, + {NULL, NULL, false, NULL, NULL, false} +}; + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + int i, j; + char *sql; + char *str; + char *token; + char *saveptr; + bool valid_last_change = false; + bool valid_fk_constraint = false; + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* + / Test Case ID /base/core/contents/data/table_def + / Test Purpose Verify that the gpkg_contents table exists and has the correct definition. + / Test Method + / SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_contents + / Fail if returns an empty result set. + / Pass if the column names and column definitions in the returned CREATE TABLE statement, + / including data type, nullability, default values and primary, foreign and unique key + / constraints match all of those in the contents of C.2 Table 18. Column order, check + / constraint and trigger definitions, and other column definitions in the returned sql + / are irrelevant. + / Fail Otherwise + / Reference Clause 1.1.3.1.1 Req 13: + / Test Type Basic + */ + sql_statement = + "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_contents'"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -10; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -11; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -12; + } + sql = + strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + + strlen ("(")); + if (!sql) + { + fprintf (stderr, "unrecognised format for SQL\n"); + return -13; + } + + for (j = 1, str = sql;; j++, str = NULL) + { + token = strtok_r (str, ",", &saveptr); + if (token == NULL) + { + break; + } + for (i = 0; tableValues[i].column_name != NULL; ++i) + { + while (isspace (*token)) + { + token++; + } + if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) == + 0) + { + if (strcasestr + (token, + "FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id)")) + { + valid_fk_constraint = true; + } + continue; + } + if (strcasestr (token, tableValues[i].column_name)) + { + if (!strcasestr (token, tableValues[i].column_type)) + { + fprintf (stderr, + "missing COLUMN TYPE %s for %s: %s\n", + tableValues[i].column_type, + tableValues[i].column_name, token); + return -20; + } + if (tableValues[i].mayBeNull + && strcasestr (token, "NOT NULL")) + { + fprintf (stderr, + "Unexpected NOT NULL constraint for %s: %s\n", + tableValues[i].column_name, token); + return -21; + } + if ((!tableValues[i].mayBeNull) + && (!strcasestr (token, "NOT NULL"))) + { + fprintf (stderr, + "Missing NOT NULL constraint for %s: %s\n", + tableValues[i].column_name, token); + return -22; + } + if ((tableValues[i].keySignature != NULL) + && (!strcasestr (token, tableValues[i].keySignature))) + { + fprintf (stderr, + "Missing %s constraint for %s: %s\n", + tableValues[i].keySignature, + tableValues[i].column_name, token); + return -23; + } + if ((tableValues[i].keySignature == NULL) + && (strcasestr (token, "KEY"))) + { + fprintf (stderr, + "Unexpected key constraint for %s: %s\n", + tableValues[i].column_name, token); + return -24; + } + if ((tableValues[i].defaultValue == NULL) + && (strcasestr (token, "DEFAULT"))) + { + fprintf (stderr, + "Unexpected default value for %s: %s\n", + tableValues[i].column_name, token); + return -25; + } + if ((tableValues[i].defaultValue != NULL) + && (!strcasestr (token, tableValues[i].defaultValue))) + { + fprintf (stderr, + "Missing default value for %s: %s\n", + tableValues[i].column_name, token); + return -26; + } + tableValues[i].wasFound = true; + } + } + if (strcasestr (token, "last_change ")) + { + /* last_change default has an embedded ',' so we need to grab the next token too. */ + char *nexttoken = strtok_r (str, ",", &saveptr); + char *fulltoken = + malloc (strlen (token) + strlen (",") + strlen (nexttoken) + + 1); + strcpy (fulltoken, token); + strcat (fulltoken, ","); + strcat (fulltoken, nexttoken); + if (!strcasestr (fulltoken, "TEXT")) + { + fprintf (stderr, + "missing COLUMN TYPE TEXT for last_change: %s\n", + fulltoken); + free (fulltoken); + return -40; + } + if (!strcasestr (fulltoken, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for last_change: %s\n", + fulltoken); + free (fulltoken); + return -41; + } + if (strcasestr (fulltoken, "KEY")) + { + fprintf (stderr, + "Unexpected KEY constraint for last_change: %s\n", + token); + free (fulltoken); + return -42; + } + if (!strcasestr + (fulltoken, + "DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP))")) + { + fprintf (stderr, + "Missing default value for last_change: %s\n", + fulltoken); + free (fulltoken); + return -43; + } + free (fulltoken); + valid_last_change = true; + } + } + free (sql); + + for (i = 0; tableValues[i].column_name != NULL; ++i) + { + if (tableValues[i].wasFound == false) + { + fprintf (stderr, "did not find expected %s column\n", + tableValues[i].column_name); + return -50; + } + } + if (!valid_last_change) + { + fprintf (stderr, + "did not find expected last_change column, or required properties were not found\n"); + return -51; + } + if (!valid_fk_constraint) + { + fprintf (stderr, "did not find expected FK constraint\n"); + return -52; + } + + + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -199; + } + ret = sqlite3_finalize (stmt); + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c b/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c new file mode 100644 index 0000000..90351e6 --- /dev/null +++ b/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c @@ -0,0 +1,384 @@ +/* + + check_gpkg_base_core_spatial_ref_sys_data_table_def - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include + +#define __USE_GNU +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + int j; + char *sql; + char *str; + char *token; + char *saveptr; + bool valid_srs_name = false; + bool valid_srs_id = false; + bool valid_organization = false; + bool valid_organization_coordsys_id = false; + bool valid_definition = false; + bool valid_description = false; + + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* + / Test Case ID: /base/core/spatial_ref_sys/data/table_def + / Test Purpose: Verify that the gpkg_spatial_ref_sys table exists and has the correct definition. + / Test Method: + / 1) SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys' + / 2) Fail if returns an empty result set + / 3) Pass if column names and column definitions in the returned CREATE TABLE statement in the sql column value, including data type, nullability, and primary key + / constraints match all of those in the contents of C.1 Table 18. Column order, check constraint and trigger definitions, and other column definitions in the returned sql are + / irrelevant. + / 4) Fail otherwise. + / Reference: Clause 1.1.2.1.1 Req 10: + / Test Type: Basic + */ + + sql_statement = + "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys'"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -30; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -31; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -32; + } + sql = + strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + + strlen ("(")); + if (!sql) + { + fprintf (stderr, "unrecognised format for SQL\n"); + return -33; + } + /* + / Column Name Column Type Column Description Null Key + / srs_name TEXT Human readable name of this SRS no + / srs_id INTEGER Unique identifier for each Spatial Reference System within a GeoPackage no PK + / organization TEXT Case-insensitive name of the defining organization e.g. EPSG or epsg no + / organization_coordsys_id INTEGER Numeric ID of the Spatial Reference System assigned by the organization no + / definition TEXT Well-known Text Representation of the Spatial Reference System no + / description TEXT Human readable description of this SRS yes + */ + + for (j = 1, str = sql;; j++, str = NULL) + { + token = strtok_r (str, ",", &saveptr); + if (token == NULL) + { + break; + } + if (strstr (token, "srs_name ")) + { + if (!strstr (token, "TEXT")) + { + fprintf (stderr, + "missing COLUMN TYPE TEXT for srs_name: %s\n", + token); + return -34; + } + if (!strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for srs_name: %s\n", + token); + return -35; + } + if (strstr (token, "KEY")) + { + fprintf (stderr, + "Unexpected KEY constraint for srs_name: %s\n", + token); + return -36; + } + valid_srs_name = true; + } + if (strstr (token, "srs_id ")) + { + if (!strstr (token, "INTEGER")) + { + fprintf (stderr, + "missing COLUMN TYPE INTEGER for srs_id: %s\n", + token); + return -37; + } + if (!strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for srs_id: %s\n", + token); + return -38; + } + if (!strstr (token, "PRIMARY KEY")) + { + fprintf (stderr, + "Missing PRIMARY KEY constraint for srs_id: %s\n", + token); + return -39; + } + valid_srs_id = true; + } + if (strstr (token, "organization ")) + { + if (!strstr (token, "TEXT")) + { + fprintf (stderr, + "missing COLUMN TYPE TEXT for organization: %s\n", + token); + return -40; + } + if (!strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for organization: %s\n", + token); + return -41; + } + if (strstr (token, "KEY")) + { + fprintf (stderr, + "Unexpected KEY constraint for organization: %s\n", + token); + return -42; + } + valid_organization = true; + } + if (strstr (token, "organization_coordsys_id ")) + { + if (!strstr (token, "INTEGER")) + { + fprintf (stderr, + "missing COLUMN TYPE INTEGER for organization_coordsys_id: %s\n", + token); + return -43; + } + if (!strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for organization_coordsys_id: %s\n", + token); + return -44; + } + if (strstr (token, "KEY")) + { + fprintf (stderr, + "Unexpected PRIMARY KEY constraint for organization_coordsys_id: %s\n", + token); + return -45; + } + valid_organization_coordsys_id = true; + } + if (strstr (token, "definition ")) + { + if (!strstr (token, "TEXT")) + { + fprintf (stderr, + "missing COLUMN TYPE TEXT for definition: %s\n", + token); + return -46; + } + if (!strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Missing NOT NULL constraint for definition: %s\n", + token); + return -47; + } + if (strstr (token, "KEY")) + { + fprintf (stderr, + "Unexpected KEY constraint for definition: %s\n", + token); + return -48; + } + valid_definition = true; + } + if (strstr (token, "description ")) + { + if (!strstr (token, "TEXT")) + { + fprintf (stderr, + "missing COLUMN TYPE TEXT for description: %s\n", + token); + return -49; + } + if (strstr (token, "NOT NULL")) + { + fprintf (stderr, + "Unexpected NOT NULL constraint for description: %s\n", + token); + return -50; + } + if (strstr (token, "KEY")) + { + fprintf (stderr, + "Unexpected KEY constraint for description: %s\n", + token); + return -51; + } + valid_description = true; + } + } + free (sql); + + if (!valid_srs_name) + { + fprintf (stderr, + "did not find expected srs_name column, or required properties were not found\n"); + return -99; + } + if (!valid_srs_id) + { + fprintf (stderr, + "did not find expected srs_id column, or required properties were not found\n"); + return -100; + } + if (!valid_organization) + { + fprintf (stderr, + "did not find expected organization column, or required properties were not found\n"); + return -101; + } + if (!valid_organization_coordsys_id) + { + fprintf (stderr, + "did not find expected organization_coordsys_id column, or required properties were not found\n"); + return -102; + } + if (!valid_definition) + { + fprintf (stderr, + "did not find expected definition column, or required properties were not found\n"); + return -103; + } + if (!valid_description) + { + fprintf (stderr, + "did not find expected description column, or required properties were not found\n"); + return -104; + } + + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -199; + } + ret = sqlite3_finalize (stmt); + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c b/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c new file mode 100644 index 0000000..cb4657a --- /dev/null +++ b/src/spatialite/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c @@ -0,0 +1,279 @@ +/* + + check_gpkg_base_core_spatial_ref_sys_data_values_default - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + void *cache = spatialite_alloc_connection (); + int rows; + int columns; + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_values_default.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* + / Test Case ID: /base/core/spatial_ref_sys/data_values_default + / Test Purpose: Verify that the spatial_ref_sys table contains the required default contents. + / Test Method: + / 1) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = -1 returns -1 “NONE” -1 “Undefined”, AND + / 2) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 0 returns 0 “NONE” 0 “Undefined”, AND + / 3) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 4326 returns + / 4326 epsg 4326 GEOGCS["WGS 84", DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], + / AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]] + / (whitespace irrelevant) + / Pass if tests 1-3 are met + / Fail otherwise + / Reference: Clause 1.1.2.1.2 Req 11: + / Test Type: Capability + */ + + ret = + sqlite3_get_table (db_handle, + "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = -1", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "get table error, srs_id = -1: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if ((rows != 1) || (columns != 4)) + { + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + sqlite3_free_table (results); + return -10; + } + if (strcmp (results[1 * columns + 0], "-1") != 0) + { + fprintf (stderr, "Unexpected srs_id result (got %s, expected -1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -11; + } + if (strcmp (results[1 * columns + 1], "NONE") != 0) + { + fprintf (stderr, + "Unexpected organization result (got %s, expected NONE)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -12; + } + if (strcmp (results[1 * columns + 2], "-1") != 0) + { + fprintf (stderr, + "Unexpected organization_coordsys_id result (got %s, expected -1)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -13; + } + if (strcmp (results[1 * columns + 3], "Undefined") != 0) + { + fprintf (stderr, + "Unexpected definition result (got %s, expected Undefined)", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -14; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 0", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "get table error, srs_id = 0: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } + if ((rows != 1) || (columns != 4)) + { + fprintf (stderr, "Unexpected row / column count (srs_id0): %i x %i\n", + rows, columns); + sqlite3_free_table (results); + return -21; + } + if (strcmp (results[1 * columns + 0], "0") != 0) + { + fprintf (stderr, "Unexpected srs_id result (got %s, expected 0)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -22; + } + if (strcmp (results[1 * columns + 1], "NONE") != 0) + { + fprintf (stderr, + "Unexpected organization result (got %s, expected NONE)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -23; + } + if (strcmp (results[1 * columns + 2], "0") != 0) + { + fprintf (stderr, + "Unexpected organization_coordsys_id result (got %s, expected 0)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -24; + } + if (strcmp (results[1 * columns + 3], "Undefined") != 0) + { + fprintf (stderr, + "Unexpected definition result (got %s, expected Undefined)", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -25; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (db_handle, + "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 4326", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "get table error, srs_id = 4326: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + if ((rows != 1) || (columns != 4)) + { + fprintf (stderr, + "Unexpected row / column count (srs_id4326): %i x %i\n", + rows, columns); + sqlite3_free_table (results); + return -31; + } + if (strcmp (results[1 * columns + 0], "4326") != 0) + { + fprintf (stderr, "Unexpected srs_id result (got %s, expected 4326)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -32; + } + if (strcasecmp (results[1 * columns + 1], "epsg") != 0) + { + fprintf (stderr, + "Unexpected organization result (got %s, expected epsg)", + results[1 * columns + 1]); + sqlite3_free_table (results); + return -33; + } + if (strcmp (results[1 * columns + 2], "4326") != 0) + { + fprintf (stderr, + "Unexpected organization_coordsys_id result (got %s, expected 4326)", + results[1 * columns + 2]); + sqlite3_free_table (results); + return -34; + } + if (strcmp + (results[1 * columns + 3], + "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]") + != 0) + { + fprintf (stderr, + "Unexpected definition result (got %s, expected GEOGCS[...])", + results[1 * columns + 3]); + sqlite3_free_table (results); + return -35; + } + sqlite3_free_table (results); + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c b/src/spatialite/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c new file mode 100644 index 0000000..4a057fb --- /dev/null +++ b/src/spatialite/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c @@ -0,0 +1,311 @@ +/* + + check_gpkg_opt_extension_mechanism_extensions_data_table_def - Test case for GeoPackage Extensions + + Author: Brad Hards + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is GeoPackage extensions + +The Initial Developer of the Original Code is Brad Hards + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#include +#include +#include +#include + +#define __USE_GNU +#include + +#include "sqlite3.h" +#include "spatialite.h" + +#include "test_helpers.h" + +struct tableDefinitionElement +{ + const char *column_name; + const char *column_type; + bool mayBeNull; + const char *defaultValue; + const char *keySignature; + bool wasFound; +}; + +struct tableDefinitionElement tableValues[] = { + {"table_name", "TEXT", true, NULL, NULL, false}, + {"column_name", "TEXT", true, NULL, NULL, false}, + {"extension_name", "TEXT", false, NULL, NULL, false}, + {"definition", "TEXT", false, NULL, NULL, false}, + {"scope", "TEXT", false, NULL, NULL, false}, + {NULL, NULL, false, NULL, NULL, false} +}; + +int +main (int argc UNUSED, char *argv[]UNUSED) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char *sql_statement; + sqlite3_stmt *stmt; + void *cache = spatialite_alloc_connection (); + int i, j; + char *sql; + char *str; + char *token; + char *saveptr; + bool valid_fk_constraint = false; + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + /* For debugging / testing if required */ + /* + ret = sqlite3_open_v2 ("check_gpkg_opt_extension_mechanism_extensions_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + */ + spatialite_init_ex (db_handle, cache, 0); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + ret = + sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, + err_msg); + sqlite3_free (err_msg); + return -2; + } + + /* + / Test Case ID /opt/extension_mechanism/extensions/data/table_def + / Test Purpose Verify that a gpkg_extensions table exists and has the correct definition. + / Test Method: + / 1) SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_extensions + / 2) Fail if returns an empty result set. + / 3) Pass if the column names and column definitions in the returned Create TABLE statement + / in the sql column value, including data type, nullability, default values and primary, + / foreign and unique key constraints match all of those in the contents of Table 36. + / Column order, check constraint and trigger definitions, and other column definitions + / in the returned sql are irrelevant. + / 4) Fail otherwise. + / Reference Clause 2.5.2.1.1 Req 78: + / Test Type Basic + */ + + sql_statement = + "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_extensions'"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -10; + } + ret = sqlite3_step (stmt); + if (ret != SQLITE_ROW) + { + fprintf (stderr, "unexpected return value for first step: %i (%s)\n", + ret, sqlite3_errmsg (db_handle)); + return -11; + } + if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) + { + fprintf (stderr, "bad type for column 0: %i\n", + sqlite3_column_type (stmt, 0)); + return -12; + } + sql = + strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + + strlen ("(")); + if (!sql) + { + fprintf (stderr, "unrecognised format for SQL\n"); + return -13; + } + + for (j = 1, str = sql;; j++, str = NULL) + { + token = strtok_r (str, ",", &saveptr); + if (token == NULL) + { + break; + } + while (isspace (*token)) + { + token++; + } + if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) == 0) + { + /* unique constraint has embedded ','s so we need to grab the next two tokens */ + char *nexttoken1 = strtok_r (str, ",", &saveptr); + char *nexttoken2 = strtok_r (str, ",", &saveptr); + char *fulltoken = + malloc (strlen (token) + strlen (",") + + strlen (nexttoken1) + strlen (",") + + strlen (nexttoken2) + 1); + strcpy (fulltoken, token); + strcat (fulltoken, ","); + strcat (fulltoken, nexttoken1); + strcat (fulltoken, ","); + strcat (fulltoken, nexttoken2); + if (strcasestr + (fulltoken, + "UNIQUE (table_name, column_name, extension_name)")) + { + valid_fk_constraint = true; + } + continue; + } + for (i = 0; tableValues[i].column_name != NULL; ++i) + { + + if (strcasestr (token, tableValues[i].column_name)) + { + if (!strcasestr (token, tableValues[i].column_type)) + { + fprintf (stderr, + "missing COLUMN TYPE %s for %s: %s\n", + tableValues[i].column_type, + tableValues[i].column_name, token); + return -20; + } + if (tableValues[i].mayBeNull + && strcasestr (token, "NOT NULL")) + { + fprintf (stderr, + "Unexpected NOT NULL constraint for %s: %s\n", + tableValues[i].column_name, token); + return -21; + } + if ((!tableValues[i].mayBeNull) + && (!strcasestr (token, "NOT NULL"))) + { + fprintf (stderr, + "Missing NOT NULL constraint for %s: %s\n", + tableValues[i].column_name, token); + return -22; + } + if ((tableValues[i].keySignature != NULL) + && (!strcasestr (token, tableValues[i].keySignature))) + { + fprintf (stderr, + "Missing %s constraint for %s: %s\n", + tableValues[i].keySignature, + tableValues[i].column_name, token); + return -23; + } + if ((tableValues[i].keySignature == NULL) + && (strcasestr (token, "KEY"))) + { + fprintf (stderr, + "Unexpected key constraint for %s: %s\n", + tableValues[i].column_name, token); + return -24; + } + if ((tableValues[i].defaultValue == NULL) + && (strcasestr (token, "DEFAULT"))) + { + fprintf (stderr, + "Unexpected default value for %s: %s\n", + tableValues[i].column_name, token); + return -25; + } + if ((tableValues[i].defaultValue != NULL) + && (!strcasestr (token, tableValues[i].defaultValue))) + { + fprintf (stderr, + "Missing default value for %s: %s\n", + tableValues[i].column_name, token); + return -26; + } + tableValues[i].wasFound = true; + } + } + } + free (sql); + + for (i = 0; tableValues[i].column_name != NULL; ++i) + { + if (tableValues[i].wasFound == false) + { + fprintf (stderr, "did not find expected %s column\n", + tableValues[i].column_name); + return -50; + } + } + if (!valid_fk_constraint) + { + fprintf (stderr, "did not find expected FK constraint\n"); + return -52; + } + + + ret = sqlite3_step (stmt); + if (ret != SQLITE_DONE) + { + fprintf (stderr, "unexpected return value for second step: %i\n", + ret); + return -199; + } + ret = sqlite3_finalize (stmt); + + sqlite3_free (err_msg); + + ret = sqlite3_close (db_handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (db_handle)); + return -200; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_init.c b/src/spatialite/test/check_init.c index 28b5812..97e425e 100644 --- a/src/spatialite/test/check_init.c +++ b/src/spatialite/test/check_init.c @@ -48,13 +48,56 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { - spatialite_init(0); - spatialite_cleanup(); - - spatialite_init(1); - spatialite_cleanup(); - + int ret; + sqlite3 *handle; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + spatialite_init_ex (handle, cache, 0); + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -2; + } + spatialite_cleanup_ex (cache); + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -3; + } + spatialite_init_ex (handle, cache, 1); + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -4; + } + spatialite_cleanup_ex (cache); + return 0; } diff --git a/src/spatialite/test/check_init2.c b/src/spatialite/test/check_init2.c index cd027d5..fc59094 100644 --- a/src/spatialite/test/check_init2.c +++ b/src/spatialite/test/check_init2.c @@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -56,237 +57,361 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } + + ret = + sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -3; - } - - ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -4; - } - ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -5; - } - - spatialite_cleanup(); - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -6; - } - - ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(34)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n", rows, columns); - return -8; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n", results[1]); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -5; + } + + spatialite_cleanup_ex (cache); + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -6; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_get_table (handle, "SELECT InitSpatialMetadata(3.4)", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n", + rows, columns); + return -8; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n", + results[1]); + return -9; + } sqlite3_free_table (results); - + ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -10; - } - - spatialite_cleanup(); - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -11; - } - - ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n", rows, columns); - return -13; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n", results[1]); - return -14; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -10; + } + + spatialite_cleanup_ex (cache); + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -11; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n", + rows, columns); + return -13; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n", + results[1]); + return -14; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -15; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n", rows, columns); - return -16; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n", results[1]); - return -17; - } + + ret = + sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n", + rows, columns); + return -16; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n", + results[1]); + return -17; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n", rows, columns); - return -19; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n", results[1]); - return -20; - } + + ret = + sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n", + rows, columns); + return -19; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n", + results[1]); + return -20; + } sqlite3_free_table (results); - + ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -21; - } - - spatialite_cleanup(); - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -22; - } - - ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n", rows, columns); - return -24; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n", results[1]); - return -25; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -21; + } + + spatialite_cleanup_ex (cache); + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -22; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n", + rows, columns); + return -24; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n", + results[1]); + return -25; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -26; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n", rows, columns); - return -27; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n", results[1]); - return -28; - } + + ret = + sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n", + rows, columns); + return -27; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n", + results[1]); + return -28; + } sqlite3_free_table (results); - - ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n", rows, columns); - return -30; - } - if (strcmp(results[1], "0") != 0) { - fprintf (stderr, "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n", results[1]); - return -31; - } + + ret = + sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n", + rows, columns); + return -30; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n", + results[1]); + return -31; + } sqlite3_free_table (results); - + ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -32; - } - - spatialite_cleanup(); - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -33; - } - - ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n", rows, columns); - return -35; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n", results[1]); - return -36; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -32; + } + + spatialite_cleanup_ex (cache); + + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -33; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n", + rows, columns); + return -35; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n", + results[1]); + return -36; + } sqlite3_free_table (results); - + ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -32; - } - - spatialite_cleanup(); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -32; + } + + spatialite_cleanup_ex (cache); + return 0; } diff --git a/src/spatialite/test/check_libxml2.c b/src/spatialite/test/check_libxml2.c new file mode 100644 index 0000000..bc2d6b0 --- /dev/null +++ b/src/spatialite/test/check_libxml2.c @@ -0,0 +1,746 @@ + +/* + + check_libxml2.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + +#define ISO_METADATA 1 +#define SLD_SE_STYLE 2 +#define SVG 3 + +static int +check_bad_xml (void *cache) +{ +/* parsing a not-well-formed XML Sample */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + unsigned char *p_result = NULL; + int len; + char *err1; + char *err2; + char *version = gaia_libxml2_version (); + + if (version == NULL) + { + fprintf (stderr, "unable to get the library version\n"); + return 0; + } + free (version); + +/* loading the XMLDocument */ + fl = fopen ("books-bad.xml", "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"books-bad.xml\"\n"); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"books-bad.xml\"\n"); + return 0; + } + fclose (fl); + +/* parsing the XMLDocument */ + gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, &err1, &err2); + if (p_result != NULL) + { + fprintf (stderr, "this is not a well-formed XML !!!\n"); + return 0; + } + + free (xml); + return 1; +} + +static int +check_bad_schema (void *cache) +{ +/* validating by invalid Schema */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + unsigned char *p_result = NULL; + int len; + char *err1; + char *err2; + +/* loading the XMLDocument */ + fl = fopen ("books.xml", "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"books.xml\"\n"); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"books.xml\"\n"); + return 0; + } + fclose (fl); + +/* validating the XMLDocument */ + gaiaXmlToBlob (cache, xml, rd, 1, "books-bad.xsd", &p_result, &len, &err1, + &err2); + if (p_result != NULL) + { + fprintf (stderr, "this is not a valid XML !!!\n"); + return 0; + } + + free (xml); + return 1; +} + +static int +check_validate (void *cache, const char *path) +{ +/* validating an XML Sample */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + char *schema_uri = NULL; + char *schema_uri2 = NULL; + unsigned char *p_result = NULL; + int len; + +/* loading the XMLDocument */ + fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return 0; + } + fclose (fl); + +/* extracting the Internal SchemaURI */ + schema_uri = gaiaXmlGetInternalSchemaURI (cache, xml, rd); + if (schema_uri == NULL) + { + fprintf (stderr, "unable to identify the Schema for \"%s\"\n", path); + return 0; + } +/* validating the XMLDocument */ + gaiaXmlToBlob (cache, xml, rd, 1, schema_uri, &p_result, &len, NULL, NULL); + if (p_result == NULL) + { + fprintf (stderr, "unable to validate \"%s\"\n", path); + return 0; + } + if (!gaiaIsSchemaValidatedXmlBlob (p_result, len)) + { + fprintf (stderr, "validation failed: \"%s\"\n", path); + return 0; + } + schema_uri2 = gaiaXmlBlobGetSchemaURI (p_result, len); + if (schema_uri2 == NULL) + { + fprintf (stderr, + "unable to retrieve the ValidationSchemaURI for \"%s\"\n", + path); + return 0; + } + if (strcmp (schema_uri, schema_uri2) != 0) + { + fprintf (stderr, + "%s: mismatching SchemaURI \"%s\" (expected \"%s\")\n", path, + schema_uri2, schema_uri); + return 0; + } + + free (schema_uri); + free (schema_uri2); + free (p_result); + free (xml); + + return 1; +} + +static int +check_extended (void *cache, const char *path, int mode) +{ +/* validating an XML Sample */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + int iso; + int style; + int svg; + unsigned char *p_result = NULL; + int len; + char *file_id = NULL; + char *parent_id = NULL; + char *title = NULL; + char *abstract = NULL; + unsigned char *geom_blob; + int geom_size; + gaiaGeomCollPtr geom; + +/* loading the XMLDocument */ + fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return 0; + } + fclose (fl); + +/* simple parsing without validation */ + gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); + if (p_result == NULL) + { + fprintf (stderr, "unable to parse \"%s\"\n", path); + return 0; + } + +/* checking the payload type */ + iso = gaiaIsIsoMetadataXmlBlob (p_result, len); + style = gaiaIsSldSeRasterStyleXmlBlob (p_result, len); + style = gaiaIsSldSeVectorStyleXmlBlob (p_result, len); + svg = gaiaIsSvgXmlBlob (p_result, len); + if (mode == ISO_METADATA && iso && !style && !svg) + ; + else if (mode == SLD_SE_STYLE && !iso && style && !svg) + ; + else if (mode == SVG && !iso && !style && svg) + ; + else + { + fprintf (stderr, "mismatching type: \"%s\" iso=%d style=%d svg=%d\n", + path, iso, style, svg); + return 0; + } + +/* testing ISO Metadata attributes */ + file_id = gaiaXmlBlobGetFileId (p_result, len); + parent_id = gaiaXmlBlobGetParentId (p_result, len); + title = gaiaXmlBlobGetTitle (p_result, len); + abstract = gaiaXmlBlobGetAbstract (p_result, len); + gaiaXmlBlobGetGeometry (p_result, len, &geom_blob, &geom_size); + if (mode == ISO_METADATA) + { + /* verifying ISO Metadata attributes */ + if (file_id == NULL) + { + fprintf (stderr, "unexpected NULL FileIdentifier in \"%s\"\n", + path); + return 0; + } + if (strcmp (file_id, "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) + { + fprintf (stderr, "unexpected FileIdentifier in \"%s\" [%s]\n", + path, file_id); + return 0; + } + if (parent_id == NULL) + { + fprintf (stderr, "unexpected NULL ParentIdentifier in \"%s\"\n", + path); + return 0; + } + if (strcmp (parent_id, "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) + { + fprintf (stderr, "unexpected ParentIdentifier in \"%s\" [%s]\n", + path, parent_id); + return 0; + } + if (title == NULL) + { + fprintf (stderr, "unexpected NULL Title in \"%s\"\n", path); + return 0; + } + if (strcmp (title, "Image2000 Product 1 (nl2) Multispectral") != 0) + { + fprintf (stderr, "unexpected Title in \"%s\" [%s]\n", path, + title); + return 0; + } + if (abstract == NULL) + { + fprintf (stderr, "unexpected NULL Abstract in \"%s\"\n", path); + return 0; + } + if (strcmp + (abstract, + "IMAGE2000 product 1 individual orthorectified scenes.") != 0) + { + fprintf (stderr, "unexpected Abstract in \"%s\" [%s]\n", path, + abstract); + return 0; + } + if (geom_blob == NULL) + { + fprintf (stderr, "unexpected NULL Geometry in \"%s\"\n", path); + return 0; + } + geom = gaiaFromSpatiaLiteBlobWkb (geom_blob, geom_size); + if (geom == NULL) + { + fprintf (stderr, "unexpected invalid Geometry in \"%s\"\n", + path); + return 0; + } + if (geom->Srid != 4326) + { + fprintf (stderr, "unexpected Geometry SRID in \"%s\" [%d]\n", + path, geom->Srid); + return 0; + } + if (geom->DeclaredType != GAIA_MULTIPOLYGON) + { + fprintf (stderr, "unexpected Geometry Type in \"%s\" [%d]\n", + path, geom->DeclaredType); + return 0; + } + if (geom->MinX != 3.93000000) + { + fprintf (stderr, "unexpected Geometry MinX in \"%s\" [%1.8f]\n", + path, geom->MinX); + return 0; + } + if (geom->MinY != 52.10000000) + { + fprintf (stderr, "unexpected Geometry MinY in \"%s\" [%1.8f]\n", + path, geom->MinY); + return 0; + } + if (geom->MaxX != 7.57000000) + { + fprintf (stderr, "unexpected Geometry MaxX in \"%s\" [%1.8f]\n", + path, geom->MaxX); + return 0; + } + if (geom->MaxY != 54.10000000) + { + fprintf (stderr, "unexpected Geometry MaxY in \"%s\" [%1.8f]\n", + path, geom->MaxY); + return 0; + } + gaiaFreeGeomColl (geom); + } + else + { + /* not ISO Metadata */ + if (strcmp (path, "stazioni_se.xml") == 0) + { + if (strcmp (title, "SLD test - Point [Railway Stations]") != 0) + { + fprintf (stderr, "unexpected Title in \"%s\"\n", path); + return 0; + } + if (strcmp + (abstract, + "an SLD complex variable style [depending on actual scale]") + != 0) + { + fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); + return 0; + } + } + else + { + if (title != NULL) + { + fprintf (stderr, "unexpected Title in \"%s\"\n", path); + return 0; + } + if (abstract != NULL) + { + fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); + return 0; + } + } + } + + free (p_result); + free (xml); + if (file_id) + free (file_id); + if (parent_id) + free (parent_id); + if (title) + free (title); + if (abstract) + free (abstract); + if (geom_blob) + free (geom_blob); + + return 1; +} + +static int +check_parse (void *cache, const char *path) +{ +/* parsing an XML Sample */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + int compressed_sz; + int uncompressed_sz; + int doc_sz; + int formatted_sz; + int formatted_txt_sz; + unsigned char *p_result = NULL; + unsigned char *out; + char *txt; + +/* loading the XMLDocument */ + fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return 0; + } + fclose (fl); + +/* parsing the XMLDocument (no validation / compressed) */ + gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &compressed_sz, NULL, + NULL); + if (p_result == NULL) + { + fprintf (stderr, "unable to parse(1) \"%s\"\n", path); + return 0; + } + doc_sz = gaiaXmlBlobGetDocumentSize (p_result, compressed_sz); + gaiaXmlFromBlob (p_result, compressed_sz, 4, &out, &formatted_sz); + if (out == NULL) + { + fprintf (stderr, "unable to format(1) \"%s\"\n", path); + return 0; + } + free (out); + txt = gaiaXmlTextFromBlob (p_result, compressed_sz, 2); + if (txt == NULL) + { + fprintf (stderr, "unable to format-text(1) \"%s\"\n", path); + return 0; + } + formatted_txt_sz = strlen (txt); + free (txt); + free (p_result); + +/* parsing the XMLDocument (no validation / not compressed) */ + gaiaXmlToBlob (cache, xml, rd, 0, NULL, &p_result, &uncompressed_sz, NULL, + NULL); + if (p_result == NULL) + { + fprintf (stderr, "unable to parse(2) \"%s\"\n", path); + return 0; + } + free (p_result); + + if (strcmp (path, "books.xml") == 0) + { + if (compressed_sz != 432) + { + fprintf (stderr, + "books.xml: unexpected compressed size %d (expected 432)\n", + compressed_sz); + return 0; + } + if (uncompressed_sz != 780) + { + fprintf (stderr, + "books.xml: unexpected compressed size %d (expected 780)\n", + uncompressed_sz); + return 0; + } + if (doc_sz != 741) + { + fprintf (stderr, + "books.xml: unexpected document size %d (expected 741)\n", + doc_sz); + return 0; + } + if (formatted_sz != 864) + { + fprintf (stderr, + "books.xml: unexpected formatted size %d (expected 864)\n", + formatted_sz); + return 0; + } + if (formatted_txt_sz != 803) + { + fprintf (stderr, + "books.xml: unexpected formatted-text size %d (expected 803)\n", + formatted_txt_sz); + return 0; + } + } + if (strcmp (path, "opera.xml") == 0) + { + if (compressed_sz != 425) + { + fprintf (stderr, + "opera.xml: unexpected compressed size %d (expected 425)\n", + compressed_sz); + return 0; + } + if (uncompressed_sz != 951) + { + fprintf (stderr, + "opera.xml: unexpected compressed size %d (expected 951)\n", + uncompressed_sz); + return 0; + } + if (doc_sz != 912) + { + fprintf (stderr, + "opera.xml: unexpected document size %d (expected 912)\n", + doc_sz); + return 0; + } + if (formatted_sz != 970) + { + fprintf (stderr, + "opera.xml: unexpected formatted size %d (expected 970)\n", + formatted_sz); + return 0; + } + if (formatted_txt_sz != 909) + { + fprintf (stderr, + "opera.xml: unexpected formatted-text size %d (expected 909)\n", + formatted_txt_sz); + return 0; + } + } + if (strcmp (path, "movies.xml") == 0) + { + if (compressed_sz != 577) + { + fprintf (stderr, + "movies.xml: unexpected compressed size %d (expected 577)\n", + compressed_sz); + return 0; + } + if (uncompressed_sz != 1809) + { + fprintf (stderr, + "movies.xml: unexpected compressed size %d (expected 1809)\n", + uncompressed_sz); + return 0; + } + if (doc_sz != 1770) + { + fprintf (stderr, + "movies.xml: unexpected document size %d (expected 1770)\n", + doc_sz); + return 0; + } + if (formatted_sz != 945) + { + fprintf (stderr, + "movies.xml: unexpected formatted size %d (expected 945)\n", + formatted_sz); + return 0; + } + if (formatted_txt_sz != 884) + { + fprintf (stderr, + "movies.xml: unexpected formatted-text size %d (expected 884)\n", + formatted_txt_sz); + return 0; + } + } + free (xml); + + return 1; +} + +#endif + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + + if (!check_parse (cache, "books.xml")) + { + fprintf (stderr, "unable to parse \"books.xml\"\n"); + return -2; + } + if (!check_parse (cache, "opera.xml")) + { + fprintf (stderr, "unable to parse \"opera.xml\"\n"); + return -3; + } + if (!check_parse (cache, "movies.xml")) + { + fprintf (stderr, "unable to parse \"movies.xml\"\n"); + return -4; + } + + if (!check_validate (cache, "books.xml")) + { + fprintf (stderr, "unable to validate \"books.xml\"\n"); + return -5; + } + if (!check_validate (cache, "opera.xml")) + { + fprintf (stderr, "unable to validate \"opera.xml\"\n"); + return -6; + } + if (!check_validate (cache, "movies.xml")) + { + fprintf (stderr, "unable to validate \"movies.xml\"\n"); + return -7; + } + if (!check_extended (cache, "inspire-data-example.xml", ISO_METADATA)) + { + fprintf (stderr, "unable to parse \"inspire-data-example.xml\"\n"); + return -8; + } + if (!check_extended (cache, "stazioni_se.xml", SLD_SE_STYLE)) + { + fprintf (stderr, "unable to parse \"stazioni_se.xml\"\n"); + return -9; + } + if (!check_extended (cache, "thunderstorm_mild.svg", SVG)) + { + fprintf (stderr, "unable to parse \"thunderstorm_mild.svg\"\n"); + return -10; + } + + if (!check_bad_xml (cache)) + { + fprintf (stderr, "unable to test not well-formed XML\n"); + return -11; + } + if (!check_bad_schema (cache)) + { + fprintf (stderr, "unable to test invalid Schema\n"); + return -12; + } + +#endif + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -10; + } + + spatialite_cleanup_ex (cache); + + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_math_funcs.c b/src/spatialite/test/check_math_funcs.c index a5296ec..df39d29 100644 --- a/src/spatialite/test/check_math_funcs.c +++ b/src/spatialite/test/check_math_funcs.c @@ -50,46 +50,56 @@ the terms of any one of the MPL, the GPL or the LGPL. static const double double_eps = 0.00000001; -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { double result; sqlite3_int64 result64; - - result = math_round(3.4); - if (abs(result - 3) > double_eps) { - fprintf(stderr, "bad math_round() result for 3.4: %f\n", result); - return -1; - } - - result = math_round(3.6); - if (abs(result - 4) > double_eps) { - fprintf(stderr, "bad math_round() result for 3.6: %f\n", result); - return -2; - } - - result = math_round(-3.4); - if (abs(result + 3) > double_eps) { - fprintf(stderr, "bad math_round() result for -3.4: %f\n", result); - return -3; - } - - result = math_round(-3.6); - if (abs(result + 4) > double_eps) { - fprintf(stderr, "bad math_round() result for -3.6: %f\n", result); - return -4; - } - - result64 = math_llabs((sqlite3_int64) 26); - if (result64 != 26) { - fprintf(stderr, "bad math_llabs() result for 26"); - return -5; - } - - result64 = math_llabs((sqlite3_int64) -26); - if (result64 != 26) { - fprintf(stderr, "bad math_llabs() result for -26"); - return -6; - } + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + result = math_round (3.4); + if (abs (result - 3) > double_eps) + { + fprintf (stderr, "bad math_round() result for 3.4: %f\n", result); + return -1; + } + + result = math_round (3.6); + if (abs (result - 4) > double_eps) + { + fprintf (stderr, "bad math_round() result for 3.6: %f\n", result); + return -2; + } + + result = math_round (-3.4); + if (abs (result + 3) > double_eps) + { + fprintf (stderr, "bad math_round() result for -3.4: %f\n", result); + return -3; + } + + result = math_round (-3.6); + if (abs (result + 4) > double_eps) + { + fprintf (stderr, "bad math_round() result for -3.6: %f\n", result); + return -4; + } + + result64 = math_llabs ((sqlite3_int64) 26); + if (result64 != 26) + { + fprintf (stderr, "bad math_llabs() result for 26"); + return -5; + } + + result64 = math_llabs ((sqlite3_int64) - 26); + if (result64 != 26) + { + fprintf (stderr, "bad math_llabs() result for -26"); + return -6; + } return 0; } diff --git a/src/spatialite/test/check_mbrcache.c b/src/spatialite/test/check_mbrcache.c index 32d291c..7f078ff 100644 --- a/src/spatialite/test/check_mbrcache.c +++ b/src/spatialite/test/check_mbrcache.c @@ -50,9 +50,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; @@ -61,431 +62,563 @@ int main (int argc, char *argv[]) int rows; int columns; int pt; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 61) { - fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -6; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -7; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -8; - } + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 61) + { + fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); + sqlite3_close (handle); + return -4; + } + + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -6; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -7; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -8; + } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateMbrCache error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateMbrCache error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -15; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -16; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -17; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -15; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -16; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -17; + } sqlite3_free_table (results); rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -19; - } - if (strcmp(results[1], "Carlantino") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -20; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -19; + } + if (strcmp (results[1], "Carlantino") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -20; + } sqlite3_free_table (results); rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } - if ((rows != 35) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -22; - } - if (strcmp(results[1], "Apricena") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -23; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } + if ((rows != 35) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -22; + } + if (strcmp (results[1], "Apricena") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -23; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = 'Zapponeta';", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } + ret = + sqlite3_exec (handle, + "DELETE FROM Councils WHERE lc_name = 'Zapponeta';", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } - if ((rows != 21) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -26; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -27; - } - if (strcmp(results[21], "Vieste") != 0) { - fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -28; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } + if ((rows != 21) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -26; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -27; + } + if (strcmp (results[21], "Vieste") != 0) + { + fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -28; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } + ret = + sqlite3_exec (handle, + "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } - if ((rows != 21) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -31; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -32; - } - if (strcmp(results[21], "Vieste") != 0) { - fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -33; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + if ((rows != 21) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -31; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -32; + } + if (strcmp (results[21], "Vieste") != 0) + { + fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -33; + } sqlite3_free_table (results); - - ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } + + ret = + sqlite3_exec (handle, + "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } - if ((rows != 21) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -36; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -37; - } - if (strcmp(results[21], "Vieste") != 0) { - fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -38; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } + if ((rows != 21) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -36; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -37; + } + if (strcmp (results[21], "Vieste") != 0) + { + fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -38; + } sqlite3_free_table (results); rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT rowid, mbr FROM cache_Councils_geom;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -39; - } - if ((rows != 61) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select lc_name bad cache2 result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -40; - } - if (strcmp(results[2], "1") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -41; - } - if (strcmp(results[12], "6") != 0) { - fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -42; - } + ret = + sqlite3_get_table (handle, + "SELECT rowid, mbr FROM cache_Councils_geom;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } + if ((rows != 61) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad cache2 result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -40; + } + if (strcmp (results[2], "1") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -41; + } + if (strcmp (results[12], "6") != 0) + { + fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -42; + } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); - sqlite3_free (err_msg); - return -44; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); + sqlite3_free (err_msg); + return -44; + } /* creating and feeding a Point table */ - ret = sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -49; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -50; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -51; - } - ret = sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg); - sqlite3_free (err_msg); - return -52; - } + ret = + sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -49; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -50; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -51; + } + ret = + sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg); + sqlite3_free (err_msg); + return -52; + } for (pt = 0; pt < 10000; pt++) - { - /* inserting Points */ - char sql[1024]; - sprintf(sql, "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));", pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0)); - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -53; - } - } + { + /* inserting Points */ + char sql[1024]; + sprintf (sql, + "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));", + pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0)); + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -53; + } + } for (pt = 5000; pt < 6000; pt++) - { - /* updating Points */ - char sql[1024]; - sprintf(sql, "UPDATE pt SET g = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;", 12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt); - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UPDATE pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } - } + { + /* updating Points */ + char sql[1024]; + sprintf (sql, + "UPDATE pt SET g = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;", + 12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt); + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } + } for (pt = 7000; pt < 8000; pt++) - { - /* deleting Points */ - char sql[1024]; - sprintf(sql, "DELETE FROM pt WHERE id = %d;", pt); - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UPDATE pt error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } - } + { + /* deleting Points */ + char sql[1024]; + sprintf (sql, "DELETE FROM pt WHERE id = %d;", pt); + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE pt error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } + } ret = sqlite3_exec (handle, "SELECT CreateMbrCache(1, 'geom');", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); - sqlite3_free (err_msg); - return -56; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); + sqlite3_free (err_msg); + return -56; + } ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 2);", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); - sqlite3_free (err_msg); - return -57; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); + sqlite3_free (err_msg); + return -57; + } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin('a', 2, 3, 4);", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); - sqlite3_free (err_msg); - return -58; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); + sqlite3_free (err_msg); + return -58; + } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 'a', 3, 4);", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); - sqlite3_free (err_msg); - return -59; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); + sqlite3_free (err_msg); + return -59; + } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 'a', 4);", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); - sqlite3_free (err_msg); - return -60; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); + sqlite3_free (err_msg); + return -60; + } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 3, 'a');", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); - sqlite3_free (err_msg); - return -61; - } + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); + sqlite3_free (err_msg); + return -61; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -62; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -62; + } + + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ return 0; } diff --git a/src/spatialite/test/check_md5.c b/src/spatialite/test/check_md5.c new file mode 100644 index 0000000..a53d10f --- /dev/null +++ b/src/spatialite/test/check_md5.c @@ -0,0 +1,274 @@ +/* + + check_md5.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include + +#include "sqlite3.h" +#include "spatialite.h" +#include "spatialite/gaiaaux.h" + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + int i; + double x = 0.0; + double y = 0.0; + char sql[256]; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('test', 'geom', 4326, 'POINT', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } + + for (i = 0; i < 1000; i++) + { + /* inserting thousand points */ + sprintf (sql, "INSERT INTO test (id, name, geom) VALUES " + "(%d, 'qwertyUOIOP%d', MakePoint(%1.2f, %1.2f, 4326))", i, i, + x, y); + x += 0.01; + y += 0.25; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Insert Point(%d) error: %s\n", i, err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -5; + } + } + +/* testing MD5Checksum() - BLOB */ + strcpy (sql, + "SELECT MD5Checksum(geom) FROM test WHERE id IN (10, 100, 750)"); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + if ((rows != 3) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: MD5Checksum (blob) bad result: %i/%i.\n", + rows, columns); + return -7; + } + if (strcmp (results[1], "66db2227f970c7881b57247a28e2f893") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum blob-#1 bad result: %s.\n", + results[1]); + return -8; + } + if (strcmp (results[2], "6fc5f82a0f9093c5287617cac908b557") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum blob-#2 bad result: %s.\n", + results[2]); + return -9; + } + if (strcmp (results[3], "5f92e335d709c85f5858772a5072f0e3") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum blob-#3 bad result: %s.\n", + results[3]); + return -10; + } + sqlite3_free_table (results); + +/* testing the aggregate function: MD5TotalChecksum() - BLOB */ + strcpy (sql, "SELECT MD5TotalChecksum(geom) FROM test"); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: MD5TotalChecksum (blob) bad result: %i/%i.\n", + rows, columns); + return -12; + } + if (strcmp (results[1], "480b0dd7524a3bb4a75e01123a3eedf0") != 0) + { + fprintf (stderr, + "Unexpected error: MD5TotalChecksum() (blob) bad result: %s.\n", + results[1]); + return -13; + } + sqlite3_free_table (results); + +/* testing MD5Checksum() - TEXT */ + strcpy (sql, + "SELECT MD5Checksum(name) FROM test WHERE id IN (10, 100, 750)"); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } + if ((rows != 3) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: MD5Checksum (text) bad result: %i/%i.\n", + rows, columns); + return -15; + } + if (strcmp (results[1], "05bc33eb92fb4a319da50825571358ad") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum text-#1 bad result: %s.\n", + results[1]); + return -16; + } + if (strcmp (results[2], "bbf88f3dfa445ea7a37feca8959b08ed") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum text-#2 bad result: %s.\n", + results[2]); + return -17; + } + if (strcmp (results[3], "97805a371d30b02f7a4ee611ff027664") != 0) + { + fprintf (stderr, + "Unexpected error: MD5Checksum text-#3 bad result: %s.\n", + results[3]); + return -18; + } + sqlite3_free_table (results); + +/* testing the aggregate function: MD5TotalChecksum() - TEXT */ + strcpy (sql, "SELECT MD5TotalChecksum(name) FROM test"); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -19; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: MD5TotalChecksum (text) bad result: %i/%i.\n", + rows, columns); + return -20; + } + if (strcmp (results[1], "b775beceb3ef0ee9d9c16d4ddfe81879") != 0) + { + fprintf (stderr, + "Unexpected error: MD5TotalChecksum() (text) bad result: %s.\n", + results[1]); + return -21; + } + sqlite3_free_table (results); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -22; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_metacatalog.c b/src/spatialite/test/check_metacatalog.c new file mode 100644 index 0000000..1896d5e --- /dev/null +++ b/src/spatialite/test/check_metacatalog.c @@ -0,0 +1,623 @@ +/* + + check_metacatalog.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + +/* testing current style metadata layout >= v.4.0.0 */ + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE abc (def VARCHAR(10), ghi TEXT NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES (NULL, 'alpha')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES (NULL, 'gamma')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES ('one', 'beta')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-3 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -5; + } + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES ('two', 'gamma')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-4 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -6; + } + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES ('one', 'alpha')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-5 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -7; + } + + ret = + sqlite3_exec (handle, "SELECT CreateMetaCatalogTables(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateMetaCatalogTables error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -8; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT table_name, column_name, type, not_null " + "FROM splite_metacatalog " + "WHERE table_name = 'abc'", &results, &rows, + &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error SELECT splite_metacatalog: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if ((rows != 2) || (columns != 4)) + { + fprintf (stderr, + "Unexpected error: SELECT splite_metacatalog result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -10; + } + if (strcmp (results[4], "abc") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -11; + } + if (strcmp (results[5], "def") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -12; + } + if (strcmp (results[6], "VARCHAR(10)") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -13; + } + if (strcmp (results[7], "0") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -14; + } + if (strcmp (results[8], "abc") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -15; + } + if (strcmp (results[9], "ghi") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -14; + } + if (strcmp (results[10], "TEXT") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -13; + } + if (strcmp (results[11], "1") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -14; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT value, count FROM splite_metacatalog_statistics", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Error SELECT splite_metacatalog_statistics(1): %s\n", + err_msg); + sqlite3_free (err_msg); + return -16; + } + if ((rows != 3) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -17; + } + if (results[2] != NULL) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[2]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -18; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -19; + } + if (strcmp (results[4], "one") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -20; + } + if (strcmp (results[5], "2") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -21; + } + if (strcmp (results[6], "two") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -22; + } + if (strcmp (results[7], "1") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -23; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'abc_bad_table', 'def')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "UpdateMetaCatalogStatistics (bad table) error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -24; + } + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def_bad_column')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "UpdateMetaCatalogStatistics (bad column) error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -25; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO abc (def, ghi) VALUES ('two', 'alpha')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-6 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -26; + } + ret = + sqlite3_exec (handle, "DELETE FROM abc WHERE def IS NULL", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -27; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE my_master (tbl TEXT NOT NULL, col TEXT NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -28; + } + ret = + sqlite3_exec (handle, + "INSERT INTO my_master (tbl, col) VALUES ('abc', 'def')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-master-1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -29; + } + ret = + sqlite3_exec (handle, + "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-master-2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -30; + } + ret = + sqlite3_exec (handle, + "INSERT INTO my_master (tbl, col) VALUES ('abc_bad', 'def')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-master-3 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -31; + } + ret = + sqlite3_exec (handle, + "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi_bad')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT-master-4 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -32; + } + + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -33; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT column_name, value, count FROM splite_metacatalog_statistics", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "Error SELECT splite_metacatalog_statistics(2): %s\n", + err_msg); + sqlite3_free (err_msg); + return -34; + } + if ((rows != 5) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -35; + } + if (strcmp (results[3], "def") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -36; + } + if (strcmp (results[4], "one") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -37; + } + if (strcmp (results[5], "2") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -38; + } + if (strcmp (results[6], "def") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -39; + } + if (strcmp (results[7], "two") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -40; + } + if (strcmp (results[8], "2") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -41; + } + if (strcmp (results[9], "ghi") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -42; + } + if (strcmp (results[10], "alpha") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -43; + } + if (strcmp (results[11], "2") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -44; + } + if (strcmp (results[12], "ghi") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[12]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -45; + } + if (strcmp (results[13], "beta") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[13]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -46; + } + if (strcmp (results[14], "1") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[14]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -47; + } + if (strcmp (results[15], "ghi") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[15]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -48; + } + if (strcmp (results[16], "gamma") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[16]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -49; + } + if (strcmp (results[17], "1") != 0) + { + fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[17]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -50; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'my_master_bad', 'tbl', 'col')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -51; + } + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl_bad', 'col')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -52; + } + ret = + sqlite3_exec (handle, + "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col_bad')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -53; + } + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -101; + } + + spatialite_cleanup_ex (cache); + + return 0; +} diff --git a/src/spatialite/test/check_multithread.c b/src/spatialite/test/check_multithread.c new file mode 100644 index 0000000..cfa2b68 --- /dev/null +++ b/src/spatialite/test/check_multithread.c @@ -0,0 +1,967 @@ +/* + + check_multithread.c -- SpatiaLite Test Case + + Author: Alessandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ + +#ifdef _WIN32 +#define _CRT_RAND_S +#endif + +#include +#include +#include +#include + +#ifdef _WIN32 +#include +#include +#include +#else +#include +#include +#endif + +#ifndef _WIN32 +#include +#include +#endif + +#include "config.h" + +#include +#include + +#ifdef _WIN32 +#include "fnmatch4win.h" +#include "scandir4win.h" +#include "asprintf4win.h" +#include "fnmatch_impl4win.h" +#endif + +struct test_data +{ + char *test_case_name; + char *database_name; + char *sql_statement; + int expected_rows; + int expected_columns; + char **expected_results; + int *expected_precision; + struct test_data *next; +}; + +struct test_list +{ + struct test_data *first; + struct test_data *last; + int count; + struct test_data **array; +}; + +struct db_conn +{ + sqlite3 *db_handle; + void *cache; +}; + +struct thread_params +{ + int id; + struct test_list *list; + struct db_conn *conn; + int done; + int count; + int errors; +#ifndef _WIN32 + int started; + pthread_t thread_id; + pthread_attr_t attr; +#endif +} mt_params[64]; + +static struct db_conn * +alloc_connection (void) +{ + struct db_conn *conn = malloc (sizeof (struct db_conn)); + conn->db_handle = NULL; + conn->cache = spatialite_alloc_connection (); + return conn; +} + +static void +close_connection (struct db_conn *conn, int final) +{ + if (conn->db_handle != NULL) + sqlite3_close (conn->db_handle); + conn->db_handle = NULL; + if (final) + { + if (conn->cache != NULL) + spatialite_cleanup_ex (conn->cache); + conn->cache = NULL; + } +} + +static void +open_connection (struct db_conn *conn) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open %s db: %s\n", ":memory:", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return; + } + + spatialite_init_ex (db_handle, conn->cache, 0); + + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return; + } + + conn->db_handle = db_handle; +} + +static void +init_thread_params (int id, struct test_list *list) +{ + struct thread_params *p = &(mt_params[id]); + p->id = id; + p->conn = alloc_connection (); + p->list = list; + p->done = 0; + p->count = 0; + p->errors = 0; +#ifndef _WIN32 + p->started = 0; +#endif +} + +static void +free_thread_params (int id, int *total_sql, int *failures) +{ + struct thread_params *p = &(mt_params[id]); + if (p->conn != NULL) + { + close_connection (p->conn, 1); + free (p->conn); + p->conn = NULL; + } +#ifndef _WIN32 + if (p->started) + { + void *ptr; + pthread_join (p->thread_id, &ptr); + pthread_attr_destroy (&(p->attr)); + } +#endif + *total_sql += p->count; + *failures += p->errors; +} + +int +get_clean_line (FILE * f, char **line) +{ + size_t len = 0; + ssize_t num_read = 0; + ssize_t end = 0; + char *tmp_line = NULL; + +#if !defined(_WIN32) &&!defined(__APPLE__) +/* expecting to be on a sane minded platform [linux-like] */ + num_read = getline (&(tmp_line), &len, f); +#else +/* neither Windows nor MacOsX support getline() */ + len = 1024 * 1024; + tmp_line = malloc (len); + if (fgets (tmp_line, len, f) == NULL) + { + free (tmp_line); + num_read = -1; + } + else + num_read = strlen (tmp_line); +#endif + + if (num_read < 1) + { + fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read); + return -1; + } + /* trim the trailing new line and any comments */ + for (end = 0; end < num_read; ++end) + { + if (*(tmp_line + end) == '\n') + break; + if (*(tmp_line + end) == '#') + break; + } + /* trim any trailing spaces */ + while (end > 0) + { + if (*(tmp_line + end - 1) != ' ') + { + break; + } + *(tmp_line + end - 1) = '\0'; + end--; + } + *line = malloc (end + 1); + memcpy (*line, tmp_line, end); + (*line)[end] = '\0'; + free (tmp_line); + return 0; +} + +void +handle_precision (char *expected_result, int *precision) +{ + int i; + int prcsn; + int result_len = strlen (expected_result); + *precision = 0; + for (i = result_len - 1; i >= 0; --i) + { + if (expected_result[i] == ':') + { + prcsn = atoi (&(expected_result[i + 1])); + if (prcsn > 0) + { + expected_result[i] = '\0'; + *precision = prcsn; + } + break; + } + } +} + +struct test_data * +read_one_case (const char *filepath) +{ + int num_results; + int i; + char *tmp; + FILE *f; + struct test_data *data; + + f = fopen (filepath, "r"); + + data = malloc (sizeof (struct test_data)); + data->next = NULL; + get_clean_line (f, &(data->test_case_name)); + get_clean_line (f, &(data->database_name)); + get_clean_line (f, &(data->sql_statement)); + get_clean_line (f, &(tmp)); + data->expected_rows = atoi (tmp); + free (tmp); + get_clean_line (f, &(tmp)); + data->expected_columns = atoi (tmp); + free (tmp); + num_results = (data->expected_rows + 1) * data->expected_columns; + data->expected_results = malloc (num_results * sizeof (char *)); + data->expected_precision = malloc (num_results * sizeof (int)); + for (i = 0; i < num_results; ++i) + { + get_clean_line (f, &(data->expected_results[i])); + handle_precision (data->expected_results[i], + &(data->expected_precision[i])); + } + fclose (f); + return data; +} + +void +cleanup_test_data (struct test_data *data) +{ + int i; + int num_results = (data->expected_rows + 1) * (data->expected_columns); + + for (i = 0; i < num_results; ++i) + { + free (data->expected_results[i]); + } + free (data->expected_results); + free (data->expected_precision); + free (data->test_case_name); + free (data->database_name); + free (data->sql_statement); + free (data); +} + +static void +add_test (struct test_list *list, struct test_data *data) +{ + if (list->first == NULL) + list->first = data; + if (list->last != NULL) + list->last->next = data; + list->last = data; +} + +static void +list_cleanup (struct test_list *list) +{ + struct test_data *p; + struct test_data *pn; + p = list->first; + while (p != NULL) + { + pn = p->next; + cleanup_test_data (p); + p = pn; + } + if (list->array != NULL) + free (list->array); +} + +static int +build_test_array (struct test_list *list) +{ + struct test_data *p; + struct test_data **pn; + list->count = 0; + if (list->array != NULL) + free (list->array); + list->array = NULL; + p = list->first; + while (p != NULL) + { + list->count++; + p = p->next; + } + if (list->count <= 0) + return 0; + list->array = malloc (sizeof (struct test_data *) * list->count); + pn = list->array; + p = list->first; + while (p != NULL) + { + *pn = p; + pn++; + p = p->next; + } + return 1; +} + +int +test_case_filter (const struct dirent *entry) +{ + return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0); +} + +static int +load_testcases (struct test_list *list) +{ + struct dirent **namelist; + int n; + int i; + const char *security_level; + const char *current_dir; + char *path; + +/* plain SQL testcases */ + current_dir = "sql_stmt_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); + +/* security related testcases */ + security_level = getenv ("SPATIALITE_SECURITY"); + if (security_level == NULL) + ; + else if (strcasecmp (security_level, "relaxed") == 0) + { + current_dir = "sql_stmt_security_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, + namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); + } + +#ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ +/* Math SQL testcases */ + current_dir = "sql_stmt_mathsql_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +#endif /* end MATHSQL conditional */ + +#ifndef OMIT_PROJ /* only if PROJ is supported */ +/* PROJ.4 SQL testcases */ + current_dir = "sql_stmt_proj_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +#endif /* end PROJ conditional */ + +#ifndef OMIT_GEOS /* only if GEOS is supported */ +/* GEOS SQL testcases */ + current_dir = "sql_stmt_geos_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +#endif /* end GEOS conditional */ + +#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported - 3.4.0 */ +/* GEOS ADVANCED SQL testcases */ + current_dir = "sql_stmt_geosadvanced_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +#endif /* end GEOS_ADVANCED conditional */ + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ +/* LWGEOM SQL testcases */ + current_dir = "sql_stmt_lwgeom_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +#endif /* end LWGEOM conditional */ + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ +/* LIBXML2 SQL testcases */ + current_dir = "sql_stmt_libxml2_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); +/* security related testcases */ + security_level = getenv ("SPATIALITE_SECURITY"); + if (security_level == NULL) + ; + else if (strcasecmp (security_level, "relaxed") == 0) + { + current_dir = "sql_stmt_xmlsec_tests"; + path = sqlite3_mprintf ("%s", current_dir); + n = scandir (path, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return 0; + } + sqlite3_free (path); + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + path = sqlite3_mprintf ("%s/%s", current_dir, + namelist[i]->d_name); + data = read_one_case (path); + if (strcmp (data->database_name, ":memory:") == 0 + || strcmp (data->database_name, "NEW:memory:") == 0) + add_test (list, data); + else + cleanup_test_data (data); + sqlite3_free (path); + free (namelist[i]); + } + free (namelist); + } +#endif /* end LIBXML2 conditional */ + + return 1; +} + +int +do_one_case (const struct test_data *data, struct db_conn *conn, int thread_id) +{ + int ret; + char *err_msg = NULL; + int i; + char **results; + int rows; + int columns; + + if (strcmp (data->database_name, "NEW:memory:") == 0) + close_connection (conn, 0); + if (conn->db_handle == NULL) + open_connection (conn); + if (conn->db_handle == NULL) + return -9; + + ret = + sqlite3_get_table (conn->db_handle, data->sql_statement, &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, + data->test_case_name); + printf ("Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != data->expected_rows) || (columns != data->expected_columns)) + { + printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, + data->test_case_name); + printf ("Unexpected error: bad result: %i/%i.\n", rows, columns); + return -11; + } + for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) + { + if (results[i] != NULL && data->expected_precision[i] == 0) + { + data->expected_precision[i] = strlen (results[i]); + } + if (results[i] == NULL) + { + if (strcmp ("(NULL)", data->expected_results[i]) == 0) + { + /* we expected this */ + continue; + } + else + { + printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, + data->test_case_name); + printf ("Null value at %i.\n", i); + printf ("Expected value was: %s\n", + data->expected_results[i]); + return -12; + } + } + else if (strlen (results[i]) == 0) + { + printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, + data->test_case_name); + printf ("zero length result at %i\n", i); + printf ("Expected value was : %s|\n", + data->expected_results[i]); + return -13; + } + else if (strncmp + (results[i], data->expected_results[i], + data->expected_precision[i]) != 0) + { + printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, + data->test_case_name); + printf ("Unexpected value at %i: %s|\n", i, results[i]); + printf ("Expected value was : %s|\n", + data->expected_results[i]); + return -14; + } + } + sqlite3_free_table (results); + return 0; +} + +static void +do_tests (struct thread_params *param) +{ + int i; + int j; + struct test_list *list = param->list; + struct db_conn *conn = param->conn; + + for (i = list->count - 1; i >= 0; i--) + { + /* tests in backward order */ + struct test_data *px = *(list->array + i); + for (j = 0; j < 32; j++) + { + int ret = do_one_case (px, conn, param->id); + if (ret < 0) + param->errors += 1; + param->count++; + } + } + for (i = 0; i < list->count; i++) + { + /* tests in forward order */ + struct test_data *px = *(list->array + i); + for (j = 0; j < 32; j++) + { + int ret = do_one_case (px, conn, param->id); + if (ret < 0) + param->errors += 1; + param->count++; + } + } + for (i = 0; i < 131072; i++) + { + /* tests in random order */ + struct test_data *px; + int ret; + int x; +#ifdef _WIN32 + x = rand () % list->count; +#else + x = random () % list->count; +#endif + px = *(list->array + x); + ret = do_one_case (px, conn, param->id); + if (ret < 0) + param->errors += 1; + param->count++; + } +} + +#ifdef _WIN32 +DWORD WINAPI +exec_thread (void *arg) +#else +void * +exec_thread (void *arg) +#endif +{ +/* thread implementation */ + struct thread_params *param = (struct thread_params *) arg; + do_tests (param); +/* thread termination */ + if (param->errors) + printf ("\nThread %d reports %d error%c\n", param->id, param->errors, + (param->errors > 1) ? 's' : ' '); + param->done = 1; +#ifdef _WIN32 + return 0; +#else + pthread_exit (NULL); +#endif +} + +static void +run_thread (int i) +{ + struct thread_params *param = &(mt_params[i]); +#ifdef _WIN32 + HANDLE thread_handle; + DWORD dw_thread_id; + thread_handle = + CreateThread (NULL, 0, exec_thread, param, 0, &dw_thread_id); + SetThreadPriority (thread_handle, THREAD_PRIORITY_IDLE); +#else + int ok_prior = 0; + int policy; + int min_prio; + struct sched_param sp; + pthread_attr_init (&(param->attr)); + param->started = 1; + if (pthread_attr_setschedpolicy (&(param->attr), SCHED_RR) == 0) + { + /* attempting to set the lowest priority */ + if (pthread_attr_getschedpolicy (&(param->attr), &policy) == 0) + { + min_prio = sched_get_priority_min (policy); + sp.sched_priority = min_prio; + if (pthread_attr_setschedparam (&(param->attr), &sp) == 0) + { + /* ok, setting the lowest priority */ + ok_prior = 1; + pthread_create (&(param->thread_id), &(param->attr), + exec_thread, param); + } + } + } + if (!ok_prior) + { + /* failure: using standard priority */ + pthread_create (&(param->thread_id), NULL, exec_thread, param); + } +#endif +} + +int +main (int argc, char *argv[]) +{ + int i; + int failures = 0; + int total_sql = 0; + int num_threads = 4; + int mt_enabled = 0; + struct test_list list; + const char *env_var; + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + env_var = getenv ("SPATIALITE_MULTITHREAD_TEST"); + if (env_var == NULL) + ; + else if (strcasecmp (env_var, "yes") == 0) + mt_enabled = 1; + if (!mt_enabled) + { + printf + ("check_multithread: SPATIALITE_MULTITHREAD_TEST non enabled .... skipping ...\n"); + return 0; + } + env_var = getenv ("SPATIALITE_NUM_THREADS"); + if (env_var == NULL) + ; + else + { + num_threads = atoi (env_var); + if (num_threads < 1) + num_threads = 1; + if (num_threads > 64) + num_threads = 64; + } + printf ("Testing %d concurrent threads\n", num_threads); + +/* seeding the pseudo-random generator */ +#ifdef _WIN32 + srand (getpid ()); +#else + srandom (getpid ()); +#endif + + list.first = NULL; + list.last = NULL; + list.count = 0; + list.array = NULL; + if (!load_testcases (&list)) + { + fprintf (stderr, "Unable to load testcases !!!\n"); + return -1; + } + if (!build_test_array (&list)) + { + fprintf (stderr, "No valid testcases found !!!\n"); + return -1; + } + + spatialite_initialize (); + + for (i = 0; i < num_threads; i++) + init_thread_params (i, &list); + + for (i = 0; i < num_threads; i++) + run_thread (i); + + while (1) + { + int cnt; +#ifdef _WIN32 + Sleep (5 * 1000); +#else + sleep (5); +#endif + cnt = 0; + for (i = 0; i < num_threads; i++) + { + struct thread_params *p = &(mt_params[i]); + if (p->done != 1) + cnt++; + } + if (cnt == 0) + break; + } + + + for (i = 0; i < num_threads; i++) + free_thread_params (i, &total_sql, &failures); + printf + ("\n\nALL MULTITHREAD TEST PASSED\n\t[%d SQL tests: %d failures]\n\n", + total_sql, failures); + + list_cleanup (&list); + + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_recover_geom.c b/src/spatialite/test/check_recover_geom.c index 0b9bad6..ea767ad 100644 --- a/src/spatialite/test/check_recover_geom.c +++ b/src/spatialite/test/check_recover_geom.c @@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int ret; sqlite3 *handle; @@ -57,1338 +58,1644 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } /* creating a Point XY table */ sql = "CREATE TABLE pt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } /* creating a Point XYZ table */ sql = "CREATE TABLE pt_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } /* creating a Point XYM table */ sql = "CREATE TABLE pt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } /* creating a Point XYZM table */ sql = "CREATE TABLE pt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } /* creating a Linestring XY table */ sql = "CREATE TABLE ln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } /* creating a Linestring XYZ table */ sql = "CREATE TABLE ln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -8; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } /* creating a Linestring XYM table */ sql = "CREATE TABLE ln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } /* creating a Linestring XYZM table */ sql = "CREATE TABLE ln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } /* creating a Polygon XY table */ sql = "CREATE TABLE pg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -11; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } /* creating a Polygon XYZ table */ sql = "CREATE TABLE pg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } /* creating a Polygon XYM table */ sql = "CREATE TABLE pg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } /* creating a Polygon XYZM table */ sql = "CREATE TABLE pg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -14; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } /* creating a MultiPoint XY table */ sql = "CREATE TABLE mpt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -15; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } /* creating a MultiPoint XYZ table */ sql = "CREATE TABLE mpt_XYZ (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -16; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -16; + } /* creating a MultiPoint XYM table */ sql = "CREATE TABLE mpt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -17; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } /* creating a MultiPoint XYZM table */ sql = "CREATE TABLE mpt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } /* creating a MultiLinestring XY table */ sql = "CREATE TABLE mln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -19; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -19; + } /* creating a MultiLinestring XYZ table */ sql = "CREATE TABLE mln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -20; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } /* creating a MultiLinestring XYM table */ sql = "CREATE TABLE mln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } /* creating a MultiLinestring XYZM table */ sql = "CREATE TABLE mln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } /* creating a MultiPolygon XY table */ sql = "CREATE TABLE mpg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } /* creating a MultiPolygon XYZ table */ sql = "CREATE TABLE mpg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } /* creating a MultiPolygon XYM table */ sql = "CREATE TABLE mpg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } /* creating a MultiPolygon XYZM table */ sql = "CREATE TABLE mpg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -26; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } /* creating a GeometryCollection XY table */ sql = "CREATE TABLE gcoll_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -27; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -27; + } /* creating a GeometryCollection XYZ table */ sql = "CREATE TABLE gcoll_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -28; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -28; + } /* creating a GeometryCollection XYM table */ sql = "CREATE TABLE gcoll_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } /* creating a GeometryCollection XYZM table */ sql = "CREATE TABLE gcoll_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } /* creating a Geometry XY table */ sql = "CREATE TABLE geom_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -31; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } /* creating a Geometry XYZ table */ sql = "CREATE TABLE geom_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -32; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -32; + } /* creating a Geometry XYM table */ sql = "CREATE TABLE geom_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -33; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } /* creating a Geometry XYZM table */ sql = "CREATE TABLE geom_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } /* Inserting into pt_xy */ - sql = "INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))"; + sql = + "INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } /* Inserting into pt_xyz */ - sql = "INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))"; + sql = + "INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -36; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -36; + } /* Inserting into pt_xym */ - sql = "INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))"; + sql = + "INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -37; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -37; + } /* Inserting into pt_xyzm */ - sql = "INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))"; + sql = + "INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -38; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } /* Inserting into ln_xy */ - sql = "INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))"; + sql = + "INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -39; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } /* Inserting into ln_xyz */ - sql = "INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))"; + sql = + "INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -40; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -40; + } /* Inserting into ln_xym */ - sql = "INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))"; + sql = + "INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -41; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -41; + } /* Inserting into ln_xyzm */ - sql = "INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))"; + sql = + "INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -42; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -42; + } /* Inserting into pg_xy */ - sql = "INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))"; + sql = + "INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -43; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -43; + } /* Inserting into pg_xyz */ - sql = "INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))"; + sql = + "INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -44; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -44; + } /* Inserting into pg_xym */ - sql = "INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))"; + sql = + "INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } /* Inserting into pg_xyzm */ - sql = "INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))"; + sql = + "INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } /* Inserting into mpt_xy */ - sql = "INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))"; + sql = + "INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } /* Inserting into mpt_xyz */ - sql = "INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))"; + sql = + "INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } /* Inserting into mpt_xym */ - sql = "INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))"; + sql = + "INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -49; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -49; + } /* Inserting into mpt_xyzm */ - sql = "INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))"; + sql = + "INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -50; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -50; + } /* Inserting into mln_xy */ - sql = "INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))"; + sql = + "INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -51; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -51; + } /* Inserting into mln_xyz */ - sql = "INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))"; + sql = + "INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -52; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -52; + } /* Inserting into mln_xym */ - sql = "INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))"; + sql = + "INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -53; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -53; + } /* Inserting into mln_xyzm */ - sql = "INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))"; + sql = + "INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } /* Inserting into mpg_xy */ - sql = "INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; + sql = + "INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } /* Inserting into mpg_xyz */ - sql = "INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; + sql = + "INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -56; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -56; + } /* Inserting into mpg_xym */ - sql = "INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))"; + sql = + "INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -57; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -57; + } /* Inserting into mpg_xyzm */ - sql = "INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))"; + sql = + "INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -58; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -58; + } /* Inserting into gcoll_xy */ - sql = "INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; + sql = + "INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -59; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -59; + } /* Inserting into gcoll_xyz */ - sql = "INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; + sql = + "INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -60; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -60; + } /* Inserting into gcoll_xym */ - sql = "INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; + sql = + "INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -61; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -61; + } /* Inserting into gcoll_xyzm */ - sql = "INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; + sql = + "INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -62; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -62; + } /* Inserting into geom_xy */ - sql = "INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -63; - } - sql = "INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -64; - } + sql = + "INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -63; + } + sql = + "INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -64; + } /* Inserting into geom_xyz */ - sql = "INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -65; - } - sql = "INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -66; - } + sql = + "INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -65; + } + sql = + "INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } /* Inserting into geom_xym */ - sql = "INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -67; - } - sql = "INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -68; - } + sql = + "INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -67; + } + sql = + "INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -68; + } /* Inserting into geom_xyzm */ - sql = "INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -69; - } - sql = "INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))"; - ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -70; - } + sql = + "INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -69; + } + sql = + "INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))"; + ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -70; + } /* recovering pt_xy */ sql = "SELECT RecoverGeometryColumn('pt_xy', 'g', 4326, 'POINT', 2);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -71; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -72; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -73; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -74; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -71; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -72; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -73; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -74; + } sqlite3_free_table (results); /* recovering pt_xyz */ sql = "SELECT RecoverGeometryColumn('pt_xyz', 'g', 4326, 'POINT', 3);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -75; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -76; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -77; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -78; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -75; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -76; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -77; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -78; + } sqlite3_free_table (results); /* recovering pt_xym */ sql = "SELECT RecoverGeometryColumn('pt_xym', 'g', 4326, 'POINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -79; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -80; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -81; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -82; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -79; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -80; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -81; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -82; + } sqlite3_free_table (results); /* recovering pt_xyzm */ - sql = "SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -83; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -84; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -85; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -86; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -83; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -84; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -85; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -86; + } sqlite3_free_table (results); /* recovering ln_xy */ - sql = "SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -87; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -88; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -89; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -90; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -87; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -88; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -89; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -90; + } sqlite3_free_table (results); /* recovering ln_xyz */ - sql = "SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -91; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -92; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -93; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -94; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -91; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -92; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -93; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -94; + } sqlite3_free_table (results); /* recovering ln_xym */ - sql = "SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -95; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -96; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -97; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -98; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -95; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -96; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -97; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -98; + } sqlite3_free_table (results); /* recovering ln_xyzm */ - sql = "SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -99; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -100; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -101; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -102; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -99; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -100; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -101; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -102; + } sqlite3_free_table (results); /* recovering pg_xy */ sql = "SELECT RecoverGeometryColumn('pg_xy', 'g', 4326, 'POLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -103; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -104; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -105; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -106; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -103; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -104; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -105; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -106; + } sqlite3_free_table (results); /* recovering pg_xyz */ - sql = "SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -107; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -108; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -109; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -110; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -107; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -108; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -109; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -110; + } sqlite3_free_table (results); /* recovering pg_xym */ - sql = "SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -111; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -112; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -113; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -114; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -111; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -112; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -113; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -114; + } sqlite3_free_table (results); /* recovering pg_xyzm */ - sql = "SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -115; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -116; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -117; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -118; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -115; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -116; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -117; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -118; + } sqlite3_free_table (results); /* recovering mpt_xy */ - sql = "SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -119; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -120; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -121; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -122; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -119; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -120; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -121; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -122; + } sqlite3_free_table (results); /* recovering mpt_xyz */ - sql = "SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -123; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -124; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -125; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -126; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -123; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -124; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -125; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -126; + } sqlite3_free_table (results); /* recovering mpt_xym */ - sql = "SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -127; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -128; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -129; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -130; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -127; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -128; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -129; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -130; + } sqlite3_free_table (results); /* recovering mpt_xyzm */ - sql = "SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -131; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -132; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -133; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -134; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -131; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -132; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -133; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -134; + } sqlite3_free_table (results); /* recovering mln_xy */ - sql = "SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -135; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -136; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -137; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -138; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -135; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -136; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -137; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -138; + } sqlite3_free_table (results); /* recovering mln_xyz */ - sql = "SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -139; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -140; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -141; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -142; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -139; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -140; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -141; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -142; + } sqlite3_free_table (results); /* recovering mln_xym */ - sql = "SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -143; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -144; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -145; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -146; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -143; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -144; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -145; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -146; + } sqlite3_free_table (results); /* recovering mln_xyzm */ - sql = "SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -147; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -148; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -149; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -150; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -147; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -148; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -149; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -150; + } sqlite3_free_table (results); /* recovering mpg_xy */ - sql = "SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -151; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -152; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -153; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -154; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -151; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -152; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -153; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -154; + } sqlite3_free_table (results); /* recovering mpg_xyz */ - sql = "SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -155; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -156; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -157; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -158; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -155; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -156; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -157; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -158; + } sqlite3_free_table (results); /* recovering mpg_xym */ - sql = "SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -159; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -160; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -161; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -162; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -159; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -160; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -161; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -162; + } sqlite3_free_table (results); /* recovering mpg_xyzm */ - sql = "SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -163; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -164; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -165; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -166; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -163; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -164; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -165; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -166; + } sqlite3_free_table (results); /* recovering gcoll_xy */ - sql = "SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -167; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -168; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -169; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -170; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -167; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -168; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -169; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -170; + } sqlite3_free_table (results); /* recovering gcoll_xyz */ - sql = "SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -171; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -172; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -173; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -174; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -171; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -172; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -173; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -174; + } sqlite3_free_table (results); /* recovering gcoll_xym */ - sql = "SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -175; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -176; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -177; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -178; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -175; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -176; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -177; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -178; + } sqlite3_free_table (results); /* recovering gcoll_xyzm */ - sql = "SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -179; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -180; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -181; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -182; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -179; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -180; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -181; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -182; + } sqlite3_free_table (results); /* recovering geom_xy */ - sql = "SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');"; + sql = + "SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -183; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -184; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -185; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -186; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -183; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -184; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -185; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -186; + } sqlite3_free_table (results); /* recovering geom_xyz */ - sql = "SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');"; + sql = + "SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -187; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -188; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -189; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -190; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -187; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -188; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -189; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -190; + } sqlite3_free_table (results); /* recovering geom_xym */ - sql = "SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');"; + sql = + "SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -191; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -192; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -193; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -194; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -191; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -192; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -193; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -194; + } sqlite3_free_table (results); /* recovering geom_xyzm */ - sql = "SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');"; + sql = + "SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -195; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -196; - } - if (results[1] == NULL) { - fprintf (stderr, "Unexpected error: NULL result\n"); - return -197; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "Unexpected error: invalid result\n"); - return -198; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -195; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -196; + } + if (results[1] == NULL) + { + fprintf (stderr, "Unexpected error: NULL result\n"); + return -197; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "Unexpected error: invalid result\n"); + return -198; + } sqlite3_free_table (results); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -199; - } - - spatialite_cleanup(); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -199; + } + + spatialite_cleanup_ex (cache); + return 0; } diff --git a/src/spatialite/test/check_relations_fncts.c b/src/spatialite/test/check_relations_fncts.c index a51a289..90f1fde 100644 --- a/src/spatialite/test/check_relations_fncts.c +++ b/src/spatialite/test/check_relations_fncts.c @@ -56,9 +56,331 @@ the terms of any one of the MPL, the GPL or the LGPL. static const double double_eps = 0.00000001; -int main (int argc, char *argv[]) +int +test_extra_mode () { -#ifndef OMIT_GEOS /* only if GEOS is supported */ +#ifndef OMIT_GEOS /* only if GEOS is supported */ + int ret; + sqlite3 *handle; + int result; + int returnValue = 0; + gaiaGeomCollPtr geom_pt1; + gaiaGeomCollPtr geom_pt2; + gaiaGeomCollPtr geom_ln1; + gaiaGeomCollPtr geom_ln2; + gaiaGeomCollPtr geom_pg; + gaiaGeomCollPtr g; + gaiaLinestringPtr ln; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + void *cache = spatialite_alloc_connection (); + + /* Tests start here */ + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -101; + } + + spatialite_init_ex (handle, cache, 0); + + /* preparing a Point */ + geom_pt1 = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom_pt1, 30.0, 30.0); + gaiaMbrGeometry (geom_pt1); + + /* preparing another Point */ + geom_pt2 = gaiaAllocGeomColl (); + gaiaAddPointToGeomColl (geom_pt2, 10.5, 1.5); + gaiaMbrGeometry (geom_pt2); + + /* preparing a Linestring */ + geom_ln1 = gaiaAllocGeomColl (); + ln = gaiaAddLinestringToGeomColl (geom_ln1, 3); + gaiaSetPoint (ln->Coords, 0, 5.0, 0.0); + gaiaSetPoint (ln->Coords, 1, 5.0, 20.0); + gaiaSetPoint (ln->Coords, 2, 0.0, 20.0); + gaiaMbrGeometry (geom_ln1); + + /* preparing another Linestring */ + geom_ln2 = gaiaAllocGeomColl (); + ln = gaiaAddLinestringToGeomColl (geom_ln2, 4); + gaiaSetPoint (ln->Coords, 0, 0.0, 20.0); + gaiaSetPoint (ln->Coords, 1, 5.0, 20.0); + gaiaSetPoint (ln->Coords, 2, 5.0, 0.0); + gaiaSetPoint (ln->Coords, 3, 0.0, 0.0); + gaiaMbrGeometry (geom_ln2); + + /* preparing a Polygon */ + geom_pg = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (geom_pg, 5, 1); + rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); + gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); + gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); + gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); + rng = gaiaAddInteriorRing (pg, 0, 5); + gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); + gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); + gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); + gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); + gaiaMbrGeometry (geom_pg); + + result = gaiaGeomCollDisjoint_r (cache, geom_pt1, geom_ln1); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -102; + goto exit; + } + result = gaiaGeomCollDisjoint_r (cache, geom_pt2, geom_pg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -103; + goto exit; + } + result = gaiaGeomCollDisjoint_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -104; + goto exit; + } + + result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -105; + goto exit; + } + result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_pg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -106; + goto exit; + } + result = gaiaGeomCollOverlaps_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -107; + goto exit; + } + + result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -108; + goto exit; + } + result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_pg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -109; + goto exit; + } + result = gaiaGeomCollCrosses_r (cache, geom_pg, geom_ln1); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -110; + goto exit; + } + + result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -111; + goto exit; + } + result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_pg); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -112; + goto exit; + } + result = gaiaGeomCollTouches_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -113; + goto exit; + } + + result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -114; + goto exit; + } + result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_pg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -115; + goto exit; + } + result = gaiaGeomCollWithin_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -116; + goto exit; + } + + result = gaiaGeomCollContains_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -117; + goto exit; + } + result = gaiaGeomCollContains_r (cache, geom_pg, geom_pt2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -118; + goto exit; + } + result = gaiaGeomCollContains_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -119; + goto exit; + } + + result = gaiaGeomCollCovers_r (cache, geom_pt1, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -120; + goto exit; + } + result = gaiaGeomCollCovers_r (cache, geom_pg, geom_pt2); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -121; + goto exit; + } + result = gaiaGeomCollCovers_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -122; + goto exit; + } + + result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -120; + goto exit; + } + result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_pg); + if (result != 1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -121; + goto exit; + } + result = gaiaGeomCollCoveredBy_r (cache, geom_pg, geom_ln1); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -122; + goto exit; + } + + g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -123; + goto exit; + } + gaiaFreeGeomColl (g); + g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -124; + goto exit; + } + gaiaFreeGeomColl (g); + + /* Cleanup and exit */ + exit: + gaiaFreeGeomColl (geom_pt1); + gaiaFreeGeomColl (geom_pt2); + gaiaFreeGeomColl (geom_ln1); + gaiaFreeGeomColl (geom_ln2); + gaiaFreeGeomColl (geom_pg); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup_ex (cache); + return returnValue; + +#endif /* end GEOS conditional */ + return 0; +} + +int +test_current_mode () +{ +#ifndef OMIT_GEOS /* only if GEOS is supported */ + int ret; + sqlite3 *handle; int result; double resultDouble; int returnValue = 0; @@ -66,728 +388,1794 @@ int main (int argc, char *argv[]) gaiaGeomCollPtr g; gaiaPolygonPtr pg; gaiaRingPtr rng; - + void *cache = spatialite_alloc_connection (); + /* Common setup */ - gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl(); + gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl (); double dummyResultArg = 0.0; double dummyResultArg2 = 0.0; - + /* Tests start here */ + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + /* null inputs for a range of geometry functions */ + result = gaiaGeomCollEquals_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -1; + goto exit; + } + + result = gaiaGeomCollEquals_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -2; + goto exit; + } + + result = gaiaGeomCollEquals_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -3; + goto exit; + } + + result = gaiaGeomCollIntersects_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -4; + goto exit; + } + + result = gaiaGeomCollIntersects_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -5; + goto exit; + } + + result = gaiaGeomCollIntersects_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -6; + goto exit; + } + + result = gaiaGeomCollOverlaps_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -7; + goto exit; + } + + result = gaiaGeomCollOverlaps_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -8; + goto exit; + } + + result = gaiaGeomCollOverlaps_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -9; + goto exit; + } + + result = gaiaGeomCollCrosses_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -10; + goto exit; + } + + result = gaiaGeomCollCrosses_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -11; + goto exit; + } + + result = gaiaGeomCollCrosses_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -12; + goto exit; + } + + result = gaiaGeomCollTouches_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -13; + goto exit; + } + + result = gaiaGeomCollTouches_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -14; + goto exit; + } + + result = gaiaGeomCollTouches_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -15; + goto exit; + } + + result = gaiaGeomCollDisjoint_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -16; + goto exit; + } + + result = gaiaGeomCollDisjoint_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -17; + goto exit; + } + + result = gaiaGeomCollDisjoint_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -18; + goto exit; + } + + result = gaiaGeomCollWithin_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -19; + goto exit; + } + + result = gaiaGeomCollWithin_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -20; + goto exit; + } + + result = gaiaGeomCollWithin_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -21; + goto exit; + } + + result = gaiaGeomCollContains_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -22; + goto exit; + } + + result = gaiaGeomCollContains_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -23; + goto exit; + } + + result = gaiaGeomCollContains_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -24; + goto exit; + } + + result = gaiaGeomCollRelate_r (cache, 0, validGeometry, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -25; + goto exit; + } + + result = gaiaGeomCollRelate_r (cache, validGeometry, 0, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -26; + goto exit; + } + + result = gaiaGeomCollRelate_r (cache, 0, 0, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -27; + goto exit; + } + + result = gaiaHausdorffDistance_r (cache, 0, validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -34; + goto exit; + } + + result = gaiaHausdorffDistance_r (cache, validGeometry, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -35; + goto exit; + } + + result = gaiaHausdorffDistance_r (cache, 0, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -36; + goto exit; + } + + result = gaiaGeomCollCovers_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -37; + goto exit; + } + + result = gaiaGeomCollCovers_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -38; + goto exit; + } + + result = gaiaGeomCollCovers_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -39; + goto exit; + } + + result = gaiaGeomCollCoveredBy_r (cache, 0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -40; + goto exit; + } + + result = gaiaGeomCollCoveredBy_r (cache, validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -41; + goto exit; + } + + result = gaiaGeomCollCoveredBy_r (cache, 0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -42; + goto exit; + } + + result = gaiaGeomCollDistance_r (cache, 0, validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -43; + goto exit; + } + + result = gaiaGeomCollDistance_r (cache, validGeometry, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -44; + goto exit; + } + + result = gaiaGeomCollDistance_r (cache, 0, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -45; + goto exit; + } + /* Check some of the single geometry analysis routines */ + + result = gaiaGeomCollLength_r (cache, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -46; + goto exit; + } + + result = gaiaGeomCollArea_r (cache, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -47; + goto exit; + } + + result = + gaiaGeomCollCentroid_r (cache, 0, &dummyResultArg, &dummyResultArg2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -48; + goto exit; + } + + result = + gaiaGetPointOnSurface_r (cache, 0, &dummyResultArg, &dummyResultArg2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -49; + goto exit; + } + + result = gaiaIsSimple_r (cache, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -32; + goto exit; + } + + result = gaiaIsValid_r (cache, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -33; + goto exit; + } + + resultDouble = gaiaLineLocatePoint_r (cache, 0, validGeometry); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -62; + goto exit; + } + + resultDouble = gaiaLineLocatePoint_r (cache, validGeometry, 0); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -63; + goto exit; + } + + resultDouble = gaiaLineLocatePoint_r (cache, 0, 0); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -64; + goto exit; + } + + /* geometry generating functionality */ + geom = NULL; + geom = gaiaLinesCutAtNodes (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -50; + goto exit; + } + + geom = gaiaLinesCutAtNodes (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -51; + goto exit; + } + + geom = gaiaLinesCutAtNodes (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -52; + goto exit; + } + + geom = gaiaUnaryUnion_r (cache, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -53; + goto exit; + } + + geom = gaiaLineMerge (0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -54; + goto exit; + } + + geom = gaiaSnap_r (cache, 0, validGeometry, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -55; + goto exit; + } + + geom = gaiaSnap_r (cache, validGeometry, 0, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -56; + goto exit; + } + + geom = gaiaSnap_r (cache, 0, 0, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -57; + goto exit; + } + + geom = gaiaShortestLine_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -58; + goto exit; + } + + geom = gaiaShortestLine_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -59; + goto exit; + } + + geom = gaiaShortestLine_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -60; + goto exit; + } + + geom = gaiaLineSubstring_r (cache, 0, 0, 1); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -61; + goto exit; + } + + geom = gaiaGeometryIntersection_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -65; + goto exit; + } + + geom = gaiaGeometryIntersection_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -66; + goto exit; + } + + geom = gaiaGeometryIntersection_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -67; + goto exit; + } + + geom = gaiaGeometryUnion_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -68; + goto exit; + } + + geom = gaiaGeometryUnion_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -69; + goto exit; + } + + geom = gaiaGeometryUnion_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -70; + goto exit; + } + + geom = gaiaGeometryDifference_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -71; + goto exit; + } + + geom = gaiaGeometryDifference_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -72; + goto exit; + } + + geom = gaiaGeometryDifference_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -73; + goto exit; + } + + geom = gaiaGeometrySymDifference_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -74; + goto exit; + } + + geom = gaiaGeometrySymDifference_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -75; + goto exit; + } + + geom = gaiaGeometrySymDifference_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -76; + goto exit; + } + + geom = gaiaBoundary_r (cache, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -77; + goto exit; + } + + geom = gaiaGeomCollSimplify_r (cache, 0, 1.0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -78; + goto exit; + } + + geom = gaiaGeomCollSimplifyPreserveTopology_r (cache, 0, 1.0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -79; + goto exit; + } + + geom = gaiaConvexHull_r (cache, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -80; + goto exit; + } + + geom = gaiaGeomCollBuffer_r (cache, 0, 0.1, 10); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -81; + goto exit; + } + + geom = gaiaOffsetCurve_r (cache, 0, 1.5, 10, 1); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -82; + goto exit; + } + + geom = gaiaSingleSidedBuffer_r (cache, 0, 1.5, 10, 1); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -83; + goto exit; + } + + geom = gaiaSharedPaths_r (cache, 0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -84; + goto exit; + } + + geom = gaiaSharedPaths_r (cache, validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -85; + goto exit; + } + + geom = gaiaSharedPaths_r (cache, 0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -86; + goto exit; + } + + geom = gaiaLineInterpolatePoint_r (cache, 0, 0.6); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -87; + goto exit; + } + + /* Test some strange conditions */ + result = gaiaGeomCollLength_r (cache, validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -88; + goto exit; + } + + /* preparing a collection of Polygons */ + geom = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (geom, 5, 1); + rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); + gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); + gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); + gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); + rng = gaiaAddInteriorRing (pg, 0, 5); + gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); + gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); + gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); + gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); + pg = gaiaAddPolygonToGeomColl (geom, 5, 1); + rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, 8.5, 8.5); + gaiaSetPoint (rng->Coords, 1, 18.5, 8.5); + gaiaSetPoint (rng->Coords, 2, 18.5, 18.5); + gaiaSetPoint (rng->Coords, 3, 8.5, 18.5); + gaiaSetPoint (rng->Coords, 4, 8.5, 8.5); + rng = gaiaAddInteriorRing (pg, 0, 5); + gaiaSetPoint (rng->Coords, 0, 11.5, 11.5); + gaiaSetPoint (rng->Coords, 1, 12.5, 11.5); + gaiaSetPoint (rng->Coords, 2, 12.5, 12.5); + gaiaSetPoint (rng->Coords, 3, 11.5, 12.5); + gaiaSetPoint (rng->Coords, 4, 11.5, 11.5); + pg = gaiaAddPolygonToGeomColl (geom, 5, 0); + rng = pg->Exterior; + gaiaSetPoint (rng->Coords, 0, 4.5, 4.5); + gaiaSetPoint (rng->Coords, 1, 30.5, 4.5); + gaiaSetPoint (rng->Coords, 2, 30.5, 30.5); + gaiaSetPoint (rng->Coords, 3, 4.5, 30.5); + gaiaSetPoint (rng->Coords, 4, 4.5, 4.5); + + /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */ + g = gaiaUnaryUnion_r (cache, geom); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -89; + goto exit; + } + result = gaiaGeomCollLength_r (cache, g, &dummyResultArg); + if (result == 1 + && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) + ; + else + { + fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, + result, dummyResultArg); + returnValue = -90; + goto exit; + } + gaiaFreeGeomColl (g); + + /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */ + g = gaiaUnionCascaded_r (cache, geom); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -91; + goto exit; + } + result = gaiaGeomCollLength_r (cache, g, &dummyResultArg); + if (result == 1 + && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) + ; + else + { + fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, + result, dummyResultArg); + returnValue = -92; + goto exit; + } + gaiaFreeGeomColl (g); + gaiaFreeGeomColl (geom); + + /* Cleanup and exit */ + exit: + gaiaFreeGeomColl (validGeometry); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup_ex (cache); + return returnValue; + +#endif /* end GEOS conditional */ + return 0; +} + +int +test_legacy_mode () +{ +#ifndef OMIT_GEOS /* only if GEOS is supported */ + int ret; + sqlite3 *handle; + int result; + double resultDouble; + int returnValue = 0; + gaiaGeomCollPtr geom; + gaiaGeomCollPtr g; + gaiaPolygonPtr pg; + gaiaRingPtr rng; + + /* Common setup */ + gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl (); + double dummyResultArg = 0.0; + double dummyResultArg2 = 0.0; + spatialite_init (0); - + + /* Tests start here */ + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + /* null inputs for a range of geometry functions */ - result = gaiaGeomCollEquals(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -1; - goto exit; - } - - result = gaiaGeomCollEquals(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -2; - goto exit; - } - - result = gaiaGeomCollEquals(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -3; - goto exit; - } - - result = gaiaGeomCollIntersects(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -4; - goto exit; - } - - result = gaiaGeomCollIntersects(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -5; - goto exit; - } - - result = gaiaGeomCollIntersects(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -6; - goto exit; - } - - result = gaiaGeomCollOverlaps(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -7; - goto exit; - } - - result = gaiaGeomCollOverlaps(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -8; - goto exit; - } - - result = gaiaGeomCollOverlaps(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -9; - goto exit; - } - - result = gaiaGeomCollCrosses(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -10; - goto exit; - } - - result = gaiaGeomCollCrosses(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -11; - goto exit; - } - - result = gaiaGeomCollCrosses(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -12; - goto exit; - } - - result = gaiaGeomCollTouches(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -13; - goto exit; - } - - result = gaiaGeomCollTouches(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -14; - goto exit; - } - - result = gaiaGeomCollTouches(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -15; - goto exit; - } - - result = gaiaGeomCollDisjoint(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -16; - goto exit; - } - - result = gaiaGeomCollDisjoint(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -17; - goto exit; - } - - result = gaiaGeomCollDisjoint(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -18; - goto exit; - } - - result = gaiaGeomCollWithin(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -19; - goto exit; - } - - result = gaiaGeomCollWithin(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -20; - goto exit; - } - - result = gaiaGeomCollWithin(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -21; - goto exit; - } - - result = gaiaGeomCollContains(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -22; - goto exit; - } - - result = gaiaGeomCollContains(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -23; - goto exit; - } - - result = gaiaGeomCollContains(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -24; - goto exit; - } - - result = gaiaGeomCollRelate(0, validGeometry, "T********"); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -25; - goto exit; - } - - result = gaiaGeomCollRelate(validGeometry, 0, "T********"); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -26; - goto exit; - } - - result = gaiaGeomCollRelate(0, 0, "T********"); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -27; - goto exit; - } - -#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ - result = gaiaHausdorffDistance(0, validGeometry, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -34; - goto exit; - } - - result = gaiaHausdorffDistance(validGeometry, 0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -35; - goto exit; - } - - result = gaiaHausdorffDistance(0, 0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -36; - goto exit; - } - - result = gaiaGeomCollCovers(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -37; - goto exit; - } - - result = gaiaGeomCollCovers(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -38; - goto exit; - } - - result = gaiaGeomCollCovers(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -39; - goto exit; - } - - result = gaiaGeomCollCoveredBy(0, validGeometry); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -40; - goto exit; - } - - result = gaiaGeomCollCoveredBy(validGeometry, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -41; - goto exit; - } - - result = gaiaGeomCollCoveredBy(0, 0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -42; - goto exit; - } -#endif /* end GEOS_ADVANCED conditional */ - - result = gaiaGeomCollDistance(0, validGeometry, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -43; - goto exit; - } - - result = gaiaGeomCollDistance(validGeometry, 0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -44; - goto exit; - } - - result = gaiaGeomCollDistance(0, 0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -45; - goto exit; - } + result = gaiaGeomCollEquals (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -1; + goto exit; + } + + result = gaiaGeomCollEquals (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -2; + goto exit; + } + + result = gaiaGeomCollEquals (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -3; + goto exit; + } + + result = gaiaGeomCollIntersects (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -4; + goto exit; + } + + result = gaiaGeomCollIntersects (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -5; + goto exit; + } + + result = gaiaGeomCollIntersects (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -6; + goto exit; + } + + result = gaiaGeomCollOverlaps (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -7; + goto exit; + } + + result = gaiaGeomCollOverlaps (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -8; + goto exit; + } + + result = gaiaGeomCollOverlaps (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -9; + goto exit; + } + + result = gaiaGeomCollCrosses (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -10; + goto exit; + } + + result = gaiaGeomCollCrosses (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -11; + goto exit; + } + + result = gaiaGeomCollCrosses (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -12; + goto exit; + } + + result = gaiaGeomCollTouches (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -13; + goto exit; + } + + result = gaiaGeomCollTouches (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -14; + goto exit; + } + + result = gaiaGeomCollTouches (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -15; + goto exit; + } + + result = gaiaGeomCollDisjoint (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -16; + goto exit; + } + + result = gaiaGeomCollDisjoint (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -17; + goto exit; + } + + result = gaiaGeomCollDisjoint (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -18; + goto exit; + } + + result = gaiaGeomCollWithin (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -19; + goto exit; + } + + result = gaiaGeomCollWithin (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -20; + goto exit; + } + + result = gaiaGeomCollWithin (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -21; + goto exit; + } + + result = gaiaGeomCollContains (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -22; + goto exit; + } + + result = gaiaGeomCollContains (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -23; + goto exit; + } + + result = gaiaGeomCollContains (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -24; + goto exit; + } + + result = gaiaGeomCollRelate (0, validGeometry, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -25; + goto exit; + } + + result = gaiaGeomCollRelate (validGeometry, 0, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -26; + goto exit; + } + + result = gaiaGeomCollRelate (0, 0, "T********"); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -27; + goto exit; + } + + result = gaiaHausdorffDistance (0, validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -34; + goto exit; + } + + result = gaiaHausdorffDistance (validGeometry, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -35; + goto exit; + } + + result = gaiaHausdorffDistance (0, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -36; + goto exit; + } + + result = gaiaGeomCollCovers (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -37; + goto exit; + } + + result = gaiaGeomCollCovers (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -38; + goto exit; + } + + result = gaiaGeomCollCovers (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -39; + goto exit; + } + + result = gaiaGeomCollCoveredBy (0, validGeometry); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -40; + goto exit; + } + + result = gaiaGeomCollCoveredBy (validGeometry, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -41; + goto exit; + } + + result = gaiaGeomCollCoveredBy (0, 0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -42; + goto exit; + } + + result = gaiaGeomCollDistance (0, validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -43; + goto exit; + } + + result = gaiaGeomCollDistance (validGeometry, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -44; + goto exit; + } + + result = gaiaGeomCollDistance (0, 0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -45; + goto exit; + } /* Check some of the single geometry analysis routines */ - - result = gaiaGeomCollLength(0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -46; - goto exit; - } - - result = gaiaGeomCollArea(0, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -47; - goto exit; - } - - result = gaiaGeomCollCentroid(0, &dummyResultArg, &dummyResultArg2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -48; - goto exit; - } - - result = gaiaGetPointOnSurface(0, &dummyResultArg, &dummyResultArg2); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -49; - goto exit; - } - - result = gaiaIsSimple(0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -32; - goto exit; - } - - result = gaiaIsValid(0); - if (result != -1) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -33; - goto exit; - } - -#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ - resultDouble = gaiaLineLocatePoint(0, validGeometry); - if (abs (resultDouble - -1.0) > double_eps) { - fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); - returnValue = -62; - goto exit; - } - - resultDouble = gaiaLineLocatePoint(validGeometry, 0); - if (abs (resultDouble - -1.0) > double_eps) { - fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); - returnValue = -63; - goto exit; - } - - resultDouble = gaiaLineLocatePoint(0, 0); - if (abs (resultDouble - -1.0) > double_eps) { - fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); - returnValue = -64; - goto exit; - } + + result = gaiaGeomCollLength (0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -46; + goto exit; + } + + result = gaiaGeomCollArea (0, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -47; + goto exit; + } + + result = gaiaGeomCollCentroid (0, &dummyResultArg, &dummyResultArg2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -48; + goto exit; + } + + result = gaiaGetPointOnSurface (0, &dummyResultArg, &dummyResultArg2); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -49; + goto exit; + } + + result = gaiaIsSimple (0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -32; + goto exit; + } + + result = gaiaIsValid (0); + if (result != -1) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -33; + goto exit; + } + + resultDouble = gaiaLineLocatePoint (0, validGeometry); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -62; + goto exit; + } + + resultDouble = gaiaLineLocatePoint (validGeometry, 0); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -63; + goto exit; + } + + resultDouble = gaiaLineLocatePoint (0, 0); + if (abs (resultDouble - -1.0) > double_eps) + { + fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, + resultDouble); + returnValue = -64; + goto exit; + } /* geometry generating functionality */ geom = NULL; - geom = gaiaLinesCutAtNodes(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -50; - goto exit; - } - - geom = gaiaLinesCutAtNodes(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -51; - goto exit; - } - - geom = gaiaLinesCutAtNodes(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -52; - goto exit; - } - - geom = gaiaUnaryUnion(0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -53; - goto exit; - } - - geom = gaiaLineMerge(0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -54; - goto exit; - } - - geom = gaiaSnap(0, validGeometry, 4); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -55; - goto exit; - } - - geom = gaiaSnap(validGeometry, 0, 4); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -56; - goto exit; - } - - geom = gaiaSnap(0, 0, 4); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -57; - goto exit; - } - - geom = gaiaShortestLine(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -58; - goto exit; - } - - geom = gaiaShortestLine(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -59; - goto exit; - } - - geom = gaiaShortestLine(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -60; - goto exit; - } - - geom = gaiaLineSubstring(0, 0, 1); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -61; - goto exit; - } -#endif /* end GEOS_ADVANCED conditional */ - - geom = gaiaGeometryIntersection(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -65; - goto exit; - } - - geom = gaiaGeometryIntersection(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -66; - goto exit; - } - - geom = gaiaGeometryIntersection(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -67; - goto exit; - } - - geom = gaiaGeometryUnion(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -68; - goto exit; - } - - geom = gaiaGeometryUnion(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -69; - goto exit; - } - - geom = gaiaGeometryUnion(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -70; - goto exit; - } - - geom = gaiaGeometryDifference(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -71; - goto exit; - } - - geom = gaiaGeometryDifference(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -72; - goto exit; - } - - geom = gaiaGeometryDifference(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -73; - goto exit; - } - - geom = gaiaGeometrySymDifference(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -74; - goto exit; - } - - geom = gaiaGeometrySymDifference(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -75; - goto exit; - } - - geom = gaiaGeometrySymDifference(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -76; - goto exit; - } - - geom = gaiaBoundary(0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -77; - goto exit; - } - - geom = gaiaGeomCollSimplify(0, 1.0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -78; - goto exit; - } - - geom = gaiaGeomCollSimplifyPreserveTopology(0, 1.0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -79; - goto exit; - } - - geom = gaiaConvexHull(0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -80; - goto exit; - } - - geom = gaiaGeomCollBuffer(0, 0.1, 10); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -81; - goto exit; - } - -#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ + geom = gaiaLinesCutAtNodes (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -50; + goto exit; + } + + geom = gaiaLinesCutAtNodes (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -51; + goto exit; + } + + geom = gaiaLinesCutAtNodes (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -52; + goto exit; + } + + geom = gaiaUnaryUnion (0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -53; + goto exit; + } + + geom = gaiaLineMerge (0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -54; + goto exit; + } + + geom = gaiaSnap (0, validGeometry, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -55; + goto exit; + } + + geom = gaiaSnap (validGeometry, 0, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -56; + goto exit; + } + + geom = gaiaSnap (0, 0, 4); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -57; + goto exit; + } + + geom = gaiaShortestLine (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -58; + goto exit; + } + + geom = gaiaShortestLine (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -59; + goto exit; + } + + geom = gaiaShortestLine (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -60; + goto exit; + } + + geom = gaiaLineSubstring (0, 0, 1); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -61; + goto exit; + } + + geom = gaiaGeometryIntersection (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -65; + goto exit; + } + + geom = gaiaGeometryIntersection (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -66; + goto exit; + } + + geom = gaiaGeometryIntersection (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -67; + goto exit; + } + + geom = gaiaGeometryUnion (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -68; + goto exit; + } + + geom = gaiaGeometryUnion (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -69; + goto exit; + } + + geom = gaiaGeometryUnion (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -70; + goto exit; + } + + geom = gaiaGeometryDifference (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -71; + goto exit; + } + + geom = gaiaGeometryDifference (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -72; + goto exit; + } + + geom = gaiaGeometryDifference (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -73; + goto exit; + } + + geom = gaiaGeometrySymDifference (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -74; + goto exit; + } + + geom = gaiaGeometrySymDifference (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -75; + goto exit; + } + + geom = gaiaGeometrySymDifference (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -76; + goto exit; + } + + geom = gaiaBoundary (0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -77; + goto exit; + } + + geom = gaiaGeomCollSimplify (0, 1.0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -78; + goto exit; + } + + geom = gaiaGeomCollSimplifyPreserveTopology (0, 1.0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -79; + goto exit; + } + + geom = gaiaConvexHull (0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -80; + goto exit; + } + + geom = gaiaGeomCollBuffer (0, 0.1, 10); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -81; + goto exit; + } + geom = gaiaOffsetCurve (0, 1.5, 10, 1); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -82; - goto exit; - } - + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -82; + goto exit; + } + geom = gaiaSingleSidedBuffer (0, 1.5, 10, 1); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -83; - goto exit; - } - - geom = gaiaSharedPaths(0, validGeometry); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -84; - goto exit; - } - - geom = gaiaSharedPaths(validGeometry, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -85; - goto exit; - } - - geom = gaiaSharedPaths(0, 0); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -86; - goto exit; - } - + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -83; + goto exit; + } + + geom = gaiaSharedPaths (0, validGeometry); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -84; + goto exit; + } + + geom = gaiaSharedPaths (validGeometry, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -85; + goto exit; + } + + geom = gaiaSharedPaths (0, 0); + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -86; + goto exit; + } + geom = gaiaLineInterpolatePoint (0, 0.6); - if (geom != NULL) { - gaiaFree(geom); - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -87; - goto exit; - } -#endif /* end GEOS_ADVANCED conditional */ - + if (geom != NULL) + { + gaiaFree (geom); + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -87; + goto exit; + } + /* Test some strange conditions */ - result = gaiaGeomCollLength(validGeometry, &dummyResultArg); - if (result != 0) { - fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); - returnValue = -88; - goto exit; - } - + result = gaiaGeomCollLength (validGeometry, &dummyResultArg); + if (result != 0) + { + fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, + result); + returnValue = -88; + goto exit; + } + /* preparing a collection of Polygons */ - geom = gaiaAllocGeomColl(); - pg = gaiaAddPolygonToGeomColl(geom, 5, 1); + geom = gaiaAllocGeomColl (); + pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; - gaiaSetPoint(rng->Coords, 0, 1.5, 1.5); - gaiaSetPoint(rng->Coords, 1, 10.5, 1.5); - gaiaSetPoint(rng->Coords, 2, 10.5, 10.5); - gaiaSetPoint(rng->Coords, 3, 1.5, 10.5); - gaiaSetPoint(rng->Coords, 4, 1.5, 1.5); - rng = gaiaAddInteriorRing(pg, 0, 5); - gaiaSetPoint(rng->Coords, 0, 5.5, 5.5); - gaiaSetPoint(rng->Coords, 1, 6.5, 1.5); - gaiaSetPoint(rng->Coords, 2, 6.5, 6.5); - gaiaSetPoint(rng->Coords, 3, 5.5, 6.5); - gaiaSetPoint(rng->Coords, 4, 5.5, 5.5); - pg = gaiaAddPolygonToGeomColl(geom, 5, 1); + gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); + gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); + gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); + gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); + rng = gaiaAddInteriorRing (pg, 0, 5); + gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); + gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); + gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); + gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); + gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); + pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; - gaiaSetPoint(rng->Coords, 0, 8.5, 8.5); - gaiaSetPoint(rng->Coords, 1, 18.5, 8.5); - gaiaSetPoint(rng->Coords, 2, 18.5, 18.5); - gaiaSetPoint(rng->Coords, 3, 8.5, 18.5); - gaiaSetPoint(rng->Coords, 4, 8.5, 8.5); - rng = gaiaAddInteriorRing(pg, 0, 5); - gaiaSetPoint(rng->Coords, 0, 11.5, 11.5); - gaiaSetPoint(rng->Coords, 1, 12.5, 11.5); - gaiaSetPoint(rng->Coords, 2, 12.5, 12.5); - gaiaSetPoint(rng->Coords, 3, 11.5, 12.5); - gaiaSetPoint(rng->Coords, 4, 11.5, 11.5); - pg = gaiaAddPolygonToGeomColl(geom, 5, 0); + gaiaSetPoint (rng->Coords, 0, 8.5, 8.5); + gaiaSetPoint (rng->Coords, 1, 18.5, 8.5); + gaiaSetPoint (rng->Coords, 2, 18.5, 18.5); + gaiaSetPoint (rng->Coords, 3, 8.5, 18.5); + gaiaSetPoint (rng->Coords, 4, 8.5, 8.5); + rng = gaiaAddInteriorRing (pg, 0, 5); + gaiaSetPoint (rng->Coords, 0, 11.5, 11.5); + gaiaSetPoint (rng->Coords, 1, 12.5, 11.5); + gaiaSetPoint (rng->Coords, 2, 12.5, 12.5); + gaiaSetPoint (rng->Coords, 3, 11.5, 12.5); + gaiaSetPoint (rng->Coords, 4, 11.5, 11.5); + pg = gaiaAddPolygonToGeomColl (geom, 5, 0); rng = pg->Exterior; - gaiaSetPoint(rng->Coords, 0, 4.5, 4.5); - gaiaSetPoint(rng->Coords, 1, 30.5, 4.5); - gaiaSetPoint(rng->Coords, 2, 30.5, 30.5); - gaiaSetPoint(rng->Coords, 3, 4.5, 30.5); - gaiaSetPoint(rng->Coords, 4, 4.5, 4.5); + gaiaSetPoint (rng->Coords, 0, 4.5, 4.5); + gaiaSetPoint (rng->Coords, 1, 30.5, 4.5); + gaiaSetPoint (rng->Coords, 2, 30.5, 30.5); + gaiaSetPoint (rng->Coords, 3, 4.5, 30.5); + gaiaSetPoint (rng->Coords, 4, 4.5, 4.5); -#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */ - g = gaiaUnaryUnion(geom); - if (g == NULL) { - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -89; - goto exit; - } - result = gaiaGeomCollLength(g, &dummyResultArg); - if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) - ; - else { - fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); - returnValue = -90; - goto exit; - } - gaiaFreeGeomColl(g); -#endif /* end GEOS_ADVANCED conditional */ - + g = gaiaUnaryUnion (geom); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -89; + goto exit; + } + result = gaiaGeomCollLength (g, &dummyResultArg); + if (result == 1 + && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) + ; + else + { + fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, + result, dummyResultArg); + returnValue = -90; + goto exit; + } + gaiaFreeGeomColl (g); + /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */ - g = gaiaUnionCascaded(geom); - if (g == NULL) { - fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); - returnValue = -91; - goto exit; - } - result = gaiaGeomCollLength(g, &dummyResultArg); - if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) - ; - else { - fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); - returnValue = -92; - goto exit; - } - gaiaFreeGeomColl(g); - gaiaFreeGeomColl(geom); + g = gaiaUnionCascaded (geom); + if (g == NULL) + { + fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); + returnValue = -91; + goto exit; + } + result = gaiaGeomCollLength (g, &dummyResultArg); + if (result == 1 + && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) + ; + else + { + fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, + result, dummyResultArg); + returnValue = -92; + goto exit; + } + gaiaFreeGeomColl (g); + gaiaFreeGeomColl (geom); /* Cleanup and exit */ -exit: + exit: gaiaFreeGeomColl (validGeometry); - spatialite_cleanup(); + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -133; + } + + spatialite_cleanup (); return returnValue; -#endif /* end GEOS conditional */ +#endif /* end GEOS conditional */ + return 0; +} + +int +main (int argc, char *argv[]) +{ + int ret; + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + ret = test_current_mode (); + if (ret != 0) + return ret; + ret = test_extra_mode (); + if (ret != 0) + return ret; + ret = test_legacy_mode (); + if (ret != 0) + return ret; return 0; } diff --git a/src/spatialite/test/check_shp_load.c b/src/spatialite/test/check_shp_load.c index 4b14a70..b8f111a 100644 --- a/src/spatialite/test/check_shp_load.c +++ b/src/spatialite/test/check_shp_load.c @@ -51,46 +51,169 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +static int +do_test (sqlite3 * handle, const void *p_cache) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; - sqlite3 *handle; char *err_msg = NULL; int row_count; - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326, + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ + + if (p_cache == NULL) + ret = + check_geometry_column (handle, "test1", "geometry", "./report.html", + NULL, NULL, NULL); + else + ret = + check_geometry_column_r (p_cache, handle, "test1", "geometry", + "./report.html", NULL, NULL, NULL); + if (ret) + { + fprintf (stderr, "check_geometry_column() error\n"); + sqlite3_close (handle); + return -4; + } + + if (p_cache == NULL) + ret = + sanitize_geometry_column (handle, "test1", "geometry", "tmp_test1", + "./report.html", NULL, NULL, NULL, NULL, + NULL); + else + ret = + sanitize_geometry_column_r (p_cache, handle, "test1", "geometry", + "tmp_test1", "./report.html", NULL, + NULL, NULL, NULL, NULL); + if (ret) + { + fprintf (stderr, "sanitize_geometry_column() error\n"); + sqlite3_close (handle); + return -5; + } + + if (p_cache == NULL) + ret = + check_geometry_column (handle, "test1", "col1", "./report.html", + NULL, NULL, NULL); + else + ret = + check_geometry_column_r (p_cache, handle, "test1", "col1", + "./report.html", NULL, NULL, NULL); + if (!ret) + { + fprintf (stderr, "check_geometry_column() error\n"); + sqlite3_close (handle); + return -6; + } + + if (p_cache == NULL) + ret = + sanitize_geometry_column (handle, "test1", "col1", "tmp_test1", + "./report.html", NULL, NULL, NULL, NULL, + NULL); + else + ret = + sanitize_geometry_column_r (p_cache, handle, "test1", "col1", + "tmp_test1", "./report.html", NULL, + NULL, NULL, NULL, NULL); + if (!ret) + { + fprintf (stderr, "sanitize_geometry_column() error\n"); + sqlite3_close (handle); + return -7; + } + +#endif /* end LWGEOM conditionals */ + return 0; +} + +int +main (int argc, char *argv[]) +{ +#ifndef OMIT_ICONV /* only if ICONV is supported */ + int ret; + sqlite3 *handle; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle, cache); + if (ret != 0) + return ret; + ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -4; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -8; + } + + spatialite_cleanup_ex (cache); + +/* testing again in legacy mode */ + spatialite_init (0); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -9; + } + + ret = do_test (handle, NULL); + if (ret != 0) + return ret; + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -10; + } + + spatialite_cleanup (); +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_shp_load_3d.c b/src/spatialite/test/check_shp_load_3d.c index b91c4ab..3e321d3 100644 --- a/src/spatialite/test/check_shp_load_3d.c +++ b/src/spatialite/test/check_shp_load_3d.c @@ -51,11 +51,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +static int +do_test (sqlite3 * handle, const void *p_cache) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; - sqlite3 *handle; char *err_msg = NULL; int row_count; const char *sql; @@ -65,442 +64,728 @@ int main (int argc, char *argv[]) double tic; gaiaVectorLayersListPtr list; - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252", 25832, - "geom", 0, 1, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252", + 25832, "geom", 0, 1, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } ret = update_layer_statistics (handle, "polygons", "geom"); - if (!ret) { - fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); - sqlite3_close(handle); - return -8; - } - - ret = load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832, - "geom", 0, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252", 25832, - "geom", 0, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - - ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -14; - } - ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -15; - } - ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -16; - } - - ret = sqlite3_exec (handle, "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -17; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -17; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -18; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -19; - } - ret = sqlite3_exec (handle, "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -20; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -21; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -22; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -23; - } - ret = sqlite3_exec (handle, "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -24; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -25; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -26; - } - ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -27; - } - - ret = sqlite3_exec (handle, "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -28; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -29; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -30; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -31; - } - ret = sqlite3_exec (handle, "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -32; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -33; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -34; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -35; - } - ret = sqlite3_exec (handle, "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -36; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -37; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -38; - } - ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -39; - } - - ret = sqlite3_exec (handle, "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -40; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -41; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -42; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -43; - } - ret = sqlite3_exec (handle, "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE points_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -44; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -45; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -46; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -47; - } - ret = sqlite3_exec (handle, "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -48; - } - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -49; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -50; - } - ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -51; - } - - elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem", "mul_id"); - elementary_geometries (handle, "roads", "geom", "elem_linestring", "pk_elem", "mul_id"); - elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem", "mul_id"); - - elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy", "pk_elem1", "mul_id"); - elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym", "pk_elem1", "mul_id"); - elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz", "pk_elem1", "mul_id"); - - elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy", "pk_elem1", "mul_id"); - elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym", "pk_elem1", "mul_id"); - elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz", "pk_elem1", "mul_id"); - - elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy", "pk_elem1", "mul_id"); - elementary_geometries (handle, "points_xym", "geom", "elem_points_xym", "pk_elem1", "mul_id"); - elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz", "pk_elem1", "mul_id"); - - remove_duplicated_rows(handle, "polyg_xy"); - remove_duplicated_rows(handle, "polyg_xyz"); - remove_duplicated_rows(handle, "polyg_xym"); - remove_duplicated_rows(handle, "roads_xyz"); - remove_duplicated_rows(handle, "roads_xym"); - remove_duplicated_rows(handle, "roads_xyzm"); - remove_duplicated_rows(handle, "points_xyz"); - remove_duplicated_rows(handle, "points_xym"); - remove_duplicated_rows(handle, "points_xyzm"); + if (!ret) + { + fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); + sqlite3_close (handle); + return -8; + } + + ret = + load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832, + "geom", 0, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252", + 25832, "geom", 0, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -5; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -14; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -16; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -17; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -17; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -18; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -19; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -20; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -21; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -22; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -23; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -24; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -25; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -26; + } + ret = + sqlite3_exec (handle, + "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -27; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -28; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -29; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -30; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -31; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -32; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -33; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -34; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -35; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -36; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -37; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -38; + } + ret = + sqlite3_exec (handle, + "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -39; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -40; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -41; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -42; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -43; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE points_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -44; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -45; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -46; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -47; + } + ret = + sqlite3_exec (handle, + "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -48; + } + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -49; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -50; + } + ret = + sqlite3_exec (handle, + "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -51; + } + + elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem", + "mul_id"); + elementary_geometries (handle, "roads", "geom", "elem_linestring", + "pk_elem", "mul_id"); + elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem", + "mul_id"); + + elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz", + "pk_elem1", "mul_id"); + + elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz", + "pk_elem1", "mul_id"); + + elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "points_xym", "geom", "elem_points_xym", + "pk_elem1", "mul_id"); + elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz", + "pk_elem1", "mul_id"); + + remove_duplicated_rows (handle, "polyg_xy"); + remove_duplicated_rows (handle, "polyg_xyz"); + remove_duplicated_rows (handle, "polyg_xym"); + remove_duplicated_rows (handle, "roads_xyz"); + remove_duplicated_rows (handle, "roads_xym"); + remove_duplicated_rows (handle, "roads_xyzm"); + remove_duplicated_rows (handle, "points_xyz"); + remove_duplicated_rows (handle, "points_xym"); + remove_duplicated_rows (handle, "points_xyzm"); sql = "CREATE VIEW test_view AS " - "SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz"; + "SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE test_view error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -52; - } - - sql = "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, " - "f_table_name, f_geometry_column, read_only) VALUES " - "('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)"; + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE test_view error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -52; + } + + sql = + "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, " + "f_table_name, f_geometry_column, read_only) VALUES " + "('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Register SpatialView error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -53; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Register SpatialView error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -53; + } ret = update_layer_statistics (handle, NULL, NULL); - if (!ret) { - fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); - sqlite3_close(handle); - return -54; - } + if (!ret) + { + fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); + sqlite3_close (handle); + return -54; + } sql = "SELECT row_count, extent_min_x, extent_max_y " - "FROM geometry_columns_statistics " - "WHERE f_table_name LIKE 'roads' " - "AND f_geometry_column LIKE 'geom'"; + "FROM geometry_columns_statistics " + "WHERE f_table_name LIKE 'roads' " "AND f_geometry_column LIKE 'geom'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } - if (rows != 1) { - fprintf (stderr, "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n"); - return -56; - } - if (atoi(results[columns+0]) != 18) { - fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n", results[columns+0]); - return -57; - } - tic = fabs(atof(results[columns+1]) - 666057.648017325); - if (tic >= 0.00000002) { - fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n", results[columns+1]); - return -58; - } - tic = fabs(atof(results[columns+2]) - 5170671.31627796); - if (tic >= 0.0000002) { - fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n", results[columns+2]); - return -59; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } + if (rows != 1) + { + fprintf (stderr, + "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n"); + return -56; + } + if (atoi (results[columns + 0]) != 18) + { + fprintf (stderr, + "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n", + results[columns + 0]); + return -57; + } + tic = fabs (atof (results[columns + 1]) - 666057.648017325); + if (tic >= 0.00000002) + { + fprintf (stderr, + "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n", + results[columns + 1]); + return -58; + } + tic = fabs (atof (results[columns + 2]) - 5170671.31627796); + if (tic >= 0.0000002) + { + fprintf (stderr, + "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n", + results[columns + 2]); + return -59; + } sqlite3_free_table (results); ret = gaiaDropTable (handle, "polygons"); - if (!ret) { - fprintf (stderr, "DROP polygons error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -60; - } - + if (!ret) + { + fprintf (stderr, "DROP polygons error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -60; + } + /* checking gaiaGetVectorLayersList() - ALL */ - list = gaiaGetVectorLayersList(handle, NULL, NULL, GAIA_VECTORS_LIST_FAST); - gaiaFreeVectorLayersList(list); - + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_OPTIMISTIC); + gaiaFreeVectorLayersList (list); + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ + + if (p_cache == NULL) + ret = check_all_geometry_columns (handle, "./report", NULL, NULL); + else + ret = + check_all_geometry_columns_r (p_cache, handle, "./report", NULL, + NULL); + if (!ret) + { + fprintf (stderr, "check_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -61; + } + + if (p_cache == NULL) + ret = + sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, + NULL); + else + ret = + sanitize_all_geometry_columns_r (p_cache, handle, "tmp_", + "./report", NULL, NULL); + if (!ret) + { + fprintf (stderr, "sanitize_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -62; + } + +#endif /* end LWGEOM conditionals */ + /* checking gaiaGetVectorLayersList() - Table */ - list = gaiaGetVectorLayersList(handle, "elem_points_xyz", NULL, GAIA_VECTORS_LIST_FAST); - gaiaFreeVectorLayersList(list); - + list = + gaiaGetVectorLayersList (handle, "elem_points_xyz", NULL, + GAIA_VECTORS_LIST_OPTIMISTIC); + gaiaFreeVectorLayersList (list); + /* checking gaiaGetVectorLayersList() - Table and Geometry */ - list = gaiaGetVectorLayersList(handle, "elem_roads_xy", "geom", GAIA_VECTORS_LIST_FAST); - gaiaFreeVectorLayersList(list); + list = + gaiaGetVectorLayersList (handle, "elem_roads_xy", "geom", + GAIA_VECTORS_LIST_OPTIMISTIC); + gaiaFreeVectorLayersList (list); + + return 0; +} + +int +main (int argc, char *argv[]) +{ +#ifndef OMIT_ICONV /* only if ICONV is supported */ + int ret; + sqlite3 *handle; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle, cache); + if (ret != 0) + return ret; + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -61; + } + + spatialite_cleanup_ex (cache); + +/* testing again in legacy mode */ + spatialite_init (0); + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -62; + } + + ret = do_test (handle, NULL); + if (ret != 0) + return ret; ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -61; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -63; - spatialite_cleanup(); -#endif /* end ICONV conditional */ + spatialite_cleanup (); + } +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_spatialindex.c b/src/spatialite/test/check_spatialindex.c index f85f4e9..1463fe9 100644 --- a/src/spatialite/test/check_spatialindex.c +++ b/src/spatialite/test/check_spatialindex.c @@ -42,6 +42,7 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #include +#include #include #include @@ -50,9 +51,346 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int do_test(sqlite3 *handle, int legacy) +int +do_test_without_rowid_true (sqlite3 * handle) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +/* testing WITHOUT ROWID - true */ + char *err_msg = NULL; + char **results; + int rows; + int columns; + int ret = sqlite3_exec (handle, + "CREATE TABLE without_rowid (" + "id INTEGER NOT NULL PRIMARY KEY," + "name TEXT NOT NULL) WITHOUT ROWID", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE without_rowid error: %s\n", err_msg); + sqlite3_free (err_msg); + return -313; + } + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn(without_rowid) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -314; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: AddGeometryColumn(without_rowid) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -315; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "unexpected result AddGeometryColumn(without_rowid): %s\n", + results[1]); + sqlite3_free_table (results); + return -316; + } + sqlite3_free_table (results); + + + ret = sqlite3_exec (handle, + "ALTER TABLE without_rowid ADD COLUMN geom BLOB", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "ALTER TABLE without_rowid error: %s\n", err_msg); + sqlite3_free (err_msg); + return -317; + } + ret = + sqlite3_get_table (handle, + "SELECT RecoverGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(without_rowid) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -318; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: RecoverGeometryColumn(without_rowid) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -319; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "unexpected result RecoverGeometryColumn(without_rowid): %s\n", + results[1]); + sqlite3_free_table (results); + return -320; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT RecoverSpatialIndex('without_rowid', 'geom', 0)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex(without_rowid) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -321; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: RecoverSpatialIndex(without_rowid) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -322; + } + if (strcmp (results[1], "-1") != 0) + { + fprintf (stderr, + "unexpected result RecoverSpatialIndex(without_rowid): %s\n", + results[1]); + sqlite3_free_table (results); + return -323; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT CheckSpatialIndex('without_rowid', 'geom')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex(without_rowid) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -324; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckSpatialIndex(without_rowid) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -325; + } + if (strcmp (results[1], "-1") != 0) + { + fprintf (stderr, + "unexpected result CheckSpatialIndex(without_rowid): %s\n", + results[1]); + sqlite3_free_table (results); + return -326; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT CheckWithoutRowid('without_rowid')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckWithoutRowid(without_rowid) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -327; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckWithoutRowid(without_rowid) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -328; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "unexpected result CheckWithoutRowid(without_rowid): %s\n", + results[1]); + sqlite3_free_table (results); + return -329; + } + sqlite3_free_table (results); + return 0; +} + +int +do_test_without_rowid_false (sqlite3 * handle) +{ +/* testing WITHOUT ROWID - false */ + char *err_msg = NULL; + char **results; + int rows; + int columns; + int ret = sqlite3_exec (handle, + "CREATE TABLE not_without_rowid (" + "id INTEGER NOT NULL PRIMARY KEY," + "name TEXT NOT NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE not_without_rowid error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -327; + } + ret = sqlite3_exec (handle, + "CREATE INDEX idx_NAME on NOT_WITHOUT_ROWID(NAME)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE not_without_rowid error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -328; + } + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('NOT_WITHOUT_ROWID', 'geom', 4326, 'POINT', 'XY')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn(NOT_WITHOUT_ROWID) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -329; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: AddGeometryColumn(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -330; + } + if (strcmp (results[1], "0") != 1) + { + fprintf (stderr, + "unexpected result AddGeometryColumn(NOT_WITHOUT_ROWID): %s\n", + results[1]); + sqlite3_free_table (results); + return -331; + } + sqlite3_free_table (results); + + + ret = sqlite3_exec (handle, + "ALTER TABLE NOT_WITHOUT_ROWID ADD COLUMN geom2 BLOB", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "ALTER TABLE NOT_WITHOUT_ROWID error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -332; + } + ret = + sqlite3_get_table (handle, + "SELECT RecoverGeometryColumn('NOT_WITHOUT_ROWID', 'geom2', 4326, 'POINT', 'XY')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "RecoverGeometryColumn(NOT_WITHOUT_ROWID) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -333; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: RecoverGeometryColumn(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -319; + } + if (strcmp (results[1], "0") != 1) + { + fprintf (stderr, + "unexpected result RecoverGeometryColumn(NOT_WITHOUT_ROWID): %s\n", + results[1]); + sqlite3_free_table (results); + return -334; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT CheckWithoutRowid('NOT_WITHOUT_ROWID')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckWithoutRowid(NOT_WITHOUT_ROWID) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -335; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckWithoutRowid(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -336; + } + if (strcmp (results[1], "0") != 0) + { + fprintf (stderr, + "unexpected result CheckWithoutRowid(NOT_WITHOUT_ROWID): %s\n", + results[1]); + sqlite3_free_table (results); + return -337; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT CheckWithoutRowid('not_existing_table')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckWithoutRowid(not_existing_table) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -338; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckWithoutRowid(not_existing_table) bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + return -339; + } + if (results[1] != NULL) + { + fprintf (stderr, + "unexpected result CheckWithoutRowid(not_existing_table): %s\n", + results[1]); + sqlite3_free_table (results); + return -340; + } + sqlite3_free_table (results); + return 0; +} + +int +do_test (sqlite3 * handle, int legacy) +{ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *err_msg = NULL; int row_count; @@ -60,269 +398,346 @@ int do_test(sqlite3 *handle, int legacy) int rows; int columns; char sql[1024]; - + ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 61) { - fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -6; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -7; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -8; - } + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 61) + { + fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); + sqlite3_close (handle); + return -4; + } + + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -6; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -7; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -8; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + ret = + sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT pkid FROM idx_Councils_geom;", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in idx SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 61) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select pkid bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -11; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in idx SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 61) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select pkid bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -11; + } sqlite3_free_table (results); rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -13; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -14; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -15; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -13; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -14; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -15; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT error: %s\n", err_msg); - sqlite3_free (err_msg); - return -16; - } + ret = + sqlite3_exec (handle, + "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT error: %s\n", err_msg); + sqlite3_free (err_msg); + return -16; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); - sqlite3_free (err_msg); - return -17; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -18; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -19; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -20; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -18; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -19; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -20; + } sqlite3_free_table (results); - - ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } + + ret = + sqlite3_exec (handle, + "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } - if ((rows != 22) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -36; - } - if (strcmp(results[1], "Ascoli Satriano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -37; - } - if (strcmp(results[22], "Zapponeta") != 0) { - fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -38; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } + if ((rows != 22) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -36; + } + if (strcmp (results[1], "Ascoli Satriano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -37; + } + if (strcmp (results[22], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -38; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";", - NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -39; - } + ret = + sqlite3_exec (handle, + "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); - sqlite3_free (err_msg); - return -40; - } - if ((rows != 21) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -41; - } - if (strcmp(results[1], "Cagnano Varano") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -42; - } - if (strcmp(results[21], "Zapponeta") != 0) { - fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -43; - } + ret = + sqlite3_get_table (handle, + "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); + sqlite3_free (err_msg); + return -40; + } + if ((rows != 21) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select lc_name bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -41; + } + if (strcmp (results[1], "Cagnano Varano") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -42; + } + if (strcmp (results[21], "Zapponeta") != 0) + { + fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -43; + } sqlite3_free_table (results); rows = 0; columns = 0; - ret = sqlite3_get_table (handle, "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;", - &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); - sqlite3_free (err_msg); - return -44; - } - if ((rows != 61) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select rowid bad idx result: %i/%i.\n", rows, columns); - sqlite3_free_table (results); - sqlite3_close(handle); - return -45; - } - if (strcmp(results[2], "1") != 0) { - fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -46; - } - if (strcmp(results[12], "6") != 0) { - fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); - sqlite3_free_table (results); - sqlite3_close(handle); - return -47; - } + ret = + sqlite3_get_table (handle, + "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); + sqlite3_free (err_msg); + return -44; + } + if ((rows != 61) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select rowid bad idx result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -45; + } + if (strcmp (results[2], "1") != 0) + { + fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -46; + } + if (strcmp (results[12], "6") != 0) + { + fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -47; + } sqlite3_free_table (results); - ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } - - ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -49; - } - - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -50; - } - - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -51; - } + ret = + sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + + ret = + sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -49; + } + + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -50; + } + + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -51; + } /* / going to create a broken/corrupted SpatialIndex @@ -332,128 +747,201 @@ int do_test(sqlite3 *handle, int legacy) / - and finally we'll perform a Vacuum / - all this notoriously causes R*Tree corruption */ - ret = sqlite3_exec (handle, "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg); - sqlite3_free (err_msg); - return -52; - } - - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -56; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -57; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -58; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -59; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -60; - } - ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -61; - } - - ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -62; - } - - ret = sqlite3_exec (handle, "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg); - sqlite3_free (err_msg); - return -63; - } + ret = + sqlite3_exec (handle, + "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg); + sqlite3_free (err_msg); + return -52; + } + + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -54; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -55; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -56; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -57; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -58; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -59; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -60; + } + ret = + sqlite3_exec (handle, + "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -61; + } + + ret = + sqlite3_exec (handle, + "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -62; + } + + ret = + sqlite3_exec (handle, + "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg); + sqlite3_free (err_msg); + return -63; + } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free (err_msg); - return -64; - } - ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -65; - } - - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -66; - } - - ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('bad_councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -67; - } - - ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -68; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + return -64; + } + ret = + sqlite3_exec (handle, + "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -65; + } + + ret = + sqlite3_exec (handle, + "SELECT RecoverSpatialIndex('bad_councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } + + ret = + sqlite3_exec (handle, + "SELECT UpdateLayerStatistics('bad_councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -67; + } + + ret = + sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -68; + } /* END broken SpatialIndex check/recover */ - ret = sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Extent (1) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -69; - } + ret = + sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Extent (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -69; + } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); strcat (sql, "f_table_name = 'Councils' AND search_frame = "); strcat (sql, "BuildMbr(10, 10, 20, 20));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -70; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -70; + } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); @@ -461,273 +949,908 @@ int do_test(sqlite3 *handle, int legacy) strcat (sql, "'geom' AND search_frame = BuildCircleMbr(1019000, "); strcat (sql, "4592000, 10000));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg); - sqlite3_free (err_msg); - return -71; - } - - ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Rebuild triggers error: %s\n", err_msg); - sqlite3_free (err_msg); - return -72; - } - - ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Disable index error: %s\n", err_msg); - sqlite3_free (err_msg); - return -73; - } - - ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Disable index error: %s\n", err_msg); - sqlite3_free (err_msg); - return -74; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg); + sqlite3_free (err_msg); + return -71; + } + + ret = + sqlite3_exec (handle, + "SELECT RebuildGeometryTriggers('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Rebuild triggers error: %s\n", err_msg); + sqlite3_free (err_msg); + return -72; + } + + ret = + sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Disable index error: %s\n", err_msg); + sqlite3_free (err_msg); + return -73; + } + + ret = + sqlite3_exec (handle, + "SELECT RebuildGeometryTriggers('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Disable index error: %s\n", err_msg); + sqlite3_free (err_msg); + return -74; + } ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); - sqlite3_free (err_msg); - return -75; - } - - ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); - sqlite3_free (err_msg); - return -76; - } - ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); - sqlite3_free (err_msg); - return -77; - } - - ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -78; - } - ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -79; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -80; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -81; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -82; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -83; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -84; - } - ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -85; - } - ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -86; - } - ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -87; - } - ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -88; - } - ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); - sqlite3_free (err_msg); - return -89; - } - ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); - sqlite3_free (err_msg); - return -90; - } - ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); - sqlite3_free (err_msg); - return -91; - } - ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); - sqlite3_free (err_msg); - return -92; - } - ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); - sqlite3_free (err_msg); - return -93; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); + sqlite3_free (err_msg); + return -75; + } + + ret = + sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -76; + } + ret = + sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -77; + } + + ret = + sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -78; + } + ret = + sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -79; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -80; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -81; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -82; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -83; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -84; + } + ret = + sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -85; + } + ret = + sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -86; + } + ret = + sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -87; + } + ret = + sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -88; + } + ret = + sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -89; + } + ret = + sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -90; + } + ret = + sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -91; + } + ret = + sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -92; + } + ret = + sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", + err_msg); + sqlite3_free (err_msg); + return -93; + } /* final DB cleanup */ - ret = sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -94; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -95; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -96; - } - ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -97; - } + ret = + sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -94; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -95; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -96; + } + ret = + sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -97; + } if (legacy) - { - /* only required for legacy style metadata */ - ret = sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM layer_statistics error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -98; - } - } - ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -99; - } + { + /* only required for legacy style metadata */ + ret = + sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM layer_statistics error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -98; + } + } + ret = + sqlite3_exec (handle, + "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -99; + } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -100; - } - -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -100; + } + +#endif /* end ICONV conditional */ + +/* ok, succesfull termination */ + return 0; +} + +int +do_test_rowid (sqlite3 * handle) +{ +#ifndef OMIT_ICONV /* only if ICONV is supported */ + int ret; + char *err_msg = NULL; + int row_count; + char **results; + int rows; + int columns; + + ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", + "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error: %s\n", err_msg); + sqlite3_close (handle); + return -203; + } + if (row_count != 61) + { + fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); + sqlite3_close (handle); + return -204; + } + + ret = + sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); + sqlite3_free (err_msg); + return -205; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CheckSpatialIndex('Councils', 'geom');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CheckSpatialIndex(rowid-1): %s\n", err_msg); + sqlite3_free (err_msg); + return -206; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckSpatialIndex(rowid-1) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -207; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-1)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -208; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "unexpected CheckSpatialIndex(rowid-1): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -209; + } + sqlite3_free_table (results); + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CheckSpatialIndex('Councils', 'geom');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RecoverSpatialIndex(rowid-1): %s\n", err_msg); + sqlite3_free (err_msg); + return -210; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: RecoverSpatialIndex(rowid-1) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -211; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-1)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -212; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-1): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -213; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, "ALTER TABLE Councils ADD COLUMN rowid", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "ALTER TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -214; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CheckSpatialIndex('Councils', 'geom');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CheckSpatialIndex(rowid-2): %s\n", err_msg); + sqlite3_free (err_msg); + return -215; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckSpatialIndex(rowid-2) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -216; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-2)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -217; + } + if (strcmp (results[1], "-1") != 0) + { + fprintf (stderr, "unexpected CheckSpatialIndex(rowid-2): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -218; + } + sqlite3_free_table (results); + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CheckSpatialIndex('Councils', 'geom');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RecoverSpatialIndex(rowid-2): %s\n", err_msg); + sqlite3_free (err_msg); + return -219; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: RecoverSpatialIndex(rowid-2) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -220; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-2)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -221; + } + if (strcmp (results[1], "-1") != 0) + { + fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-2): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -222; + } + sqlite3_free_table (results); + + rows = 0; + columns = 0; + ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CheckShadowedRowid(rowid-1): %s\n", err_msg); + sqlite3_free (err_msg); + return -223; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckShadowedRowid(rowid-1) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -224; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-1)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -225; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "unexpected CheckShadowedRowid(rowid-1): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -226; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DisableSpatialIndex(rowid) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -227; + } + + ret = + sqlite3_exec (handle, "DROP TABLE idx_councils_geom", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE(rowid) error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -228; + } + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CreateSpatialIndex('Councils', 'geom');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CreateSpatialIndex(rowid-2): %s\n", err_msg); + sqlite3_free (err_msg); + return -229; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CreateSpatialIndex(rowid-2) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -230; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL CreateSpatialIndex(rowid-2)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -231; + } + if (strcmp (results[1], "-1") != 0) + { + fprintf (stderr, "unexpected CreateSpatialIndex(rowid-2): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -232; + } + sqlite3_free_table (results); + + rows = 0; + columns = 0; + ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CheckShadowedRowid(rowid-2): %s\n", err_msg); + sqlite3_free (err_msg); + return -233; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckShadowedRowid(rowid-2) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -234; + } + if (results[1] == NULL) + { + fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-2)\n"); + sqlite3_free_table (results); + sqlite3_close (handle); + return -235; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, "unexpected CheckShadowedRowid(rowid-2): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -236; + } + sqlite3_free_table (results); + + rows = 0; + columns = 0; + ret = + sqlite3_get_table (handle, + "SELECT CheckShadowedRowid('Councils_bad_name_not_existing');", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CheckShadowedRowid(rowid-3): %s\n", err_msg); + sqlite3_free (err_msg); + return -237; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: CheckShadowedRowid(rowid-3) result: %i/%i.\n", + rows, columns); + sqlite3_free_table (results); + sqlite3_close (handle); + return -238; + } + if (results[1] != NULL) + { + fprintf (stderr, + "unexpected NOT NULL CheckShadowedRowid(rowid-3): %s\n", + results[1]); + sqlite3_free_table (results); + sqlite3_close (handle); + return -239; + } + sqlite3_free_table (results); + +#endif /* end ICONV conditional */ /* ok, succesfull termination */ - return 0; + return 0; } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = do_test(handle, 0); - if (ret != 0) { - fprintf(stderr, "error while testing current style metadata layout\n"); - return ret; - } + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = do_test (handle, 0); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout\n"); + return ret; + } + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -101; + } + + spatialite_cleanup_ex (cache); + +/* testing ROWID physical column */ + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -102; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -103; + } + + ret = do_test_rowid (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout (rowid column)\n"); + return ret; + } + + if (strcmp (sqlite3_libversion (), "3.8.2") >= 0) + { + /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */ + ret = do_test_without_rowid_true (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout (WITHOUT ROWID / true)\n"); + return ret; + } + } + ret = do_test_without_rowid_false (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout (WITHOUT ROWID / false)\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -101; - } - - spatialite_cleanup(); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -104; + } + + spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = do_test(handle, 1); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } + cache = spatialite_alloc_connection (); + ret = + system + ("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -105; + } + ret = + sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -106; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle, 1); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } + + if (strcmp (sqlite3_libversion (), "3.8.2") >= 0) + { + /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */ + ret = do_test_without_rowid_true (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout (WITHOUT ROWID / true)\n"); + return ret; + } + } + ret = do_test_without_rowid_false (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout (WITHOUT ROWID / false)\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -101; - } - - spatialite_cleanup(); - -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -107; + } + + spatialite_cleanup_ex (cache); + ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -108; + } + +/* testing legacy style metadata layout <= v.3.1.0 (ROWID column) */ + cache = spatialite_alloc_connection (); + ret = + system + ("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -109; + } + ret = + sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -110; + } + spatialite_init_ex (handle, cache, 0); + + ret = do_test_rowid (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout (rowid column)\n"); + return ret; + } + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -111; + } + + spatialite_cleanup_ex (cache); + ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -112; + } + +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_sql_stmt.c b/src/spatialite/test/check_sql_stmt.c index e2a33c7..572d8c1 100644 --- a/src/spatialite/test/check_sql_stmt.c +++ b/src/spatialite/test/check_sql_stmt.c @@ -43,6 +43,7 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include +#include #include #include @@ -69,16 +70,99 @@ the terms of any one of the MPL, the GPL or the LGPL. struct test_data { - char * test_case_name; - char * database_name; - char * sql_statement; + char *test_case_name; + char *database_name; + char *sql_statement; int expected_rows; int expected_columns; - char ** expected_results; + char **expected_results; int *expected_precision; }; -int do_one_case (const struct test_data *data) +struct db_conn +{ + sqlite3 *db_handle; + char *db_path; + int read_only; + const void *cache; +}; + +static void +close_connection (struct db_conn *conn) +{ + if (conn->db_path != NULL) + free (conn->db_path); + conn->db_path = NULL; + if (conn->db_handle != NULL) + sqlite3_close (conn->db_handle); + conn->db_handle = NULL; + if (conn->cache == NULL) + spatialite_cleanup (); +} + +static void +save_connection (struct db_conn *conn, const char *database_name, + sqlite3 * db_handle, int read_only, int empty_db) +{ + int len = strlen (database_name); + conn->db_handle = db_handle; + conn->read_only = read_only; + if (read_only) + { + conn->db_path = malloc (len - 2); + memcpy (conn->db_path, database_name, len - 3); + *(conn->db_path + len - 3) = '\0'; + } + else if (empty_db) + { + conn->db_path = malloc (9); + strcpy (conn->db_path, ":memory:"); + } + else + { + conn->db_path = malloc (len + 1); + strcpy (conn->db_path, database_name); + } +} + +static int +compare_path (const char *pth1, const char *pth2, int read_only) +{ + int ret = 0; + if (!read_only) + { + if (strcmp (pth1, pth2) == 0) + ret = 1; + } + else + { + if (strncmp (pth1, pth2, strlen (pth2) - 3) == 0) + ret = 1; + } + return ret; +} + +static int +load_dyn_extension (sqlite3 * db_handle) +{ + int ret; + char *err_msg = NULL; + sqlite3_enable_load_extension (db_handle, 1); + ret = + sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "load_extension() error: %s\n", err_msg); + sqlite3_free (err_msg); + return 0; + } + return 1; +} + +int +do_one_case (struct db_conn *conn, const struct test_data *data, + int load_extension) { sqlite3 *db_handle = NULL; int ret; @@ -87,71 +171,158 @@ int do_one_case (const struct test_data *data) char **results; int rows; int columns; + int read_only = 0; + int empty_db = 0; + int not_memory_db = 0; + + fprintf (stderr, "Test case: %s\n", data->test_case_name); + if (strncmp + ("_RO", data->database_name + strlen (data->database_name) - 3, + strlen ("_RO")) == 0) + read_only = 1; + if (strcmp ("NEW:memory:", data->database_name) == 0) + empty_db = 1; + if (conn->db_handle != NULL) + { + if (empty_db) + ; + else if (compare_path (conn->db_path, data->database_name, read_only)) + { + if (conn->read_only == read_only) + { + db_handle = conn->db_handle; + goto skip_init; + } + } + close_connection (conn); + } + + if (conn->cache == NULL && !load_extension) + spatialite_init (0); - fprintf(stderr, "Test case: %s\n", data->test_case_name); /* This hack checks if the name ends with _RO */ - if (strncmp("_RO", data->database_name + strlen(data->database_name) - 3, strlen("_RO")) == 0) { - fprintf(stderr, "opening read_only\n"); - ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READONLY, NULL); - } else { - ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - } - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open %s db: %s\n", data->database_name, sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -2; - } - - ret = sqlite3_get_table (db_handle, data->sql_statement, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != data->expected_rows) || (columns != data->expected_columns)) { - fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); - return -11; - } - for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) { - if (results[i] != NULL && data->expected_precision[i] == 0) { - data->expected_precision[i] = strlen(results[i]); - } - if (results[i] == NULL) { - if (strcmp("(NULL)", data->expected_results[i]) == 0) { - /* we expected this */ - continue; - } else { - fprintf (stderr, "Null value at %i.\n", i); - fprintf (stderr, "Expected value was: %s\n", data->expected_results[i]); - return -12; + if (strncmp + ("_RO", data->database_name + strlen (data->database_name) - 3, + strlen ("_RO")) == 0) + { + fprintf (stderr, "opening read_only\n"); + read_only = 1; + ret = + sqlite3_open_v2 (data->database_name, &db_handle, + SQLITE_OPEN_READONLY, NULL); + } + else if (empty_db) + { + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, + NULL); + } + else + { + if (strcmp (data->database_name, ":memory:") != 0) + not_memory_db = 1; + ret = + sqlite3_open_v2 (data->database_name, &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, + NULL); + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open %s db: %s\n", data->database_name, + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + if (conn->cache != NULL) + spatialite_init_ex (db_handle, conn->cache, 0); + if (load_extension) + { + if (!load_dyn_extension (db_handle)) + { + sqlite3_close (db_handle); + db_handle = NULL; + return -3; + } + } + save_connection (conn, data->database_name, db_handle, read_only, empty_db); + + if (read_only || not_memory_db) + goto skip_init; + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + skip_init: + + ret = + sqlite3_get_table (db_handle, data->sql_statement, &results, &rows, + &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != data->expected_rows) || (columns != data->expected_columns)) + { + fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, + columns); + return -11; + } + for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) + { + if (results[i] != NULL && data->expected_precision[i] == 0) + { + data->expected_precision[i] = strlen (results[i]); } - } else if (strlen(results[i]) == 0) { - fprintf (stderr, "zero length result at %i\n", i); - fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); - return -13; - } else if (strncmp(results[i], data->expected_results[i], data->expected_precision[i]) != 0) { - fprintf (stderr, "Unexpected value at %i: %s|\n", i, results[i]); - fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); - return -14; - } - } + if (results[i] == NULL) + { + if (strcmp ("(NULL)", data->expected_results[i]) == 0) + { + /* we expected this */ + continue; + } + else + { + fprintf (stderr, "Null value at %i.\n", i); + fprintf (stderr, "Expected value was: %s\n", + data->expected_results[i]); + return -12; + } + } + else if (strlen (results[i]) == 0) + { + fprintf (stderr, "zero length result at %i\n", i); + fprintf (stderr, "Expected value was : %s|\n", + data->expected_results[i]); + return -13; + } + else if (strncmp + (results[i], data->expected_results[i], + data->expected_precision[i]) != 0) + { + fprintf (stderr, "Unexpected value at %i: %s|\n", i, + results[i]); + fprintf (stderr, "Expected value was : %s|\n", + data->expected_results[i]); + return -14; + } + } sqlite3_free_table (results); - sqlite3_close (db_handle); - return 0; } -int get_clean_line(FILE *f, char ** line) +int +get_clean_line (FILE * f, char **line) { size_t len = 0; ssize_t num_read = 0; @@ -159,419 +330,400 @@ int get_clean_line(FILE *f, char ** line) char *tmp_line = NULL; #if !defined(_WIN32) &&!defined(__APPLE__) -/* expecpting to be on a sane minded platform [linux-like] */ - num_read = getline(&(tmp_line), &len, f); +/* expecting to be on a sane minded platform [linux-like] */ + num_read = getline (&(tmp_line), &len, f); #else /* neither Windows nor MacOsX support getline() */ - len = 1024 * 1024; - tmp_line = malloc(len); - if (fgets(tmp_line, len, f) == NULL) - { - free(tmp_line); - num_read = -1; - } - else - num_read = strlen(tmp_line); + len = 1024 * 1024; + tmp_line = malloc (len); + if (fgets (tmp_line, len, f) == NULL) + { + free (tmp_line); + num_read = -1; + } + else + num_read = strlen (tmp_line); #endif - if (num_read < 1) { - fprintf(stderr, "failed to read at %li: %zi\n", ftell(f), num_read); - return -1; - } + if (num_read < 1) + { + fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read); + return -1; + } /* trim the trailing new line and any comments */ - for (end = 0; end < num_read; ++end) { - if (*(tmp_line + end) == '\n') - break; - if (*(tmp_line + end) == '#') - break; - } + for (end = 0; end < num_read; ++end) + { + if (*(tmp_line + end) == '\n') + break; + if (*(tmp_line + end) == '#') + break; + } /* trim any trailing spaces */ - while (end > 0) { - if (*(tmp_line + end -1) != ' ') { - break; - } - *(tmp_line + end -1) = '\0'; - end--; - } - *line = malloc(end + 1); - memcpy(*line, tmp_line, end); + while (end > 0) + { + if (*(tmp_line + end - 1) != ' ') + { + break; + } + *(tmp_line + end - 1) = '\0'; + end--; + } + *line = malloc (end + 1); + memcpy (*line, tmp_line, end); (*line)[end] = '\0'; - free(tmp_line); + free (tmp_line); return 0; } -void handle_precision(char *expected_result, int *precision) +void +handle_precision (char *expected_result, int *precision) { int i; - int result_len = strlen(expected_result); + int prcsn; + int result_len = strlen (expected_result); *precision = 0; - for (i = result_len - 1; i >= 0; --i) { - if (expected_result[i] == ':') { - expected_result[i] = '\0'; - *precision = atoi(&(expected_result[i + 1])); - break; - } - } + for (i = result_len - 1; i >= 0; --i) + { + if (expected_result[i] == ':') + { + prcsn = atoi (&(expected_result[i + 1])); + if (prcsn > 0) + { + expected_result[i] = '\0'; + *precision = prcsn; + } + break; + } + } } -struct test_data *read_one_case(const char *filepath) +struct test_data * +read_one_case (const char *filepath) { int num_results; int i; char *tmp; FILE *f; - struct test_data* data; - - f = fopen(filepath, "r"); - - data = malloc(sizeof(struct test_data)); - get_clean_line(f, &(data->test_case_name)); - get_clean_line(f, &(data->database_name)); - get_clean_line(f, &(data->sql_statement)); - get_clean_line(f, &(tmp)); - data->expected_rows = atoi(tmp); - free(tmp); - get_clean_line(f, &(tmp)); - data->expected_columns = atoi(tmp); - free(tmp); + struct test_data *data; + + f = fopen (filepath, "r"); + + data = malloc (sizeof (struct test_data)); + get_clean_line (f, &(data->test_case_name)); + get_clean_line (f, &(data->database_name)); + get_clean_line (f, &(data->sql_statement)); + get_clean_line (f, &(tmp)); + data->expected_rows = atoi (tmp); + free (tmp); + get_clean_line (f, &(tmp)); + data->expected_columns = atoi (tmp); + free (tmp); num_results = (data->expected_rows + 1) * data->expected_columns; - data->expected_results = malloc(num_results * sizeof(char*)); - data->expected_precision = malloc(num_results * sizeof(int)); - for (i = 0; i < num_results; ++i) { - get_clean_line(f, &(data->expected_results[i])); - handle_precision(data->expected_results[i], &(data->expected_precision[i])); - } - fclose(f); + data->expected_results = malloc (num_results * sizeof (char *)); + data->expected_precision = malloc (num_results * sizeof (int)); + for (i = 0; i < num_results; ++i) + { + get_clean_line (f, &(data->expected_results[i])); + handle_precision (data->expected_results[i], + &(data->expected_precision[i])); + } + fclose (f); return data; } -void cleanup_test_data(struct test_data *data) +void +cleanup_test_data (struct test_data *data) { int i; int num_results = (data->expected_rows + 1) * (data->expected_columns); - for (i = 0; i < num_results; ++i) { - free(data->expected_results[i]); - } - free(data->expected_results); - free(data->expected_precision); - free(data->test_case_name); - free(data->database_name); - free(data->sql_statement); - free(data); + for (i = 0; i < num_results; ++i) + { + free (data->expected_results[i]); + } + free (data->expected_results); + free (data->expected_precision); + free (data->test_case_name); + free (data->database_name); + free (data->sql_statement); + free (data); } -int test_case_filter(const struct dirent *entry) +int +test_case_filter (const struct dirent *entry) { - return (fnmatch("*.testcase", entry->d_name, FNM_PERIOD) == 0); + return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0); } -int run_all_testcases() +int +run_subdir_test (const char *subdirname, struct db_conn *conn, + int load_extension) { struct dirent **namelist; int n; int i; int result = 0; + + n = scandir (subdirname, &namelist, test_case_filter, alphasort); + if (n < 0) + { + perror ("scandir"); + return -1; + } + + for (i = 0; i < n; ++i) + { + struct test_data *data; + char *path; + if (asprintf (&path, "%s/%s", subdirname, namelist[i]->d_name) < 0) + { + return -1; + } + data = read_one_case (path); + free (path); + + result = do_one_case (conn, data, load_extension); + + cleanup_test_data (data); + if (result != 0) + { + return result; + } + free (namelist[i]); + } + free (namelist); + return result; +} + +int +run_all_testcases (struct db_conn *conn, int load_extension) +{ + int ret; + int result = 0; const char *security_level; - - n = scandir("sql_stmt_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); - + + result = run_subdir_test ("sql_stmt_tests", conn, load_extension); + if (result != 0) + { + return result; + } + security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; - else if (strcasecmp (security_level, "relaxed") == 0) { - n = scandir("sql_stmt_security_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_security_tests/%s", namelist[i]->d_name) < 0) { - return -1; + else if (strcasecmp (security_level, "relaxed") == 0) + { + result = + run_subdir_test ("sql_stmt_security_tests", conn, load_extension); + if (result != 0) + { + return result; } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; + } + +#ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ + result = run_subdir_test ("sql_stmt_mathsql_tests", conn, load_extension); + if (result != 0) + { + return result; + } +#endif /* end MATHSQL conditional */ + +#ifndef OMIT_PROJ /* only if PROJ is supported */ + result = run_subdir_test ("sql_stmt_proj_tests", conn, load_extension); + if (result != 0) + { + return result; + } +#endif /* end PROJ conditional */ + +#ifndef OMIT_GEOS /* only if GEOS is supported */ + if (strcmp (GEOSversion (), "3.3") < 0) + { + /* + skipping GEOS tests if some obsolete version is found + + rationale: obsolete versions may return substantially + different results, thus causing many testcases to fail + */ + fprintf (stderr, + "WARNING: skipping GEOS testcases; obsolete version found !!!\n"); + goto skip_geos; + } + ret = system ("cp test_geos.sqlite test_geos_x.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy test_geos database\n"); + return -1; + } + + result = run_subdir_test ("sql_stmt_geos_tests", conn, load_extension); + if (result != 0) + { + return result; + } + + ret = unlink ("test_geos_x.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove test_geos_x database\n"); + return -20; + } + skip_geos: +#endif /* end GEOS conditional */ + +#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ + if (strcmp (GEOSversion (), "3.4") < 0) + { + /* + skipping GEOS tests if some obsolete version is found + + rationale: obsolete versions may return substantially + different results, thus causing many testcases to fail + */ + fprintf (stderr, + "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n"); + goto skip_geos_advanced; + } + + result = + run_subdir_test ("sql_stmt_geosadvanced_tests", conn, load_extension); + if (result != 0) + { + return result; + } + + skip_geos_advanced: +#endif /* end GEOS_ADVANCED conditional */ + +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ + result = run_subdir_test ("sql_stmt_lwgeom_tests", conn, load_extension); + if (result != 0) + { + return result; + } + +#endif /* end LWGEOM conditional */ + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + result = run_subdir_test ("sql_stmt_libxml2_tests", conn, load_extension); + if (result != 0) + { + return result; + } + + security_level = getenv ("SPATIALITE_SECURITY"); + if (security_level == NULL) + ; + else if (strcasecmp (security_level, "relaxed") == 0) + { + result = + run_subdir_test ("sql_stmt_libxml2_tests", conn, load_extension); + if (result != 0) + { + return result; } - free(namelist[i]); - } - free(namelist); - } - -#ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ - n = scandir("sql_stmt_mathsql_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_mathsql_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -#endif /* end MATHSQL conditional */ - -#ifndef OMIT_PROJ /* only if PROJ is supported */ - n = scandir("sql_stmt_proj_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_proj_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -#endif /* end PROJ conditional */ - -#ifndef OMIT_GEOS /* only if GEOS is supported */ - if (strcmp(GEOSversion (), "3.3") < 0) - { - /* - skipping GEOS tests if some obsolete version is found - - rationale: obsolete versions may return substantially - different results, thus causing many testcases to fail - */ - fprintf(stderr, "WARNING: skipping GEOS testcases; obsolete version found !!!\n"); - goto skip_geos; - } - - n = scandir("sql_stmt_geos_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_geos_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -skip_geos: -#endif /* end GEOS conditional */ - -#ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ - if (strcmp(GEOSversion (), "3.3") < 0) - { - /* - skipping GEOS tests if some obsolete version is found - - rationale: obsolete versions may return substantially - different results, thus causing many testcases to fail - */ - fprintf(stderr, "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n"); - goto skip_geos_advanced; - } - n = scandir("sql_stmt_geosadvanced_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_geosadvanced_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -skip_geos_advanced: -#endif /* end GEOS_ADVANCED conditional */ - -#ifdef GEOS_TRUNK /* only if GEOS_TRUNK is supported */ - if (strcmp(GEOSversion (), "3.3") < 0) - { - /* - skipping GEOS tests if some obsolete version is found - - rationale: obsolete versions may return substantially - different results, thus causing many testcases to fail - */ - fprintf(stderr, "WARNING: skipping GEOS_TRUNK testcases; obsolete version found !!!\n"); - goto skip_geos_trunk; - } - n = scandir("sql_stmt_geostrunk_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_geostrunk_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -skip_geos_trunk: -#endif /* end GEOS_TRUNK conditional */ - -#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ - n = scandir("sql_stmt_lwgeom_tests", &namelist, test_case_filter, alphasort); - if (n < 0) { - perror("scandir"); - return -1; - } - - for (i = 0; i < n; ++i) { - struct test_data *data; - char *path; - if (asprintf(&path, "sql_stmt_lwgeom_tests/%s", namelist[i]->d_name) < 0) { - return -1; - } - data = read_one_case(path); - free(path); - - result = do_one_case(data); - - cleanup_test_data(data); - if (result != 0) { - return result; - } - free(namelist[i]); - } - free(namelist); -#endif /* end LWGEOM conditional */ + } + +#endif /* end LIBXML2 conditional */ + +#ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ + result = + run_subdir_test ("sql_stmt_geopackage_tests", conn, load_extension); + if (result != 0) + { + return result; + } + +#endif /* end GEOPACKAGE conditional */ return result; } -int run_specified_testcases(int argc, char *argv[]) +int +run_specified_testcases (int argc, char *argv[], struct db_conn *conn, + int load_extension) { int result = 0; int i = 0; - + for (i = 1; i < argc; ++i) - { - struct test_data *data; - data = read_one_case(argv[i]); - result = do_one_case(data); - cleanup_test_data(data); - if (result != 0) { - break; - } - } + { + struct test_data *data; + data = read_one_case (argv[i]); + result = do_one_case (conn, data, load_extension); + cleanup_test_data (data); + if (result != 0) + { + break; + } + } return result; } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { int result = 0; + void *cache = spatialite_alloc_connection (); + struct db_conn conn; + conn.db_path = NULL; + conn.db_handle = NULL; + conn.cache = cache; - spatialite_init (0); - +/* testing in current mode */ if (argc == 1) - { - result = run_all_testcases(); - } + { + result = run_all_testcases (&conn, 0); + } else - { - result = run_specified_testcases(argc, argv); - } + { + result = run_specified_testcases (argc, argv, &conn, 0); + } if (result != 0) - { - /* it looks like if MinGW applies some wrong assumption */ - /* some negative values are incorrectly reported to be OK */ - /* forcing -1 seems to resolve this issue */ - result = -1; - } - - spatialite_cleanup(); + { + /* it looks like if MinGW applies some wrong assumption */ + /* some negative values are incorrectly reported to be OK */ + /* forcing -1 seems to resolve this issue */ + result = -1; + } + + close_connection (&conn); + spatialite_cleanup_ex (conn.cache); + conn.cache = NULL; + + if (result == 0) + { + /* testing again in legacy mode */ + fprintf (stderr, + "\n****************** testing again in legacy mode\n\n"); + if (argc == 1) + { + result = run_all_testcases (&conn, 0); + } + else + { + result = run_specified_testcases (argc, argv, &conn, 0); + } + close_connection (&conn); + } + + if (result == 0) + { + /* testing again in load_extension mode */ + fprintf (stderr, + "\n****************** testing again in load_extension mode\n\n"); + if (argc == 1) + { + result = run_all_testcases (&conn, 1); + } + else + { + result = run_specified_testcases (argc, argv, &conn, 1); + } + close_connection (&conn); + } + spatialite_shutdown (); return result; } diff --git a/src/spatialite/test/check_styling.c b/src/spatialite/test/check_styling.c new file mode 100644 index 0000000..84df8eb --- /dev/null +++ b/src/spatialite/test/check_styling.c @@ -0,0 +1,743 @@ + +/* + + check_styling.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" + +static unsigned char * +load_blob (const char *path, int *blob_len) +{ +/* loading an external image */ + unsigned char *blob; + int sz = 0; + int rd; + FILE *fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return NULL; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + blob = (unsigned char *) malloc (sz); + *blob_len = sz; + rewind (fl); + rd = fread (blob, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return NULL; + } + fclose (fl); + return blob; +} + +static unsigned char * +load_xml (const char *path, int *len) +{ +/* loading an external XML */ + unsigned char *xml; + int sz = 0; + int rd; + FILE *fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return NULL; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz + 1); + *len = sz; + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return NULL; + } + fclose (fl); + xml[rd] = '\0'; + return xml; +} + +static char * +build_hex_blob (const unsigned char *blob, int blob_len) +{ +/* building an HEX blob */ + int i; + const unsigned char *p_in = blob; + char *hex = malloc ((blob_len * 2) + 1); + char *p_out = hex; + for (i = 0; i < blob_len; i++) + { + sprintf (p_out, "%02x", *p_in); + p_in++; + p_out += 2; + } + return hex; +} + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + char **results; + int rows; + int columns; + unsigned char *blob; + int blob_len; + char *hexBlob; + unsigned char *xml; + int len; + char *sql; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", + ret, err_msg); + sqlite3_free (err_msg); + return -2; + } + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + + ret = + sqlite3_get_table (handle, "SELECT CreateStylingTables(1)", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error CreateStylingTables: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -4; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #0 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -5; + } + sqlite3_free_table (results); + + blob = load_blob ("empty.png", &blob_len); + if (blob == NULL) + return -6; + hexBlob = build_hex_blob (blob, blob_len); + free (blob); + if (hexBlob == NULL) + return -7; + sql = + sqlite3_mprintf ("SELECT RegisterExternalGraphic('url-A', x%Q)", + hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -9; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #1 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -10; + } + sqlite3_free_table (results); + + sql = + sqlite3_mprintf + ("SELECT RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')", + hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + free (hexBlob); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -12; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #2 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -13; + } + sqlite3_free_table (results); + + xml = load_xml ("thunderstorm_mild.svg", &len); + if (xml == NULL) + return -14; + gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); + free (xml); + if (blob == NULL) + { + fprintf (stderr, "this is not a well-formed XML !!!\n"); + return -15; + } + hexBlob = build_hex_blob (blob, blob_len); + free (blob); + if (hexBlob == NULL) + return -16; + sql = + sqlite3_mprintf + ("SELECT RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')", + hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -18; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #3 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -19; + } + sqlite3_free_table (results); + + sql = + sqlite3_mprintf ("SELECT RegisterExternalGraphic('url-B', x%Q)", + hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + free (hexBlob); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -21; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #4 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -22; + } + sqlite3_free_table (results); + + ret = + sqlite3_exec (handle, + "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error Create Table table1: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } + ret = + sqlite3_get_table (handle, + "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error AddGeometryColumn: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -25; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #5 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -26; + } + sqlite3_free_table (results); + + xml = load_xml ("stazioni_se.xml", &len); + if (xml == NULL) + return -27; + gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); + free (xml); + if (blob == NULL) + { + fprintf (stderr, "this is not a well-formed XML !!!\n"); + return -28; + } + hexBlob = build_hex_blob (blob, blob_len); + free (blob); + if (hexBlob == NULL) + return -29; + sql = + sqlite3_mprintf + ("SELECT RegisterVectorStyledLayer('table1', 'geom', x%Q)", hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterVectorStyledLayer #6: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -31; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #6 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -32; + } + sqlite3_free_table (results); + + sql = + sqlite3_mprintf + ("SELECT RegisterVectorStyledLayer('table1', 'geom', 0, x%Q)", hexBlob); + free (hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterVectorStyledLayer #7: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -34; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #7 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -35; + } + sqlite3_free_table (results); + + xml = load_xml ("raster_se.xml", &len); + if (xml == NULL) + return -36; + gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); + free (xml); + if (blob == NULL) + { + fprintf (stderr, "this is not a well-formed XML !!!\n"); + return -37; + } + hexBlob = build_hex_blob (blob, blob_len); + free (blob); + if (hexBlob == NULL) + return -38; + sql = + sqlite3_mprintf ("SELECT RegisterRasterStyledLayer('srtm', x%Q)", + hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterRasterStyledLayer #8: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -40; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #8 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -41; + } + sqlite3_free_table (results); + + sql = + sqlite3_mprintf ("SELECT RegisterRasterStyledLayer('srtm', 0, x%Q)", + hexBlob); + free (hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterRasterStyledLayer #9: %s\n", err_msg); + sqlite3_free (err_msg); + return -42; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -43; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #9 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -44; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT RegisterStyledGroup('group', 'srtm')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterStyledGroup #10: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -46; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #10 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -47; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT RegisterStyledGroup('group', 'table1', 'geom')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterStyledGroup #11: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -49; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #12 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -50; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT RegisterStyledGroup('group', 'srtm', 4)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterStyledGroup #13: %s\n", err_msg); + sqlite3_free (err_msg); + return -51; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -52; + } + if (strcmp (results[1 * columns + 0], "0") != 0) + { + fprintf (stderr, "Unexpected #13 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -53; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT RegisterStyledGroup('group', 'table1', 'geom', 1)", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterStyledGroup #14: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -55; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #14 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -56; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT SetStyledGroupInfos('group', 'title', 'abstract')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error SetStyledGroupInfos #15: %s\n", err_msg); + sqlite3_free (err_msg); + return -57; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -58; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #15 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -59; + } + sqlite3_free_table (results); + + ret = + sqlite3_get_table (handle, + "SELECT SetStyledGroupInfos('group-bis', 'title', 'abstract')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error SetStyledGroupInfos #16: %s\n", err_msg); + sqlite3_free (err_msg); + return 60; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -61; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #16 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -62; + } + sqlite3_free_table (results); + + xml = load_xml ("sld_sample.xml", &len); + if (xml == NULL) + return -63; + gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); + free (xml); + if (blob == NULL) + { + fprintf (stderr, "this is not a well-formed XML !!!\n"); + return -64; + } + hexBlob = build_hex_blob (blob, blob_len); + free (blob); + if (hexBlob == NULL) + return -65; + sql = sqlite3_mprintf ("SELECT RegisterGroupStyle('group', x%Q)", hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterGroupStyle #1: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -67; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #1 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -68; + } + sqlite3_free_table (results); + + sql = + sqlite3_mprintf ("SELECT RegisterGroupStyle('group', 0, x%Q)", hexBlob); + free (hexBlob); + ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error RegisterGroupStyle #2: %s\n", err_msg); + sqlite3_free (err_msg); + return -69; + } + if ((rows != 1) || (columns != 1)) + { + sqlite3_free_table (results); + fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, + columns); + return -70; + } + if (strcmp (results[1 * columns + 0], "1") != 0) + { + fprintf (stderr, "Unexpected #2 result (got %s, expected 1)", + results[1 * columns + 0]); + sqlite3_free_table (results); + return -71; + } + sqlite3_free_table (results); + + +#endif + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -57; + } + + spatialite_cleanup_ex (cache); + + spatialite_shutdown (); + return 0; +} diff --git a/src/spatialite/test/check_version.c b/src/spatialite/test/check_version.c index 5a8c268..567fdc7 100644 --- a/src/spatialite/test/check_version.c +++ b/src/spatialite/test/check_version.c @@ -50,13 +50,19 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { - if (strcmp(spatialite_version(), VERSION) != 0) { - fprintf(stderr, "SpatiaLite version mismatch: %s and %s\n", - VERSION, spatialite_version()); - return -1; - } - + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + if (strcmp (spatialite_version (), VERSION) != 0) + { + fprintf (stderr, "SpatiaLite version mismatch: %s and %s\n", + VERSION, spatialite_version ()); + return -1; + } + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtual_ovflw.c b/src/spatialite/test/check_virtual_ovflw.c index b9b171e..1222375 100644 --- a/src/spatialite/test/check_virtual_ovflw.c +++ b/src/spatialite/test/check_virtual_ovflw.c @@ -43,13 +43,16 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include +#include #include #include +#include "config.h" #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; @@ -61,269 +64,389 @@ int main (int argc, char *argv[]) char *suffix; char *table; char *sql; - - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -2; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -2; + } /* setting up very long table and column names */ - suffix = malloc(suffix_len); - memset(suffix, 'z', suffix_len); - suffix[suffix_len-1] = '\0'; + suffix = malloc (suffix_len); + memset (suffix, 'z', suffix_len); + suffix[suffix_len - 1] = '\0'; #ifndef OMIT_FREEXL /* only if FreeXL is supported */ - table = sqlite3_mprintf("xltest_%s", suffix); - - sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table); + table = sqlite3_mprintf ("xltest_%s", suffix); + + sql = + sqlite3_mprintf + ("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - - sql = sqlite3_mprintf("select col_2, col_4, col_5, col_7, rowid " - "from %s WHERE col_2 = \"Canal Creek\";", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } - if ((rows != 2) || (columns != 5)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -5; - } - if (strcmp(results[0], "col_2") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -6; - } - if (strcmp(results[5], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); - return -7; - } - if (strncmp(results[6], "-27.86667", 9) != 0) { - fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); - return -8; - } - if (strncmp(results[7], "151.51667", 9) != 0) { - fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); - return -9; - } - if (strcmp(results[10], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); - return -10; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + + sql = sqlite3_mprintf ("select col_2, col_4, col_5, col_7, rowid " + "from %s WHERE col_2 = \"Canal Creek\";", table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + if ((rows != 2) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -5; + } + if (strcmp (results[0], "col_2") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -6; + } + if (strcmp (results[5], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", + results[5]); + return -7; + } + if (strncmp (results[6], "-27.86667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", + results[6]); + return -8; + } + if (strncmp (results[7], "151.51667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", + results[7]); + return -9; + } + if (strcmp (results[10], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", + results[10]); + return -10; + } sqlite3_free_table (results); - sqlite3_free(table); -#endif /* end FreeXL conditional */ + sqlite3_free (table); +#endif /* end FreeXL conditional */ -#ifndef OMIT_ICONV /* only if ICONV is supported */ - table = sqlite3_mprintf("shapetest_%s", suffix); +#ifndef OMIT_ICONV /* only if ICONV is supported */ + table = sqlite3_mprintf ("shapetest_%s", suffix); - sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);", table); + sql = + sqlite3_mprintf + ("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);", + table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -11; - } - sql = sqlite3_mprintf("SELECT RegisterVirtualGeometry(%Q)", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -13; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[1]); - return -14; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + sql = sqlite3_mprintf ("SELECT RegisterVirtualGeometry(%Q)", table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -13; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[1]); + return -14; + } sqlite3_free_table (results); - sql = sqlite3_mprintf( "select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -15; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -16; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -17; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -18; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -19; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -20; - } + sql = + sqlite3_mprintf + ("select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;", + table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -15; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -16; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -17; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -18; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -19; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -20; + } sqlite3_free_table (results); - sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -22; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -23; - } + sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -22; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -23; + } sqlite3_free_table (results); - sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);", table); + sql = + sqlite3_mprintf + ("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);", + table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } - - sql = sqlite3_mprintf("select testcase1, testcase2 from %s where testcase2 < 20;", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -26; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -27; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -28; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -29; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } + + sql = + sqlite3_mprintf + ("select testcase1, testcase2 from %s where testcase2 < 20;", table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -26; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -27; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -28; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -29; + } sqlite3_free_table (results); - sql = sqlite3_mprintf("DROP TABLE %s;", table); + sql = sqlite3_mprintf ("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } - sqlite3_free(table); -#endif /* end ICONV conditional */ + sqlite3_free (table); +#endif /* end ICONV conditional */ sqlite3_close (db_handle); - spatialite_cleanup(); - - spatialite_init (0); - - ret = sqlite3_open_v2 ("./sql_stmt_tests/testdb1.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open testdb1.sqlite db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -31; - } - - table = sqlite3_mprintf("roads_net_%s", suffix); - - sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");", table); + spatialite_cleanup_ex (cache); + + ret = system ("cp sql_stmt_tests/testdb1.sqlite testdb1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy testdb1.sqlite database\n"); + return -131; + } + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 ("testdb1.sqlite", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open testdb1.sqlite db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -31; + } + + spatialite_init_ex (db_handle, cache, 0); + + table = sqlite3_mprintf ("roads_net_%s", suffix); + + sql = + sqlite3_mprintf + ("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");", + table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualNetwork error: %s\n", err_msg); - sqlite3_free (err_msg); - return -32; - } - - sql = sqlite3_mprintf("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;", table); - ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -33; - } - if ((rows != 4) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -34; - } - if (strcmp(results[0], "NodeFrom") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -35; - } - if (strcmp(results[2], "32") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -36; - } - if (strcmp(results[3], "29") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -37; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualNetwork error: %s\n", err_msg); + sqlite3_free (err_msg); + return -32; + } + + sql = + sqlite3_mprintf + ("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;", + table); + ret = + sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } + if ((rows != 4) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -34; + } + if (strcmp (results[0], "NodeFrom") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -35; + } + if (strcmp (results[2], "32") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -36; + } + if (strcmp (results[3], "29") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -37; + } sqlite3_free_table (results); - sql = sqlite3_mprintf("DROP TABLE %s;", table); + sql = sqlite3_mprintf ("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); - sqlite3_free(sql); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -38; - } + sqlite3_free (sql); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } - sqlite3_free(table); + sqlite3_free (table); sqlite3_close (db_handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); + ret = unlink ("testdb1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove testdb1 database\n"); + return -39; + } + + free (suffix); - free(suffix); - + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualbbox.c b/src/spatialite/test/check_virtualbbox.c new file mode 100644 index 0000000..cf9d81b --- /dev/null +++ b/src/spatialite/test/check_virtualbbox.c @@ -0,0 +1,604 @@ +/* + + check_virtualbbox.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#define _GNU_SOURCE +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" + +int +main (int argc, char *argv[]) +{ + sqlite3 *db_handle = NULL; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -2; + } + +/* creating the BoundingBox table */ + ret = sqlite3_exec (db_handle, "CREATE TABLE BBox_Test (pk_uid INTEGER, " + "min_x DOUBLE, min_y DOUBLE, max_x DOUBLE, max_y DOUBLE, srid INTEGER, " + "name TEXT, count INTEGER, measure DOUBLE, odd BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -3; + } + +/* inserting few rows into the BoundingBox table */ + ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " + "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " + "VALUES (1, 1, 2, 3, 4, 4326, 'alpha', 10, 10.1, zeroblob(4))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -4; + } + ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " + "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " + "VALUES (2, 2, 3, 4, 5, 4326, 'beta', 20, 20.2, zeroblob(4))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -5; + } + ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " + "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " + "VALUES (3, 3, 4, 5, 6, 3003, 'gamma', 30, 30.3, NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #3 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -6; + } + ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " + "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " + "VALUES (4, 1, 2, NULL, 4, 4326, 'delta', 40, NULL, NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #4 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -7; + } + ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " + "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " + "VALUES (5, 1, 2, 3, 4, NULL, 'epsilon', NULL, NULL, NULL)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT #5 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -8; + } + +/* creating the VirtualBBox table #1 */ + ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test1 USING " + "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', " + "srid, 0, pk_uid, name, count, measure, odd)", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE VIRTUAL TABLE #1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -9; + } + +/* testing the VirtualBBox table #1 */ + ret = + sqlite3_get_table (db_handle, + "SELECT ROWID, pk_uid, name, count, measure, Length(odd), GeometryType(Geometry), Srid(Geometry) FROM test1", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 5) || (columns != 8)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcasecmp (results[0], "ROWID") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -12; + } + if (strcasecmp (results[1], "pk_uid") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[1]); + return -13; + } + if (strcasecmp (results[2], "name") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[2]); + return -14; + } + if (strcasecmp (results[3], "count") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[3]); + return -15; + } + if (strcasecmp (results[4], "measure") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[4]); + return -16; + } + if (strcasecmp (results[5], "Length(odd)") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[5]); + return -17; + } + if (strcasecmp (results[6], "GeometryType(Geometry)") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[6]); + return -18; + } + if (strcasecmp (results[7], "Srid(Geometry)") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[7]); + return -19; + } + if (strcmp (results[8], "1") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[8]); + return -20; + } + if (strcmp (results[9], "1") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[9]); + return -21; + } + if (strcmp (results[10], "alpha") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[10]); + return -22; + } + if (strcmp (results[11], "10") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[11]); + return -23; + } + if (strcmp (results[12], "10.1") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[12]); + return -24; + } + if (strcmp (results[13], "4") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[13]); + return -25; + } + if (strcmp (results[14], "POLYGON") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[14]); + return -26; + } + if (strcmp (results[15], "4326") != 0) + { + fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", + results[15]); + return -27; + } + if (strcmp (results[16], "2") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[16]); + return -28; + } + if (strcmp (results[17], "2") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[17]); + return -29; + } + if (strcmp (results[18], "beta") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[18]); + return -30; + } + if (strcmp (results[19], "20") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[19]); + return -31; + } + if (strcmp (results[20], "20.2") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[20]); + return -32; + } + if (strcmp (results[21], "4") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[21]); + return -33; + } + if (strcmp (results[22], "POLYGON") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[22]); + return -34; + } + if (strcmp (results[23], "4326") != 0) + { + fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", + results[23]); + return -35; + } + if (strcmp (results[24], "3") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[24]); + return -36; + } + if (strcmp (results[25], "3") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[25]); + return -37; + } + if (strcmp (results[26], "gamma") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[26]); + return -38; + } + if (strcmp (results[27], "30") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[27]); + return -39; + } + if (strcmp (results[28], "30.3") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[28]); + return -40; + } + if (results[29] != NULL) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[29]); + return -41; + } + if (strcmp (results[30], "POLYGON") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[30]); + return -42; + } + if (strcmp (results[31], "3003") != 0) + { + fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", + results[31]); + return -43; + } + if (strcmp (results[32], "4") != 0) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[33]); + return -44; + } + if (strcmp (results[33], "4") != 0) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[33]); + return -45; + } + if (strcmp (results[34], "delta") != 0) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[34]); + return -46; + } + if (strcmp (results[35], "40") != 0) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[35]); + return -47; + } + if (results[36] != NULL) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[36]); + return -48; + } + if (results[37] != NULL) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[37]); + return -49; + } + if (results[38] != NULL) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[38]); + return -50; + } + if (results[39] != NULL) + { + fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", + results[39]); + return -51; + } + if (strcmp (results[40], "5") != 0) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[40]); + return -52; + } + if (strcmp (results[41], "5") != 0) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[41]); + return -53; + } + if (strcmp (results[42], "epsilon") != 0) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[42]); + return -54; + } + if (results[43] != NULL) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[43]); + return -55; + } + if (results[44] != NULL) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[44]); + return -56; + } + if (results[45] != NULL) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[45]); + return -57; + } + if (strcmp (results[46], "POLYGON") != 0) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[46]); + return -58; + } + if (strcmp (results[47], "0") != 0) + { + fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", + results[47]); + return -59; + } + sqlite3_free_table (results); + +/* dropping the VirtualBBox table #1 */ + ret = sqlite3_exec (db_handle, "DROP TABLE test1", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE #1 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -60; + } + +/* creating the VirtualBBox table #2 */ + ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test2 USING " + "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE VIRTUAL TABLE #2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -61; + } + +/* testing the VirtualBBox table #2 */ + ret = + sqlite3_get_table (db_handle, + "SELECT DISTINCT GeometryType(Geometry), Srid(Geometry) FROM test2", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -62; + } + if ((rows != 2) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -63; + } + if (strcasecmp (results[2], "POLYGON") != 0) + { + fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n", + results[2]); + return -64; + } + if (strcasecmp (results[3], "3003") != 0) + { + fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n", + results[3]); + return -65; + } + if (results[4] != NULL) + { + fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n", + results[4]); + return -66; + } + if (results[5] != NULL) + { + fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n", + results[5]); + return -67; + } + sqlite3_free_table (results); + +/* dropping the VirtualBBox table #2 */ + ret = sqlite3_exec (db_handle, "DROP TABLE test2", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE #2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -68; + } + +/* creating the VirtualBBox table #3 - failure */ + ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " + "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003)", + NULL, NULL, &err_msg); + if (ret == SQLITE_OK) + { + fprintf (stderr, "CREATE VIRTUAL TABLE #3 unexpected result: %s\n", + err_msg); + sqlite3_close (db_handle); + return -69; + } + sqlite3_free (err_msg); + +/* creating the VirtualBBox table #4 - failure */ + ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " + "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'wrong', 3003, 0)", + NULL, NULL, &err_msg); + if (ret == SQLITE_OK) + { + fprintf (stderr, "CREATE VIRTUAL TABLE #4 unexpected result: %s\n", + err_msg); + sqlite3_close (db_handle); + return -70; + } + sqlite3_free (err_msg); + +/* creating the VirtualBBox table #46 - failure */ + ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " + "VirtualBBox('wrong', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)", + NULL, NULL, &err_msg); + if (ret == SQLITE_OK) + { + fprintf (stderr, "CREATE VIRTUAL TABLE #5 unexpected result: %s\n", + err_msg); + sqlite3_close (db_handle); + return -71; + } + sqlite3_free (err_msg); + + + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_virtualtable1.c b/src/spatialite/test/check_virtualtable1.c index 5df53da..b92e282 100644 --- a/src/spatialite/test/check_virtualtable1.c +++ b/src/spatialite/test/check_virtualtable1.c @@ -56,9 +56,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; @@ -66,282 +67,429 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; - - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualText error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - - asprintf(&sql_statement, "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 2) || (columns != 4)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -11; - } - if (strcmp(results[0], "COL003") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -12; - } - if (strcmp(results[4], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", results[4]); - return -13; - } - if (strncmp(results[5], "-27.86667", 9) != 0) { - fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[5]); - return -14; - } - if (strncmp(results[6], "151.51667", 9) != 0) { - fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[6]); - return -15; - } - if (strcmp(results[8], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", results[8]); - return -16; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualText error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + + asprintf (&sql_statement, + "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 2) || (columns != 4)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcmp (results[0], "COL003") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -12; + } + if (strcmp (results[4], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", + results[4]); + return -13; + } + if (strncmp (results[5], "-27.86667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", + results[5]); + return -14; + } + if (strncmp (results[6], "151.51667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", + results[6]); + return -15; + } + if (strcmp (results[8], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", + results[8]); + return -16; + } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "BEGIN error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } - - ret = sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", NULL, NULL, &err_msg); - if (ret != SQLITE_READONLY) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "BEGIN error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } + + ret = + sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", + NULL, NULL, &err_msg); + if (ret != SQLITE_READONLY) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "ROLLBACK error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } - ret = sqlite3_get_table (db_handle, "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -24; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "ROLLBACK error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + ret = + sqlite3_get_table (db_handle, + "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -24; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -26; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -26; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -27; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -28; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -27; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -28; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 = 2172517", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -30; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col002 FROM places WHERE col001 = 2172517", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -30; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -31; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -32; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -32; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -33; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -34; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -34; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 = 'Canbrae'", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -30; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col002 = 'Canbrae'", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -30; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE ROWNO = 5", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -31; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -32; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE ROWNO = 5", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -32; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -33; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -34; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -33; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -34; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -36; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -36; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 = 149.1", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -37; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -38; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col006 = 149.1", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -37; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -38; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -39; - } - if ((rows != 4) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -40; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -39; + } + if ((rows != 4) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -40; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -41; - } - if ((rows != 4) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -42; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -41; + } + if ((rows != 4) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -42; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 = 23940.0", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -43; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -44; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col012 = 23940.0", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -43; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -44; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 >= 20000.0 AND col012 < 24000.0", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -46; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col012 >= 20000.0 AND col012 < 24000.0", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -46; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 > 20000.0 AND col012 <= 24000.0", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } - if ((rows != 2) || (columns != 1)) { - fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); - return -46; - } + ret = + sqlite3_get_table (db_handle, + "SELECT col001 FROM places WHERE col012 > 20000.0 AND col012 <= 24000.0", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } + if ((rows != 2) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result2: %i/%i.\n", + rows, columns); + return -46; + } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE places;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } sqlite3_close (db_handle); - spatialite_cleanup(); -#endif /* end ICONV conditional */ + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ - + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualtable2.c b/src/spatialite/test/check_virtualtable2.c index 4f75644..6d6f312 100644 --- a/src/spatialite/test/check_virtualtable2.c +++ b/src/spatialite/test/check_virtualtable2.c @@ -44,6 +44,7 @@ the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include +#include #include #include @@ -56,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int do_test(sqlite3 *db_handle) +int +do_test (sqlite3 * db_handle) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ char *sql_statement; int ret; char *err_msg = NULL; @@ -66,759 +68,1143 @@ int do_test(sqlite3 *db_handle) int rows; int columns; - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -4; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -5; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + ret = + sqlite3_get_table (db_handle, + "SELECT RegisterVirtualGeometry('shapetest')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -4; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -5; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -7; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -8; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -9; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -10; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -11; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -7; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -8; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -9; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -10; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -11; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -13; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -14; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -15; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -16; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -17; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -13; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -14; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -15; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -16; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -17; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -18; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -19; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -20; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); - return -21; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[4]); - return -22; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -23; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -18; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -19; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -20; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[3]); + return -21; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", + results[4]); + return -22; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -23; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -24; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -25; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -26; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[3]); - return -27; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[4]); - return -28; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -29; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -24; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -25; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -26; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", + results[3]); + return -27; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", + results[4]); + return -28; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -29; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -31; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -32; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[3]); - return -33; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[4]); - return -33; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -34; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -31; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -32; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", + results[3]); + return -33; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", + results[4]); + return -33; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -34; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -35; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -36; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -37; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); - return -38; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -39; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -40; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -35; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -36; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -37; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[3]); + return -38; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -39; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -40; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -41; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -42; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -43; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); - return -44; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -45; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -46; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -41; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -42; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -43; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[3]); + return -44; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -45; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -46; + } sqlite3_free_table (results); - + ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "BEGIN error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } - - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -49; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -50; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -51; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -52; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -53; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "BEGIN error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } + + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -49; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -50; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -51; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -52; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -53; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;", NULL, NULL, &err_msg); - if (ret != SQLITE_READONLY) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } + ret = + sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;", + NULL, NULL, &err_msg); + if (ret != SQLITE_READONLY) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } sqlite3_free (err_msg); - + ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "ROLLBACK error: %s\n", err_msg); - sqlite3_free (err_msg); - return -55; - } - - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -56; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -57; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -58; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -59; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -60; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -61; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "ROLLBACK error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } + + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -56; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -57; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -58; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -59; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -60; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -61; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -62; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -63; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -64; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -65; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -66; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -67; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -62; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -63; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -64; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -65; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -66; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -67; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -68; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -69; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -70; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -71; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -72; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -73; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -68; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -69; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -70; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -71; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -72; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -73; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -74; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -75; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -76; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -77; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -78; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -79; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -74; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -75; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -76; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -77; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -78; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -79; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -80; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -81; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -82; - } - if (strcmp(results[3], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); - return -83; - } - if (strcmp(results[4], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -84; - } - if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -85; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -80; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -81; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -82; + } + if (strcmp (results[3], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[3]); + return -83; + } + if (strcmp (results[4], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -84; + } + if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -85; + } sqlite3_free_table (results); - - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -86; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -87; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -88; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); - return -89; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -90; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -91; - } + + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -86; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -87; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -88; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[3]); + return -89; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -90; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -91; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -92; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -93; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -94; - } - if (strcmp(results[3], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); - return -95; - } - if (strcmp(results[4], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); - return -96; - } - if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { - fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); - return -97; - } + asprintf (&sql_statement, + "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -92; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -93; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -94; + } + if (strcmp (results[3], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[3]); + return -95; + } + if (strcmp (results[4], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[4]); + return -96; + } + if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) + { + fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", + results[5]); + return -97; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -98; - } - if ((rows != 1) || (columns != 4)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -99; - } - if (strcmp(results[0], "PKUID") != 0) { - fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); - return -100; - } - if (strcmp(results[1], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); - return -101; - } - if (strcmp(results[4], "1") != 0) { - fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[4]); - return -102; - } - if (strcmp(results[5], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[5]); - return -103; - } + asprintf (&sql_statement, + "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -98; + } + if ((rows != 1) || (columns != 4)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -99; + } + if (strcmp (results[0], "PKUID") != 0) + { + fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", + results[0]); + return -100; + } + if (strcmp (results[1], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header bad result: %s.\n", + results[1]); + return -101; + } + if (strcmp (results[4], "1") != 0) + { + fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", + results[4]); + return -102; + } + if (strcmp (results[5], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[5]); + return -103; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -104; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -105; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -106; - } + ret = + sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -104; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -105; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -106; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -107; - } - ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -108; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -109; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -110; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -107; + } + ret = + sqlite3_get_table (db_handle, + "SELECT RegisterVirtualGeometry('shapetest2')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -108; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -109; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -110; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT UpdateLayerStatistics('shapetest2')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg); - sqlite3_free (err_msg); - return -111; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -112; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n", results[0]); - return -113; - } + ret = + sqlite3_get_table (db_handle, + "SELECT UpdateLayerStatistics('shapetest2')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg); + sqlite3_free (err_msg); + return -111; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -112; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n", + results[0]); + return -113; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -114; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -115; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -116; - } + ret = + sqlite3_get_table (db_handle, + "SELECT DropVirtualGeometry('shapetest2')", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -114; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -115; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -116; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -117; - } - ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -118; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -119; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -120; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -117; + } + ret = + sqlite3_get_table (db_handle, + "SELECT RegisterVirtualGeometry('shapetest3')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -118; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -119; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -120; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -121; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -122; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -123; - } + ret = + sqlite3_get_table (db_handle, + "SELECT DropVirtualGeometry('shapetest3')", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -121; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -122; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -123; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -124; - } - ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -125; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -126; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -127; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -124; + } + ret = + sqlite3_get_table (db_handle, + "SELECT RegisterVirtualGeometry('shapetest4')", + &results, &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -125; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -126; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -127; + } sqlite3_free_table (results); - ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); - sqlite3_free (err_msg); - return -128; - } - if ((rows != 1) || (columns != 1)) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -129; - } - if (strcmp(results[1], "1") != 0) { - fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); - return -130; - } + ret = + sqlite3_get_table (db_handle, + "SELECT DropVirtualGeometry('shapetest4')", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); + sqlite3_free (err_msg); + return -128; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -129; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", + results[0]); + return -130; + } sqlite3_free_table (results); /* final DB cleanup */ - ret = sqlite3_exec (db_handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -131; - } + ret = + sqlite3_exec (db_handle, + "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -131; + } ret = sqlite3_exec (db_handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -132; - } -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -132; + } +#endif /* end ICONV conditional */ return 0; } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -2; - } - - ret = do_test(db_handle); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } - + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (db_handle); + return -2; + } + + ret = do_test (db_handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } + sqlite3_close (db_handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-3.0.1.sqlite", &db_handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(db_handle); - return -2; - } - - ret = do_test(db_handle); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } - + ret = system ("cp test-legacy-3.0.1.sqlite copy-virt2-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + cache = spatialite_alloc_connection (); + ret = + sqlite3_open_v2 ("copy-virt2-legacy-3.0.1.sqlite", &db_handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = do_test (db_handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } + sqlite3_close (db_handle); - spatialite_cleanup(); + spatialite_cleanup_ex (cache); + ret = unlink ("copy-virt2-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -20; + } + +#endif /* end ICONV conditional */ -#endif /* end ICONV conditional */ - + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualtable3.c b/src/spatialite/test/check_virtualtable3.c index e1a22b6..cd2c5d9 100644 --- a/src/spatialite/test/check_virtualtable3.c +++ b/src/spatialite/test/check_virtualtable3.c @@ -56,9 +56,10 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "asprintf4win.h" #endif -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; @@ -66,522 +67,776 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; - - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 < 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -4; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -5; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -6; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -7; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase2 < 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -4; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -5; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -6; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -7; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 <= 19;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -11; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -12; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -13; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -14; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase2 <= 19;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -12; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -13; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -14; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 = 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -16; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -17; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -18; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); - return -19; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[3]); - return -20; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase2 = 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -16; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -17; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -18; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[2]); + return -19; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", + results[3]); + return -20; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 > 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -23; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -24; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[2]); - return -25; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[3]); - return -26; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase2 > 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -23; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -24; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", + results[2]); + return -25; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", + results[3]); + return -26; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 >= 20;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -28; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -29; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -30; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[2]); - return -31; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[3]); - return -32; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase2 >= 20;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -28; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -29; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -30; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", + results[2]); + return -31; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", + results[3]); + return -32; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 < \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -34; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -35; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -36; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); - return -37; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -38; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase1 < \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -35; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -36; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[2]); + return -37; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -38; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -40; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -41; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -42; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); - return -43; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -44; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -40; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -41; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -42; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[2]); + return -43; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -44; + } sqlite3_free_table (results); - + ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "BEGIN error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } - - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 > \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -49; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -50; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -51; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -52; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "BEGIN error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } + + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase1 > \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -49; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -50; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -51; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -52; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;", NULL, NULL, &err_msg); - if (ret != SQLITE_READONLY) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } + ret = + sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;", + NULL, NULL, &err_msg); + if (ret != SQLITE_READONLY) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "ROLLBACK error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } - - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -55; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -56; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -57; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -58; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "ROLLBACK error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } + + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -55; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -56; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -57; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -58; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -54; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -55; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -56; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -57; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -58; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -54; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -55; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -56; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -57; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -58; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID = 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -60; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -61; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -62; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -63; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -64; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where PKUID = 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -60; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -61; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -62; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -63; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -64; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID < 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -66; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -67; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -68; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -69; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -70; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where PKUID < 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -66; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -67; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -68; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -69; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -70; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID <= 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -72; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -73; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -74; - } - if (strcmp(results[2], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); - return -75; - } - if (strcmp(results[3], "2") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -76; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where PKUID <= 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -72; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -73; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -74; + } + if (strcmp (results[2], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[2]); + return -75; + } + if (strcmp (results[3], "2") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -76; + } sqlite3_free_table (results); - - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID > 1;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -78; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -79; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -80; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); - return -81; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -82; - } + + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where PKUID > 1;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -78; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -79; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -80; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[2]); + return -81; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -82; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID >= 2;"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -84; - } - if ((rows != 1) || (columns != 2)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -85; - } - if (strcmp(results[0], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -86; - } - if (strcmp(results[2], "orde lees") != 0) { - fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); - return -87; - } - if (strcmp(results[3], "20") != 0) { - fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); - return -88; - } + asprintf (&sql_statement, + "select testcase1, testcase2 from dbftest where PKUID >= 2;"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -84; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -85; + } + if (strcmp (results[0], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -86; + } + if (strcmp (results[2], "orde lees") != 0) + { + fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", + results[2]); + return -87; + } + if (strcmp (results[3], "20") != 0) + { + fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", + results[3]); + return -88; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -90; - } - if ((rows != 1) || (columns != 3)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -91; - } - if (strcmp(results[0], "PKUID") != 0) { - fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); - return -92; - } - if (strcmp(results[1], "testcase1") != 0) { - fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); - return -93; - } - if (strcmp(results[3], "1") != 0) { - fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[3]); - return -93; - } - if (strcmp(results[4], "windward") != 0) { - fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[4]); - return -94; - } + asprintf (&sql_statement, + "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -90; + } + if ((rows != 1) || (columns != 3)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -91; + } + if (strcmp (results[0], "PKUID") != 0) + { + fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", + results[0]); + return -92; + } + if (strcmp (results[1], "testcase1") != 0) + { + fprintf (stderr, "Unexpected error: header bad result: %s.\n", + results[1]); + return -93; + } + if (strcmp (results[3], "1") != 0) + { + fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", + results[3]); + return -93; + } + if (strcmp (results[4], "windward") != 0) + { + fprintf (stderr, "Unexpected error: windward bad result: %s.\n", + results[4]); + return -94; + } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -49; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -49; + } /* error cases */ - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); - return -95; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); + return -95; + } sqlite3_free (err_msg); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1);", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); - return -96; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); + return -96; + } sqlite3_free (err_msg); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -97; - } - ret = sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -98; - } - if ((rows != 0) || (columns != 0)) { - fprintf (stderr, "Unexpected error: select columns no suchfile: %i/%i.\n", rows, columns); - return -99; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -97; + } + ret = + sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results, + &rows, &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -98; + } + if ((rows != 0) || (columns != 0)) + { + fprintf (stderr, + "Unexpected error: select columns no suchfile: %i/%i.\n", + rows, columns); + return -99; + } sqlite3_free_table (results); - ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -100; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); - return -101; - } + ret = + sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -100; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); + return -101; + } sqlite3_free (err_msg); sqlite3_close (db_handle); - spatialite_cleanup(); -#endif /* end ICONV conditional */ - + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualtable4.c b/src/spatialite/test/check_virtualtable4.c index c028960..71340d2 100644 --- a/src/spatialite/test/check_virtualtable4.c +++ b/src/spatialite/test/check_virtualtable4.c @@ -64,45 +64,47 @@ struct test_step #define NUMSTEPS 36 struct test_step steps[NUMSTEPS] = { - { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9 }, - { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7 }, - { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10 }, - { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8 }, - { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16 }, - { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13 }, - { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0 }, - { "select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8 }, - { "select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9 }, - { "select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8 }, - { "select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9 }, - { "select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1 }, - { "select col_2, col_4, col_5 from xltest where col_4 < -30;", 8 }, - { "select col_2, col_4, col_5 from xltest where col_4 > -30;", 9 }, - { "select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8 }, - { "select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9 }, - { "select col_2, col_4, col_5 from xltest where col_4 = -30;", 0 }, - { "SELECT row_no, col_4, col_5 from xltest", 17 }, - { "select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1 }, - { "select rowid, col_4, col_5 from xltest where col_4 = -26;", 1 }, + {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9}, + {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7}, + {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10}, + {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8}, + {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;", + 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16}, + {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13}, + {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0}, + {"select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8}, + {"select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9}, + {"select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8}, + {"select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9}, + {"select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1}, + {"select col_2, col_4, col_5 from xltest where col_4 < -30;", 8}, + {"select col_2, col_4, col_5 from xltest where col_4 > -30;", 9}, + {"select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8}, + {"select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9}, + {"select col_2, col_4, col_5 from xltest where col_4 = -30;", 0}, + {"SELECT row_no, col_4, col_5 from xltest", 17}, + {"select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1}, + {"select rowid, col_4, col_5 from xltest where col_4 = -26;", 1}, }; -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ sqlite3 *db_handle = NULL; @@ -113,238 +115,347 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - - asprintf(&sql_statement, "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -10; - } - if ((rows != 2) || (columns != 5)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -11; - } - if (strcmp(results[0], "col_2") != 0) { - fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); - return -12; - } - if (strcmp(results[5], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); - return -13; - } - if (strncmp(results[6], "-27.86667", 9) != 0) { - fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); - return -14; - } - if (strncmp(results[7], "151.51667", 9) != 0) { - fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); - return -15; - } - if (strcmp(results[10], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); - return -16; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + + asprintf (&sql_statement, + "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -10; + } + if ((rows != 2) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -11; + } + if (strcmp (results[0], "col_2") != 0) + { + fprintf (stderr, "Unexpected error: header() bad result: %s.\n", + results[0]); + return -12; + } + if (strcmp (results[5], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", + results[5]); + return -13; + } + if (strncmp (results[6], "-27.86667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", + results[6]); + return -14; + } + if (strncmp (results[7], "151.51667", 9) != 0) + { + fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", + results[7]); + return -15; + } + if (strcmp (results[10], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", + results[10]); + return -16; + } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "BEGIN error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } - - ret = sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;", NULL, NULL, &err_msg); - if (ret != SQLITE_READONLY) { - fprintf (stderr, "UPDATE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -21; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "BEGIN error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } + + ret = + sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;", + NULL, NULL, &err_msg); + if (ret != SQLITE_READONLY) + { + fprintf (stderr, "UPDATE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -21; + } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "ROLLBACK error: %s\n", err_msg); - sqlite3_free (err_msg); - return -22; - } - - for (i = 0; i < NUMSTEPS; ++i) { - ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -23; - } - if (rows != steps[i].num_rows) { - fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); - return -24; - } - sqlite3_free_table (results); - } - + if (ret != SQLITE_OK) + { + fprintf (stderr, "ROLLBACK error: %s\n", err_msg); + sqlite3_free (err_msg); + return -22; + } + + for (i = 0; i < NUMSTEPS; ++i) + { + ret = + sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, + &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } + if (rows != steps[i].num_rows) + { + fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, + rows); + return -24; + } + sqlite3_free_table (results); + } + ret = sqlite3_exec (db_handle, "DROP TABLE xltest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -25; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -26; - } - ret = sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -27; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -28; - } - ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -29; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -30; - } - asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -31; - } - if ((rows != 4) || (columns != 5)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -32; - } - if (strcmp(results[0], "row_no") != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); - return -33; - } - if (strcmp(results[6], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); - return -34; - } - if (strncmp(results[7], "-27.86667", 9) != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); - return -35; - } - if (strncmp(results[8], "151.51667", 9) != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); - return -36; - } - if (strcmp(results[11], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result place2: %s.\n", results[11]); - return -37; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -25; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -26; + } + ret = + sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -27; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -28; + } + ret = + sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -29; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + asprintf (&sql_statement, + "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } + if ((rows != 4) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -32; + } + if (strcmp (results[0], "row_no") != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", + results[0]); + return -33; + } + if (strcmp (results[6], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", + results[6]); + return -34; + } + if (strncmp (results[7], "-27.86667", 9) != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", + results[7]); + return -35; + } + if (strncmp (results[8], "151.51667", 9) != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", + results[8]); + return -36; + } + if (strcmp (results[11], "Canal Creek") != 0) + { + fprintf (stderr, + "Unexpected error: sheet2() bad result place2: %s.\n", + results[11]); + return -37; + } sqlite3_free_table (results); - asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16"); - ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); - free(sql_statement); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -38; - } - if ((rows != 1) || (columns != 5)) { - fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); - return -39; - } - if (strcmp(results[0], "row_no") != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); - return -40; - } - if (strcmp(results[6], "Canal Creek") != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); - return -41; - } - if (strncmp(results[7], "-27.86667", 9) != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); - return -42; - } - if (strncmp(results[8], "151.51667", 9) != 0) { - fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); - return -43; - } + asprintf (&sql_statement, + "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16"); + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + free (sql_statement); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -38; + } + if ((rows != 1) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -39; + } + if (strcmp (results[0], "row_no") != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", + results[0]); + return -40; + } + if (strcmp (results[6], "Canal Creek") != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", + results[6]); + return -41; + } + if (strncmp (results[7], "-27.86667", 9) != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", + results[7]); + return -42; + } + if (strncmp (results[8], "151.51667", 9) != 0) + { + fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", + results[8]); + return -43; + } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE sheet2;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -44; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -45; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -44; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } ret = sqlite3_exec (db_handle, "DROP TABLE noquote;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -46; - } - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualXL error: %s\n", err_msg); - sqlite3_free (err_msg); - return -47; - } - ret = sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -48; - } - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nofile USING VirtualXL();", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualXL unexpected result: %i\n", ret); - return -49; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -46; + } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualXL error: %s\n", err_msg); + sqlite3_free (err_msg); + return -47; + } + ret = + sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE nofile USING VirtualXL();", NULL, + NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualXL unexpected result: %i\n", ret); + return -49; + } sqlite3_free (err_msg); sqlite3_close (db_handle); - spatialite_cleanup(); -#endif /* end FreeXL conditional */ - + spatialite_cleanup_ex (cache); +#endif /* end FreeXL conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualtable5.c b/src/spatialite/test/check_virtualtable5.c index cbc47b0..055f5c2 100644 --- a/src/spatialite/test/check_virtualtable5.c +++ b/src/spatialite/test/check_virtualtable5.c @@ -58,40 +58,41 @@ struct test_step }; struct test_step steps[] = { - { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 }, - { "select DATUM from dbftest WHERE DATUM < 2450514.5;", 0 }, - { "select DATUM from dbftest WHERE DATUM > 2450514.5;", 0 }, - { "select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18 }, - { "select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18 }, - { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0 }, - { "select Length, HOEHE from dbftest WHERE Length > 0.0;", 18 }, - { "select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18 }, - { "select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0 }, - { "select Length, HOEHE from dbftest WHERE Length > 1.0;", 0 }, - { "select Length, HOEHE from dbftest WHERE Length > 0.1;", 10 }, - { "select Length, HOEHE from dbftest WHERE Length < 0.1;", 8 }, - { "select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10 }, - { "select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18 }, - { "select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0 }, - { "select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0 }, - { NULL, 0 } + {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18}, + {"select DATUM from dbftest WHERE DATUM < 2450514.5;", 0}, + {"select DATUM from dbftest WHERE DATUM > 2450514.5;", 0}, + {"select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18}, + {"select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18}, + {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0}, + {"select Length, HOEHE from dbftest WHERE Length > 0.0;", 18}, + {"select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18}, + {"select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0}, + {"select Length, HOEHE from dbftest WHERE Length > 1.0;", 0}, + {"select Length, HOEHE from dbftest WHERE Length > 0.1;", 10}, + {"select Length, HOEHE from dbftest WHERE Length < 0.1;", 8}, + {"select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10}, + {"select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18}, + {"select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0}, + {"select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0}, + {NULL, 0} }; -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; @@ -99,76 +100,106 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } - + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualDBF error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } - - for (i = 0; steps[i].sql; ++i) { - ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } - if (rows != steps[i].num_rows) { - fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); - return -8; - } - sqlite3_free_table (results); - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualDBF error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + + for (i = 0; steps[i].sql; ++i) + { + ret = + sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, + &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } + if (rows != steps[i].num_rows) + { + fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, + rows); + return -8; + } + sqlite3_free_table (results); + } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } sqlite3_close (db_handle); - spatialite_cleanup(); -#endif /* end ICONV conditional */ - + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualtable6.c b/src/spatialite/test/check_virtualtable6.c index 37bafae..f6b107a 100644 --- a/src/spatialite/test/check_virtualtable6.c +++ b/src/spatialite/test/check_virtualtable6.c @@ -58,41 +58,42 @@ struct test_step }; struct test_step steps[] = { - { "select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18 }, - { "select DATUM from shapetest WHERE DATUM < 2450514.5;", 0 }, - { "select DATUM from shapetest WHERE DATUM > 2450514.5;", 0 }, - { "select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18 }, - { "select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18 }, - { "select DATUM from shapetest WHERE DATUM = 2450514.5;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0 }, - { "select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0 }, - { "select Length, HOEHE from shapetest WHERE Length > 0.0;", 18 }, - { "select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18 }, - { "select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0 }, - { "select Length, HOEHE from shapetest WHERE Length > 1.0;", 0 }, - { "select Length, HOEHE from shapetest WHERE Length > 0.1;", 10 }, - { "select Length, HOEHE from shapetest WHERE Length < 0.1;", 8 }, - { "select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10 }, - { "select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0 }, - { "select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0 }, - { "select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0 }, - { "select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0 }, - { "select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18 }, - { "select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0 }, - { "select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0 }, - { "select * from shapetest LIMIT 5 OFFSET 2;", 5 }, - { NULL, 0 } + {"select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18}, + {"select DATUM from shapetest WHERE DATUM < 2450514.5;", 0}, + {"select DATUM from shapetest WHERE DATUM > 2450514.5;", 0}, + {"select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18}, + {"select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18}, + {"select DATUM from shapetest WHERE DATUM = 2450514.5;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0}, + {"select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0}, + {"select Length, HOEHE from shapetest WHERE Length > 0.0;", 18}, + {"select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18}, + {"select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0}, + {"select Length, HOEHE from shapetest WHERE Length > 1.0;", 0}, + {"select Length, HOEHE from shapetest WHERE Length > 0.1;", 10}, + {"select Length, HOEHE from shapetest WHERE Length < 0.1;", 8}, + {"select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10}, + {"select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0}, + {"select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0}, + {"select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0}, + {"select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0}, + {"select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18}, + {"select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0}, + {"select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0}, + {"select * from shapetest LIMIT 5 OFFSET 2;", 5}, + {NULL, 0} }; -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; @@ -100,118 +101,172 @@ int main (int argc, char *argv[]) char **results; int rows; int columns; + void *cache = spatialite_alloc_connection (); - spatialite_init (0); - - ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); - sqlite3_close (db_handle); - db_handle = NULL; - return -1; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -2; - } - - ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -3; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -4; - } - - ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -5; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -6; - } - - ret = sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -7; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -8; - } - - for (i = 0; steps[i].sql; ++i) { - ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "Error: %s\n", err_msg); - sqlite3_free (err_msg); - return -9; - } - if (rows != steps[i].num_rows) { - fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); - return -10; - } - sqlite3_free_table (results); - } - - ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -11; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VirtualShape error: %s\n", err_msg); - sqlite3_free (err_msg); - return -12; - } - - ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE error: %s\n", err_msg); - sqlite3_free (err_msg); - return -13; - } - - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); - return -14; - } + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + + spatialite_init_ex (db_handle, cache, 0); + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + + ret = + sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -3; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -4; + } + + ret = + sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -5; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -6; + } + + ret = + sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -7; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -8; + } + + for (i = 0; steps[i].sql; ++i) + { + ret = + sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, + &columns, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if (rows != steps[i].num_rows) + { + fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, + rows); + return -10; + } + sqlite3_free_table (results); + } + + ret = + sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VirtualShape error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + + ret = + sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + return -13; + } + + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); + return -14; + } sqlite3_free (err_msg); - ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1);", NULL, NULL, &err_msg); - if (ret != SQLITE_ERROR) { - fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); - return -15; - } + ret = + sqlite3_exec (db_handle, + "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1);", + NULL, NULL, &err_msg); + if (ret != SQLITE_ERROR) + { + fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); + return -15; + } sqlite3_free (err_msg); - + sqlite3_close (db_handle); - spatialite_cleanup(); -#endif /* end ICONV conditional */ - + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/check_virtualxpath.c b/src/spatialite/test/check_virtualxpath.c new file mode 100644 index 0000000..6ecc990 --- /dev/null +++ b/src/spatialite/test/check_virtualxpath.c @@ -0,0 +1,633 @@ +/* + + check_virtualxpath.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2011 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Brad Hards + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#define _GNU_SOURCE +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" + +static int +load_xml (void *cache, sqlite3 * db_handle, sqlite3_stmt * stmt, + const char *path) +{ +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ +/* loading an XMLDocument into the DB */ + FILE *fl; + int sz = 0; + int rd; + unsigned char *xml = NULL; + unsigned char *p_result = NULL; + int len; + int ret; + +/* loading the XMLDocument */ + fl = fopen (path, "rb"); + if (!fl) + { + fprintf (stderr, "cannot open \"%s\"\n", path); + return 0; + } + if (fseek (fl, 0, SEEK_END) == 0) + sz = ftell (fl); + xml = malloc (sz); + rewind (fl); + rd = fread (xml, 1, sz, fl); + if (rd != sz) + { + fprintf (stderr, "read error \"%s\"\n", path); + return 0; + } + fclose (fl); + +/* parsing the XMLDocument */ + gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); + if (p_result == NULL) + { + fprintf (stderr, "\"%s\": not a well-formed XML !!!\n", path); + return 0; + } + free (xml); + +/* inserting into the DB */ + sqlite3_reset (stmt); + sqlite3_clear_bindings (stmt); + sqlite3_bind_blob (stmt, 1, p_result, len, free); + sqlite3_bind_text (stmt, 2, path, strlen (path), SQLITE_STATIC); + ret = sqlite3_step (stmt); + if (ret == SQLITE_DONE || ret == SQLITE_ROW) + return 1; + fprintf (stderr, "INSERT error: %s\n", sqlite3_errmsg (db_handle)); + return 0; +#else + return -1; /* no support */ +#endif +} + +int +main (int argc, char *argv[]) +{ +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + sqlite3 *db_handle = NULL; + sqlite3_stmt *stmt; + char *sql_statement; + int ret; + char *err_msg = NULL; + char **results; + int rows; + int columns; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &db_handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (db_handle)); + sqlite3_close (db_handle); + db_handle = NULL; + return -1; + } + spatialite_init_ex (db_handle, cache, 0); + +/* creating the base XML table */ + sql_statement = "CREATE TABLE test (id INTEGER PRIMARY " + "KEY AUTOINCREMENT, xml BLOB, name TEXT)"; + ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateTable error: %s\n", err_msg); + sqlite3_free (err_msg); + return -2; + } + +/* loading the XMLDocuments into the DB */ + sql_statement = "INSERT INTO test (id, xml, name) VALUES (NULL, ?, ?)"; + ret = + sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), + &stmt, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "PrepareStatement: error \"%s\"\n", + sqlite3_errmsg (db_handle)); + return -3; + } + if (!load_xml (cache, db_handle, stmt, "books.xml")) + { + fprintf (stderr, "Unable to load \"books.xml\""); + return -4; + } + if (!load_xml (cache, db_handle, stmt, "opera.xml")) + { + fprintf (stderr, "Unable to load \"opera.xml\""); + return -5; + } + if (!load_xml (cache, db_handle, stmt, "movies.xml")) + { + fprintf (stderr, "Unable to load \"movies.xml\""); + return -6; + } + if (!load_xml (cache, db_handle, stmt, "books.xml")) + { + fprintf (stderr, "Unable to re-load yet again \"books.xml\""); + return -7; + } + if (!load_xml (cache, db_handle, stmt, "inspire-data-example.xml")) + { + fprintf (stderr, "Unable to load \"books-bad.xml\""); + return -8; + } + ret = sqlite3_finalize (stmt); + +/* checking for parse errors */ + sql_statement = "SELECT XB_GetLastParseError()"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -9; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -10; + } + sqlite3_free_table (results); + +/* validating the XMLDocuments */ + sql_statement = "UPDATE test SET xml = XB_SchemaValidate(xml, " + "XB_GetInternalSchemaURI(XB_GetPayload(xml))) " + "WHERE XB_GetInternalSchemaURI(XB_GetPayload(xml)) IS NOT NULL " + "AND name <> 'inspire-data-example.xml'"; + ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "SchemaValidation error: %s\n", err_msg); + sqlite3_free (err_msg); + return -11; + } + +/* checking for validation errors */ + sql_statement = "SELECT XB_GetLastValidateError()"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -12; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -13; + } + sqlite3_free_table (results); + +/* check #1: validity */ + sql_statement = "SELECT Count(*) FROM test WHERE XB_IsValid(xml) = 1"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -14; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -15; + } + if (strcmp (results[1], "5") != 0) + { + fprintf (stderr, "Unexpected error: XB_IsValid() bad result: %s.\n", + results[1]); + return -16; + } + sqlite3_free_table (results); + +/* check #2: validated */ + sql_statement = + "SELECT Count(*) FROM test WHERE XB_IsSchemaValidated(xml) = 1"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -17; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -18; + } + if (strcmp (results[1], "4") != 0) + { + fprintf (stderr, + "Unexpected error: XB_IsSchemaValidated() bad result: %s.\n", + results[1]); + return -19; + } + sqlite3_free_table (results); + +/* freeing the Schema cache */ + sql_statement = "SELECT XB_CacheFlush()"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -20; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -21; + } + if (strcmp (results[1], "1") != 0) + { + fprintf (stderr, + "Unexpected error: XB_CacheFlush() bad result: %s.\n", + results[1]); + return -22; + } + sqlite3_free_table (results); + +/* check #3: validated */ + sql_statement = + "SELECT XB_GetFileId(xml), XB_GetParentId(xml), XB_GetTitle(xml), " + "XB_GetAbstract(xml), ST_Srid(XB_GetGeometry(xml)) " + "FROM test WHERE XB_IsIsoMetadata(xml) = 1"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -23; + } + if ((rows != 1) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -24; + } + if (strcmp (results[5], "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) + { + fprintf (stderr, "Unexpected error: XB_GetFileId() bad result: %s.\n", + results[5]); + return -25; + } + if (strcmp (results[6], "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) + { + fprintf (stderr, + "Unexpected error: XB_GetParentId() bad result: %s.\n", + results[6]); + return -26; + } + if (strcmp (results[7], "Image2000 Product 1 (nl2) Multispectral") != 0) + { + fprintf (stderr, "Unexpected error: XB_GetTitle() bad result: %s.\n", + results[7]); + return -27; + } + if (strcmp + (results[8], + "IMAGE2000 product 1 individual orthorectified scenes.") != 0) + { + fprintf (stderr, + "Unexpected error: XB_GetAbstract() bad result: %s.\n", + results[8]); + return -28; + } + if (strcmp (results[9], "4326") != 0) + { + fprintf (stderr, + "Unexpected error: ST_Srid(XB_Geometry()) bad result: %s.\n", + results[9]); + return -29; + } + sqlite3_free_table (results); + +/* creating the VirtualXPath table */ + sql_statement = + "CREATE VIRTUAL TABLE test_xp USING VirtualXPath ('test', 'xml')"; + ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CreateTable error: %s\n", err_msg); + sqlite3_free (err_msg); + return -30; + } + +/* test XPAth expression #1 */ + sql_statement = "SELECT Count(*) FROM test_xp WHERE xpath_expr = '/*'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -31; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -32; + } + if (strcmp (results[1], "5") != 0) + { + fprintf (stderr, "Unexpected error: XPath #1 bad result: %s.\n", + results[1]); + return -33; + } + sqlite3_free_table (results); + +/* test XPAth expression #2 */ + sql_statement = "SELECT DISTINCT a.value, b.name FROM test_xp AS a " + "JOIN test AS b ON (b.id = a.pkid) " + "WHERE a.xpath_expr = '//author[@lastName=\"Conrad\"]/title/text()'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -34; + } + if ((rows != 3) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -35; + } + if (strcmp (results[0], "value") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[0]); + return -36; + } + if (strcmp (results[1], "name") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[1]); + return -37; + } + if (strcmp (results[2], "Lord Jim") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[2]); + return -38; + } + if (strcmp (results[3], "books.xml") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[3]); + return -39; + } + if (strcmp (results[4], "The Secret Agent") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[4]); + return -40; + } + if (strcmp (results[6], "Heart of Darkness") != 0) + { + fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", + results[6]); + return -41; + } + sqlite3_free_table (results); + +/* test XPAth expression #3 */ + sql_statement = "SELECT value FROM test_xp WHERE xpath_expr = " + "'//dflt:title[text()=\"Pulp Fiction\"]/../@lastName'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -42; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -43; + } + if (strcmp (results[1], "Tarantino") != 0) + { + fprintf (stderr, "Unexpected error: XPath #3 bad result: %s.\n", + results[1]); + return -44; + } + sqlite3_free_table (results); + +/* test XPAth expression #4 */ + sql_statement = + "SELECT node FROM test_xp WHERE pkid = 2 AND xpath_expr = '/*'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -45; + } + if ((rows != 1) || (columns != 1)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -46; + } + if (strcmp (results[1], "op:Opera") != 0) + { + fprintf (stderr, "Unexpected error: XPath #4 bad result: %s.\n", + results[1]); + return -47; + } + sqlite3_free_table (results); + +/* test XPAth expression #5 */ + sql_statement = "SELECT ROWID, pkid, sub, parent, attribute FROM test_xp " + "WHERE pkid > 1 AND pkid < 3 AND xpath_expr = '/*'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -48; + } + if ((rows != 1) || (columns != 5)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -49; + } + if (strcmp (results[5], "2") != 0) + { + fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", + results[5]); + return -50; + } + if (strcmp (results[6], "2") != 0) + { + fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", + results[6]); + return -51; + } + if (strcmp (results[7], "0") != 0) + { + fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", + results[7]); + return -52; + } + if (results[8] != NULL) + { + fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", + results[8]); + return -53; + } + if (results[9] != NULL) + { + fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", + results[9]); + return -54; + } + sqlite3_free_table (results); + +/* test XPAth expression #6 */ + sql_statement = "SELECT parent, attribute FROM test_xp " + "WHERE pkid >= 1 AND pkid <= 3 AND " + "xpath_expr = '//op:author[@lastName=\"Rossini\"]/@firstName'"; + ret = + sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Error: %s\n", err_msg); + sqlite3_free (err_msg); + return -55; + } + if ((rows != 1) || (columns != 2)) + { + fprintf (stderr, + "Unexpected error: select columns bad result: %i/%i.\n", + rows, columns); + return -56; + } + if (strcmp (results[2], "op:Opera") != 0) + { + fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", + results[2]); + return -57; + } + if (strcmp (results[3], "firstName") != 0) + { + fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", + results[3]); + return -58; + } + sqlite3_free_table (results); + +/* dropping the VirtualXPathL table */ + sql_statement = "DROP TABLE test_xp"; + ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "Drop VirtualXPath Table error: %s\n", err_msg); + sqlite3_free (err_msg); + return -59; + } + + sqlite3_close (db_handle); + spatialite_cleanup_ex (cache); + +#endif /* end LIBXML2 conditional */ + + spatialite_shutdown (); + return 0; +} diff --git a/src/spatialite/test/check_wfsin.c b/src/spatialite/test/check_wfsin.c new file mode 100644 index 0000000..8ca90ed --- /dev/null +++ b/src/spatialite/test/check_wfsin.c @@ -0,0 +1,826 @@ +/* + + check_wfsin.c -- SpatiaLite Test Case + + Author: Sandro Furieri + + ------------------------------------------------------------------------------ + + Version: MPL 1.1/GPL 2.0/LGPL 2.1 + + The contents of this file are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is the SpatiaLite library + +The Initial Developer of the Original Code is Alessandro Furieri + +Portions created by the Initial Developer are Copyright (C) 2013 +the Initial Developer. All Rights Reserved. + +Contributor(s): + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +*/ +#include +#include +#include +#include + +#include "config.h" + +#include "sqlite3.h" +#include "spatialite.h" +#include "spatialite/gg_wfs.h" + +int +main (int argc, char *argv[]) +{ + int ret; + sqlite3 *handle; + char *err_msg = NULL; + int row_count; + int count; + int srid; + gaiaWFScatalogPtr catalog = NULL; + gaiaWFSitemPtr lyr; + gaiaWFSschemaPtr schema; + gaiaWFScolumnPtr column; + char *str; + const char *name; + int type; + int dims; + int nillable; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + +#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ + ret = + load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs1", + "objectid", 1, &row_count, &err_msg, NULL, NULL); + if (!ret) + { + fprintf (stderr, "load_from_wfs() error for test.wfs (1): %s\n", + err_msg); + free (err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 3) + { + fprintf (stderr, "unexpected row count for test_wfs: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs2", + NULL, 0, &row_count, &err_msg, NULL, NULL); + if (!ret) + { + fprintf (stderr, "load_from_wfs() error for test.wfs (2): %s\n", + err_msg); + free (err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 3) + { + fprintf (stderr, "unexpected row count for test_wfs: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + catalog = create_wfs_catalog ("./getcapabilities-1.0.0.wfs", &err_msg); + if (catalog == NULL) + { + fprintf (stderr, + "create_wfs_catalog() error for getcapabilities-1.0.0.wfs: %s\n", + err_msg); + free (err_msg); + sqlite3_close (handle); + return -7; + } + + count = get_wfs_catalog_count (catalog); + if (count != 49) + { + fprintf (stderr, + "get_wfs_catalog_count() 1.0.0 error: got %d, expected 49\n", + count); + sqlite3_close (handle); + return -8; + } + + lyr = get_wfs_catalog_item (catalog, 2); + if (lyr == NULL) + { + fprintf (stderr, "get_wfs_catalog_item() 1.0.0 error (NULL)\n"); + sqlite3_close (handle); + return -9; + } + + str = (char *) get_wfs_item_name (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_name() 1.0.0 error (NULL)\n"); + sqlite3_close (handle); + return -10; + } + if (strcmp (str, "tiger:tiger_roads") != 0) + { + fprintf (stderr, + "get_wfs_item_name() 1.0.0 error: got \"%s\", expected \"tiger:tiger_roads\"\n", + str); + sqlite3_close (handle); + return -11; + } + + str = (char *) get_wfs_item_title (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_title() 1.0.0 error (NULL)\n"); + sqlite3_close (handle); + return -12; + } + if (strcmp (str, "Manhattan (NY) roads") != 0) + { + fprintf (stderr, + "get_wfs_item_title() 1.0.0 error: got \"%s\", expected \"Manhattan (NY) roads\"\n", + str); + sqlite3_close (handle); + return -13; + } + + str = (char *) get_wfs_item_abstract (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_abstract() error (NULL)\n"); + sqlite3_close (handle); + return -14; + } + if (strcmp (str, "Highly simplified road layout of Manhattan in New York..") + != 0) + { + fprintf (stderr, + "get_wfs_item_abstract() 1.0.0 error: got \"%s\", expected \"Highly simplified road layout of Manhattan in New York..\"\n", + str); + sqlite3_close (handle); + return -15; + } + + count = get_wfs_layer_srid_count (lyr); + if (count != 1) + { + fprintf (stderr, + "get_wfs_layer_srid_count() 1.0.0 error: got %d, expected 1\n", + count); + sqlite3_close (handle); + return -16; + } + + srid = get_wfs_layer_srid (lyr, 0); + if (srid != 4326) + { + fprintf (stderr, + "get_wfs_layer_srid() 1.0.0 error: got %d, expected 4326\n", + srid); + sqlite3_close (handle); + return -17; + } + + count = get_wfs_keyword_count (lyr); + if (count != 3) + { + fprintf (stderr, + "get_wfs_keyword_count() 1.0.0 error: got %d, expected 3\n", + count); + sqlite3_close (handle); + return -18; + } + + str = (char *) get_wfs_keyword (lyr, 2); + if (strcmp (str, "roads") != 0) + { + fprintf (stderr, + "get_wfs_keyword() 1.0.0 error: got \"%s\", expected \"roads\"\n", + str); + sqlite3_close (handle); + return -19; + } + + str = (char *) get_wfs_base_request_url (catalog); + if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) + { + fprintf (stderr, + "get_wfs_base_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", + str); + sqlite3_close (handle); + return -20; + } + + str = + (char *) get_wfs_request_url (catalog, "sf:roads", "1.0.0", 26713, -1); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713") + != 0) + { + fprintf (stderr, + "get_wfs_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713\"\n", + str); + sqlite3_close (handle); + return -21; + } + free (str); + + str = (char *) get_wfs_describe_url (catalog, "sf:roads", "1.0.0"); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads") + != 0) + { + fprintf (stderr, + "get_wfs_describe_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads\"\n", + str); + sqlite3_close (handle); + return -22; + } + free (str); + destroy_wfs_catalog (catalog); + + catalog = create_wfs_catalog ("./getcapabilities-1.1.0.wfs", &err_msg); + if (catalog == NULL) + { + fprintf (stderr, + "create_wfs_catalog() error for getcapabilities-1.1.0.wfs: %s\n", + err_msg); + free (err_msg); + sqlite3_close (handle); + return -23; + } + + count = get_wfs_catalog_count (catalog); + if (count != 49) + { + fprintf (stderr, + "get_wfs_catalog_count() 1.1.0 error: got %d, expected 49\n", + count); + sqlite3_close (handle); + return -24; + } + + lyr = get_wfs_catalog_item (catalog, 3); + if (lyr == NULL) + { + fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -25; + } + + str = (char *) get_wfs_item_name (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -26; + } + if (strcmp (str, "sf:archsites") != 0) + { + fprintf (stderr, + "get_wfs_item_name() 1.1.0 error: got \"%s\", expected \"sf:archsites\"\n", + str); + sqlite3_close (handle); + return -27; + } + + str = (char *) get_wfs_item_title (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_title() error (NULL)\n"); + sqlite3_close (handle); + return -28; + } + if (strcmp (str, "Spearfish archeological sites") != 0) + { + fprintf (stderr, + "get_wfs_item_title() 1.1.0 error: got \"%s\", expected \"Spearfish archeological sites\"\n", + str); + sqlite3_close (handle); + return -29; + } + + str = (char *) get_wfs_item_abstract (lyr); + if (str == NULL) + { + fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -30; + } + if (strcmp + (str, + "Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA") + != 0) + { + fprintf (stderr, + "get_wfs_item_abstract() 1.1.0 error: got \"%s\", expected \"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA\"\n", + str); + sqlite3_close (handle); + return -31; + } + + count = get_wfs_layer_srid_count (lyr); + if (count != 1) + { + fprintf (stderr, + "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected 1\n", + count); + sqlite3_close (handle); + return -32; + } + + srid = get_wfs_layer_srid (lyr, 0); + if (srid != 26713) + { + fprintf (stderr, + "get_wfs_layer_srid() 1.1.0 error: got %d, expected 26713\n", + srid); + sqlite3_close (handle); + return -33; + } + + srid = get_wfs_layer_srid (lyr, 10); + if (srid != -1) + { + fprintf (stderr, + "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", + srid); + sqlite3_close (handle); + return -34; + } + + count = get_wfs_keyword_count (lyr); + if (count != 4) + { + fprintf (stderr, + "get_wfs_keyword_count() 1.1.0 error: got %d, expected 4\n", + count); + sqlite3_close (handle); + return -35; + } + + str = (char *) get_wfs_keyword (lyr, 1); + if (strcmp (str, "spearfish") != 0) + { + fprintf (stderr, + "get_wfs_keyword() 1.1.0 error: got \"%s\", expected \"spearfish\"\n", + str); + sqlite3_close (handle); + return -36; + } + + str = (char *) get_wfs_keyword (lyr, 100); + if (str != NULL) + { + fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); + sqlite3_close (handle); + return -37; + } + + str = (char *) get_wfs_base_request_url (catalog); + if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) + { + fprintf (stderr, + "get_wfs_base_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", + str); + sqlite3_close (handle); + return -38; + } + + str = get_wfs_request_url (catalog, "sf:roads", "1.1.0", 26713, 100); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100") + != 0) + { + fprintf (stderr, + "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100\"\n", + str); + sqlite3_close (handle); + return -39; + } + free (str); + + str = get_wfs_request_url (catalog, NULL, "1.1.0", 26713, -1); + if (str != NULL) + { + fprintf (stderr, + "get_wfs_request_url() 1.1.0 error: expected NULL\n"); + sqlite3_close (handle); + return -40; + } + free (str); + + str = get_wfs_request_url (catalog, "sf:roads", NULL, -1, 100); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") + != 0) + { + fprintf (stderr, + "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", + str); + sqlite3_close (handle); + return -41; + } + free (str); + + str = get_wfs_request_url (catalog, "sf:roads", NULL, 1234, 100); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") + != 0) + { + fprintf (stderr, + "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", + str); + sqlite3_close (handle); + return -42; + } + free (str); + + str = get_wfs_describe_url (catalog, "sf:roads", "1.1.0"); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") + != 0) + { + fprintf (stderr, + "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", + str); + sqlite3_close (handle); + return -43; + } + free (str); + + str = get_wfs_describe_url (catalog, NULL, "1.1.0"); + if (str != NULL) + { + fprintf (stderr, + "get_wfs_describe_url() 1.1.0 error: : expected NULL\n"); + sqlite3_close (handle); + return -44; + } + free (str); + + str = get_wfs_describe_url (catalog, "sf:roads", NULL); + if (strcmp + (str, + "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") + != 0) + { + fprintf (stderr, + "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", + str); + sqlite3_close (handle); + return -45; + } + free (str); + destroy_wfs_catalog (catalog); + + lyr = get_wfs_catalog_item (NULL, 3); + if (lyr != NULL) + { + fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -46; + } + + str = (char *) get_wfs_item_name (NULL); + if (str != NULL) + { + fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -47; + } + + str = (char *) get_wfs_item_title (NULL); + if (str != NULL) + { + fprintf (stderr, "get_wfs_item_title() error (NULL)\n"); + sqlite3_close (handle); + return -48; + } + + str = (char *) get_wfs_item_abstract (NULL); + if (str != NULL) + { + fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); + sqlite3_close (handle); + return -49; + } + + count = get_wfs_layer_srid_count (NULL); + if (count != -1) + { + fprintf (stderr, + "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected -1\n", + count); + sqlite3_close (handle); + return -50; + } + + srid = get_wfs_layer_srid (NULL, 0); + if (srid != -1) + { + fprintf (stderr, + "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", + srid); + sqlite3_close (handle); + return -51; + } + + count = get_wfs_keyword_count (NULL); + if (count != -1) + { + fprintf (stderr, + "get_wfs_keyword_count() 1.1.0 error: got %d, expected -1\n", + count); + sqlite3_close (handle); + return -52; + } + + str = (char *) get_wfs_keyword (NULL, 1); + if (str != NULL) + { + fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); + sqlite3_close (handle); + return -53; + } + + str = (char *) get_wfs_keyword (NULL, 100); + if (str != NULL) + { + fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); + sqlite3_close (handle); + return -54; + } + + str = (char *) get_wfs_base_request_url (NULL); + if (str != NULL) + { + fprintf (stderr, "get_wfs_base_request_url() error: expected NULL\n"); + sqlite3_close (handle); + return -55; + } + + str = (char *) get_wfs_base_describe_url (NULL); + if (str != NULL) + { + fprintf (stderr, + "get_wfs_base_describe_url() error: expected NULL\n"); + sqlite3_close (handle); + return -56; + } + + str = (char *) get_wfs_request_url (NULL, "sf:roads", "1.1.0", 26713, -1); + if (str != NULL) + { + fprintf (stderr, "get_wfs_request_url() error: expected NULL\n"); + sqlite3_close (handle); + return -57; + } + + str = (char *) get_wfs_describe_url (NULL, "sf:roads", "1.1.0"); + if (str != NULL) + { + fprintf (stderr, "get_wfs_describe_url() error: expected NULL\n"); + sqlite3_close (handle); + return -58; + } + destroy_wfs_catalog (NULL); + + schema = + create_wfs_schema ("./describefeaturetype.wfs", "sf:roads", &err_msg); + if (schema == NULL) + { + fprintf (stderr, + "create_wfs_schema() error for describefeaturetype.wfs: %s\n", + err_msg); + free (err_msg); + sqlite3_close (handle); + return -59; + } + + count = get_wfs_schema_column_count (schema); + if (count != 8) + { + fprintf (stderr, + "get_wfs_schema_column_count() error: got %d, expected 8\n", + count); + sqlite3_close (handle); + return -60; + } + + column = get_wfs_schema_column (schema, 5); + if (column == NULL) + { + fprintf (stderr, "get_wfs_schema_column() error (NULL)\n"); + sqlite3_close (handle); + return -61; + } + + if (get_wfs_schema_column_info (column, &name, &type, &nillable) == 0) + { + fprintf (stderr, "get_wfs_schema_column_info() error\n"); + sqlite3_close (handle); + return -62; + } + + if (strcmp (name, "codcom") != 0) + { + fprintf (stderr, + "get_wfs_schema_column_info() NAME error: got \"%s\", expected \"codcom\"\n", + name); + sqlite3_close (handle); + return -63; + } + + if (type != SQLITE_TEXT) + { + fprintf (stderr, + "get_wfs_schema_column_info() TYPE error: got %d, expected %d\n", + type, SQLITE_TEXT); + sqlite3_close (handle); + return -64; + } + + if (nillable == 0) + { + fprintf (stderr, + "get_wfs_schema_column_info() NILLABLE error: got %d, expected 1\n", + nillable); + sqlite3_close (handle); + return -65; + } + + if (get_wfs_schema_geometry_info + (schema, &name, &type, &srid, &dims, &nillable) == 0) + { + fprintf (stderr, "get_wfs_schema_geometry_info() error\n"); + sqlite3_close (handle); + return -66; + } + + if (strcmp (name, "geometry") != 0) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() NAME error: got \"%s\", expected \"geometry\"\n", + name); + sqlite3_close (handle); + return -67; + } + + if (type != GAIA_MULTIPOLYGON) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() TYPE error: got %d, expected %d\n", + type, GAIA_MULTIPOLYGON); + sqlite3_close (handle); + return -68; + } + + if (srid != -1) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() TYPE error: got %d, expected -1\n", + srid); + sqlite3_close (handle); + return -69; + } + + if (dims != 2) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() DIMS error: got %d, expected 2\n", + dims); + sqlite3_close (handle); + return -70; + } + + if (nillable == 0) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() NILLABLE error: got %d, expected 1\n", + nillable); + sqlite3_close (handle); + return -71; + } + destroy_wfs_schema (schema); + + schema = create_wfs_schema (NULL, NULL, &err_msg); + if (schema != NULL) + { + fprintf (stderr, "create_wfs_schema() unexpected result for NULL\n"); + free (err_msg); + sqlite3_close (handle); + return -72; + } + + count = get_wfs_schema_column_count (NULL); + if (count != -1) + { + fprintf (stderr, + "get_wfs_schema_column_count() unexpected result for NULL\n"); + sqlite3_close (handle); + return -73; + } + + column = get_wfs_schema_column (NULL, 5); + if (column != NULL) + { + fprintf (stderr, + "get_wfs_schema_column() unexpected result for NULL\n"); + sqlite3_close (handle); + return -74; + } + + if (get_wfs_schema_column_info (NULL, &name, &type, &nillable) != 0) + { + fprintf (stderr, + "get_wfs_schema_column_info() unexpected result for NULL\n"); + sqlite3_close (handle); + return -75; + } + + if (get_wfs_schema_geometry_info + (NULL, &name, &type, &srid, &dims, &nillable) != 0) + { + fprintf (stderr, + "get_wfs_schema_geometry_info() unexpected result for NULL\n"); + sqlite3_close (handle); + return -76; + } + destroy_wfs_schema (NULL); + +#endif /* end LIBXML2 conditional */ + + ret = sqlite3_close (handle); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -77; + } + + spatialite_cleanup_ex (cache); + spatialite_shutdown (); + + return 0; +} diff --git a/src/spatialite/test/check_xls_load.c b/src/spatialite/test/check_xls_load.c index be18d95..d1cad77 100644 --- a/src/spatialite/test/check_xls_load.c +++ b/src/spatialite/test/check_xls_load.c @@ -50,7 +50,8 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ int ret; @@ -58,73 +59,101 @@ int main (int argc, char *argv[]) char *err_msg = NULL; unsigned int row_count; int rcnt; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_XL() error: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 17) { - fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 19) { - fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n", row_count); - sqlite3_close(handle); - return -6; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory db: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_XL() error: %s\n", err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 17) + { + fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 19) + { + fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n", + row_count); + sqlite3_close (handle); + return -6; + } check_duplicated_rows (handle, "test1", &rcnt); - if (rcnt != 0) { - fprintf (stderr, "check_duplicated_rows() unexpected duplicate count: %d\n", rcnt); - sqlite3_close(handle); - return -8; - } + if (rcnt != 0) + { + fprintf (stderr, + "check_duplicated_rows() unexpected duplicate count: %d\n", + rcnt); + sqlite3_close (handle); + return -8; + } check_duplicated_rows (handle, "test2", &rcnt); - if (rcnt != 2) { - fprintf (stderr, "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n", rcnt); - sqlite3_close(handle); - return -10; - } + if (rcnt != 2) + { + fprintf (stderr, + "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n", + rcnt); + sqlite3_close (handle); + return -10; + } remove_duplicated_rows (handle, "test1"); remove_duplicated_rows (handle, "test2"); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -11; - } - - spatialite_cleanup(); -#endif /* end FreeXL conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -11; + } + + spatialite_cleanup_ex (cache); +#endif /* end FreeXL conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/describefeaturetype.wfs b/src/spatialite/test/describefeaturetype.wfs new file mode 100644 index 0000000..a89cf1a --- /dev/null +++ b/src/spatialite/test/describefeaturetype.wfs @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/spatialite/test/empty.png b/src/spatialite/test/empty.png new file mode 100644 index 0000000..c408fe3 Binary files /dev/null and b/src/spatialite/test/empty.png differ diff --git a/src/spatialite/test/empty.tif b/src/spatialite/test/empty.tif new file mode 100644 index 0000000..efead20 Binary files /dev/null and b/src/spatialite/test/empty.tif differ diff --git a/src/spatialite/test/f06.dxf b/src/spatialite/test/f06.dxf new file mode 100644 index 0000000..edb0b05 --- /dev/null +++ b/src/spatialite/test/f06.dxf @@ -0,0 +1,1394 @@ + 0 +SECTION + 2 +HEADER + 9 +$EXTMIN + 10 +663365.734 + 20 +5165233.713 + 30 +-6.270 + 9 +$EXTMAX + 10 +669267.494 + 20 +5173336.006 + 30 +828.070 + 9 +$LUPREC + 70 + 7 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 + 1 + 0 +LAYER + 2 +SHP_POLY + 70 +64 + 62 +7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 8 +SHP_POLY + 2 +BLK000001 + 70 + 64 + 10 +666648.328 + 20 +5168231.314 + 30 +284.570 + 0 +POLYLINE + 8 +SHP_POLY + 66 + 1 + 70 + 9 + 0 +VERTEX + 8 +SHP_POLY + 10 +666648.328 + 20 +5168231.314 + 30 +284.570 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666652.308 + 20 +5168235.614 + 30 +282.610 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666651.978 + 20 +5168241.614 + 30 +282.570 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666651.408 + 20 +5168251.684 + 30 +279.890 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666651.268 + 20 +5168254.114 + 30 +282.570 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666650.858 + 20 +5168261.574 + 30 +284.330 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666651.588 + 20 +5168262.864 + 30 +284.310 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666657.392 + 20 +5168270.448 + 30 +284.001 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666660.794 + 20 +5168269.261 + 30 +283.990 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666655.568 + 20 +5168262.864 + 30 +284.350 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.568 + 20 +5168260.824 + 30 +284.430 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.318 + 20 +5168259.644 + 30 +284.430 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.308 + 20 +5168257.774 + 30 +284.450 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.578 + 20 +5168250.864 + 30 +284.450 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666655.858 + 20 +5168233.744 + 30 +284.810 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666653.298 + 20 +5168229.974 + 30 +284.790 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666653.198 + 20 +5168226.764 + 30 +284.710 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666653.708 + 20 +5168220.585 + 30 +284.590 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666661.418 + 20 +5168215.005 + 30 +285.050 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666668.867 + 20 +5168215.474 + 30 +285.210 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666671.327 + 20 +5168218.824 + 30 +285.170 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666672.257 + 20 +5168218.894 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666674.767 + 20 +5168219.074 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666673.937 + 20 +5168218.024 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666674.917 + 20 +5168217.094 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666675.207 + 20 +5168213.044 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666674.367 + 20 +5168211.995 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666675.347 + 20 +5168211.075 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666675.627 + 20 +5168207.045 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666674.787 + 20 +5168205.995 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666675.767 + 20 +5168205.065 + 30 +284.990 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666676.067 + 20 +5168200.865 + 30 +284.990 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666679.857 + 20 +5168196.155 + 30 +284.990 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666679.407 + 20 +5168201.105 + 30 +284.950 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666683.607 + 20 +5168201.405 + 30 +284.810 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666684.237 + 20 +5168196.145 + 30 +284.830 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666669.687 + 20 +5168178.795 + 30 +285.030 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666670.337 + 20 +5168169.915 + 30 +285.110 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666692.737 + 20 +5168171.275 + 30 +284.210 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666692.937 + 20 +5168168.645 + 30 +290.710 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666686.967 + 20 +5168168.005 + 30 +284.090 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666670.617 + 20 +5168166.875 + 30 +285.170 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666667.677 + 20 +5168166.675 + 30 +285.170 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666664.867 + 20 +5168164.475 + 30 +285.170 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666664.207 + 20 +5168173.905 + 30 +283.640 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666664.047 + 20 +5168176.155 + 30 +283.640 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666662.977 + 20 +5168177.415 + 30 +284.980 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666651.477 + 20 +5168187.515 + 30 +284.870 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666650.438 + 20 +5168205.285 + 30 +284.950 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666650.798 + 20 +5168206.205 + 30 +284.930 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666650.218 + 20 +5168220.295 + 30 +284.550 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666649.868 + 20 +5168229.904 + 30 +284.510 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666648.328 + 20 +5168231.314 + 30 +284.570 + 70 + 32 + 0 +SEQEND + 8 +SHP_POLY + 0 +POLYLINE + 8 +SHP_POLY + 66 + 1 + 70 + 9 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.238 + 20 +5168211.325 + 30 +284.930 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666653.328 + 20 +5168209.745 + 30 +284.930 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.717 + 20 +5168188.655 + 30 +284.890 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666664.027 + 20 +5168180.565 + 30 +285.030 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666666.977 + 20 +5168180.685 + 30 +285.030 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666670.247 + 20 +5168185.185 + 30 +284.890 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666663.647 + 20 +5168191.765 + 30 +284.910 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666667.377 + 20 +5168196.975 + 30 +284.910 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666670.647 + 20 +5168200.655 + 30 +284.950 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666671.097 + 20 +5168202.175 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666670.417 + 20 +5168208.475 + 30 +284.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666665.057 + 20 +5168212.055 + 30 +284.930 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666654.238 + 20 +5168211.325 + 30 +284.930 + 70 + 32 + 0 +SEQEND + 8 +SHP_POLY + 0 +POLYLINE + 8 +SHP_POLY + 66 + 1 + 70 + 9 + 0 +VERTEX + 8 +SHP_POLY + 10 +666673.417 + 20 +5168199.475 + 30 +285.010 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666671.517 + 20 +5168196.865 + 30 +285.030 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666672.017 + 20 +5168189.235 + 30 +285.050 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666674.107 + 20 +5168189.265 + 30 +285.070 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666677.817 + 20 +5168193.665 + 30 +285.030 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666673.417 + 20 +5168199.475 + 30 +285.010 + 70 + 32 + 0 +SEQEND + 8 +SHP_POLY + 0 +ENDBLK + 0 +BLOCK + 8 +SHP_POLY + 2 +BLK000002 + 70 + 64 + 10 +666583.381 + 20 +5168444.861 + 30 +286.970 + 0 +POLYLINE + 8 +SHP_POLY + 66 + 1 + 70 + 9 + 0 +VERTEX + 8 +SHP_POLY + 10 +666583.381 + 20 +5168444.861 + 30 +286.970 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666589.780 + 20 +5168417.361 + 30 +288.090 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666586.980 + 20 +5168410.462 + 30 +287.870 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666586.580 + 20 +5168406.662 + 30 +287.770 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666586.880 + 20 +5168402.662 + 30 +287.750 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666587.580 + 20 +5168398.662 + 30 +287.810 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666589.680 + 20 +5168394.462 + 30 +287.810 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666593.180 + 20 +5168390.462 + 30 +288.010 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666593.580 + 20 +5168386.962 + 30 +286.770 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666592.980 + 20 +5168389.462 + 30 +287.090 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666590.280 + 20 +5168392.562 + 30 +286.890 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666588.680 + 20 +5168395.162 + 30 +286.830 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666587.080 + 20 +5168398.362 + 30 +286.850 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666586.180 + 20 +5168402.462 + 30 +286.590 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666585.980 + 20 +5168407.062 + 30 +286.570 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666586.370 + 20 +5168410.662 + 30 +286.590 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666587.880 + 20 +5168413.962 + 30 +286.650 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666589.180 + 20 +5168417.361 + 30 +286.650 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666582.781 + 20 +5168444.561 + 30 +286.790 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666583.381 + 20 +5168444.861 + 30 +286.970 + 70 + 32 + 0 +SEQEND + 8 +SHP_POLY + 0 +ENDBLK + 0 +BLOCK + 8 +SHP_POLY + 2 +BLK000003 + 70 + 64 + 10 +666616.449 + 20 +5168334.043 + 30 +286.070 + 0 +POLYLINE + 8 +SHP_POLY + 66 + 1 + 70 + 9 + 0 +VERTEX + 8 +SHP_POLY + 10 +666616.449 + 20 +5168334.043 + 30 +286.070 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666621.049 + 20 +5168327.043 + 30 +285.890 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666640.949 + 20 +5168310.843 + 30 +285.570 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666642.349 + 20 +5168309.343 + 30 +285.130 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666620.849 + 20 +5168326.643 + 30 +282.830 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666615.879 + 20 +5168333.653 + 30 +282.250 + 70 + 32 + 0 +VERTEX + 8 +SHP_POLY + 10 +666616.449 + 20 +5168334.043 + 30 +286.070 + 70 + 32 + 0 +SEQEND + 8 +SHP_POLY + 0 +ENDBLK + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +INSERT + 8 +SHP_POLY + 2 +BLK000001 + 10 +666648.328 + 20 +5168231.314 + 30 +284.570 + 0 +INSERT + 8 +SHP_POLY + 2 +BLK000002 + 10 +666583.381 + 20 +5168444.861 + 30 +286.970 + 0 +INSERT + 8 +SHP_POLY + 2 +BLK000003 + 10 +666616.449 + 20 +5168334.043 + 30 +286.070 + 0 +EOF diff --git a/src/spatialite/test/fnmatch_impl4win.h b/src/spatialite/test/fnmatch_impl4win.h index 31184d6..56bfa70 100644 --- a/src/spatialite/test/fnmatch_impl4win.h +++ b/src/spatialite/test/fnmatch_impl4win.h @@ -48,146 +48,151 @@ static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; #define EOS '\0' -static const char *rangematch(const char *, char, int); +static const char *rangematch (const char *, char, int); -int fnmatch(const char *pattern, const char *string, int flags) +int +fnmatch (const char *pattern, const char *string, int flags) { - const char *stringstart; - char c, test; - - for (stringstart = string;;) - switch (c = *pattern++) { - case EOS: - if ((flags & FNM_LEADING_DIR) && *string == '/') - return (0); - return (*string == EOS ? 0 : FNM_NOMATCH); - case '?': - if (*string == EOS) - return (FNM_NOMATCH); - if (*string == '/' && (flags & FNM_PATHNAME)) - return (FNM_NOMATCH); - if (*string == '.' && (flags & FNM_PERIOD) && - (string == stringstart || - ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) - return (FNM_NOMATCH); - ++string; - break; - case '*': - c = *pattern; - /* Collapse multiple stars. */ - while (c == '*') - c = *++pattern; - - if (*string == '.' && (flags & FNM_PERIOD) && - (string == stringstart || - ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) - return (FNM_NOMATCH); - - /* Optimize for pattern with * at end or before /. */ - if (c == EOS) - if (flags & FNM_PATHNAME) - return ((flags & FNM_LEADING_DIR) || - strchr(string, '/') == NULL ? - 0 : FNM_NOMATCH); - else - return (0); - else if (c == '/' && flags & FNM_PATHNAME) { - if ((string = strchr(string, '/')) == NULL) - return (FNM_NOMATCH); - break; - } - - /* General case, use recursion. */ - while ((test = *string) != EOS) { - if (!fnmatch(pattern, string, flags & ~FNM_PERIOD)) - return (0); - if (test == '/' && flags & FNM_PATHNAME) - break; - ++string; - } - return (FNM_NOMATCH); - case '[': - if (*string == EOS) - return (FNM_NOMATCH); - if (*string == '/' && flags & FNM_PATHNAME) - return (FNM_NOMATCH); - if ((pattern = - rangematch(pattern, *string, flags)) == NULL) - return (FNM_NOMATCH); - ++string; - break; - case '\\': - if (!(flags & FNM_NOESCAPE)) { - if ((c = *pattern++) == EOS) { - c = '\\'; - --pattern; - } - } - /* FALLTHROUGH */ - default: - if (c == *string) - ; - else if ((flags & FNM_CASEFOLD) && - (tolower((unsigned char)c) == - tolower((unsigned char)*string))) - ; - else if ((flags & FNM_PREFIX_DIRS) && *string == EOS && - (c == '/' && string != stringstart || - string == stringstart+1 && *stringstart == '/') ) - return (0); - else - return (FNM_NOMATCH); - string++; - break; - } - /* NOTREACHED */ + const char *stringstart; + char c, test; + + for (stringstart = string;;) + switch (c = *pattern++) + { + case EOS: + if ((flags & FNM_LEADING_DIR) && *string == '/') + return (0); + return (*string == EOS ? 0 : FNM_NOMATCH); + case '?': + if (*string == EOS) + return (FNM_NOMATCH); + if (*string == '/' && (flags & FNM_PATHNAME)) + return (FNM_NOMATCH); + if (*string == '.' && (flags & FNM_PERIOD) && + (string == stringstart || + ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) + return (FNM_NOMATCH); + ++string; + break; + case '*': + c = *pattern; + /* Collapse multiple stars. */ + while (c == '*') + c = *++pattern; + + if (*string == '.' && (flags & FNM_PERIOD) && + (string == stringstart || + ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) + return (FNM_NOMATCH); + + /* Optimize for pattern with * at end or before /. */ + if (c == EOS) + if (flags & FNM_PATHNAME) + return ((flags & FNM_LEADING_DIR) || + strchr (string, '/') == NULL ? 0 : FNM_NOMATCH); + else + return (0); + else if (c == '/' && flags & FNM_PATHNAME) + { + if ((string = strchr (string, '/')) == NULL) + return (FNM_NOMATCH); + break; + } + + /* General case, use recursion. */ + while ((test = *string) != EOS) + { + if (!fnmatch (pattern, string, flags & ~FNM_PERIOD)) + return (0); + if (test == '/' && flags & FNM_PATHNAME) + break; + ++string; + } + return (FNM_NOMATCH); + case '[': + if (*string == EOS) + return (FNM_NOMATCH); + if (*string == '/' && flags & FNM_PATHNAME) + return (FNM_NOMATCH); + if ((pattern = rangematch (pattern, *string, flags)) == NULL) + return (FNM_NOMATCH); + ++string; + break; + case '\\': + if (!(flags & FNM_NOESCAPE)) + { + if ((c = *pattern++) == EOS) + { + c = '\\'; + --pattern; + } + } + /* FALLTHROUGH */ + default: + if (c == *string) + ; + else if ((flags & FNM_CASEFOLD) && + (tolower ((unsigned char) c) == + tolower ((unsigned char) *string))) + ; + else if ((flags & FNM_PREFIX_DIRS) && *string == EOS && + (c == '/' && string != stringstart || + string == stringstart + 1 && *stringstart == '/')) + return (0); + else + return (FNM_NOMATCH); + string++; + break; + } + /* NOTREACHED */ } static const char * -rangematch(const char *pattern, char test, int flags) +rangematch (const char *pattern, char test, int flags) { - int negate, ok; - char c, c2; - - /* - * A bracket expression starting with an unquoted circumflex - * character produces unspecified results (IEEE 1003.2-1992, - * 3.13.2). This implementation treats it like '!', for - * consistency with the regular expression syntax. - * J.T. Conklin (conklin@ngai.kaleida.com) - */ - if ( (negate = (*pattern == '!' || *pattern == '^')) ) - ++pattern; - - if (flags & FNM_CASEFOLD) - test = tolower((unsigned char)test); - - for (ok = 0; (c = *pattern++) != ']';) { - if (c == '\\' && !(flags & FNM_NOESCAPE)) - c = *pattern++; - if (c == EOS) - return (NULL); - - if (flags & FNM_CASEFOLD) - c = tolower((unsigned char)c); - - if (*pattern == '-' - && (c2 = *(pattern+1)) != EOS && c2 != ']') { - pattern += 2; - if (c2 == '\\' && !(flags & FNM_NOESCAPE)) - c2 = *pattern++; - if (c2 == EOS) - return (NULL); - - if (flags & FNM_CASEFOLD) - c2 = tolower((unsigned char)c2); - - if ((unsigned char)c <= (unsigned char)test && - (unsigned char)test <= (unsigned char)c2) - ok = 1; - } else if (c == test) - ok = 1; - } - return (ok == negate ? NULL : pattern); + int negate, ok; + char c, c2; + + /* + * A bracket expression starting with an unquoted circumflex + * character produces unspecified results (IEEE 1003.2-1992, + * 3.13.2). This implementation treats it like '!', for + * consistency with the regular expression syntax. + * J.T. Conklin (conklin@ngai.kaleida.com) + */ + if ((negate = (*pattern == '!' || *pattern == '^'))) + ++pattern; + + if (flags & FNM_CASEFOLD) + test = tolower ((unsigned char) test); + + for (ok = 0; (c = *pattern++) != ']';) + { + if (c == '\\' && !(flags & FNM_NOESCAPE)) + c = *pattern++; + if (c == EOS) + return (NULL); + + if (flags & FNM_CASEFOLD) + c = tolower ((unsigned char) c); + + if (*pattern == '-' && (c2 = *(pattern + 1)) != EOS && c2 != ']') + { + pattern += 2; + if (c2 == '\\' && !(flags & FNM_NOESCAPE)) + c2 = *pattern++; + if (c2 == EOS) + return (NULL); + + if (flags & FNM_CASEFOLD) + c2 = tolower ((unsigned char) c2); + + if ((unsigned char) c <= (unsigned char) test && + (unsigned char) test <= (unsigned char) c2) + ok = 1; + } + else if (c == test) + ok = 1; + } + return (ok == negate ? NULL : pattern); } - diff --git a/src/spatialite/test/getcapabilities-1.0.0.wfs b/src/spatialite/test/getcapabilities-1.0.0.wfs new file mode 100644 index 0000000..5d729c2 --- /dev/null +++ b/src/spatialite/test/getcapabilities-1.0.0.wfs @@ -0,0 +1 @@ +WFSGeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFS, WMS, GEOSERVERhttp://www.gaia-gis.it:8080/geoserver/wfsNONENONEtiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarks, DS_poly_landmarks, manhattan, poly_landmarksEPSG:4326tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poi, Manhattan, DS_poi, points_of_interestEPSG:4326tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roads, tiger_roads, roadsEPSG:4326sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsites, spearfish, sfArchsites, archeologyEPSG:26713sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfish, sfBugsites, insects, bugsites, tiger_beetlesEPSG:26713sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfish, restricted, areas, sfRestrictedEPSG:26713sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoads, spearfish, roadsEPSG:26713sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfish, sfStreams, streamsEPSG:26713topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)cities, TasmaniaEPSG:4326topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoads, TasmaniaEPSG:4326topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundaries, tasmania_state_boundaries, TasmaniaEPSG:4326topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakes, Bodies, Australia, Water, TasmaniaEPSG:4326topp:statesUSA PopulationThis is some census data on the states.census, united, boundaries, state, statesEPSG:4326tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygon, giant_polygonEPSG:4326topp:centri_abitati_sismacentri_abitatiEPSG:25832topp:comuni_sismacomuniEPSG:25832topp:comunicomuniEPSG:23032topp:edifici_sismaedificiEPSG:25832topp:f02f02EPSG:25832topp:f03f03EPSG:25832topp:f04f04EPSG:25832topp:f05f05EPSG:25832topp:f06f06EPSG:25832topp:f08f08EPSG:25832topp:ferrovieferrovieEPSG:23032topp:l02l02EPSG:25832topp:l03l03EPSG:25832topp:l05l05EPSG:25832topp:l06l06EPSG:25832topp:l07l07EPSG:25832topp:l09l09EPSG:25832topp:l10l10EPSG:25832topp:localita_sismalocalitaEPSG:25832topp:p02p02EPSG:25832topp:p03p03EPSG:25832topp:p05p05EPSG:25832topp:p06p06EPSG:25832topp:p07p07EPSG:25832topp:p08p08EPSG:25832topp:p09p09EPSG:25832topp:p10p10EPSG:25832topp:poi_testpoi_testEPSG:25832topp:province_sismaprovinceEPSG:25832topp:provinceprovinceEPSG:23032topp:regioniregioniEPSG:23032topp:stazionistazioniEPSG:23032topp:strade_sismastradeEPSG:25832topp:toponimi_sismatoponimiEPSG:25832topp:zona_sismicazona_sismicaEPSG:25832absabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniquecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomrelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithin diff --git a/src/spatialite/test/getcapabilities-1.1.0.wfs b/src/spatialite/test/getcapabilities-1.1.0.wfs new file mode 100644 index 0000000..4b5276c --- /dev/null +++ b/src/spatialite/test/getcapabilities-1.1.0.wfs @@ -0,0 +1 @@ +GeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFSWMSGEOSERVERWFS1.1.0NONENONEThe ancient geographes INCClaudius PtolomaeusChief geographerAlexandriaEgypt1.0.01.1.0text/xmltext/xml; subtype=gml/3.1.1resultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.22ALLSOMEresultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.2text/xml; subtype=gml/3.1.1GenerateNewUseExistingReplaceDuplicateALLSOMEQueryInsertUpdateDeleteLocktiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarksDS_poly_landmarksmanhattanpoly_landmarksurn:x-ogc:def:crs:EPSG:4326-74.047185 40.679648-73.90782 40.882078tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poiManhattanDS_poipoints_of_interesturn:x-ogc:def:crs:EPSG:4326-74.0118315772888 40.70754683896324-74.00857344353275 40.711945649065406tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roadstiger_roadsroadsurn:x-ogc:def:crs:EPSG:4326-74.02722 40.684221-73.907005 40.878178sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsitesspearfishsfArchsitesarcheologyurn:x-ogc:def:crs:EPSG:26713-103.8725637911543 44.37740330855979-103.63794182141925 44.48804280772808sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfishsfBugsitesinsectsbugsitestiger_beetlesurn:x-ogc:def:crs:EPSG:26713-103.86796131703647 44.373938816704396-103.63773523234195 44.43418821380063sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfishrestrictedareassfRestrictedurn:x-ogc:def:crs:EPSG:26713-103.85057172920756 44.39436387625042-103.74741494853805 44.48215752041131sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoadsspearfishroadsurn:x-ogc:def:crs:EPSG:26713-103.87741691493184 44.37087275281798-103.62231404880659 44.50015918338962sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfishsfStreamsstreamsurn:x-ogc:def:crs:EPSG:26713-103.87789019829768 44.372335260095554-103.62287788915457 44.502218486214815topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)citiesTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoadsTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundariestasmania_state_boundariesTasmaniaurn:x-ogc:def:crs:EPSG:4326143.83482400000003 -43.648056148.47914100000003 -39.573891topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakesBodiesAustraliaWaterTasmaniaurn:x-ogc:def:crs:EPSG:4326145.97161899999998 -43.031944147.219696 -41.775558topp:statesUSA PopulationThis is some census data on the states.censusunitedboundariesstatestatesurn:x-ogc:def:crs:EPSG:4326-124.731422 24.955967-66.969849 49.371735tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygongiant_polygonurn:x-ogc:def:crs:EPSG:4326-180.0 -90.0180.0 90.0topp:centri_abitati_sismacentri_abitatiurn:x-ogc:def:crs:EPSG:2583210.721 44.61311.656 44.92topp:comuni_sismacomuniurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:comunicomuniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:edifici_sismaedificiurn:x-ogc:def:crs:EPSG:2583210.65 44.55511.881 44.97topp:f02f02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.691topp:f03f03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f04f04urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f05f05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f06f06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:f08f08urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:ferrovieferrovieurn:x-ogc:def:crs:EPSG:230326.578 36.52619.547 47.048topp:l02l02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l03l03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.204 46.691topp:l05l05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.694topp:l06l06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:l07l07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l09l09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.692topp:l10l10urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.213 46.695topp:localita_sismalocalitaurn:x-ogc:def:crs:EPSG:2583210.666 44.56611.877 44.967topp:p02p02urn:x-ogc:def:crs:EPSG:2583211.148 46.65811.157 46.681topp:p03p03urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.212 46.691topp:p05p05urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.203 46.69topp:p06p06urn:x-ogc:def:crs:EPSG:2583211.135 46.6211.211 46.69topp:p07p07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:p08p08urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.211 46.69topp:p09p09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.691topp:p10p10urn:x-ogc:def:crs:EPSG:2583211.138 46.6211.204 46.69topp:poi_testpoi_testurn:x-ogc:def:crs:EPSG:2583211.152 46.64111.192 46.682topp:province_sismaprovinceurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:provinceprovinceurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:regioniregioniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:stazionistazioniurn:x-ogc:def:crs:EPSG:230326.632 36.53919.459 46.964topp:strade_sismastradeurn:x-ogc:def:crs:EPSG:2583210.563 44.52211.885 44.98topp:toponimi_sismatoponimiurn:x-ogc:def:crs:EPSG:2583210.675 44.56811.874 44.962topp:zona_sismicazona_sismicaurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975gml:Envelopegml:Pointgml:LineStringgml:PolygonLessThanGreaterThanLessThanEqualToGreaterThanEqualToEqualToNotEqualToLikeBetweenNullCheckabsabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsCategorizeceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniqueConcatenatecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNInterpolateintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomRecoderelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithin \ No newline at end of file diff --git a/src/spatialite/test/gpkg_test.gpkg b/src/spatialite/test/gpkg_test.gpkg new file mode 100644 index 0000000..427b370 Binary files /dev/null and b/src/spatialite/test/gpkg_test.gpkg differ diff --git a/src/spatialite/test/gpkg_test.sqlite b/src/spatialite/test/gpkg_test.sqlite new file mode 100644 index 0000000..f06aa5c Binary files /dev/null and b/src/spatialite/test/gpkg_test.sqlite differ diff --git a/src/spatialite/test/hatch.dxf b/src/spatialite/test/hatch.dxf new file mode 100644 index 0000000..3f99fa2 --- /dev/null +++ b/src/spatialite/test/hatch.dxf @@ -0,0 +1,3116 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1018 + 9 +$ACADMAINTVER + 70 + 0 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN +10 + 0 +20 + 0 +30 +0.0 + 9 +$EXTMAX +10 + 0 +20 + 0 +30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +12.0 + 20 +9.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 0 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +0.2 + 9 +$TRACEWID + 40 +0.05 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +LineeTipo6 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +0.18 + 9 +$DIMEXO + 40 +0.0625 + 9 +$DIMDLI + 40 +0.38 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +0.18 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +0.18 + 9 +$DIMCEN + 40 +0.09 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 + 0 + 9 +$DIMLIM + 70 + 0 + 9 +$DIMTIH + 70 + 1 + 9 +$DIMTOH + 70 + 1 + 9 +$DIMSE1 + 70 + 0 + 9 +$DIMSE2 + 70 + 0 + 9 +$DIMTAD + 70 + 0 + 9 +$DIMZIN + 70 + 0 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 + 1 + 9 +$DIMSHO + 70 + 1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 + 0 + 9 +$DIMALTD + 70 + 2 + 9 +$DIMALTF + 40 +25.4 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 + 0 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 + 0 + 9 +$DIMSOXD + 70 + 0 + 9 +$DIMSAH + 70 + 1 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 +Open30 + 9 +$DIMSTYLE + 2 +Standard + 9 +$DIMCLRD + 70 + 0 + 9 +$DIMCLRE + 70 + 0 + 9 +$DIMCLRT + 70 + 0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.09 + 9 +$DIMJUST + 70 + 0 + 9 +$DIMSD1 + 70 + 0 + 9 +$DIMSD2 + 70 + 0 + 9 +$DIMTOLJ + 70 + 1 + 9 +$DIMTZIN + 70 + 0 + 9 +$DIMALTZ + 70 + 0 + 9 +$DIMALTTZ + 70 + 0 + 9 +$DIMUPT + 70 + 0 + 9 +$DIMDEC + 70 + 4 + 9 +$DIMTDEC + 70 + 4 + 9 +$DIMALTU + 70 + 2 + 9 +$DIMALTTD + 70 + 2 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 + 0 + 9 +$DIMADEC + 70 + 0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 + 0 + 9 +$DIMDSEP + 70 + 46 + 9 +$DIMATFIT + 70 + 3 + 9 +$DIMFRAC + 70 + 0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 + 2 + 9 +$DIMLWD + 70 + -2 + 9 +$DIMLWE + 70 + -2 + 9 +$DIMTMOVE + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +0.1 + 9 +$FILLETRAD + 40 +0.0 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 0 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$TDCREATE + 40 +2454180.428272026 + 9 +$TDUCREATE + 40 +2454180.344938692 + 9 +$TDUPDATE + 40 +2454238.487553021 + 9 +$TDUUPDATE + 40 +2454238.404219688 + 9 +$TDINDWG + 40 +1.0601266782 + 9 +$TDUSRTIMER + 40 +1.0601209838 + 9 +$USRTIMER + 70 + 1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +2AAE + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 + 0 + 9 +$USERI2 + 70 + 0 + 9 +$USERI3 + 70 + 0 + 9 +$USERI4 + 70 + 0 + 9 +$USERI5 + 70 + 0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1.000000000000000E+20 + 20 +1.000000000000000E+20 + 30 +1.000000000000000E+20 + 9 +$PEXTMAX + 10 +-1.000000000000000E+20 + 20 +-1.000000000000000E+20 + 30 +-1.000000000000000E+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +12.0 + 20 +9.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 1 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 + + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +1.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 0 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 0 + 9 +$INSUNITS + 70 + 0 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 0 + 9 +$FINGERPRINTGUID + 2 +{9F0361C4-6C7A-4C04-A603-B640F2F7BE05} + 9 +$VERSIONGUID + 2 +{AF92E7B2-CA18-4870-BB90-BAE43C40A327} + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 9 +$SORTENTS +280 + 127 + 9 +$INDEXCTL +280 + 0 + 9 +$HIDETEXT +280 + 0 + 9 +$XCLIPFRAME +290 + 0 + 9 +$HALOGAP +280 + 0 + 9 +$OBSCOLOR + 70 + 257 + 9 +$OBSLTYPE +280 + 0 + 9 +$INTERSECTIONDISPLAY +280 + 0 + 9 +$INTERSECTIONCOLOR + 70 + 257 + 9 +$DIMASSOC +280 + 1 + 9 +$PROJECTNAME + 1 + + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 + 91 + 1 +280 + 0 +281 + 0 + 0 +CLASS + 1 +IMAGE + 2 +AcDbRasterImage + 3 +ISM + 90 + 127 + 91 + 0 +280 + 0 +281 + 1 + 0 +CLASS + 1 +IMAGEDEF_REACTOR + 2 +AcDbRasterImageDefReactor + 3 +ISM + 90 + 1 + 91 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +SORTENTSTABLE + 2 +AcDbSortentsTable + 3 +ObjectDBX Classes + 90 + 0 + 91 + 1 +280 + 0 +281 + 0 + 0 +CLASS + 1 +IMAGEDEF + 2 +AcDbRasterImageDef + 3 +ISM + 90 + 0 + 91 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +RASTERVARIABLES + 2 +AcDbRasterVariables + 3 +ISM + 90 + 0 + 91 + 1 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 9 + 0 +VPORT + 5 +2AAD +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +-84832.16874256809 + 22 +45156.74916340834 + 13 +0.0 + 23 +0.0 + 14 +1.0 + 24 +1.0 + 15 +0.0 + 25 +0.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +35.99018809093105 + 41 +1.786666666666666 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 1000 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 15 + 0 +LTYPE + 5 +13 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +2A9D +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo29 + 70 + 0 + 3 +_ _ _ _ + 72 + 65 + 73 + 2 + 40 +5.299999999999999 + 49 +3.799999999999999 + 74 + 0 + 49 +-1.5 + 74 + 0 + 0 +LTYPE + 5 +2A9E +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo30 + 70 + 0 + 3 + croci + 72 + 65 + 73 + 3 + 40 +2.9 + 49 +0.95 + 74 + 2 + 75 + 0 +340 +11 + 46 +1.9 + 50 +0.0 + 44 +0.0 + 45 +-0.95 + 9 +| + 49 +0.95 + 74 + 0 + 49 +-1.0 + 74 + 0 + 0 +LTYPE + 5 +2A9F +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo5 + 70 + 0 + 3 + - - - - + 72 + 65 + 73 + 2 + 40 +3.599999999999999 + 49 +1.9 + 74 + 0 + 49 +-1.7 + 74 + 0 + 0 +LTYPE + 5 +2AA0 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo6 + 70 + 0 + 3 + . . . + 72 + 65 + 73 + 2 + 40 +1.7 + 49 +0.0 + 74 + 0 + 49 +-1.7 + 74 + 0 + 0 +LTYPE + 5 +2AA6 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo31 + 70 + 0 + 3 +croce punto + 72 + 65 + 73 + 5 + 40 +3.5 + 49 +0.95 + 74 + 2 + 75 + 0 +340 +11 + 46 +1.9 + 50 +0.0 + 44 +0.0 + 45 +-0.95 + 9 +| + 49 +0.95 + 74 + 0 + 49 +-0.8 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-0.8 + 74 + 0 + 0 +LTYPE + 5 +2AA7 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo32 + 70 + 0 + 3 +croce punto punto + 72 + 65 + 73 + 7 + 40 +4.3 + 49 +0.95 + 74 + 2 + 75 + 0 +340 +11 + 46 +1.9 + 50 +0.0 + 44 +0.0 + 45 +-0.95 + 9 +| + 49 +0.95 + 74 + 0 + 49 +-0.8 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-0.8 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-0.8 + 74 + 0 + 0 +LTYPE + 5 +2AA8 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo33 + 70 + 0 + 3 +tratto punto punto + 72 + 65 + 73 + 6 + 40 +4.2 + 49 +1.5 + 74 + 0 + 49 +-0.75 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-1.199999999999999 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-0.75 + 74 + 0 + 0 +LTYPE + 5 +2AA9 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo34 + 70 + 0 + 3 +tratto punto + 72 + 65 + 73 + 4 + 40 +3.0 + 49 +1.5 + 74 + 0 + 49 +-0.75 + 74 + 0 + 49 +0.0 + 74 + 0 + 49 +-0.75 + 74 + 0 + 0 +LTYPE + 5 +2AAA +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +LineeTipo35 + 70 + 0 + 3 +tratto tratto + 72 + 65 + 73 + 2 + 40 +2.5 + 49 +1.5 + 74 + 0 + 49 +-1.0 + 74 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 + 18 + 0 +LAYER + 5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +2740 + 0 +LAYER + 5 +72D +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Simboli + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 13 +390 +2740 + 0 +LAYER + 5 +29F1 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +CODBO + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +2740 + 0 +LAYER + 5 +29F2 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Particelle + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 13 +390 +2740 + 0 +LAYER + 5 +29F3 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +RetinoFabb + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 13 +390 +2740 + 0 +LAYER + 5 +29F4 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Testi + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 25 +390 +2740 + 0 +LAYER + 5 +29F5 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo1 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 25 +390 +2740 + 0 +LAYER + 5 +29F6 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo5 + 70 + 0 + 62 + 7 + 6 +LineeTipo5 +370 + 25 +390 +2740 + 0 +LAYER + 5 +29F7 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo6 + 70 + 0 + 62 + 7 + 6 +LineeTipo6 +370 + 60 +390 +2740 + 0 +LAYER + 5 +29F8 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo11 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 25 +390 +2740 + 0 +LAYER + 5 +29F9 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo12 + 70 + 1 + 62 + 7 + 6 +Continuous +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FA +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo29 + 70 + 0 + 62 + 7 + 6 +LineeTipo29 +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FB +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo30 + 70 + 0 + 62 + 7 + 6 +LineeTipo30 +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FC +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo31 + 70 + 0 + 62 + 7 + 6 +LineeTipo31 +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FD +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo32 + 70 + 0 + 62 + 7 + 6 +LineeTipo32 +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FE +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo33 + 70 + 0 + 62 + 7 + 6 +LineeTipo33 +370 + 13 +390 +2740 + 0 +LAYER + 5 +29FF +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo34 + 70 + 0 + 62 + 7 + 6 +LineeTipo34 +370 + 13 +390 +2740 + 0 +LAYER + 5 +2A00 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +LineeTipo35 + 70 + 0 + 62 + 7 + 6 +LineeTipo35 +370 + 13 +390 +2740 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +txt + 4 + + 0 +STYLE + 5 +2A03 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 + + 70 + 1 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +ltypeshp.shx + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 +100 +AcDbDimStyleTable + 71 + 1 +340 +710 + 0 +DIMSTYLE +105 +710 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 + 0 +173 + 1 +340 +11 +344 +775 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LWPOLYLINE +100 +AcDbEntity +100 +AcDbPolyline + 5 +3AB5 + 90 + 9 + 70 +128 + 8 +Particelle + 10 +1674740.281 + 20 +4851435.332 + 10 +1674756.934 + 20 +4851435.675 + 10 +1674756.895 + 20 +4851437.976 + 10 +1674767.059 + 20 +4851437.976 + 10 +1674767.255 + 20 +4851447.358 + 10 +1674767.295 + 20 +4851449.246 + 10 +1674752.688 + 20 +4851449.249 + 10 +1674740.298 + 20 +4851449.215 + 10 +1674740.281 + 20 +4851435.332 + 0 +TEXT +100 +AcDbEntity +100 +AcDbText + 5 +3AB6 + 8 +CODBO + 1 +1453 + 40 + 1.8 + 50 + 0 + 10 +1674745.402 + 20 +4851442.556 +100 +AcDbText + 0 +LWPOLYLINE +100 +AcDbEntity +100 +AcDbPolyline + 5 +4218 + 90 + 13 + 70 +128 + 8 +Particelle + 10 +1674507.564 + 20 +4851463.201 + 10 +1674505.527 + 20 +4851457.662 + 10 +1674504.389 + 20 +4851454.568 + 10 +1674503.801 + 20 +4851453.115 + 10 +1674500.606 + 20 +4851444.521 + 10 +1674498.904 + 20 +4851439.903 + 10 +1674514.521 + 20 +4851433.919 + 10 +1674516.258 + 20 +4851438.699 + 10 +1674519.209 + 20 +4851446.586 + 10 +1674518.701 + 20 +4851446.915 + 10 +1674519.874 + 20 +4851450.062 + 10 +1674522.508 + 20 +4851457.742 + 10 +1674507.564 + 20 +4851463.201 + 0 +TEXT +100 +AcDbEntity +100 +AcDbText + 5 +4219 + 8 +CODBO + 1 +643 + 40 + 1.8 + 50 + 1.89171974522293 + 10 +1674497.469 + 20 +4851449.816 +100 +AcDbText + 0 +HATCH + 5 +4B48 +330 +20 +100 +AcDbEntity +100 +AcDbHatch + 8 +RetinoFabb + 10 +0.0 + 20 +0.0 + 30 +0.0 +210 +0.0 +220 +0.0 +230 +1.0 + 2 +ANSI31 + 70 + 0 + 71 + 0 + 91 + 1 + 92 + 16 + 93 + 13 + 72 + 1 + 10 +1674393.216 + 20 +4851421.768 + 11 +1674392.525 + 21 +4851422.191 + 72 + 1 + 10 +1674392.525 + 20 +4851422.191 + 11 +1674391.267 + 21 +4851422.962 + 72 + 1 + 10 +1674391.267 + 20 +4851422.962 + 11 +1674382.854 + 21 +4851428.021 + 72 + 1 + 10 +1674382.854 + 20 +4851428.021 + 11 +1674378.659 + 21 +4851430.452 + 72 + 1 + 10 +1674378.659 + 20 +4851430.452 + 11 +1674371.438 + 21 +4851423.932 + 72 + 1 + 10 +1674371.438 + 20 +4851423.932 + 11 +1674372.188 + 21 +4851423.488 + 72 + 1 + 10 +1674372.188 + 20 +4851423.488 + 11 +1674374.743 + 21 +4851420.983 + 72 + 1 + 10 +1674374.743 + 20 +4851420.983 + 11 +1674374.201 + 21 +4851420.130 + 72 + 1 + 10 +1674374.201 + 20 +4851420.130 + 11 +1674376.013 + 21 +4851418.669 + 72 + 1 + 10 +1674376.013 + 20 +4851418.669 + 11 +1674376.557 + 21 +4851419.422 + 72 + 1 + 10 +1674376.557 + 20 +4851419.422 + 11 +1674385.032 + 21 +4851413.382 + 72 + 1 + 10 +1674385.032 + 20 +4851413.382 + 11 +1674386.977 + 21 +4851411.968 + 72 + 1 + 10 +1674386.977 + 20 +4851411.968 + 11 +1674393.216 + 21 +4851421.768 + 97 + 0 + 75 + 0 + 76 + 1 + 52 + 0.0 + 41 +10.0 + 77 + 0 + 78 + 1 + 53 +45.0 + 43 +0.0 + 44 +0.0 + 45 +-0.8838834764831842 + 46 +0.8838834764831844 + 79 + 0 + 98 + 1 + 10 +0.0 + 20 +0.0 + 0 +HATCH + 5 +4B36 +330 +20 +100 +AcDbEntity +100 +AcDbHatch + 8 +RetinoFabb + 10 +0.0 + 20 +0.0 + 30 +0.0 +210 +0.0 +220 +0.0 +230 +1.0 + 2 +ANSI31 + 70 + 0 + 71 + 0 + 91 + 1 + 92 + 16 + 93 + 11 + 72 + 1 + 10 +1674842.191 + 20 +4851309.751 + 11 +1674842.877 + 21 +4851309.799 + 72 + 1 + 10 +1674842.877 + 20 +4851309.799 + 11 +1674842.813 + 21 +4851316.024 + 72 + 1 + 10 +1674842.813 + 20 +4851316.024 + 11 +1674841.655 + 21 +4851316.003 + 72 + 1 + 10 +1674841.655 + 20 +4851316.003 + 11 +1674839.300 + 21 +4851315.989 + 72 + 1 + 10 +1674839.300 + 20 +4851315.989 + 11 +1674839.266 + 21 +4851317.271 + 72 + 1 + 10 +1674839.266 + 20 +4851317.271 + 11 +1674835.567 + 21 +4851317.166 + 72 + 1 + 10 +1674835.567 + 20 +4851317.166 + 11 +1674832.808 + 21 +4851317.089 + 72 + 1 + 10 +1674832.808 + 20 +4851317.089 + 11 +1674832.833 + 21 +4851315.951 + 72 + 1 + 10 +1674832.833 + 20 +4851315.951 + 11 +1674837.234 + 21 +4851315.977 + 72 + 1 + 10 +1674837.234 + 20 +4851315.977 + 11 +1674837.351 + 21 +4851309.667 + 72 + 1 + 10 +1674837.351 + 20 +4851309.667 + 11 +1674842.191 + 21 +4851309.751 + 97 + 0 + 75 + 0 + 76 + 1 + 52 + 0.0 + 41 +10.0 + 77 + 0 + 78 + 1 + 53 +60.0 + 43 +0.0 + 44 +0.0 + 45 +-0.8838834764831842 + 46 +0.8838834764831844 + 79 + 0 + 98 + 1 + 10 +0.0 + 20 +0.0 + 0 +HATCH + 5 +4B4C +330 +20 +100 +AcDbEntity +100 +AcDbHatch + 8 +RetinoFabb + 10 +0.0 + 20 +0.0 + 30 +0.0 +210 +0.0 +220 +0.0 +230 +1.0 + 2 +ANSI31 + 70 + 0 + 71 + 0 + 91 + 1 + 92 + 16 + 93 + 7 + 72 + 1 + 10 +1674356.178 + 20 +4851259.350 + 11 +1674356.390 + 21 +4851260.718 + 72 + 1 + 10 +1674356.390 + 20 +4851260.718 + 11 +1674357.070 + 21 +4851264.434 + 72 + 1 + 10 +1674357.070 + 20 +4851264.434 + 11 +1674352.934 + 21 +4851265.104 + 72 + 1 + 10 +1674352.934 + 20 +4851265.104 + 11 +1674352.480 + 21 +4851261.113 + 72 + 1 + 10 +1674352.480 + 20 +4851261.113 + 11 +1674355.582 + 21 +4851260.140 + 72 + 1 + 10 +1674355.582 + 20 +4851260.140 + 11 +1674355.447 + 21 +4851259.523 + 72 + 1 + 10 +1674355.447 + 20 +4851259.523 + 11 +1674356.178 + 21 +4851259.350 + 97 + 0 + 75 + 0 + 76 + 1 + 52 + 0.0 + 41 +10.0 + 77 + 0 + 78 + 1 + 53 +90.0 + 43 +0.0 + 44 +0.0 + 45 +-0.8838834764831842 + 46 +0.8838834764831844 + 79 + 0 + 98 + 1 + 10 +0.0 + 20 +0.0 + 0 +HATCH + 5 +4A50 +330 +20 +100 +AcDbEntity +100 +AcDbHatch + 8 +RetinoFabb + 10 +0.0 + 20 +0.0 + 30 +0.0 +210 +0.0 +220 +0.0 +230 +1.0 + 2 +ANSI31 + 70 + 0 + 71 + 0 + 91 + 1 + 92 + 16 + 93 + 16 + 72 + 1 + 10 +1681503.189 + 20 +4849731.235 + 11 +1681504.533 + 21 +4849730.583 + 72 + 1 + 10 +1681504.533 + 20 +4849730.583 + 11 +1681506.156 + 21 +4849733.460 + 72 + 1 + 10 +1681506.156 + 20 +4849733.460 + 11 +1681505.451 + 21 +4849733.858 + 72 + 1 + 10 +1681505.451 + 20 +4849733.858 + 11 +1681505.240 + 21 +4849733.975 + 72 + 1 + 10 +1681505.240 + 20 +4849733.975 + 11 +1681504.057 + 21 +4849734.645 + 72 + 1 + 10 +1681504.057 + 20 +4849734.645 + 11 +1681502.647 + 21 +4849735.019 + 72 + 1 + 10 +1681502.647 + 20 +4849735.019 + 11 +1681496.495 + 21 +4849738.362 + 72 + 1 + 10 +1681496.495 + 20 +4849738.362 + 11 +1681493.365 + 21 +4849739.953 + 72 + 1 + 10 +1681493.365 + 20 +4849739.953 + 11 +1681492.162 + 21 +4849740.563 + 72 + 1 + 10 +1681492.162 + 20 +4849740.563 + 11 +1681482.681 + 21 +4849745.676 + 72 + 1 + 10 +1681482.681 + 20 +4849745.676 + 11 +1681479.145 + 21 +4849739.231 + 72 + 1 + 10 +1681479.145 + 20 +4849739.231 + 11 +1681495.567 + 21 +4849730.528 + 72 + 1 + 10 +1681495.567 + 20 +4849730.528 + 11 +1681496.742 + 21 +4849732.567 + 72 + 1 + 10 +1681496.742 + 20 +4849732.567 + 11 +1681500.438 + 21 +4849730.886 + 72 + 1 + 10 +1681500.438 + 20 +4849730.886 + 11 +1681501.343 + 21 +4849731.996 + 72 + 1 + 10 +1681501.343 + 20 +4849731.996 + 11 +1681503.189 + 21 +4849731.235 + 97 + 0 + 75 + 0 + 76 + 1 + 52 + 0.0 + 41 +10.0 + 77 + 0 + 78 + 1 + 53 +30.0 + 43 +0.0 + 44 +0.0 + 45 +-0.8838834764831842 + 46 +0.8838834764831844 + 79 + 0 + 98 + 1 + 10 +0.0 + 20 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/inspire-data-example.xml b/src/spatialite/test/inspire-data-example.xml new file mode 100644 index 0000000..35ad4e4 --- /dev/null +++ b/src/spatialite/test/inspire-data-example.xml @@ -0,0 +1,303 @@ + + + + 029097fd-2ef2-487c-a5ca-6ec7a3dbac53 + + + eng + + + 024027fd-3ef2-487c-a8ca-6ec8a3dfac57 + + + dataset + + + + + SDI Unit, Institute for Environment & Sustainability, Joint Research + Centre + + + + + + + image2000@jrc.it + + + + + + + pointOfContact + + + + + 2005-04-18 + + + ISO19115 + + + 2003/Cor.1:2006 + + + + + + + Image2000 Product 1 (nl2) Multispectral + + + + + 2007-09-15 + + + creation + + + + + + + 2007-11-15T11:15:00 + + + revision + + + + + + + 2007-09-15 + + + publication + + + + + + + image2000_1_nl2_multi + + + http://image2000.jrc.it + + + + + + + IMAGE2000 product 1 individual orthorectified scenes. + + + + + SDI Unit, Institute for Environment and Sustainability, Joint Research + Centre + + + + + + + image2000@jrc.it + + + + + + + custodian + + + + + + + Land cover + + + + + GemetInspireTheme + + + + + 2008-06-01 + + + publication + + + + + + + + + + + no conditions apply + + + + + + + otherRestrictions + + + no limitations + + + + + + + 25.0 + + + + + + + + + 50000 + + + + + + + eng + + + imageryBaseMapsEarthCover + + + + + + + 3.93 + + + 7.57 + + + 52.10 + + + 54.10 + + + + + + + + + + + + 1977-03-10T11:45:30 + 2005-01-15T09:10:00 + + + + + + + + + + + + + + + + + + + + + + http://image2000.jrc.it/ + + + + + + + + + + + + + dataset + + + + + + + + + + + INSPIRE_D2.8.I.1 + + + + + 2011-05-15 + + + publication + + + + + + + See the referenced specification + + + true + + + + + + + + + Product 1 scenes correspond to the path/row of the Landsat orbit. All + Image2000 product 1 scenes are ortho-corrected. The ortho-correction method consisted of using a physical model + of the satellite's flight during the scene acquisition, which was then complemented with Ground Control Points + (GCP's) and a Digital Elevation Model (DEM). Map projection information is attached to the model. The resulting + product has excellent accuracy between the spectral bands, sub-pixel location accuracy throughout the image and + excellent preservation of radiometric characteristics. The geometric correction was done on a Country basis - + according to the relevant national map projection system(s). A rigorous orbital model was used. Control point + measurements were used in a weighted least squares adjustment to estimate optimal values for the orbital and + attitude parameters. The adjusted parameters were used to resample the raw scene by cubic convolution in a single + step, instead of the usual two step procedure of first producing a system-corrected scene and then resampling a + second time, thus causing unnecessary smoothing of the data. The final pixel size after resampling is 12.5m for the + panchromatic band, 25m for the multispectral bands and 60m for the thermal band. All the orthorectified scenes are + well within the requirement of Root Mean Square Error (RMSE) > 25m. + + + + + + diff --git a/src/spatialite/test/l02.dxf b/src/spatialite/test/l02.dxf new file mode 100644 index 0000000..4a9bfd9 --- /dev/null +++ b/src/spatialite/test/l02.dxf @@ -0,0 +1,324 @@ + 0 +SECTION + 2 +HEADER + 9 +$EXTMIN + 10 +663372.601 + 20 +5165208.705 + 30 +0.000 + 9 +$EXTMAX + 10 +669268.593 + 20 +5173521.041 + 30 +777.470 + 9 +$LUPREC + 70 + 7 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 + 1 + 0 +LAYER + 2 +SHP_LINE + 70 +64 + 62 +7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 8 +SHP_LINE + 2 +BLK000001 + 70 + 64 + 10 +667046.728 + 20 +5171567.671 + 30 +411.940 + 0 +POLYLINE + 8 +SHP_LINE + 66 + 1 + 70 + 8 + 0 +VERTEX + 8 +SHP_LINE + 10 +667046.728 + 20 +5171567.671 + 30 +411.940 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667044.618 + 20 +5171569.311 + 30 +411.670 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667041.838 + 20 +5171570.771 + 30 +411.600 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667037.168 + 20 +5171573.241 + 30 +411.440 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667032.778 + 20 +5171575.271 + 30 +411.250 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667029.308 + 20 +5171577.161 + 30 +411.110 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667025.488 + 20 +5171578.981 + 30 +410.850 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667022.308 + 20 +5171580.511 + 30 +410.600 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667020.328 + 20 +5171581.331 + 30 +410.490 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667019.158 + 20 +5171582.021 + 30 +410.260 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +667018.358 + 20 +5171583.571 + 30 +410.010 + 70 + 32 + 0 +SEQEND + 8 +SHP_LINE + 0 +ENDBLK + 0 +BLOCK + 8 +SHP_LINE + 2 +BLK000002 + 70 + 64 + 10 +666115.033 + 20 +5171352.082 + 30 +390.620 + 0 +POLYLINE + 8 +SHP_LINE + 66 + 1 + 70 + 8 + 0 +VERTEX + 8 +SHP_LINE + 10 +666115.033 + 20 +5171352.082 + 30 +390.620 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +666119.793 + 20 +5171352.632 + 30 +388.860 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +666122.983 + 20 +5171353.152 + 30 +386.620 + 70 + 32 + 0 +VERTEX + 8 +SHP_LINE + 10 +666124.133 + 20 +5171353.332 + 30 +386.100 + 70 + 32 + 0 +SEQEND + 8 +SHP_LINE + 0 +ENDBLK + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +INSERT + 8 +SHP_LINE + 2 +BLK000001 + 10 +667046.728 + 20 +5171567.671 + 30 +411.940 + 0 +INSERT + 8 +SHP_LINE + 2 +BLK000002 + 10 +666115.033 + 20 +5171352.082 + 30 +390.620 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/linked.dxf b/src/spatialite/test/linked.dxf new file mode 100644 index 0000000..825fcc6 --- /dev/null +++ b/src/spatialite/test/linked.dxf @@ -0,0 +1,7656 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1015 + 9 +$ACADMAINTVER + 70 + 20 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +672969.77 + 20 +4860404.25 + 30 +0.0 + 9 +$EXTMAX + 10 +675545.0 + 20 +4861382.92 + 30 +139.97 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +420.0 + 20 +297.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 0 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +romans + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 + 0 + 9 +$DIMLIM + 70 + 0 + 9 +$DIMTIH + 70 + 0 + 9 +$DIMTOH + 70 + 0 + 9 +$DIMSE1 + 70 + 0 + 9 +$DIMSE2 + 70 + 0 + 9 +$DIMTAD + 70 + 1 + 9 +$DIMZIN + 70 + 8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 + 1 + 9 +$DIMSHO + 70 + 1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 + 0 + 9 +$DIMALTD + 70 + 3 + 9 +$DIMALTF + 40 +0.03937007874016 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 + 1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 + 0 + 9 +$DIMSOXD + 70 + 0 + 9 +$DIMSAH + 70 + 0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 + 0 + 9 +$DIMCLRE + 70 + 0 + 9 +$DIMCLRT + 70 + 0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 + 0 + 9 +$DIMSD1 + 70 + 0 + 9 +$DIMSD2 + 70 + 0 + 9 +$DIMTOLJ + 70 + 0 + 9 +$DIMTZIN + 70 + 8 + 9 +$DIMALTZ + 70 + 0 + 9 +$DIMALTTZ + 70 + 0 + 9 +$DIMUPT + 70 + 0 + 9 +$DIMDEC + 70 + 2 + 9 +$DIMTDEC + 70 + 2 + 9 +$DIMALTU + 70 + 2 + 9 +$DIMALTTD + 70 + 3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 + 0 + 9 +$DIMADEC + 70 + 0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 + 0 + 9 +$DIMDSEP + 70 + 44 + 9 +$DIMATFIT + 70 + 3 + 9 +$DIMFRAC + 70 + 0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 + 2 + 9 +$DIMLWD + 70 + -2 + 9 +$DIMLWE + 70 + -2 + 9 +$DIMTMOVE + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +0.0 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 0 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$TDCREATE + 40 +2456262.062314271 + 9 +$TDUCREATE + 40 +2456261.978980938 + 9 +$TDUPDATE + 40 +2456409.797222755 + 9 +$TDUUPDATE + 40 +2456409.713889422 + 9 +$TDINDWG + 40 +0.0612841898 + 9 +$TDUSRTIMER + 40 +0.0612841898 + 9 +$USRTIMER + 70 + 1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 2 + 9 +$PDSIZE + 40 +0.5 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +AF7 + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 + 0 + 9 +$USERI2 + 70 + 0 + 9 +$USERI3 + 70 + 0 + 9 +$USERI4 + 70 + 0 + 9 +$USERI5 + 70 + 0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PEXTMAX + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +12.0 + 20 +9.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 1 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 0 + 9 +$INSUNITS + 70 + 4 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$FINGERPRINTGUID + 2 +{FDEAD578-A652-11D2-9A35-0060089B3A3F} + 9 +$VERSIONGUID + 2 +{930FB465-C28D-4FEE-99FE-12C9CCA164C6} + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 + 32768 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +19 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +VPORT + 5 +AEF +330 +19 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +674273.3755786976 + 22 +4860957.893425077 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +1679.347345922142 + 41 +2.135029354207436 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 1000 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +14 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +15 +330 +14 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +14 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +8 +330 +14 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +10 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +LAYER + 5 +6B537 +102 +{ACAD_XDICTIONARY +360 +6D825 +102 +} +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +P020208 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F +347 +6C8 + 0 +LAYER + 5 +1AF9 +102 +{ACAD_XDICTIONARY +360 +6D7B5 +102 +} +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +A010101 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F +347 +6C8 + 0 +LAYER + 5 +11F2 +102 +{ACAD_XDICTIONARY +360 +6D7B1 +102 +} +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +T080201_1004 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F +347 +6C8 + 0 +LAYER + 5 +4 +330 +10 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +5 + 0 +LAYER + 5 +28 +330 +10 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +A020206_entra_esci_1 + 70 + 0 + 62 + 3 + 6 +Continuous +370 + -3 +390 +5 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +11 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +STYLE + 5 +12 +330 +11 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +txt + 4 + + 0 +STYLE + 5 +24 +330 +11 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +romans + 70 + 0 + 40 +0.0 + 41 +0.9 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +romans.shx + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +17 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +18 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +1B +330 +0 +100 +AcDbSymbolTable + 70 + 5 + 0 +APPID + 5 +1C +330 +1B +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +APPID + 5 +49 +330 +1B +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +SHP_NREC + 70 + 0 + 0 +APPID + 5 +4A +330 +1B +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +SHP_FLDDSC + 70 + 0 + 0 +APPID + 5 +4B +330 +1B +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +SHP_FLDVAL + 70 + 0 + 0 +APPID + 5 +AE9 +330 +1B +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +PIDXPTOWER + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +1D +330 +0 +100 +AcDbSymbolTable + 70 + 1 +100 +AcDbDimStyleTable + 71 + 0 + 0 +DIMSTYLE +105 +26 +330 +1D +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 8 +140 +2.5 +141 +2.5 +143 +0.03937007874016 +147 +0.625 +171 + 3 +172 + 1 +271 + 2 +272 + 2 +274 + 3 +278 + 44 +283 + 0 +284 + 8 +340 +12 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +BLOCK_RECORD + 5 +2 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +A + 0 +BLOCK_RECORD + 5 +C +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +F + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +3 +330 +2 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +9 +330 +2 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +D +330 +C +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +E +330 +C +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +POLYLINE + 5 +21E +330 +2 +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDb3dPolyline + 66 + 1 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 70 + 9 +1001 +SHP_NREC +1000 + 54|A020206 +1001 +SHP_FLDDSC +1000 +OBJECTID|N|9|0;ID_ZRIL|C|12|0;AATT_TY|C|10|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;Origine|C|8|0;COD_ORIG|C|8|0;Shape_Leng|F|19|11;Shape_Area|F|19|11;Rip|N +1001 +SHP_FLDVAL +1000 + 26 06 C26005 0 0020206 + 0 +VERTEX + 5 +21F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +220 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673225.76 + 20 +4860968.83 + 30 +76.76000000000001 + 70 + 32 + 0 +VERTEX + 5 +221 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673229.5999999999 + 20 +4860967.03 + 30 +76.70999999999998 + 70 + 32 + 0 +VERTEX + 5 +222 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673242.37 + 20 +4860961.03 + 30 +76.52 + 70 + 32 + 0 +VERTEX + 5 +223 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673260.74 + 20 +4860952.349999998 + 30 +76.52 + 70 + 32 + 0 +VERTEX + 5 +224 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673260.2199999999 + 20 +4860951.25 + 30 +76.45 + 70 + 32 + 0 +VERTEX + 5 +225 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673259.4500000001 + 20 +4860949.62 + 30 +76.34999999999998 + 70 + 32 + 0 +VERTEX + 5 +226 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673258.73 + 20 +4860948.12 + 30 +76.25 + 70 + 32 + 0 +VERTEX + 5 +227 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673256.91 + 20 +4860944.48 + 30 +76.25 + 70 + 32 + 0 +VERTEX + 5 +228 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673255.8100000002 + 20 +4860942.259999999 + 30 +77.84 + 70 + 32 + 0 +VERTEX + 5 +229 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673251.0300000001 + 20 +4860932.690000001 + 30 +77.79 + 70 + 32 + 0 +VERTEX + 5 +22A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673246.61 + 20 +4860923.5 + 30 +76.93999999999999 + 70 + 32 + 0 +VERTEX + 5 +22B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673243.9300000002 + 20 +4860917.92 + 30 +77.97 + 70 + 32 + 0 +VERTEX + 5 +22C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673240.63 + 20 +4860910.87 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +22D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673239.7 + 20 +4860911.33 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +22E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673236.5600000001 + 20 +4860904.76 + 30 +75.60999999999999 + 70 + 32 + 0 +VERTEX + 5 +22F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673234.3100000001 + 20 +4860900.85 + 30 +75.98 + 70 + 32 + 0 +VERTEX + 5 +230 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673232.49 + 20 +4860898.589999999 + 30 +76.18999999999998 + 70 + 32 + 0 +VERTEX + 5 +231 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673228.8199999999 + 20 +4860894.78 + 30 +76.2 + 70 + 32 + 0 +VERTEX + 5 +232 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673226.6 + 20 +4860892.99 + 30 +76.15999999999998 + 70 + 32 + 0 +VERTEX + 5 +233 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673223.7399999999 + 20 +4860890.92 + 30 +76.09999999999998 + 70 + 32 + 0 +VERTEX + 5 +234 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673220.74 + 20 +4860889.280000001 + 30 +76.01 + 70 + 32 + 0 +VERTEX + 5 +235 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673217.7800000001 + 20 +4860888.01 + 30 +76.09 + 70 + 32 + 0 +VERTEX + 5 +236 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673215.3499999999 + 20 +4860887.22 + 30 +76.05 + 70 + 32 + 0 +VERTEX + 5 +237 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.48 + 20 +4860886.46 + 30 +75.92 + 70 + 32 + 0 +VERTEX + 5 +238 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673209.2800000001 + 20 +4860885.92 + 30 +75.76999999999998 + 70 + 32 + 0 +VERTEX + 5 +239 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673206.09 + 20 +4860885.74 + 30 +75.68999999999999 + 70 + 32 + 0 +VERTEX + 5 +23A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.6100000001 + 20 +4860885.78 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +23B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.1800000001 + 20 +4860885.849999998 + 30 +76.36 + 70 + 32 + 0 +VERTEX + 5 +23C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.23 + 20 +4860886.579999999 + 30 +77.14 + 70 + 32 + 0 +VERTEX + 5 +23D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.03 + 20 +4860886.849999999 + 30 +77.14 + 70 + 32 + 0 +VERTEX + 5 +23E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.4200000001 + 20 +4860887.51 + 30 +77.3 + 70 + 32 + 0 +VERTEX + 5 +23F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.9499999999 + 20 +4860888.23 + 30 +77.43999999999998 + 70 + 32 + 0 +VERTEX + 5 +240 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.98 + 20 +4860889.059999998 + 30 +77.67 + 70 + 32 + 0 +VERTEX + 5 +241 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.17 + 20 +4860890.35 + 30 +77.09999999999998 + 70 + 32 + 0 +VERTEX + 5 +242 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673193.25 + 20 +4860891.45 + 30 +75.19 + 70 + 32 + 0 +VERTEX + 5 +243 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673192.25 + 20 +4860894.24 + 30 +75.19 + 70 + 32 + 0 +VERTEX + 5 +244 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673188.7900000001 + 20 +4860896.05 + 30 +75.19 + 70 + 32 + 0 +VERTEX + 5 +245 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673186.1800000001 + 20 +4860895.179999999 + 30 +75.16 + 70 + 32 + 0 +VERTEX + 5 +246 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673184.04 + 20 +4860896.26 + 30 +75.16 + 70 + 32 + 0 +VERTEX + 5 +247 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673183.6300000002 + 20 +4860895.469999999 + 30 +77.11 + 70 + 32 + 0 +VERTEX + 5 +248 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673181.0 + 20 +4860896.58 + 30 +77.61 + 70 + 32 + 0 +VERTEX + 5 +249 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673179.06 + 20 +4860897.62 + 30 +77.48999999999998 + 70 + 32 + 0 +VERTEX + 5 +24A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673178.02 + 20 +4860898.5 + 30 +77.43000000000002 + 70 + 32 + 0 +VERTEX + 5 +24B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673177.46 + 20 +4860897.92 + 30 +76.78 + 70 + 32 + 0 +VERTEX + 5 +24C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673175.65 + 20 +4860900.21 + 30 +75.08 + 70 + 32 + 0 +VERTEX + 5 +24D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673174.2800000001 + 20 +4860902.13 + 30 +75.06 + 70 + 32 + 0 +VERTEX + 5 +24E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673173.1 + 20 +4860904.14 + 30 +75.06 + 70 + 32 + 0 +VERTEX + 5 +24F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673172.1300000001 + 20 +4860905.9 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +250 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673171.37 + 20 +4860907.639999999 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +251 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673170.41 + 20 +4860910.099999999 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +252 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673169.7 + 20 +4860912.56 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +253 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673169.11 + 20 +4860915.150000001 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +254 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673168.78 + 20 +4860917.419999998 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +255 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673168.5699999999 + 20 +4860919.93 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +256 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673168.5500000001 + 20 +4860922.389999998 + 30 +75.04999999999999 + 70 + 32 + 0 +VERTEX + 5 +257 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673168.64 + 20 +4860924.96 + 30 +75.04000000000002 + 70 + 32 + 0 +VERTEX + 5 +258 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673168.9300000001 + 20 +4860926.919999999 + 30 +75.04000000000002 + 70 + 32 + 0 +VERTEX + 5 +259 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673169.39 + 20 +4860928.98 + 30 +75.12999999999998 + 70 + 32 + 0 +VERTEX + 5 +25A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673169.9499999999 + 20 +4860930.639999999 + 30 +75.3 + 70 + 32 + 0 +VERTEX + 5 +25B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673170.4300000001 + 20 +4860932.08 + 30 +75.44 + 70 + 32 + 0 +VERTEX + 5 +25C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673171.0699999999 + 20 +4860933.95 + 30 +75.56999999999998 + 70 + 32 + 0 +VERTEX + 5 +25D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673172.0799999999 + 20 +4860936.33 + 30 +75.70999999999997 + 70 + 32 + 0 +VERTEX + 5 +25E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673173.39 + 20 +4860938.95 + 30 +75.86 + 70 + 32 + 0 +VERTEX + 5 +25F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673174.9399999999 + 20 +4860942.04 + 30 +76.0 + 70 + 32 + 0 +VERTEX + 5 +260 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673173.61 + 20 +4860942.67 + 30 +76.18000000000002 + 70 + 32 + 0 +VERTEX + 5 +261 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673175.1700000001 + 20 +4860945.86 + 30 +76.97 + 70 + 32 + 0 +VERTEX + 5 +262 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673191.8900000002 + 20 +4860979.79 + 30 +76.97 + 70 + 32 + 0 +VERTEX + 5 +263 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673192.44 + 20 +4860980.969999999 + 30 +76.97 + 70 + 32 + 0 +VERTEX + 5 +264 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673193.4599999999 + 20 +4860983.12 + 30 +79.87999999999998 + 70 + 32 + 0 +VERTEX + 5 +265 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673211.59 + 20 +4860974.32 + 30 +81.34 + 70 + 32 + 0 +VERTEX + 5 +266 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +267 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673215.5600000003 + 20 +4860950.639999999 + 30 +76.2 + 70 + 32 + 0 +VERTEX + 5 +268 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673222.86 + 20 +4860965.110000001 + 30 +76.65 + 70 + 32 + 0 +VERTEX + 5 +269 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.5600000001 + 20 +4860977.6 + 30 +76.79999999999998 + 70 + 32 + 0 +VERTEX + 5 +26A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.6 + 20 +4860963.070000001 + 30 +76.29999999999999 + 70 + 32 + 0 +VERTEX + 5 +26B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673215.5600000003 + 20 +4860950.639999999 + 30 +76.2 + 70 + 32 + 0 +VERTEX + 5 +26C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +26D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673206.0 + 20 +4860931.69 + 30 +75.81 + 70 + 32 + 0 +VERTEX + 5 +26E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673213.2199999999 + 20 +4860945.990000001 + 30 +76.06 + 70 + 32 + 0 +VERTEX + 5 +26F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673187.3 + 20 +4860958.27 + 30 +76.14 + 70 + 32 + 0 +VERTEX + 5 +270 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673180.4100000001 + 20 +4860943.889999999 + 30 +76.0 + 70 + 32 + 0 +VERTEX + 5 +271 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673206.0 + 20 +4860931.69 + 30 +75.81 + 70 + 32 + 0 +VERTEX + 5 +272 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +273 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673191.8199999999 + 20 +4860918.62 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +274 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673193.0100000001 + 20 +4860919.9 + 30 +75.44 + 70 + 32 + 0 +VERTEX + 5 +275 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.7600000001 + 20 +4860921.049999999 + 30 +75.47 + 70 + 32 + 0 +VERTEX + 5 +276 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.6400000001 + 20 +4860921.78 + 30 +75.53 + 70 + 32 + 0 +VERTEX + 5 +277 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.2399999999 + 20 +4860921.94 + 30 +75.59999999999998 + 70 + 32 + 0 +VERTEX + 5 +278 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.1600000001 + 20 +4860922.17 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +279 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.7900000001 + 20 +4860922.219999999 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +27A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.4100000001 + 20 +4860924.78 + 30 +75.68000000000002 + 70 + 32 + 0 +VERTEX + 5 +27B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.9900000001 + 20 +4860927.639999998 + 30 +75.73999999999998 + 70 + 32 + 0 +VERTEX + 5 +27C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673178.4600000001 + 20 +4860939.799999999 + 30 +75.95 + 70 + 32 + 0 +VERTEX + 5 +27D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673176.22 + 20 +4860935.17 + 30 +75.75 + 70 + 32 + 0 +VERTEX + 5 +27E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673175.4999999999 + 20 +4860933.349999998 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +27F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673174.6 + 20 +4860930.74 + 30 +75.48999999999998 + 70 + 32 + 0 +VERTEX + 5 +280 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673173.2 + 20 +4860927.53 + 30 +75.14 + 70 + 32 + 0 +VERTEX + 5 +281 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673191.8199999999 + 20 +4860918.62 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +282 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +283 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673190.13 + 20 +4860900.37 + 30 +75.26 + 70 + 32 + 0 +VERTEX + 5 +284 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673190.6000000001 + 20 +4860900.66 + 30 +75.26 + 70 + 32 + 0 +VERTEX + 5 +285 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673192.68 + 20 +4860905.62 + 30 +75.34 + 70 + 32 + 0 +VERTEX + 5 +286 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673191.74 + 20 +4860906.87 + 30 +75.35 + 70 + 32 + 0 +VERTEX + 5 +287 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673190.95 + 20 +4860908.23 + 30 +75.34 + 70 + 32 + 0 +VERTEX + 5 +288 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673190.28 + 20 +4860909.799999999 + 30 +75.35 + 70 + 32 + 0 +VERTEX + 5 +289 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.9 + 20 +4860911.549999999 + 30 +75.35 + 70 + 32 + 0 +VERTEX + 5 +28A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.8499999999 + 20 +4860913.009999999 + 30 +75.36 + 70 + 32 + 0 +VERTEX + 5 +28B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.8000000001 + 20 +4860914.1 + 30 +75.37 + 70 + 32 + 0 +VERTEX + 5 +28C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.6800000001 + 20 +4860914.78 + 30 +75.37 + 70 + 32 + 0 +VERTEX + 5 +28D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673172.71 + 20 +4860923.0 + 30 +75.11 + 70 + 32 + 0 +VERTEX + 5 +28E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673172.83 + 20 +4860920.23 + 30 +75.12 + 70 + 32 + 0 +VERTEX + 5 +28F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673172.9699999999 + 20 +4860918.169999999 + 30 +75.12 + 70 + 32 + 0 +VERTEX + 5 +290 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673173.4900000001 + 20 +4860915.44 + 30 +75.12 + 70 + 32 + 0 +VERTEX + 5 +291 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673175.45 + 20 +4860910.23 + 30 +75.12999999999998 + 70 + 32 + 0 +VERTEX + 5 +292 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673176.7600000002 + 20 +4860906.87 + 30 +75.12 + 70 + 32 + 0 +VERTEX + 5 +293 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673178.3800000001 + 20 +4860903.94 + 30 +75.12999999999998 + 70 + 32 + 0 +VERTEX + 5 +294 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673179.85 + 20 +4860901.88 + 30 +75.14 + 70 + 32 + 0 +VERTEX + 5 +295 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673180.5699999999 + 20 +4860901.07 + 30 +75.14 + 70 + 32 + 0 +VERTEX + 5 +296 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673181.4599999999 + 20 +4860900.769999998 + 30 +75.15 + 70 + 32 + 0 +VERTEX + 5 +297 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673183.1800000001 + 20 +4860900.86 + 30 +75.18 + 70 + 32 + 0 +VERTEX + 5 +298 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673184.7900000001 + 20 +4860901.2 + 30 +75.20999999999998 + 70 + 32 + 0 +VERTEX + 5 +299 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673186.3800000002 + 20 +4860901.150000001 + 30 +75.23 + 70 + 32 + 0 +VERTEX + 5 +29A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673188.5100000001 + 20 +4860900.92 + 30 +75.25 + 70 + 32 + 0 +VERTEX + 5 +29B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673189.7 + 20 +4860900.4 + 30 +75.25 + 70 + 32 + 0 +VERTEX + 5 +29C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673190.13 + 20 +4860900.37 + 30 +75.26 + 70 + 32 + 0 +VERTEX + 5 +29D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +29E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673228.77 + 20 +4860901.23 + 30 +76.12 + 70 + 32 + 0 +VERTEX + 5 +29F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673229.57 + 20 +4860902.15 + 30 +76.03 + 70 + 32 + 0 +VERTEX + 5 +2A0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673230.3900000002 + 20 +4860903.099999998 + 30 +75.94 + 70 + 32 + 0 +VERTEX + 5 +2A1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673231.63 + 20 +4860905.309999998 + 30 +75.73 + 70 + 32 + 0 +VERTEX + 5 +2A2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673235.22 + 20 +4860912.78 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2A3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673208.5999999999 + 20 +4860925.45 + 30 +75.72 + 70 + 32 + 0 +VERTEX + 5 +2A4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.34 + 20 +4860922.15 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2A5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673206.0699999999 + 20 +4860919.44 + 30 +75.60999999999999 + 70 + 32 + 0 +VERTEX + 5 +2A6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.0600000001 + 20 +4860918.54 + 30 +75.59000000000001 + 70 + 32 + 0 +VERTEX + 5 +2A7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.85 + 20 +4860916.94 + 30 +75.65000000000002 + 70 + 32 + 0 +VERTEX + 5 +2A8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673208.75 + 20 +4860913.7 + 30 +75.73999999999998 + 70 + 32 + 0 +VERTEX + 5 +2A9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673208.7599999999 + 20 +4860910.62 + 30 +75.73999999999998 + 70 + 32 + 0 +VERTEX + 5 +2AA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673228.77 + 20 +4860901.23 + 30 +76.12 + 70 + 32 + 0 +VERTEX + 5 +2AB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +2AC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.6400000001 + 20 +4860890.24 + 30 +75.70999999999997 + 70 + 32 + 0 +VERTEX + 5 +2AD +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673211.56 + 20 +4860890.719999999 + 30 +75.89 + 70 + 32 + 0 +VERTEX + 5 +2AE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673215.54 + 20 +4860892.03 + 30 +76.03 + 70 + 32 + 0 +VERTEX + 5 +2AF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673219.27 + 20 +4860893.35 + 30 +75.99 + 70 + 32 + 0 +VERTEX + 5 +2B0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673222.61 + 20 +4860895.38 + 30 +76.06999999999998 + 70 + 32 + 0 +VERTEX + 5 +2B1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673225.4799999998 + 20 +4860897.57 + 30 +76.12999999999998 + 70 + 32 + 0 +VERTEX + 5 +2B2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.17 + 20 +4860906.32 + 30 +75.75 + 70 + 32 + 0 +VERTEX + 5 +2B3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673206.4499999999 + 20 +4860905.080000001 + 30 +75.70999999999997 + 70 + 32 + 0 +VERTEX + 5 +2B4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.41 + 20 +4860903.77 + 30 +75.62000000000002 + 70 + 32 + 0 +VERTEX + 5 +2B5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.0699999999 + 20 +4860902.99 + 30 +75.51000000000001 + 70 + 32 + 0 +VERTEX + 5 +2B6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.89 + 20 +4860902.85 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2B7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.6899999999 + 20 +4860903.15 + 30 +75.34 + 70 + 32 + 0 +VERTEX + 5 +2B8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.2099999999 + 20 +4860898.28 + 30 +75.26 + 70 + 32 + 0 +VERTEX + 5 +2B9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.9899999999 + 20 +4860897.3 + 30 +75.25 + 70 + 32 + 0 +VERTEX + 5 +2BA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.5900000001 + 20 +4860895.86 + 30 +75.28 + 70 + 32 + 0 +VERTEX + 5 +2BB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.1 + 20 +4860894.32 + 30 +75.34 + 70 + 32 + 0 +VERTEX + 5 +2BC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.4100000001 + 20 +4860892.03 + 30 +75.39 + 70 + 32 + 0 +VERTEX + 5 +2BD +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.04 + 20 +4860890.9 + 30 +75.45999999999998 + 70 + 32 + 0 +VERTEX + 5 +2BE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.25 + 20 +4860890.36 + 30 +75.56 + 70 + 32 + 0 +VERTEX + 5 +2BF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673207.6400000001 + 20 +4860890.24 + 30 +75.70999999999997 + 70 + 32 + 0 +VERTEX + 5 +2C0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +2C1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.25 + 20 +4860907.019999999 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +2C2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.75 + 20 +4860907.03 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +2C3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.25 + 20 +4860907.08 + 30 +75.44 + 70 + 32 + 0 +VERTEX + 5 +2C4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.74 + 20 +4860907.17 + 30 +75.45999999999998 + 70 + 32 + 0 +VERTEX + 5 +2C5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.2199999999 + 20 +4860907.309999999 + 30 +75.48999999999998 + 70 + 32 + 0 +VERTEX + 5 +2C6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.6800000001 + 20 +4860907.49 + 30 +75.51000000000001 + 70 + 32 + 0 +VERTEX + 5 +2C7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.1300000001 + 20 +4860907.71 + 30 +75.53 + 70 + 32 + 0 +VERTEX + 5 +2C8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.5600000001 + 20 +4860907.98 + 30 +75.54999999999998 + 70 + 32 + 0 +VERTEX + 5 +2C9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.96 + 20 +4860908.28 + 30 +75.56999999999998 + 70 + 32 + 0 +VERTEX + 5 +2CA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.32 + 20 +4860908.62 + 30 +75.59000000000001 + 70 + 32 + 0 +VERTEX + 5 +2CB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.66 + 20 +4860908.99 + 30 +75.59999999999998 + 70 + 32 + 0 +VERTEX + 5 +2CC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.96 + 20 +4860909.389999998 + 30 +75.62000000000002 + 70 + 32 + 0 +VERTEX + 5 +2CD +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.23 + 20 +4860909.809999998 + 30 +75.62999999999998 + 70 + 32 + 0 +VERTEX + 5 +2CE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.4499999999 + 20 +4860910.259999998 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +2CF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.63 + 20 +4860910.73 + 30 +75.65000000000002 + 70 + 32 + 0 +VERTEX + 5 +2D0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.7700000001 + 20 +4860911.21 + 30 +75.65999999999998 + 70 + 32 + 0 +VERTEX + 5 +2D1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.86 + 20 +4860911.7 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.9100000001 + 20 +4860912.19 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.92 + 20 +4860912.48 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.8900000002 + 20 +4860912.980000001 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.8299999999 + 20 +4860913.469999998 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.7099999999 + 20 +4860913.96 + 30 +75.67 + 70 + 32 + 0 +VERTEX + 5 +2D7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.5600000001 + 20 +4860914.43 + 30 +75.65999999999998 + 70 + 32 + 0 +VERTEX + 5 +2D8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.35 + 20 +4860914.89 + 30 +75.65999999999998 + 70 + 32 + 0 +VERTEX + 5 +2D9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673204.11 + 20 +4860915.33 + 30 +75.65000000000002 + 70 + 32 + 0 +VERTEX + 5 +2DA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.84 + 20 +4860915.74 + 30 +75.64 + 70 + 32 + 0 +VERTEX + 5 +2DB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.52 + 20 +4860916.129999999 + 30 +75.62000000000002 + 70 + 32 + 0 +VERTEX + 5 +2DC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673203.17 + 20 +4860916.49 + 30 +75.60999999999999 + 70 + 32 + 0 +VERTEX + 5 +2DD +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.78 + 20 +4860916.8 + 30 +75.59000000000001 + 70 + 32 + 0 +VERTEX + 5 +2DE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673202.38 + 20 +4860917.09 + 30 +75.56999999999998 + 70 + 32 + 0 +VERTEX + 5 +2DF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.94 + 20 +4860917.34 + 30 +75.56 + 70 + 32 + 0 +VERTEX + 5 +2E0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.49 + 20 +4860917.54 + 30 +75.56 + 70 + 32 + 0 +VERTEX + 5 +2E1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673201.01 + 20 +4860917.709999999 + 30 +75.56 + 70 + 32 + 0 +VERTEX + 5 +2E2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.53 + 20 +4860917.829999999 + 30 +75.54999999999998 + 70 + 32 + 0 +VERTEX + 5 +2E3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673200.03 + 20 +4860917.9 + 30 +75.54999999999998 + 70 + 32 + 0 +VERTEX + 5 +2E4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.5300000001 + 20 +4860917.93 + 30 +75.54000000000002 + 70 + 32 + 0 +VERTEX + 5 +2E5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.0300000001 + 20 +4860917.92 + 30 +75.53 + 70 + 32 + 0 +VERTEX + 5 +2E6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.5400000001 + 20 +4860917.849999998 + 30 +75.51999999999998 + 70 + 32 + 0 +VERTEX + 5 +2E7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.05 + 20 +4860917.74 + 30 +75.51999999999998 + 70 + 32 + 0 +VERTEX + 5 +2E8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.5699999999 + 20 +4860917.59 + 30 +75.51000000000001 + 70 + 32 + 0 +VERTEX + 5 +2E9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.1099999999 + 20 +4860917.4 + 30 +75.5 + 70 + 32 + 0 +VERTEX + 5 +2EA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.67 + 20 +4860917.17 + 30 +75.48999999999998 + 70 + 32 + 0 +VERTEX + 5 +2EB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.25 + 20 +4860916.889999999 + 30 +75.48 + 70 + 32 + 0 +VERTEX + 5 +2EC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.86 + 20 +4860916.58 + 30 +75.47 + 70 + 32 + 0 +VERTEX + 5 +2ED +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.5000000002 + 20 +4860916.23 + 30 +75.47 + 70 + 32 + 0 +VERTEX + 5 +2EE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.17 + 20 +4860915.85 + 30 +75.45999999999998 + 70 + 32 + 0 +VERTEX + 5 +2EF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.8800000002 + 20 +4860915.44 + 30 +75.45 + 70 + 32 + 0 +VERTEX + 5 +2F0 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.63 + 20 +4860915.01 + 30 +75.45 + 70 + 32 + 0 +VERTEX + 5 +2F1 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.42 + 20 +4860914.56 + 30 +75.44 + 70 + 32 + 0 +VERTEX + 5 +2F2 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.2500000001 + 20 +4860914.09 + 30 +75.43000000000002 + 70 + 32 + 0 +VERTEX + 5 +2F3 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.1299999999 + 20 +4860913.61 + 30 +75.43000000000002 + 70 + 32 + 0 +VERTEX + 5 +2F4 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.04 + 20 +4860913.12 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +2F5 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.01 + 20 +4860912.62 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +2F6 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.0200000001 + 20 +4860912.12 + 30 +75.42 + 70 + 32 + 0 +VERTEX + 5 +2F7 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.0699999999 + 20 +4860911.62 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2F8 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.17 + 20 +4860911.129999998 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2F9 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.3199999999 + 20 +4860910.65 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2FA +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.51 + 20 +4860910.190000001 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2FB +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673194.74 + 20 +4860909.740000001 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2FC +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.01 + 20 +4860909.33 + 30 +75.41 + 70 + 32 + 0 +VERTEX + 5 +2FD +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.3100000001 + 20 +4860908.929999999 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +2FE +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673195.6600000001 + 20 +4860908.57 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +2FF +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.03 + 20 +4860908.24 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +300 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.4300000001 + 20 +4860907.94 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +301 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673196.86 + 20 +4860907.679999999 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +302 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.3100000001 + 20 +4860907.459999999 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +303 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673197.78 + 20 +4860907.280000001 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +304 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.2600000002 + 20 +4860907.15 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +305 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673198.7499999999 + 20 +4860907.07 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +306 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673199.25 + 20 +4860907.019999999 + 30 +75.4 + 70 + 32 + 0 +VERTEX + 5 +307 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +308 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673237.2500000001 + 20 +4860916.92 + 30 +75.75 + 70 + 32 + 0 +VERTEX + 5 +309 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673244.32 + 20 +4860931.309999998 + 30 +76.01 + 70 + 32 + 0 +VERTEX + 5 +30A +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673217.83 + 20 +4860943.78 + 30 +76.04 + 70 + 32 + 0 +VERTEX + 5 +30B +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673210.6800000001 + 20 +4860929.52 + 30 +75.79 + 70 + 32 + 0 +VERTEX + 5 +30C +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673237.2500000001 + 20 +4860916.92 + 30 +75.75 + 70 + 32 + 0 +VERTEX + 5 +30D +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673212.05 + 20 +4860975.28 + 30 +79.15 + 70 + 32 + 0 +VERTEX + 5 +30E +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673246.6200000001 + 20 +4860935.910000001 + 30 +76.18999999999998 + 70 + 32 + 0 +VERTEX + 5 +30F +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673248.8899999999 + 20 +4860940.65 + 30 +77.40999999999998 + 70 + 32 + 0 +VERTEX + 5 +310 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673252.5200000002 + 20 +4860938.91 + 30 +78.04000000000002 + 70 + 32 + 0 +VERTEX + 5 +311 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673258.99 + 20 +4860952.45 + 30 +78.04000000000002 + 70 + 32 + 0 +VERTEX + 5 +312 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673255.39 + 20 +4860954.17 + 30 +77.98999999999998 + 70 + 32 + 0 +VERTEX + 5 +313 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673253.6300000001 + 20 +4860950.5 + 30 +77.43000000000002 + 70 + 32 + 0 +VERTEX + 5 +314 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673227.5900000001 + 20 +4860962.87 + 30 +76.58 + 70 + 32 + 0 +VERTEX + 5 +315 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673220.28 + 20 +4860948.57 + 30 +76.14 + 70 + 32 + 0 +VERTEX + 5 +316 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +673246.6200000001 + 20 +4860935.910000001 + 30 +76.18999999999998 + 70 + 32 + 0 +SEQEND + 5 +317 +330 +21E +100 +AcDbEntity + 8 +A020206_entra_esci_1 + 0 +POINT + 5 +6B538 +330 +1F +100 +AcDbEntity + 8 +P020208 +100 +AcDbPoint + 10 +675645.41 + 20 +4867515.0 + 30 +508.06 +1001 +SHP_TIPM +1000 +3Z NaN +1001 +SHP_NREC +1000 + 1|P020208 +1001 +SHP_FLDDSC +1000 +OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip +1001 +SHP_FLDVAL +1000 + 1 11 06 C28000_ S10 5.08280000000e+002 0.00000000000e+000 1.00000000000e+000 020208 + 0 +POINT + 5 +6B539 +330 +1F +100 +AcDbEntity + 8 +P020208 +100 +AcDbPoint + 10 +675768.8100000001 + 20 +4867500.02 + 30 +490.0599999999999 +1001 +SHP_TIPM +1000 +3Z NaN +1001 +SHP_NREC +1000 + 2|P020208 +1001 +SHP_FLDDSC +1000 +OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip +1001 +SHP_FLDVAL +1000 + 2 11 06 C28000_ S10 4.90970000000e+002 0.00000000000e+000 1.00000000000e+000 020208 + 0 +TEXT + 5 +11F3 +330 +1F +100 +AcDbEntity + 8 +T080201_1004 +100 +AcDbText + 10 +675632.98 + 20 +4867502.400000001 + 30 +0.0 + 40 +2.399999999999999 + 1 +VIA + 50 +60.0 + 7 +romans +100 +AcDbText +1001 +RT_INFO +1000 +1004| +1001 +PARAM_VEST +1000 + 1.20 60.00 + 0 +TEXT + 5 +11F4 +330 +1F +100 +AcDbEntity + 8 +T080201_1004 +100 +AcDbText + 10 +675645.0699999999 + 20 +4867525.839999999 + 30 +0.0 + 40 +2.399999999999999 + 1 +DI + 50 +75.0 + 7 +romans +100 +AcDbText +1001 +RT_INFO +1000 +1004| +1001 +PARAM_VEST +1000 + 1.20 75.00 + 0 +POLYLINE + 5 +1B0C +330 +1F +100 +AcDbEntity + 8 +A010101 +100 +AcDb3dPolyline + 66 + 1 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 70 + 9 +1001 +SHP_NREC +1000 + 2|A010101 +1001 +SHP_FLDDSC +1000 +OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; +1001 +SHP_FLDVAL +1000 + 2 B11600 0 010101 + 0 +VERTEX + 5 +1B0D +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675598.03 + 20 +4867406.519999999 + 30 +506.1799999999999 + 70 + 32 + 0 +VERTEX + 5 +1B0E +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675593.8900000001 + 20 +4867407.73 + 30 +508.0899999999999 + 70 + 32 + 0 +VERTEX + 5 +1B0F +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675595.55 + 20 +4867413.67 + 30 +507.86 + 70 + 32 + 0 +VERTEX + 5 +1B10 +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675599.76 + 20 +4867412.44 + 30 +506.12 + 70 + 32 + 0 +VERTEX + 5 +1B0D +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675598.03 + 20 +4867406.519999999 + 30 +506.1799999999999 + 70 + 32 + 0 +SEQEND + 5 +1B11 +330 +1B0C +100 +AcDbEntity + 8 +A010101 + 0 +POLYLINE + 5 +1B0C +330 +1F +100 +AcDbEntity + 8 +A010101 +100 +AcDb3dPolyline + 66 + 1 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 70 + 8 +1001 +SHP_NREC +1000 + 2|A010101 +1001 +SHP_FLDDSC +1000 +OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; +1001 +SHP_FLDVAL +1000 + 2 B11600 0 010101 + 0 +VERTEX + 5 +1B0D +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675598.03 + 20 +4867406.519999999 + 30 +506.1799999999999 + 70 + 32 + 0 +VERTEX + 5 +1B0E +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675593.8900000001 + 20 +4867407.73 + 30 +508.0899999999999 + 70 + 32 + 0 +VERTEX + 5 +1B0F +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675595.55 + 20 +4867413.67 + 30 +507.86 + 70 + 32 + 0 +VERTEX + 5 +1B10 +330 +1B0C +100 +AcDbEntity + 8 +A010101 +100 +AcDbVertex +100 +AcDb3dPolylineVertex + 10 +675599.76 + 20 +4867412.44 + 30 +506.12 + 70 + 32 + 0 +SEQEND + 5 +1B11 +330 +1B0C +100 +AcDbEntity + 8 +A010101 + 0 +ENDSEC + 0 +SECTION + 0 +EOF \ No newline at end of file diff --git a/src/spatialite/test/movies.xml b/src/spatialite/test/movies.xml new file mode 100644 index 0000000..56f3377 Binary files /dev/null and b/src/spatialite/test/movies.xml differ diff --git a/src/spatialite/test/movies.xsd b/src/spatialite/test/movies.xsd new file mode 100644 index 0000000..b64a2be --- /dev/null +++ b/src/spatialite/test/movies.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/spatialite/test/opera.xml b/src/spatialite/test/opera.xml new file mode 100644 index 0000000..217084c --- /dev/null +++ b/src/spatialite/test/opera.xml @@ -0,0 +1,25 @@ + + + + Rigoletto + Il trovatore + La traviata + Aida + Nabucco + + + Carmen + + + The Barber of Seville + William Tell + + + The Marriage of Figaro + Thus Do They All + Don Giovanni + + \ No newline at end of file diff --git a/src/spatialite/test/opera.xsd b/src/spatialite/test/opera.xsd new file mode 100644 index 0000000..ced8521 --- /dev/null +++ b/src/spatialite/test/opera.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/spatialite/test/p05.dxf b/src/spatialite/test/p05.dxf new file mode 100644 index 0000000..cb9f7e6 --- /dev/null +++ b/src/spatialite/test/p05.dxf @@ -0,0 +1,2178 @@ + 0 +SECTION + 2 +HEADER + 9 +$EXTMIN + 10 +663412.921 + 20 +5165262.643 + 30 +0.000 + 9 +$EXTMAX + 10 +668486.317 + 20 +5172964.162 + 30 +589.850 + 9 +$LUPREC + 70 + 7 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 + 1 + 0 +LAYER + 2 +SHP_POINT + 70 +64 + 62 +7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +POINT + 8 +SHP_POINT + 10 +667710.008 + 20 +5169402.895 + 30 +589.850 + 0 +POINT + 8 +SHP_POINT + 10 +667687.978 + 20 +5169352.046 + 30 +583.140 + 0 +POINT + 8 +SHP_POINT + 10 +666907.922 + 20 +5168060.765 + 30 +279.470 + 0 +POINT + 8 +SHP_POINT + 10 +666953.070 + 20 +5167886.338 + 30 +277.750 + 0 +POINT + 8 +SHP_POINT + 10 +666963.279 + 20 +5167864.568 + 30 +277.550 + 0 +POINT + 8 +SHP_POINT + 10 +666902.562 + 20 +5168129.154 + 30 +280.360 + 0 +POINT + 8 +SHP_POINT + 10 +666885.472 + 20 +5168091.785 + 30 +280.020 + 0 +POINT + 8 +SHP_POINT + 10 +666814.808 + 20 +5167436.647 + 30 +279.590 + 0 +POINT + 8 +SHP_POINT + 10 +666925.492 + 20 +5168086.965 + 30 +280.320 + 0 +POINT + 8 +SHP_POINT + 10 +666849.489 + 20 +5167587.904 + 30 +276.430 + 0 +POINT + 8 +SHP_POINT + 10 +666924.442 + 20 +5168124.394 + 30 +280.360 + 0 +POINT + 8 +SHP_POINT + 10 +666921.113 + 20 +5168191.263 + 30 +281.700 + 0 +POINT + 8 +SHP_POINT + 10 +666851.349 + 20 +5167561.805 + 30 +276.970 + 0 +POINT + 8 +SHP_POINT + 10 +666814.404 + 20 +5168103.605 + 30 +279.260 + 0 +POINT + 8 +SHP_POINT + 10 +666825.179 + 20 +5167535.736 + 30 +277.590 + 0 +POINT + 8 +SHP_POINT + 10 +666808.189 + 20 +5167544.035 + 30 +277.050 + 0 +POINT + 8 +SHP_POINT + 10 +666894.342 + 20 +5168012.136 + 30 +278.340 + 0 +POINT + 8 +SHP_POINT + 10 +666914.519 + 20 +5167734.521 + 30 +275.820 + 0 +POINT + 8 +SHP_POINT + 10 +666813.393 + 20 +5167993.837 + 30 +277.920 + 0 +POINT + 8 +SHP_POINT + 10 +666805.314 + 20 +5168083.186 + 30 +279.380 + 0 +POINT + 8 +SHP_POINT + 10 +666809.044 + 20 +5168060.076 + 30 +278.940 + 0 +POINT + 8 +SHP_POINT + 10 +666812.124 + 20 +5168140.855 + 30 +279.740 + 0 +POINT + 8 +SHP_POINT + 10 +666874.072 + 20 +5168049.836 + 30 +278.640 + 0 +POINT + 8 +SHP_POINT + 10 +666842.629 + 20 +5167527.566 + 30 +277.410 + 0 +POINT + 8 +SHP_POINT + 10 +666847.179 + 20 +5167613.534 + 30 +275.890 + 0 +POINT + 8 +SHP_POINT + 10 +666880.017 + 20 +5167401.757 + 30 +281.130 + 0 +POINT + 8 +SHP_POINT + 10 +666858.643 + 20 +5168084.105 + 30 +279.740 + 0 +POINT + 8 +SHP_POINT + 10 +666893.941 + 20 +5167918.688 + 30 +277.100 + 0 +POINT + 8 +SHP_POINT + 10 +666904.593 + 20 +5168142.344 + 30 +281.220 + 0 +POINT + 8 +SHP_POINT + 10 +666856.861 + 20 +5167902.649 + 30 +277.200 + 0 +POINT + 8 +SHP_POINT + 10 +666870.811 + 20 +5167908.538 + 30 +277.500 + 0 +POINT + 8 +SHP_POINT + 10 +666933.110 + 20 +5167929.448 + 30 +278.130 + 0 +POINT + 8 +SHP_POINT + 10 +666812.124 + 20 +5168140.855 + 30 +279.760 + 0 +POINT + 8 +SHP_POINT + 10 +666852.131 + 20 +5167856.729 + 30 +277.500 + 0 +POINT + 8 +SHP_POINT + 10 +666942.910 + 20 +5167908.118 + 30 +278.130 + 0 +POINT + 8 +SHP_POINT + 10 +666835.703 + 20 +5168022.817 + 30 +278.280 + 0 +POINT + 8 +SHP_POINT + 10 +666912.201 + 20 +5167972.497 + 30 +278.360 + 0 +POINT + 8 +SHP_POINT + 10 +666822.903 + 20 +5168046.076 + 30 +278.380 + 0 +POINT + 8 +SHP_POINT + 10 +666860.253 + 20 +5168048.926 + 30 +278.620 + 0 +POINT + 8 +SHP_POINT + 10 +666935.943 + 20 +5168246.662 + 30 +283.110 + 0 +POINT + 8 +SHP_POINT + 10 +666861.251 + 20 +5167866.869 + 30 +277.700 + 0 +POINT + 8 +SHP_POINT + 10 +666855.252 + 20 +5167924.678 + 30 +277.460 + 0 +POINT + 8 +SHP_POINT + 10 +666876.451 + 20 +5167921.538 + 30 +277.480 + 0 +POINT + 8 +SHP_POINT + 10 +666885.001 + 20 +5167909.578 + 30 +277.420 + 0 +POINT + 8 +SHP_POINT + 10 +666858.211 + 20 +5167883.419 + 30 +277.200 + 0 +POINT + 8 +SHP_POINT + 10 +666877.181 + 20 +5167884.029 + 30 +277.200 + 0 +POINT + 8 +SHP_POINT + 10 +666811.683 + 20 +5168019.087 + 30 +278.180 + 0 +POINT + 8 +SHP_POINT + 10 +666846.222 + 20 +5167965.148 + 30 +277.260 + 0 +POINT + 8 +SHP_POINT + 10 +666871.322 + 20 +5167943.788 + 30 +277.520 + 0 +POINT + 8 +SHP_POINT + 10 +666927.183 + 20 +5168217.002 + 30 +282.130 + 0 +POINT + 8 +SHP_POINT + 10 +666926.129 + 20 +5167741.961 + 30 +275.820 + 0 +POINT + 8 +SHP_POINT + 10 +666886.331 + 20 +5167934.758 + 30 +277.480 + 0 +POINT + 8 +SHP_POINT + 10 +666853.662 + 20 +5167944.548 + 30 +277.520 + 0 +POINT + 8 +SHP_POINT + 10 +666810.403 + 20 +5168041.406 + 30 +278.540 + 0 +POINT + 8 +SHP_POINT + 10 +666837.753 + 20 +5168047.226 + 30 +278.360 + 0 +POINT + 8 +SHP_POINT + 10 +666903.801 + 20 +5167990.657 + 30 +278.440 + 0 +POINT + 8 +SHP_POINT + 10 +667139.889 + 20 +5168268.150 + 30 +300.230 + 0 +POINT + 8 +SHP_POINT + 10 +666939.139 + 20 +5167750.291 + 30 +275.820 + 0 +POINT + 8 +SHP_POINT + 10 +666913.683 + 20 +5168164.903 + 30 +281.400 + 0 +POINT + 8 +SHP_POINT + 10 +666907.902 + 20 +5168060.755 + 30 +279.420 + 0 +POINT + 8 +SHP_POINT + 10 +666901.601 + 20 +5167902.258 + 30 +276.980 + 0 +POINT + 8 +SHP_POINT + 10 +666809.683 + 20 +5167973.798 + 30 +277.460 + 0 +POINT + 8 +SHP_POINT + 10 +666800.183 + 20 +5167954.628 + 30 +277.540 + 0 +POINT + 8 +SHP_POINT + 10 +666896.812 + 20 +5168116.994 + 30 +280.760 + 0 +POINT + 8 +SHP_POINT + 10 +666828.383 + 20 +5168082.266 + 30 +279.420 + 0 +POINT + 8 +SHP_POINT + 10 +666828.122 + 20 +5167915.299 + 30 +276.740 + 0 +POINT + 8 +SHP_POINT + 10 +666834.001 + 20 +5167832.980 + 30 +274.500 + 0 +POINT + 8 +SHP_POINT + 10 +666825.112 + 20 +5167954.688 + 30 +277.260 + 0 +POINT + 8 +SHP_POINT + 10 +666839.321 + 20 +5167756.111 + 30 +274.000 + 0 +POINT + 8 +SHP_POINT + 10 +666831.222 + 20 +5167873.979 + 30 +276.400 + 0 +POINT + 8 +SHP_POINT + 10 +666802.625 + 20 +5168262.623 + 30 +290.370 + 0 +POINT + 8 +SHP_POINT + 10 +666923.279 + 20 +5167710.892 + 30 +276.610 + 0 +POINT + 8 +SHP_POINT + 10 +666841.240 + 20 +5167721.412 + 30 +274.450 + 0 +POINT + 8 +SHP_POINT + 10 +666944.458 + 20 +5167689.562 + 30 +277.710 + 0 +POINT + 8 +SHP_POINT + 10 +666805.545 + 20 +5168221.933 + 30 +288.970 + 0 +POINT + 8 +SHP_POINT + 10 +666894.869 + 20 +5167738.331 + 30 +275.320 + 0 +POINT + 8 +SHP_POINT + 10 +666866.360 + 20 +5167765.051 + 30 +274.960 + 0 +POINT + 8 +SHP_POINT + 10 +666808.425 + 20 +5168181.414 + 30 +295.560 + 0 +POINT + 8 +SHP_POINT + 10 +666842.680 + 20 +5167679.713 + 30 +275.390 + 0 +POINT + 8 +SHP_POINT + 10 +666836.761 + 20 +5167792.981 + 30 +274.820 + 0 +POINT + 8 +SHP_POINT + 10 +667139.422 + 20 +5168654.643 + 30 +297.790 + 0 +POINT + 8 +SHP_POINT + 10 +667147.662 + 20 +5168678.422 + 30 +300.650 + 0 +POINT + 8 +SHP_POINT + 10 +667129.572 + 20 +5168605.914 + 30 +292.750 + 0 +POINT + 8 +SHP_POINT + 10 +667133.592 + 20 +5168630.033 + 30 +295.630 + 0 +POINT + 8 +SHP_POINT + 10 +667126.571 + 20 +5168455.166 + 30 +290.170 + 0 +POINT + 8 +SHP_POINT + 10 +667002.952 + 20 +5168356.009 + 30 +287.270 + 0 +POINT + 8 +SHP_POINT + 10 +666967.223 + 20 +5168349.430 + 30 +285.740 + 0 +POINT + 8 +SHP_POINT + 10 +667019.202 + 20 +5168365.799 + 30 +286.590 + 0 +POINT + 8 +SHP_POINT + 10 +667129.182 + 20 +5168580.404 + 30 +292.520 + 0 +POINT + 8 +SHP_POINT + 10 +667129.322 + 20 +5168554.815 + 30 +291.620 + 0 +POINT + 8 +SHP_POINT + 10 +667132.652 + 20 +5168529.685 + 30 +290.730 + 0 +POINT + 8 +SHP_POINT + 10 +666641.059 + 20 +5168310.503 + 30 +285.490 + 0 +POINT + 8 +SHP_POINT + 10 +666922.384 + 20 +5168389.319 + 30 +286.320 + 0 +POINT + 8 +SHP_POINT + 10 +666946.924 + 20 +5168378.649 + 30 +286.420 + 0 +POINT + 8 +SHP_POINT + 10 +666943.693 + 20 +5168271.881 + 30 +283.520 + 0 +POINT + 8 +SHP_POINT + 10 +666896.975 + 20 +5168398.969 + 30 +286.240 + 0 +POINT + 8 +SHP_POINT + 10 +667056.111 + 20 +5168334.499 + 30 +289.530 + 0 +POINT + 8 +SHP_POINT + 10 +666993.673 + 20 +5168365.259 + 30 +286.850 + 0 +POINT + 8 +SHP_POINT + 10 +667030.402 + 20 +5168344.869 + 30 +288.410 + 0 +POINT + 8 +SHP_POINT + 10 +666959.363 + 20 +5168323.460 + 30 +284.800 + 0 +POINT + 8 +SHP_POINT + 10 +667112.640 + 20 +5168311.689 + 30 +294.310 + 0 +POINT + 8 +SHP_POINT + 10 +666822.256 + 20 +5168429.449 + 30 +287.080 + 0 +POINT + 8 +SHP_POINT + 10 +666871.975 + 20 +5168409.249 + 30 +286.500 + 0 +POINT + 8 +SHP_POINT + 10 +666768.718 + 20 +5168453.599 + 30 +287.620 + 0 +POINT + 8 +SHP_POINT + 10 +666847.116 + 20 +5168419.369 + 30 +286.700 + 0 +POINT + 8 +SHP_POINT + 10 +666742.388 + 20 +5168468.039 + 30 +287.620 + 0 +POINT + 8 +SHP_POINT + 10 +667044.382 + 20 +5168366.169 + 30 +286.670 + 0 +POINT + 8 +SHP_POINT + 10 +667096.071 + 20 +5168367.278 + 30 +287.950 + 0 +POINT + 8 +SHP_POINT + 10 +666654.678 + 20 +5168292.083 + 30 +284.570 + 0 +POINT + 8 +SHP_POINT + 10 +666967.803 + 20 +5168369.919 + 30 +286.460 + 0 +POINT + 8 +SHP_POINT + 10 +667134.110 + 20 +5168291.939 + 30 +297.270 + 0 +POINT + 8 +SHP_POINT + 10 +667112.041 + 20 +5168381.448 + 30 +288.950 + 0 +POINT + 8 +SHP_POINT + 10 +667116.071 + 20 +5168406.187 + 30 +289.570 + 0 +POINT + 8 +SHP_POINT + 10 +667123.401 + 20 +5168429.967 + 30 +289.790 + 0 +POINT + 8 +SHP_POINT + 10 +666951.543 + 20 +5168297.811 + 30 +284.240 + 0 +POINT + 8 +SHP_POINT + 10 +667133.431 + 20 +5168504.696 + 30 +290.180 + 0 +POINT + 8 +SHP_POINT + 10 +667131.951 + 20 +5168479.406 + 30 +290.040 + 0 +POINT + 8 +SHP_POINT + 10 +667087.081 + 20 +5168322.529 + 30 +291.870 + 0 +POINT + 8 +SHP_POINT + 10 +666717.909 + 20 +5168481.089 + 30 +287.620 + 0 +POINT + 8 +SHP_POINT + 10 +667070.851 + 20 +5168366.469 + 30 +287.050 + 0 +POINT + 8 +SHP_POINT + 10 +666667.588 + 20 +5168274.743 + 30 +283.690 + 0 +POINT + 8 +SHP_POINT + 10 +666792.687 + 20 +5168442.329 + 30 +287.400 + 0 +POINT + 8 +SHP_POINT + 10 +666796.656 + 20 +5168347.361 + 30 +293.050 + 0 +POINT + 8 +SHP_POINT + 10 +666794.247 + 20 +5168406.680 + 30 +294.560 + 0 +POINT + 8 +SHP_POINT + 10 +666799.916 + 20 +5168302.952 + 30 +291.870 + 0 +POINT + 8 +SHP_POINT + 10 +666795.166 + 20 +5168376.341 + 30 +293.520 + 0 +POINT + 8 +SHP_POINT + 10 +667062.872 + 20 +5169669.875 + 30 +348.990 + 0 +POINT + 8 +SHP_POINT + 10 +667227.370 + 20 +5169769.262 + 30 +377.470 + 0 +POINT + 8 +SHP_POINT + 10 +667105.197 + 20 +5169158.624 + 30 +313.540 + 0 +POINT + 8 +SHP_POINT + 10 +667023.749 + 20 +5169177.534 + 30 +308.700 + 0 +POINT + 8 +SHP_POINT + 10 +667097.098 + 20 +5169234.343 + 30 +319.710 + 0 +POINT + 8 +SHP_POINT + 10 +667103.877 + 20 +5169196.163 + 30 +317.720 + 0 +POINT + 8 +SHP_POINT + 10 +667175.021 + 20 +5169748.573 + 30 +362.210 + 0 +POINT + 8 +SHP_POINT + 10 +666808.520 + 20 +5170129.959 + 30 +377.670 + 0 +POINT + 8 +SHP_POINT + 10 +667082.839 + 20 +5169291.802 + 30 +322.480 + 0 +POINT + 8 +SHP_POINT + 10 +667106.443 + 20 +5169853.661 + 30 +361.980 + 0 +POINT + 8 +SHP_POINT + 10 +667184.764 + 20 +5168983.056 + 30 +317.680 + 0 +POINT + 8 +SHP_POINT + 10 +666992.477 + 20 +5170080.978 + 30 +381.120 + 0 +POINT + 8 +SHP_POINT + 10 +667096.772 + 20 +5169750.983 + 30 +353.030 + 0 +POINT + 8 +SHP_POINT + 10 +666892.616 + 20 +5169744.285 + 30 +349.150 + 0 +POINT + 8 +SHP_POINT + 10 +666831.349 + 20 +5170056.690 + 30 +373.250 + 0 +POINT + 8 +SHP_POINT + 10 +667216.190 + 20 +5169774.902 + 30 +378.960 + 0 +POINT + 8 +SHP_POINT + 10 +666987.247 + 20 +5170058.469 + 30 +379.090 + 0 +POINT + 8 +SHP_POINT + 10 +666818.448 + 20 +5169881.053 + 30 +358.650 + 0 +POINT + 8 +SHP_POINT + 10 +667271.399 + 20 +5169737.762 + 30 +370.850 + 0 +POINT + 8 +SHP_POINT + 10 +666880.121 + 20 +5169159.076 + 30 +305.590 + 0 +POINT + 8 +SHP_POINT + 10 +666922.695 + 20 +5169725.535 + 30 +349.700 + 0 +POINT + 8 +SHP_POINT + 10 +666808.839 + 20 +5169983.471 + 30 +366.540 + 0 +POINT + 8 +SHP_POINT + 10 +667239.131 + 20 +5169941.649 + 30 +367.040 + 0 +POINT + 8 +SHP_POINT + 10 +667198.751 + 20 +5169895.650 + 30 +364.390 + 0 +POINT + 8 +SHP_POINT + 10 +666921.295 + 20 +5169705.026 + 30 +348.250 + 0 +POINT + 8 +SHP_POINT + 10 +666924.536 + 20 +5169798.714 + 30 +354.790 + 0 +POINT + 8 +SHP_POINT + 10 +667096.172 + 20 +5169772.953 + 30 +355.870 + 0 +POINT + 8 +SHP_POINT + 10 +667111.413 + 20 +5169901.370 + 30 +366.750 + 0 +POINT + 8 +SHP_POINT + 10 +666874.666 + 20 +5169745.045 + 30 +348.690 + 0 +POINT + 8 +SHP_POINT + 10 +667137.236 + 20 +5169097.435 + 30 +312.580 + 0 +POINT + 8 +SHP_POINT + 10 +667085.768 + 20 +5169178.284 + 30 +312.250 + 0 +POINT + 8 +SHP_POINT + 10 +666815.910 + 20 +5170114.879 + 30 +377.030 + 0 +POINT + 8 +SHP_POINT + 10 +666903.431 + 20 +5169165.385 + 30 +306.000 + 0 +POINT + 8 +SHP_POINT + 10 +666857.452 + 20 +5169151.216 + 30 +304.820 + 0 +POINT + 8 +SHP_POINT + 10 +667092.888 + 20 +5169253.822 + 30 +320.750 + 0 +POINT + 8 +SHP_POINT + 10 +666813.069 + 20 +5169960.612 + 30 +364.820 + 0 +POINT + 8 +SHP_POINT + 10 +666823.830 + 20 +5170098.639 + 30 +376.080 + 0 +POINT + 8 +SHP_POINT + 10 +667072.803 + 20 +5169811.122 + 30 +358.910 + 0 +POINT + 8 +SHP_POINT + 10 +666985.192 + 20 +5169466.399 + 30 +332.820 + 0 +POINT + 8 +SHP_POINT + 10 +666857.797 + 20 +5169881.573 + 30 +359.470 + 0 +POINT + 8 +SHP_POINT + 10 +666820.909 + 20 +5170020.421 + 30 +369.580 + 0 +POINT + 8 +SHP_POINT + 10 +667181.865 + 20 +5169029.446 + 30 +313.010 + 0 +POINT + 8 +SHP_POINT + 10 +666788.601 + 20 +5170177.748 + 30 +379.810 + 0 +POINT + 8 +SHP_POINT + 10 +667247.049 + 20 +5169753.722 + 30 +373.240 + 0 +POINT + 8 +SHP_POINT + 10 +667184.572 + 20 +5168712.231 + 30 +305.290 + 0 +POINT + 8 +SHP_POINT + 10 +667089.008 + 20 +5169273.062 + 30 +322.150 + 0 +POINT + 8 +SHP_POINT + 10 +667067.948 + 20 +5169183.054 + 30 +311.310 + 0 +POINT + 8 +SHP_POINT + 10 +666929.820 + 20 +5169166.655 + 30 +306.340 + 0 +POINT + 8 +SHP_POINT + 10 +667124.116 + 20 +5169114.025 + 30 +313.360 + 0 +POINT + 8 +SHP_POINT + 10 +667075.502 + 20 +5169692.625 + 30 +350.030 + 0 +POINT + 8 +SHP_POINT + 10 +666811.701 + 20 +5170235.077 + 30 +384.970 + 0 +POINT + 8 +SHP_POINT + 10 +667045.170 + 20 +5169361.591 + 30 +326.260 + 0 +POINT + 8 +SHP_POINT + 10 +667229.080 + 20 +5169744.062 + 30 +364.750 + 0 +POINT + 8 +SHP_POINT + 10 +667092.792 + 20 +5169712.254 + 30 +350.360 + 0 +POINT + 8 +SHP_POINT + 10 +667174.575 + 20 +5169049.505 + 30 +312.220 + 0 +POINT + 8 +SHP_POINT + 10 +667078.862 + 20 +5169733.464 + 30 +351.890 + 0 +POINT + 8 +SHP_POINT + 10 +667214.750 + 20 +5169745.462 + 30 +363.280 + 0 +POINT + 8 +SHP_POINT + 10 +666916.794 + 20 +5169627.667 + 30 +342.420 + 0 +POINT + 8 +SHP_POINT + 10 +667080.731 + 20 +5169556.717 + 30 +332.960 + 0 +POINT + 8 +SHP_POINT + 10 +667110.697 + 20 +5169155.904 + 30 +315.240 + 0 +POINT + 8 +SHP_POINT + 10 +666826.319 + 20 +5170038.860 + 30 +371.410 + 0 +POINT + 8 +SHP_POINT + 10 +666793.031 + 20 +5170160.018 + 30 +379.070 + 0 +POINT + 8 +SHP_POINT + 10 +666995.587 + 20 +5170124.707 + 30 +385.680 + 0 +POINT + 8 +SHP_POINT + 10 +667058.953 + 20 +5169754.314 + 30 +354.220 + 0 +POINT + 8 +SHP_POINT + 10 +667145.902 + 20 +5169903.360 + 30 +365.750 + 0 +POINT + 8 +SHP_POINT + 10 +667052.973 + 20 +5169776.883 + 30 +360.210 + 0 +POINT + 8 +SHP_POINT + 10 +666926.236 + 20 +5169843.263 + 30 +358.620 + 0 +POINT + 8 +SHP_POINT + 10 +667024.871 + 20 +5169397.380 + 30 +328.210 + 0 +POINT + 8 +SHP_POINT + 10 +667260.409 + 20 +5169746.722 + 30 +371.970 + 0 +POINT + 8 +SHP_POINT + 10 +667100.878 + 20 +5169214.833 + 30 +318.580 + 0 +POINT + 8 +SHP_POINT + 10 +666837.088 + 20 +5169894.223 + 30 +360.380 + 0 +POINT + 8 +SHP_POINT + 10 +667164.682 + 20 +5168696.892 + 30 +303.170 + 0 +POINT + 8 +SHP_POINT + 10 +667197.174 + 20 +5168965.197 + 30 +319.640 + 0 +POINT + 8 +SHP_POINT + 10 +667265.511 + 20 +5169952.698 + 30 +370.430 + 0 +POINT + 8 +SHP_POINT + 10 +667077.582 + 20 +5169671.485 + 30 +348.270 + 0 +POINT + 8 +SHP_POINT + 10 +667100.222 + 20 +5169704.504 + 30 +350.270 + 0 +POINT + 8 +SHP_POINT + 10 +667093.292 + 20 +5169692.574 + 30 +349.330 + 0 +POINT + 8 +SHP_POINT + 10 +666990.988 + 20 +5170233.305 + 30 +396.600 + 0 +POINT + 8 +SHP_POINT + 10 +666919.340 + 20 +5170272.615 + 30 +396.840 + 0 +POINT + 8 +SHP_POINT + 10 +667034.800 + 20 +5169379.780 + 30 +327.100 + 0 +POINT + 8 +SHP_POINT + 10 +667053.540 + 20 +5169343.861 + 30 +325.310 + 0 +POINT + 8 +SHP_POINT + 10 +666801.908 + 20 +5169775.475 + 30 +349.950 + 0 +POINT + 8 +SHP_POINT + 10 +667060.013 + 20 +5169731.414 + 30 +351.670 + 0 +POINT + 8 +SHP_POINT + 10 +666818.269 + 20 +5169938.072 + 30 +363.800 + 0 +POINT + 8 +SHP_POINT + 10 +667277.939 + 20 +5169723.972 + 30 +369.780 + 0 +POINT + 8 +SHP_POINT + 10 +666831.913 + 20 +5166820.108 + 30 +276.130 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/raster_se.xml b/src/spatialite/test/raster_se.xml new file mode 100644 index 0000000..bdb85d9 --- /dev/null +++ b/src/spatialite/test/raster_se.xml @@ -0,0 +1,42 @@ + + + SLD raster - basic test + + raster - basic test + + raster - fantasy raster + a style using "dont't care" rendering + + + fantasy raster + 2000000 + +1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/spatialite/test/shape_3d.c b/src/spatialite/test/shape_3d.c index 007ad39..efc8bf5 100644 --- a/src/spatialite/test/shape_3d.c +++ b/src/spatialite/test/shape_3d.c @@ -51,135 +51,192 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -void cleanup_shapefile(const char *filename) +void +cleanup_shapefile (const char *filename) { char nam[1000]; - - if (!filename) { - return; - } - - snprintf(nam, 1000, "%s.dbf", filename); - unlink(nam); - snprintf(nam, 1000, "%s.prj", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shp", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shx", filename); - unlink(nam); + + if (!filename) + { + return; + } + + snprintf (nam, 1000, "%s.dbf", filename); + unlink (nam); + snprintf (nam, 1000, "%s.prj", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shp", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shx", filename); + unlink (nam); } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; - char *dumpname = __FILE__"dump"; + char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252", 25832, - "col1", 0, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/merano-3d/points: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 20) { - fprintf (stderr, "unexpected row count for shp/merano-3d/points: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile (handle, "./shp/merano-3d/polygons", "polygons", "CP1252", 25832, - "col1", 0, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/merano-3d/polygons: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 10) { - fprintf (stderr, "unexpected row count for shp/merano-3d/polygons: %i\n", row_count); - sqlite3_close(handle); - return -6; - } - - ret = load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252", 25832, - "col1", 0, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/merano-3d/roads: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - if (row_count != 18) { - fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n", row_count); - sqlite3_close(handle); - return -8; - } - - ret = dump_shapefile (handle, "roads", "col1", dumpname, "CP1252", "LINESTRING", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n", err_msg); - sqlite3_close(handle); - return -9; - } - cleanup_shapefile(dumpname); - if (row_count != 18) { - fprintf (stderr, "unexpected row count for 3d roads: %i\n", row_count); - sqlite3_close(handle); - return -10; - } - - ret = dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252", "POLYGON", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n", err_msg); - sqlite3_close(handle); - return -11; - } - cleanup_shapefile(dumpname); - if (row_count != 10) { - fprintf (stderr, "unexpected row count for 3d polygons: %i\n", row_count); - sqlite3_close(handle); - return -12; - } - - ret = dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for 3d points: %s\n", err_msg); - sqlite3_close(handle); - return -13; - } - cleanup_shapefile(dumpname); - if (row_count != 20) { - fprintf (stderr, "unexpected row count for 3d points: %i\n", row_count); - sqlite3_close(handle); - return -14; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252", + 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/merano-3d/points: %s\n", + err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 20) + { + fprintf (stderr, + "unexpected row count for shp/merano-3d/points: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile (handle, "./shp/merano-3d/polygons", "polygons", + "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/merano-3d/polygons: %s\n", + err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 10) + { + fprintf (stderr, + "unexpected row count for shp/merano-3d/polygons: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + ret = + load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252", + 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/merano-3d/roads: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + if (row_count != 18) + { + fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n", + row_count); + sqlite3_close (handle); + return -8; + } + + ret = + dump_shapefile (handle, "roads", "col1", dumpname, "CP1252", + "LINESTRING", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n", + err_msg); + sqlite3_close (handle); + return -9; + } + cleanup_shapefile (dumpname); + if (row_count != 18) + { + fprintf (stderr, "unexpected row count for 3d roads: %i\n", + row_count); + sqlite3_close (handle); + return -10; + } + + ret = + dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252", + "POLYGON", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n", + err_msg); + sqlite3_close (handle); + return -11; + } + cleanup_shapefile (dumpname); + if (row_count != 10) + { + fprintf (stderr, "unexpected row count for 3d polygons: %i\n", + row_count); + sqlite3_close (handle); + return -12; + } + + ret = + dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for 3d points: %s\n", + err_msg); + sqlite3_close (handle); + return -13; + } + cleanup_shapefile (dumpname); + if (row_count != 20) + { + fprintf (stderr, "unexpected row count for 3d points: %i\n", + row_count); + sqlite3_close (handle); + return -14; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -15; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ - + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -15; + } + + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/shape_cp1252.c b/src/spatialite/test/shape_cp1252.c index 75223da..a65efb8 100644 --- a/src/spatialite/test/shape_cp1252.c +++ b/src/spatialite/test/shape_cp1252.c @@ -51,86 +51,127 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; - char *dbfname = __FILE__"test.dbf"; + char *dbfname = __FILE__ "test.dbf"; char *err_msg = NULL; int row_count; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_shapefile (handle, "./shp/new-caledonia/points", "points", "CP1252", 4326, - "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/new-caledonia/points: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 10) { - fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile (handle, "./shp/new-caledonia/railways", "railways", "CP1252", 4326, - "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/new-caledonia/railways: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 13) { - fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); - sqlite3_close(handle); - return -6; - } - - ret = load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings", "CP1252", 4326, - "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/new-caledonia/buildings: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - if (row_count != 10) { - fprintf (stderr, "unexpected row count for shp/new-caledonia/buildings: %i\n", row_count); - sqlite3_close(handle); - return -8; - } + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_shapefile (handle, "./shp/new-caledonia/points", "points", + "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/new-caledonia/points: %s\n", + err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 10) + { + fprintf (stderr, + "unexpected row count for shp/new-caledonia/points: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile (handle, "./shp/new-caledonia/railways", "railways", + "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/new-caledonia/railways: %s\n", + err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 13) + { + fprintf (stderr, + "unexpected row count for shp/new-caledonia/points: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + ret = + load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings", + "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/new-caledonia/buildings: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + if (row_count != 10) + { + fprintf (stderr, + "unexpected row count for shp/new-caledonia/buildings: %i\n", + row_count); + sqlite3_close (handle); + return -8; + } ret = dump_dbf (handle, "points", dbfname, "CP1252", err_msg); - if (!ret) { - fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); - sqlite3_close(handle); - return -9; - } - unlink(dbfname); + if (!ret) + { + fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); + sqlite3_close (handle); + return -9; + } + unlink (dbfname); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -9; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -9; + } + + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/shape_primitives.c b/src/spatialite/test/shape_primitives.c index 14587bc..4d418d2 100644 --- a/src/spatialite/test/shape_primitives.c +++ b/src/spatialite/test/shape_primitives.c @@ -52,622 +52,1046 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -void cleanup_shapefile(const char *filename) +void +cleanup_shapefile (const char *filename) { char nam[1000]; - - if (!filename) { - return; - } - - snprintf(nam, 1000, "%s.dbf", filename); - unlink(nam); - snprintf(nam, 1000, "%s.prj", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shp", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shx", filename); - unlink(nam); + + if (!filename) + { + return; + } + + snprintf (nam, 1000, "%s.dbf", filename); + unlink (nam); + snprintf (nam, 1000, "%s.prj", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shp", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shx", filename); + unlink (nam); } -int do_test(sqlite3 *handle) +int +do_test (sqlite3 * handle) { /* testing some DB */ -#ifndef OMIT_ICONV /* only if ICONV is supported */ - char *dumpname = __FILE__"dump"; +#ifndef OMIT_ICONV /* only if ICONV is supported */ + char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; int ret; gaiaVectorLayersListPtr list; - - ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -3; - } - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -4; - } - - ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -5; - } - - ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "POINT", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -6; - } - cleanup_shapefile(dumpname); - - ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - cleanup_shapefile(dumpname); - - ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -7; /* dupe */ - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -8; - } - - ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -9; - } - - ret = dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n", err_msg); - sqlite3_close(handle); - return -10; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -11; - } - - ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -12; - } - - ret = dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n", err_msg); - sqlite3_close(handle); - return -13; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -14; - } - - ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -15; - } - - ret = dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n", err_msg); - sqlite3_close(handle); - return -16; - } - cleanup_shapefile(dumpname); - + + ret = + sqlite3_exec (handle, + "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -3; + } + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -4; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -5; + } + + ret = + dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", + "POINT", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -6; + } + cleanup_shapefile (dumpname); + + ret = + dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", + "MULTIPOINT", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + cleanup_shapefile (dumpname); + + ret = + dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -7; /* dupe */ + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -8; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -9; + } + + ret = + dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n", + err_msg); + sqlite3_close (handle); + return -10; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -11; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -12; + } + + ret = + dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n", + err_msg); + sqlite3_close (handle); + return -13; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -14; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } + + ret = + dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n", + err_msg); + sqlite3_close (handle); + return -16; + } + cleanup_shapefile (dumpname); + ret = sqlite3_exec (handle, "DROP TABLE Point_Test", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -20; - } - - ret = sqlite3_exec (handle, "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -21; - } - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -22; - } - - ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -23; - } - - ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); - sqlite3_close(handle); - return -24; - } - cleanup_shapefile(dumpname); - - ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); - sqlite3_close(handle); - return -25; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -26; - } - - ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -27; - } - - ret = dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -28; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -29; - } - - ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -30; - } - - ret = dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n", err_msg); - sqlite3_close(handle); - return -31; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -32; - } - - ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -33; - } - - ret = dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n", err_msg); - sqlite3_close(handle); - return -34; - } - cleanup_shapefile(dumpname); - + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -20; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -21; + } + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -22; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -23; + } + + ret = + dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", + "MULTIPOINT", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", + err_msg); + sqlite3_close (handle); + return -24; + } + cleanup_shapefile (dumpname); + + ret = + dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", + err_msg); + sqlite3_close (handle); + return -25; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -26; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -27; + } + + ret = + dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -28; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -29; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -30; + } + + ret = + dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n", + err_msg); + sqlite3_close (handle); + return -31; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -32; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -33; + } + + ret = + dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n", + err_msg); + sqlite3_close (handle); + return -34; + } + cleanup_shapefile (dumpname); + ret = sqlite3_exec (handle, "DROP TABLE MPoint_Test", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -35; - } - - ret = sqlite3_exec (handle, "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -36; - } - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -37; - } - - ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -38; - } - - ret = dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n", err_msg); - sqlite3_close(handle); - return -39; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -40; - } - - ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -41; - } - - ret = dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -42; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -43; - } - - ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -44; - } - - ret = dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n", err_msg); - sqlite3_close(handle); - return -45; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -46; - } - - ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -47; - } - - ret = dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n", err_msg); - sqlite3_close(handle); - return -48; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -49; - } - - ret = sqlite3_exec (handle, "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -50; - } - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -51; - } - /* TODO: try dumping an empty table */ - - ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -54; - } - - ret = dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n", err_msg); - sqlite3_close(handle); - return -55; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -56; - } - - ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -57; - } - ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -57; /* dupe */ - } - - ret = dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n", err_msg); - sqlite3_close(handle); - return -58; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -59; - } - - ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -60; - } - - ret = dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n", err_msg); - sqlite3_close(handle); - return -61; - } - cleanup_shapefile(dumpname); - - ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -62; - } - - ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -63; - } - - ret = dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n", err_msg); - sqlite3_close(handle); - return -64; - } - cleanup_shapefile(dumpname); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -35; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -36; + } + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -37; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -38; + } + + ret = + dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8", + "", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n", + err_msg); + sqlite3_close (handle); + return -39; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -40; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -41; + } + + ret = + dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8", + "", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -42; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -43; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -44; + } + + ret = + dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8", + "", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n", + err_msg); + sqlite3_close (handle); + return -45; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -46; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -47; + } + + ret = + dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8", + "", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n", + err_msg); + sqlite3_close (handle); + return -48; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -49; + } + + ret = + sqlite3_exec (handle, + "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -50; + } + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -51; + } + /* TODO: try dumping an empty table */ + + ret = + sqlite3_exec (handle, + "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -54; + } + + ret = + dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n", + err_msg); + sqlite3_close (handle); + return -55; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -56; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -57; + } + ret = + sqlite3_exec (handle, + "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -57; /* dupe */ + } + + ret = + dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n", + err_msg); + sqlite3_close (handle); + return -58; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -59; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -60; + } + + ret = + dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n", + err_msg); + sqlite3_close (handle); + return -61; + } + cleanup_shapefile (dumpname); + + ret = + sqlite3_exec (handle, + "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -62; + } + + ret = + sqlite3_exec (handle, + "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -63; + } + + ret = + dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "", + 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n", + err_msg); + sqlite3_close (handle); + return -64; + } + cleanup_shapefile (dumpname); /* testing VectorLayersList (several flavors) */ - list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_FAST); + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_OPTIMISTIC); + gaiaFreeVectorLayersList (list); + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); - list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); + list = + gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", + GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); - list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_FAST); + gaiaStatisticsInvalidate (handle, NULL, NULL); + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); - list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_OPTIMISTIC); + gaiaStatisticsInvalidate (handle, "Polygon_Test", NULL); + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); - - ret = sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -65; - } - + gaiaStatisticsInvalidate (handle, "Polygon_Test", "geomZM"); + list = + gaiaGetVectorLayersList (handle, NULL, NULL, + GAIA_VECTORS_LIST_PESSIMISTIC); + gaiaFreeVectorLayersList (list); + gaiaStatisticsInvalidate (handle, "Palygon_Tost", "ZMgeom"); + + ret = + sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -65; + } + /* final DB cleanup */ - ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -66; - } - ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -66; - } + ret = + sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -66; + } + ret = + sqlite3_exec (handle, + "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -66; + } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -66; - } -#endif /* end ICONV conditional */ - + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -66; + } +#endif /* end ICONV conditional */ + /* ok, succesfull termination */ - return 0; + return 0; } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ - spatialite_init (0); /* testing current style metadata layout >= v.4.0.0 */ - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = do_test(handle); - if (ret != 0) { - fprintf(stderr, "error while testing current style metadata layout\n"); - return ret; - } - - spatialite_cleanup(); - sqlite3_close(handle); - + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = do_test (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout\n"); + return ret; + } + + spatialite_cleanup_ex (cache); + sqlite3_close (handle); + /* testing legacy style metadata layout <= v.3.1.0 */ + cache = spatialite_alloc_connection (); + ret = + system + ("cp test-legacy-3.0.1.sqlite copy-primitives-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-primitives-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } + + spatialite_cleanup_ex (cache); + sqlite3_close (handle); + ret = unlink ("copy-primitives-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -1; + } + +/* testing invalid geometries [check/repair] */ + cache = spatialite_alloc_connection (); + ret = system ("cp test-invalid.sqlite copy-invalid.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy invalid-geoms database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open invalid-geoms database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = check_all_geometry_columns_r (cache, handle, "./report", NULL, NULL); + if (!ret) + { + fprintf (stderr, "check_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -61; + } + + ret = + sanitize_all_geometry_columns_r (cache, handle, "tmp_", "./report", + NULL, NULL); + if (!ret) + { + fprintf (stderr, "sanitize_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -62; + } + + spatialite_cleanup_ex (cache); + sqlite3_close (handle); + ret = unlink ("copy-invalid.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove invalid-geoms database\n"); + return -1; + } + +/* testing invalid geometries [check/repair] - legacy mode */ spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = do_test(handle); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } - - spatialite_cleanup(); - sqlite3_close(handle); - + ret = system ("cp test-invalid.sqlite copy-invalid.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy invalid-geoms database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, + NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open invalid-geoms database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + ret = check_all_geometry_columns (handle, "./report", NULL, NULL); + if (!ret) + { + fprintf (stderr, "check_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -91; + } + + ret = + sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); + if (!ret) + { + fprintf (stderr, "sanitize_all_geometry_columns() error\n"); + sqlite3_close (handle); + return -92; + } + + spatialite_cleanup (); + sqlite3_close (handle); + ret = unlink ("copy-invalid.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove invalid-geoms database\n"); + return -1; + } + /* testing legacy style metadata layout (v.2.3.1) */ - spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-2.3.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open legacy v.2.3.1 database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = do_test(handle); - if (ret != 0) { - fprintf(stderr, "error while testing legacy (2.3.1) style metadata layout\n"); - return ret; - } - - spatialite_cleanup(); - sqlite3_close(handle); - -#endif /* end ICONV conditional */ + cache = spatialite_alloc_connection (); + ret = system ("cp test-legacy-2.3.1.sqlite copy-legacy-2.3.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.2.3.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-legacy-2.3.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.2.3.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy (2.3.1) style metadata layout\n"); + return ret; + } + + spatialite_cleanup_ex (cache); + sqlite3_close (handle); + ret = unlink ("copy-legacy-2.3.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.2.3.1 database\n"); + return -1; + } + +#endif /* end LWGEOM conditionals */ +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/shape_utf8_1.c b/src/spatialite/test/shape_utf8_1.c index c00c33a..b5a7697 100644 --- a/src/spatialite/test/shape_utf8_1.c +++ b/src/spatialite/test/shape_utf8_1.c @@ -52,290 +52,421 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -void cleanup_shapefile(const char *filename) +void +cleanup_shapefile (const char *filename) { char nam[1000]; - - if (!filename) { - return; - } - - snprintf(nam, 1000, "%s.dbf", filename); - unlink(nam); - snprintf(nam, 1000, "%s.prj", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shp", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shx", filename); - unlink(nam); + + if (!filename) + { + return; + } + + snprintf (nam, 1000, "%s.dbf", filename); + unlink (nam); + snprintf (nam, 1000, "%s.prj", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shp", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shx", filename); + unlink (nam); } -int do_test(sqlite3 *handle, int legacy) +int +do_test (sqlite3 * handle, int legacy) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; - char *dumpname = __FILE__"dump"; + char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; - - ret = load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, - NULL, 1, 0, 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 5) { - fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, - "col1", 1, 0, 0, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 1) { - fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); - sqlite3_close(handle); - return -6; - } - - ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326, + + ret = + load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, + NULL, 1, 0, 1, 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n", + err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 5) + { + fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, + "col1", 1, 0, 0, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n", + err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 1) + { + fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - if (row_count != 2) { - fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); - sqlite3_close(handle); - return -8; - } + if (!ret) + { + fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + if (row_count != 2) + { + fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", + row_count); + sqlite3_close (handle); + return -8; + } if (legacy) - { - sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); - sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); - } + { + sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, + NULL); + sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, + NULL, NULL); + } else - { - sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); - sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); - sqlite3_close(handle); - return -9; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); - sqlite3_close(handle); - return -10; - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); - sqlite3_close(handle); - return -13; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); - sqlite3_close(handle); - return -14; - } - - ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -15; - } + { + sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, + NULL, NULL); + sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", + NULL, NULL, NULL); + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", + err_msg); + sqlite3_close (handle); + return -9; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", + row_count); + sqlite3_close (handle); + return -10; + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", + "LINESTRING", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", + err_msg); + sqlite3_close (handle); + return -13; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, + "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", + row_count); + sqlite3_close (handle); + return -14; + } + + ret = + sqlite3_exec (handle, + "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } if (legacy) - ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); + ret = + sqlite3_exec (handle, + "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", + NULL, NULL, &err_msg); else - ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -16; - } + ret = + sqlite3_exec (handle, + "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -16; + } if (legacy) - { - sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); - ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); - } + { + sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, + NULL); + ret = + sqlite3_exec (handle, + "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", + NULL, NULL, &err_msg); + } else - { - sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); - ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)", NULL, NULL, &err_msg); - } - if (ret != SQLITE_OK) { - fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -17; - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); - sqlite3_close(handle); - return -17; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); - sqlite3_close(handle); - return -18; - } - + { + sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, + NULL, NULL); + ret = + sqlite3_exec (handle, + "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)", + NULL, NULL, &err_msg); + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -17; + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", + err_msg); + sqlite3_close (handle); + return -17; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, + "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", + row_count); + sqlite3_close (handle); + return -18; + } + if (legacy) - { - /* final DB cleanup */ - ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -19; - } - ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -20; - } - ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -21; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -22; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -23; - } - ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -24; - } - ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -25; - } - ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -26; - } - ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -27; - } - } -#endif /* end ICONV conditional */ + { + /* final DB cleanup */ + ret = + sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -19; + } + ret = + sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -20; + } + ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -21; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -22; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -23; + } + ret = + sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -24; + } + ret = + sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "DELETE FROM views_geometry_columns error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -25; + } + ret = + sqlite3_exec (handle, + "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -26; + } + ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -27; + } + } +#endif /* end ICONV conditional */ /* ok, succesfull termination */ - return 0; - + return 0; + } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = do_test(handle, 0); - if (ret != 0) { - fprintf(stderr, "error while testing current style metadata layout\n"); - return ret; - } + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = do_test (handle, 0); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -19; - } + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -19; + } + spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = do_test(handle, 1); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } + cache = spatialite_alloc_connection (); + ret = + system ("cp test-legacy-3.0.1.sqlite copy-utf8_1-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-utf8_1-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle, 1); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -19; - } - spatialite_cleanup(); - -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -19; + } + spatialite_cleanup_ex (cache); + ret = unlink ("copy-utf8_1-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -20; + } + +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/shape_utf8_1ex.c b/src/spatialite/test/shape_utf8_1ex.c index d51de64..0e51e96 100644 --- a/src/spatialite/test/shape_utf8_1ex.c +++ b/src/spatialite/test/shape_utf8_1ex.c @@ -52,291 +52,427 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -void cleanup_shapefile(const char *filename) +void +cleanup_shapefile (const char *filename) { char nam[1000]; - - if (!filename) { - return; - } - - snprintf(nam, 1000, "%s.dbf", filename); - unlink(nam); - snprintf(nam, 1000, "%s.prj", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shp", filename); - unlink(nam); - snprintf(nam, 1000, "%s.shx", filename); - unlink(nam); + + if (!filename) + { + return; + } + + snprintf (nam, 1000, "%s.dbf", filename); + unlink (nam); + snprintf (nam, 1000, "%s.prj", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shp", filename); + unlink (nam); + snprintf (nam, 1000, "%s.shx", filename); + unlink (nam); } -int do_test(sqlite3 *handle, int legacy) +int +do_test (sqlite3 * handle, int legacy) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; - char *dumpname = __FILE__"dump"; + char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; - - ret = load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, - NULL, NULL, "POINT", 1, 0, 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile_ex() error for shp/gaza/barrier: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 5) { - fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, - "col1", NULL, "LINESTRING", 1, 0, 0, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile_ex() error for shp/gaza/aeroway: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 1) { - fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); - sqlite3_close(handle); - return -6; - } - - ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326, - NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - if (row_count != 2) { - fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); - sqlite3_close(handle); - return -8; - } + + ret = + load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8", + 4326, NULL, NULL, "POINT", 1, 0, 1, 1, &row_count, + err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile_ex() error for shp/gaza/barrier: %s\n", + err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 5) + { + fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", + 4326, "col1", NULL, "LINESTRING", 1, 0, 0, 0, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile_ex() error for shp/gaza/aeroway: %s\n", + err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 1) + { + fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326, + NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + if (row_count != 2) + { + fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", + row_count); + sqlite3_close (handle); + return -8; + } if (legacy) - { - sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); - sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); - } + { + sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, + NULL); + sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, + NULL, NULL); + } else - { - sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); - sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); - sqlite3_close(handle); - return -9; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); - sqlite3_close(handle); - return -10; - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); - sqlite3_close(handle); - return -13; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); - sqlite3_close(handle); - return -14; - } - - ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -15; - } + { + sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, + NULL, NULL); + sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", + NULL, NULL, NULL); + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", + err_msg); + sqlite3_close (handle); + return -9; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", + row_count); + sqlite3_close (handle); + return -10; + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", + "LINESTRING", 1, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", + err_msg); + sqlite3_close (handle); + return -13; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, + "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", + row_count); + sqlite3_close (handle); + return -14; + } + + ret = + sqlite3_exec (handle, + "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -15; + } if (legacy) - ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); + ret = + sqlite3_exec (handle, + "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", + NULL, NULL, &err_msg); else - ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -16; - } + ret = + sqlite3_exec (handle, + "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -16; + } if (legacy) - { - sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); - ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); - } + { + sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, + NULL); + ret = + sqlite3_exec (handle, + "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", + NULL, NULL, &err_msg); + } else - { - sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); - ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)", NULL, NULL, &err_msg); - } - if (ret != SQLITE_OK) { - fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -17; - } - - ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); - sqlite3_close(handle); - return -17; - } - cleanup_shapefile(dumpname); - if (row_count != 2) { - fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); - sqlite3_close(handle); - return -18; - } - + { + sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, + NULL, NULL); + ret = + sqlite3_exec (handle, + "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)", + NULL, NULL, &err_msg); + } + if (ret != SQLITE_OK) + { + fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -17; + } + + ret = + dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, + &row_count, err_msg); + if (!ret) + { + fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", + err_msg); + sqlite3_close (handle); + return -17; + } + cleanup_shapefile (dumpname); + if (row_count != 2) + { + fprintf (stderr, + "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", + row_count); + sqlite3_close (handle); + return -18; + } + if (legacy) - { - /* final DB cleanup */ - ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -19; - } - ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -20; - } - ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -21; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -22; - } - ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -23; - } - ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -24; - } - ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -25; - } - ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -26; - } - ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "VACUUM error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -27; - } - } -#endif /* end ICONV conditional */ + { + /* final DB cleanup */ + ret = + sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -19; + } + ret = + sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -20; + } + ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -21; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -22; + } + ret = + sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -23; + } + ret = + sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -24; + } + ret = + sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, + NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, + "DELETE FROM views_geometry_columns error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -25; + } + ret = + sqlite3_exec (handle, + "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", + NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", + err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -26; + } + ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "VACUUM error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -27; + } + } +#endif /* end ICONV conditional */ /* ok, succesfull termination */ - return 0; - + return 0; + } -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = do_test(handle, 0); - if (ret != 0) { - fprintf(stderr, "error while testing current style metadata layout\n"); - return ret; - } + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = do_test (handle, 0); + if (ret != 0) + { + fprintf (stderr, + "error while testing current style metadata layout\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -19; - } - spatialite_cleanup(); + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -19; + } + spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ - spatialite_init (0); - ret = sqlite3_open_v2 ("test-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = do_test(handle, 1); - if (ret != 0) { - fprintf(stderr, "error while testing legacy style metadata layout\n"); - return ret; - } + cache = spatialite_alloc_connection (); + ret = + system + ("cp test-legacy-3.0.1.sqlite copy-utf8_1ex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); + return -1; + } + ret = + sqlite3_open_v2 ("copy-utf8_1ex-legacy-3.0.1.sqlite", &handle, + SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = do_test (handle, 1); + if (ret != 0) + { + fprintf (stderr, + "error while testing legacy style metadata layout\n"); + return ret; + } ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -19; - } - spatialite_cleanup(); - -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -19; + } + spatialite_cleanup_ex (cache); + ret = unlink ("copy-utf8_1ex-legacy-3.0.1.sqlite"); + if (ret != 0) + { + fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); + return -20; + } + +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/shape_utf8_2.c b/src/spatialite/test/shape_utf8_2.c index 1bd287a..a6042c7 100644 --- a/src/spatialite/test/shape_utf8_2.c +++ b/src/spatialite/test/shape_utf8_2.c @@ -52,138 +52,184 @@ the terms of any one of the MPL, the GPL or the LGPL. #include "sqlite3.h" #include "spatialite.h" -int main (int argc, char *argv[]) +int +main (int argc, char *argv[]) { -#ifndef OMIT_ICONV /* only if ICONV is supported */ +#ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; - char *kmlname = __FILE__"test.kml"; - char *geojsonname = __FILE__"test.geojson"; + char *kmlname = __FILE__ "test.kml"; + char *geojsonname = __FILE__ "test.geojson"; char *err_msg = NULL; int row_count; - - spatialite_init (0); - ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); - if (ret != SQLITE_OK) { - fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); - sqlite3_close(handle); - return -1; - } - - ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); - if (ret != SQLITE_OK) { - fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); - sqlite3_free(err_msg); - sqlite3_close(handle); - return -2; - } - - ret = load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8", 4326, - "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/taiwan/hystoric: %s\n", err_msg); - sqlite3_close(handle); - return -3; - } - if (row_count != 15) { - fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n", row_count); - sqlite3_close(handle); - return -4; - } - - ret = load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8", 4326, - "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/taiwan/leisure: %s\n", err_msg); - sqlite3_close(handle); - return -5; - } - if (row_count != 5) { - fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n", row_count); - sqlite3_close(handle); - return -6; - } - - ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326, + void *cache = spatialite_alloc_connection (); + + if (argc > 1 || argv[0] == NULL) + argc = 1; /* silencing stupid compiler warnings */ + + ret = + sqlite3_open_v2 (":memory:", &handle, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); + if (ret != SQLITE_OK) + { + fprintf (stderr, "cannot open in-memory database: %s\n", + sqlite3_errmsg (handle)); + sqlite3_close (handle); + return -1; + } + + spatialite_init_ex (handle, cache, 0); + + ret = + sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, + &err_msg); + if (ret != SQLITE_OK) + { + fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); + sqlite3_free (err_msg); + sqlite3_close (handle); + return -2; + } + + ret = + load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8", + 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/taiwan/hystoric: %s\n", + err_msg); + sqlite3_close (handle); + return -3; + } + if (row_count != 15) + { + fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n", + row_count); + sqlite3_close (handle); + return -4; + } + + ret = + load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8", + 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); + if (!ret) + { + fprintf (stderr, + "load_shapefile() error for shp/taiwan/leisure: %s\n", + err_msg); + sqlite3_close (handle); + return -5; + } + if (row_count != 5) + { + fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n", + row_count); + sqlite3_close (handle); + return -6; + } + + ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); - if (!ret) { - fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -7; - } - if (row_count != 4) { - fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n", row_count); - sqlite3_close(handle); - return -8; - } - -#ifndef OMIT_PROJ /* only if PROJ is supported */ - if (is_kml_constant (handle, "route", "name")) { - fprintf(stderr, "unexpected result for is_kml_constant (1)\n"); - return -9; - } - if (! is_kml_constant (handle, "route", "foo")) { - fprintf(stderr, "unexpected result for is_kml_constant (2)\n"); - return -10; - } - + if (!ret) + { + fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -7; + } + if (row_count != 4) + { + fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n", + row_count); + sqlite3_close (handle); + return -8; + } + +#ifndef OMIT_PROJ /* only if PROJ is supported */ + if (is_kml_constant (handle, "route", "name")) + { + fprintf (stderr, "unexpected result for is_kml_constant (1)\n"); + return -9; + } + if (!is_kml_constant (handle, "route", "foo")) + { + fprintf (stderr, "unexpected result for is_kml_constant (2)\n"); + return -10; + } + ret = dump_kml (handle, "route", "col1", kmlname, NULL, NULL, 10); - if (!ret) { - fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -11; - } - unlink(kmlname); + if (!ret) + { + fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -11; + } + unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", NULL, 10); - if (!ret) { - fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -12; - } - unlink(kmlname); + if (!ret) + { + fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -12; + } + unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", NULL, 10); - if (!ret) { - fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -13; - } - unlink(kmlname); + if (!ret) + { + fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -13; + } + unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", "sub_type", 10); - if (!ret) { - fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -14; - } - unlink(kmlname); + if (!ret) + { + fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -14; + } + unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", "beta", 10); - if (!ret) { - fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -15; - } - unlink(kmlname); -#endif /* end PROJ conditional */ - - ret = dump_geojson(handle, "route", "col1", geojsonname, 10, 5); - if (!ret) { - fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n", err_msg); - sqlite3_close(handle); - return -16; - } - unlink(geojsonname); + if (!ret) + { + fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -15; + } + unlink (kmlname); +#endif /* end PROJ conditional */ + + ret = dump_geojson (handle, "route", "col1", geojsonname, 10, 5); + if (!ret) + { + fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n", + err_msg); + sqlite3_close (handle); + return -16; + } + unlink (geojsonname); ret = sqlite3_close (handle); - if (ret != SQLITE_OK) { - fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); - return -17; - } - - spatialite_cleanup(); -#endif /* end ICONV conditional */ + if (ret != SQLITE_OK) + { + fprintf (stderr, "sqlite3_close() error: %s\n", + sqlite3_errmsg (handle)); + return -17; + } + + spatialite_cleanup_ex (cache); +#endif /* end ICONV conditional */ + spatialite_shutdown (); return 0; } diff --git a/src/spatialite/test/sld_sample.xml b/src/spatialite/test/sld_sample.xml new file mode 100644 index 0000000..18b4e8e --- /dev/null +++ b/src/spatialite/test/sld_sample.xml @@ -0,0 +1,21 @@ + + + trento_ShRel_draped + + Trento: Shaded Relief Orthophoto + RGB aerial orthophoto draped over LIDAR DEM with Shaded Relief + + + lidar_dem + + shaded_relief_default + + + + ortophoto + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.am b/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.am new file mode 100644 index 0000000..8b873a9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.am @@ -0,0 +1,74 @@ + +EXTRA_DIST = asgpb1.testcase \ + asgpb2.testcase \ + asgpb3.testcase \ + asgpb4.testcase \ + asgpb5.testcase \ + asgpb6.testcase \ + geomfromgpb10.testcase \ + geomfromgpb11.testcase \ + geomfromgpb12.testcase \ + geomfromgpb13.testcase \ + geomfromgpb14.testcase \ + geomfromgpb15.testcase \ + geomfromgpb16.testcase \ + geomfromgpb17.testcase \ + geomfromgpb18.testcase \ + geomfromgpb19.testcase \ + geomfromgpb1.testcase \ + geomfromgpb2.testcase \ + geomfromgpb3.testcase \ + geomfromgpb4.testcase \ + geomfromgpb5.testcase \ + geomfromgpb6.testcase \ + geomfromgpb7.testcase \ + geomfromgpb8.testcase \ + geomfromgpb9.testcase \ + implicitgeopackagebinary1.testcase \ + implicitgeopackagebinary2.testcase \ + makepoint1.testcase \ + makepoint2.testcase \ + makepoint3.testcase \ + makepoint4.testcase \ + makepoint5.testcase \ + makepoint6.testcase \ + makepoint7.testcase \ + makepoint8.testcase \ + makepoint9.testcase \ + makepointm10.testcase \ + makepointm11.testcase \ + makepointm1.testcase \ + makepointm2.testcase \ + makepointm3.testcase \ + makepointm4.testcase \ + makepointm5.testcase \ + makepointm6.testcase \ + makepointm7.testcase \ + makepointm8.testcase \ + makepointm9.testcase \ + makepointz10.testcase \ + makepointz11.testcase \ + makepointz1.testcase \ + makepointz2.testcase \ + makepointz3.testcase \ + makepointz4.testcase \ + makepointz5.testcase \ + makepointz6.testcase \ + makepointz7.testcase \ + makepointz8.testcase \ + makepointz9.testcase \ + makepointzm10.testcase \ + makepointzm11.testcase \ + makepointzm12.testcase \ + makepointzm13.testcase \ + makepointzm14.testcase \ + makepointzm15.testcase \ + makepointzm1.testcase \ + makepointzm2.testcase \ + makepointzm3.testcase \ + makepointzm4.testcase \ + makepointzm5.testcase \ + makepointzm6.testcase \ + makepointzm7.testcase \ + makepointzm8.testcase \ + makepointzm9.testcase diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.in b/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.in new file mode 100644 index 0000000..57550c9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/Makefile.in @@ -0,0 +1,510 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_geopackage_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = asgpb1.testcase \ + asgpb2.testcase \ + asgpb3.testcase \ + asgpb4.testcase \ + asgpb5.testcase \ + asgpb6.testcase \ + geomfromgpb10.testcase \ + geomfromgpb11.testcase \ + geomfromgpb12.testcase \ + geomfromgpb13.testcase \ + geomfromgpb14.testcase \ + geomfromgpb15.testcase \ + geomfromgpb16.testcase \ + geomfromgpb17.testcase \ + geomfromgpb18.testcase \ + geomfromgpb19.testcase \ + geomfromgpb1.testcase \ + geomfromgpb2.testcase \ + geomfromgpb3.testcase \ + geomfromgpb4.testcase \ + geomfromgpb5.testcase \ + geomfromgpb6.testcase \ + geomfromgpb7.testcase \ + geomfromgpb8.testcase \ + geomfromgpb9.testcase \ + implicitgeopackagebinary1.testcase \ + implicitgeopackagebinary2.testcase \ + makepoint1.testcase \ + makepoint2.testcase \ + makepoint3.testcase \ + makepoint4.testcase \ + makepoint5.testcase \ + makepoint6.testcase \ + makepoint7.testcase \ + makepoint8.testcase \ + makepoint9.testcase \ + makepointm10.testcase \ + makepointm11.testcase \ + makepointm1.testcase \ + makepointm2.testcase \ + makepointm3.testcase \ + makepointm4.testcase \ + makepointm5.testcase \ + makepointm6.testcase \ + makepointm7.testcase \ + makepointm8.testcase \ + makepointm9.testcase \ + makepointz10.testcase \ + makepointz11.testcase \ + makepointz1.testcase \ + makepointz2.testcase \ + makepointz3.testcase \ + makepointz4.testcase \ + makepointz5.testcase \ + makepointz6.testcase \ + makepointz7.testcase \ + makepointz8.testcase \ + makepointz9.testcase \ + makepointzm10.testcase \ + makepointzm11.testcase \ + makepointzm12.testcase \ + makepointzm13.testcase \ + makepointzm14.testcase \ + makepointzm15.testcase \ + makepointzm1.testcase \ + makepointzm2.testcase \ + makepointzm3.testcase \ + makepointzm4.testcase \ + makepointzm5.testcase \ + makepointzm6.testcase \ + makepointzm7.testcase \ + makepointzm8.testcase \ + makepointzm9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb1.testcase new file mode 100644 index 0000000..b3711ea --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb1.testcase @@ -0,0 +1,7 @@ +togpb1 +:memory: #use in-memory database +SELECT Hex(AsGPB(GeomFromText("POINT(136 -35)"))) +1 # rows (not including the header row) +1 # columns +Hex(AsGPB(GeomFromText("POINT(136 -35)"))) +47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb2.testcase new file mode 100644 index 0000000..15b3a79 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb2.testcase @@ -0,0 +1,8 @@ +asgpb2 +:memory: #use in-memory database +SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)"))) +1 # rows (not including the header row) +1 # columns +Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)"))) +47500003000000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb3.testcase new file mode 100644 index 0000000..b8d5c58 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb3.testcase @@ -0,0 +1,8 @@ +asgpb3 +:memory: #use in-memory database +SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326))) +1 # rows (not including the header row) +1 # columns +Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326))) +47500003E61000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb4.testcase new file mode 100644 index 0000000..d619842 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb4.testcase @@ -0,0 +1,9 @@ +asgpb4 +:memory: #use in-memory database +SELECT AsGPB("blah") +1 # rows (not including the header row) +1 # columns +AsGPB("blah") +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb5.testcase new file mode 100644 index 0000000..8fac4b9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb5.testcase @@ -0,0 +1,8 @@ +asgpb5 +:memory: #use in-memory database +SELECT Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))) +1 # rows (not including the header row) +1 # columns +Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))) +47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/asgpb6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb6.testcase new file mode 100644 index 0000000..641ec9b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/asgpb6.testcase @@ -0,0 +1,9 @@ +asgpb6 +:memory: #use in-memory database +SELECT AsGPB(zeroblob(100)) +1 # rows (not including the header row) +1 # columns +AsGPB(zeroblob(100)) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase new file mode 100644 index 0000000..b77cc70 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase @@ -0,0 +1,7 @@ +geomfromgpb1 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0')) +POINT(136 -35) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase new file mode 100644 index 0000000..3a431c6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase @@ -0,0 +1,8 @@ +geomfromgpb10 +:memory: #use in-memory database +SELECT GeomFromGPB(4) +1 # rows (not including the header row) +1 # columns +GeomFromGPB(4) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase new file mode 100644 index 0000000..1b8b184 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase @@ -0,0 +1,7 @@ +geomfromgpb11 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +POINT M(136 -35 4) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase new file mode 100644 index 0000000..8d700c9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase @@ -0,0 +1,7 @@ +geomfromgpb12 +:memory: #use in-memory database +SELECT AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +1 # rows (not including the header row) +1 # columns +AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +SRID=0;POINTM(136 -35 4) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase new file mode 100644 index 0000000..9a622f1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase @@ -0,0 +1,7 @@ +geomfromgpb13 +:memory: #use in-memory database +SELECT AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +1 # rows (not including the header row) +1 # columns +AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) +SRID=4326;POINTM(136 -35 4) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase new file mode 100644 index 0000000..7ba53e9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase @@ -0,0 +1,7 @@ +geomfromgpb14 +:memory: #use in-memory database +SELECT AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +1 # rows (not including the header row) +1 # columns +AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +SRID=4326;POINT(136 -35 4 9.5) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase new file mode 100644 index 0000000..eb27a13 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase @@ -0,0 +1,7 @@ +geomfromgpb15 +:memory: #use in-memory database +SELECT ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +1 # rows (not including the header row) +1 # columns +ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +4326 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase new file mode 100644 index 0000000..b4d16fc --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase @@ -0,0 +1,7 @@ +geomfromgpb16 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +POINT ZM(136 -35 4 9.5) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase new file mode 100644 index 0000000..0f7f172 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase @@ -0,0 +1,8 @@ +geomfromgpb17 +:memory: #use in-memory database +SELECT GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') +1 # rows (not including the header row) +1 # columns +GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase new file mode 100644 index 0000000..40c2d3f --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase @@ -0,0 +1,8 @@ +geomfromgpb18 +:memory: #use in-memory database +SELECT GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') +1 # rows (not including the header row) +1 # columns +GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase new file mode 100644 index 0000000..400da18 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase @@ -0,0 +1,7 @@ +geomfromgpb19 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001')) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase new file mode 100644 index 0000000..734f674 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase @@ -0,0 +1,8 @@ +geomfromgpb2 +:memory: #use in-memory database +SELECT GeomFromGPB(zeroblob(7)) +1 # rows (not including the header row) +1 # columns +GeomFromGPB(zeroblob(7)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase new file mode 100644 index 0000000..ee16efb --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase @@ -0,0 +1,8 @@ +geomfromgpb3 +:memory: #use in-memory database +SELECT GeomFromGPB(zeroblob(11)) +1 # rows (not including the header row) +1 # columns +GeomFromGPB(zeroblob(11)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase new file mode 100644 index 0000000..496524f --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase @@ -0,0 +1,8 @@ +geomfromgpb4 +:memory: #use in-memory database +SELECT GeomFromGPB(x'4751000000000000') +1 # rows (not including the header row) +1 # columns +GeomFromGPB(x'4751000000000000') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase new file mode 100644 index 0000000..64fde58 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase @@ -0,0 +1,8 @@ +geomfromgpb5 +:memory: #use in-memory database +SELECT GeomFromGPB(x'4750100000000000') +1 # rows (not including the header row) +1 # columns +GeomFromGPB(x'4750100000000000') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase new file mode 100644 index 0000000..ca388a7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase @@ -0,0 +1,8 @@ +geomfromgpb6 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) +LINESTRING(136 -35, 134 -33, 135 -32) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase new file mode 100644 index 0000000..7652b2d --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase @@ -0,0 +1,8 @@ +geomfromgpb7 +:memory: #use in-memory database +SELECT AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +POINT ZM(136 -35 4 9.5) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase new file mode 100644 index 0000000..0387c3c --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase @@ -0,0 +1,8 @@ +geomfromgpb7 +:memory: #use in-memory database +SELECT ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +1 # rows (not including the header row) +1 # columns +ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) +4326 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase new file mode 100644 index 0000000..9c94d52 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase @@ -0,0 +1,7 @@ +geomfromgpb9 +:memory: #use in-memory database +SELECT ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) +1 # rows (not including the header row) +1 # columns +ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) +4326 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase new file mode 100644 index 0000000..3711d27 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase @@ -0,0 +1,7 @@ +implicit geopackage binary 1 +:memory: #use in-memory database +SELECT Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))) +1 # rows (not including the header row) +1 # columns +Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))) +0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase new file mode 100644 index 0000000..5af7178 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase @@ -0,0 +1,7 @@ +implicit geopackage binary 2 +:memory: #use in-memory database +SELECT Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))) +1 # rows (not including the header row) +1 # columns +Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))) +0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint1.testcase new file mode 100644 index 0000000..f073163 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint1.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint1 +:memory: #use in-memory database +SELECT Hex(gpkgMakePoint(136, -35)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePoint(136, -35)) +47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint2.testcase new file mode 100644 index 0000000..4bd79ef --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint2.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint2 +:memory: #use in-memory database +SELECT Hex(gpkgMakePoint(136, -35, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePoint(136, -35, 4326)) +47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint3.testcase new file mode 100644 index 0000000..c433203 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint3.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint3 +:memory: #use in-memory database +SELECT Hex(gpkgMakePoint(136.0, -35.0, 4326)); +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePoint(136.0, -35.0, 4326)) +47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint4.testcase new file mode 100644 index 0000000..c625177 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint4.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint4 +:memory: #use in-memory database +SELECT Hex(gpkgMakePoint(136.0, -35.0)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePoint(136.0, -35.0)) +47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint5.testcase new file mode 100644 index 0000000..b3bd9b6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint5.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint5 +:memory: #use in-memory database +SELECT gpkgMakePoint("a", -35.0) +1 # rows (not including the header row) +1 # columns +gpkgMakePoint("a", -35.0) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint6.testcase new file mode 100644 index 0000000..cd13aa1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint6.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint6 +:memory: #use in-memory database +SELECT gpkgMakePoint(136, "b") +1 # rows (not including the header row) +1 # columns +gpkgMakePoint(136, "b") +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint7.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint7.testcase new file mode 100644 index 0000000..584a230 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint7.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint7 +:memory: #use in-memory database +SELECT gpkgMakePoint(136, "b", 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePoint(136, "b", 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint8.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint8.testcase new file mode 100644 index 0000000..aadb2cf --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint8.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint8 +:memory: #use in-memory database +SELECT gpkgMakePoint("a", -35, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePoint("a", -35, 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepoint9.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint9.testcase new file mode 100644 index 0000000..e4f70a0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepoint9.testcase @@ -0,0 +1,7 @@ +gpkgmakepoint9 +:memory: #use in-memory database +SELECT gpkgMakePoint(136.0, -35.0, 3.5) +1 # rows (not including the header row) +1 # columns +gpkgMakePoint(136.0, -35.0, 3.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm1.testcase new file mode 100644 index 0000000..736e8c6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm1.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm1 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointM(136, -35, 4)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointM(136, -35, 4)) +47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm10.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm10.testcase new file mode 100644 index 0000000..3334c5d --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm10.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm10 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326)) +47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm11.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm11.testcase new file mode 100644 index 0000000..9435861 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm11.testcase @@ -0,0 +1,9 @@ +gpkgmakepointm10 +:memory: #use in-memory database +SELECT gpkgMakePointM(136.0, -35.0, 4.0, "srd") +1 # rows (not including the header row) +1 # columns +gpkgMakePointM(136.0, -35.0, 4.0, "srd") +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm2.testcase new file mode 100644 index 0000000..0989608 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm2.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm2 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointM(136.0, -35.0, 4.0)) +47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm3.testcase new file mode 100644 index 0000000..f77384f --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm3.testcase @@ -0,0 +1,7 @@ +gpkgmakepointm3 +:memory: #use in-memory database +SELECT gpkgMakePointM("x", -35.0, 4.0) +1 # rows (not including the header row) +1 # columns +gpkgMakePointM("x", -35.0, 4.0) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm4.testcase new file mode 100644 index 0000000..2d659f9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm4.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm4 +:memory: #use in-memory database +SELECT gpkgMakePointM(136.0, "y", 4.0) +1 # rows (not including the header row) +1 # columns +gpkgMakePointM(136.0, "y", 4.0) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm5.testcase new file mode 100644 index 0000000..6848781 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm5.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm5 +:memory: #use in-memory database +SELECT gpkgMakePointM(136.0, -35, "z") +1 # rows (not including the header row) +1 # columns +gpkgMakePointM(136.0, -35, "z") +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm6.testcase new file mode 100644 index 0000000..2244347 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm6.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm6 +:memory: #use in-memory database +SELECT gpkgMakePointM(136.0, -35, "z", 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointM(136.0, -35, "z", 4326) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm7.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm7.testcase new file mode 100644 index 0000000..9462cac --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm7.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm7 +:memory: #use in-memory database +SELECT gpkgMakePointM(136.0, "y", 4.0, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointM(136.0, "y", 4.0, 4326) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm8.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm8.testcase new file mode 100644 index 0000000..ff41084 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm8.testcase @@ -0,0 +1,7 @@ +gpkgmakepointm8 +:memory: #use in-memory database +SELECT gpkgMakePointM("x", -35.0, 4.0, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointM("x", -35.0, 4.0, 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointm9.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm9.testcase new file mode 100644 index 0000000..2dd269a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointm9.testcase @@ -0,0 +1,8 @@ +gpkgmakepointm1 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointM(136, -35, 4, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointM(136, -35, 4, 4326)) +47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz1.testcase new file mode 100644 index 0000000..d3f0af4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz1.testcase @@ -0,0 +1,8 @@ +gpkgmakepointz1 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZ(136, -35, 4)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZ(136, -35, 4)) +47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz10.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz10.testcase new file mode 100644 index 0000000..8daf340 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz10.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz10 +:memory: #use in-memory database +SELECT gpkgMakePointZ(135, -35, "z", 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ(135, -35, "z", 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz11.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz11.testcase new file mode 100644 index 0000000..e7e1f47 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz11.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz11 +:memory: #use in-memory database +SELECT gpkgMakePointZ(135, -35, 4, 4326.0) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ(135, -35, 4, 4326.0) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz2.testcase new file mode 100644 index 0000000..9585715 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz2.testcase @@ -0,0 +1,8 @@ +gpkgmakepointz2 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZ(136, -35, 4, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZ(136, -35, 4, 4326)) +47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz3.testcase new file mode 100644 index 0000000..c3a0d53 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz3.testcase @@ -0,0 +1,8 @@ +gpkgmakepointz3 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZ(136.0, -35.0, 4.0)) +47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz4.testcase new file mode 100644 index 0000000..3ede3c2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz4.testcase @@ -0,0 +1,8 @@ +gpkgmakepointz4 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326)) +47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz5.testcase new file mode 100644 index 0000000..a13edb7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz5.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz5 +:memory: #use in-memory database +SELECT gpkgMakePointZ("x", -35, 4) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ("x", -35, 4) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz6.testcase new file mode 100644 index 0000000..f6720d5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz6.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz6 +:memory: #use in-memory database +SELECT gpkgMakePointZ(135, "y", 4) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ(135, "y", 4) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz7.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz7.testcase new file mode 100644 index 0000000..85b78c5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz7.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz7 +:memory: #use in-memory database +SELECT gpkgMakePointZ(135, -35, "z") +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ(135, -35, "z") +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz8.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz8.testcase new file mode 100644 index 0000000..7c4aecd --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz8.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz8 +:memory: #use in-memory database +SELECT gpkgMakePointZ("x", -35, 4, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ("x", -35, 4, 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointz9.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz9.testcase new file mode 100644 index 0000000..b5c60f1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointz9.testcase @@ -0,0 +1,7 @@ +gpkgmakepointz9 +:memory: #use in-memory database +SELECT gpkgMakePointZ(135, "y", 4, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZ(135, "y", 4, 4326) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm1.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm1.testcase new file mode 100644 index 0000000..d47b5b8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm1.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm1 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326)) +47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm10.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm10.testcase new file mode 100644 index 0000000..12a9e1e --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm10.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm10 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136, -35, 4, 9.5)) +47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm11.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm11.testcase new file mode 100644 index 0000000..6c475e4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm11.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm11 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, -35, 4, "m") +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, -35, 4, "m") +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm12.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm12.testcase new file mode 100644 index 0000000..59e92b1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm12.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm12 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, -35, "z", 9) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, -35, "z", 9) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm13.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm13.testcase new file mode 100644 index 0000000..a653405 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm13.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm13 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, "y", 4, 9) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, "y", 4, 9) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm14.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm14.testcase new file mode 100644 index 0000000..0d06f2b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm14.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm14 +:memory: #use in-memory database +SELECT gpkgMakePointZM("x", -35, 4, 9) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM("x", -35, 4, 9) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm15.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm15.testcase new file mode 100644 index 0000000..eca6d37 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm15.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm15 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9)) +47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm2.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm2.testcase new file mode 100644 index 0000000..ea70070 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm2.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm2 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326)) +47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm3.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm3.testcase new file mode 100644 index 0000000..07d94e8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm3.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm3 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, -35, 4, 9.5, "srid") +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, -35, 4, 9.5, "srid") +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm4.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm4.testcase new file mode 100644 index 0000000..1f9bdd8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm4.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm4 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, -35, 4, "m", 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, -35, 4, "m", 4326) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm5.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm5.testcase new file mode 100644 index 0000000..817aa34 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm5.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm5 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, -35, "z", 9.5, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, -35, "z", 9.5, 4326) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm6.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm6.testcase new file mode 100644 index 0000000..0d33b09 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm6.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm6 +:memory: #use in-memory database +SELECT gpkgMakePointZM(136, "y", 3, 9.5, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM(136, "y", 3, 9.5, 4326) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm7.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm7.testcase new file mode 100644 index 0000000..8040c7a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm7.testcase @@ -0,0 +1,9 @@ +gpkgmakepointzm7 +:memory: #use in-memory database +SELECT gpkgMakePointZM("x", -35, 3, 9.5, 4326) +1 # rows (not including the header row) +1 # columns +gpkgMakePointZM("x", -35, 3, 9.5, 4326) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm8.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm8.testcase new file mode 100644 index 0000000..0eafd4a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm8.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm8 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326)) +47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240 + diff --git a/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm9.testcase b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm9.testcase new file mode 100644 index 0000000..2c71a8c --- /dev/null +++ b/src/spatialite/test/sql_stmt_geopackage_tests/makepointzm9.testcase @@ -0,0 +1,8 @@ +gpkgmakepointzm9 +:memory: #use in-memory database +SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5)) +1 # rows (not including the header row) +1 # columns +Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5)) +47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/Makefile.am b/src/spatialite/test/sql_stmt_geos_tests/Makefile.am new file mode 100644 index 0000000..ba7b130 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/Makefile.am @@ -0,0 +1,743 @@ +EXTRA_DIST = bdmpolyfromtext10.testcase \ + bdmpolyfromtext13.testcase \ + bdmpolyfromtext14.testcase \ + bdmpolyfromtext15.testcase \ + bdmpolyfromtext16.testcase \ + bdmpolyfromtext17.testcase \ + bdmpolyfromtext1.testcase \ + bdmpolyfromtext2.testcase \ + bdmpolyfromtext3.testcase \ + bdmpolyfromtext4.testcase \ + bdmpolyfromtext9.testcase \ + bdmpolyfromwkb10.testcase \ + bdmpolyfromwkb11.testcase \ + bdmpolyfromwkb12.testcase \ + bdmpolyfromwkb13.testcase \ + bdmpolyfromwkb14.testcase \ + bdmpolyfromwkb15.testcase \ + bdmpolyfromwkb16.testcase \ + bdmpolyfromwkb17.testcase \ + bdmpolyfromwkb18.testcase \ + bdmpolyfromwkb19.testcase \ + bdmpolyfromwkb1.testcase \ + bdmpolyfromwkb2.testcase \ + bdmpolyfromwkb3.testcase \ + bdmpolyfromwkb4.testcase \ + bdmpolyfromwkb5.testcase \ + bdmpolyfromwkb6.testcase \ + bdmpolyfromwkb7.testcase \ + bdmpolyfromwkb8.testcase \ + bdmpolyfromwkb9.testcase \ + bdpolyfromtext10.testcase \ + bdpolyfromtext11.testcase \ + bdpolyfromtext12.testcase \ + bdpolyfromtext13.testcase \ + bdpolyfromtext14.testcase \ + bdpolyfromtext15.testcase \ + bdpolyfromtext16.testcase \ + bdpolyfromtext1.testcase \ + bdpolyfromtext2.testcase \ + bdpolyfromtext3.testcase \ + bdpolyfromtext4.testcase \ + bdpolyfromtext5.testcase \ + bdpolyfromtext6.testcase \ + bdpolyfromtext7.testcase \ + bdpolyfromtext8.testcase \ + bdpolyfromtext9.testcase \ + bdpolyfromwkb10.testcase \ + bdpolyfromwkb11.testcase \ + bdpolyfromwkb12.testcase \ + bdpolyfromwkb13.testcase \ + bdpolyfromwkb14.testcase \ + bdpolyfromwkb15.testcase \ + bdpolyfromwkb16.testcase \ + bdpolyfromwkb17.testcase \ + bdpolyfromwkb18.testcase \ + bdpolyfromwkb19.testcase \ + bdpolyfromwkb1.testcase \ + bdpolyfromwkb2.testcase \ + bdpolyfromwkb3.testcase \ + bdpolyfromwkb4.testcase \ + bdpolyfromwkb5.testcase \ + bdpolyfromwkb6.testcase \ + bdpolyfromwkb7.testcase \ + bdpolyfromwkb8.testcase \ + bdpolyfromwkb9.testcase \ + boundary1.testcase \ + boundary2.testcase \ + boundary3.testcase \ + boundary4.testcase \ + boundary5.testcase \ + boundary6.testcase \ + boundary7.testcase \ + boundary8.testcase \ + boundary9.testcase \ + buffer10.testcase \ + buffer1.testcase \ + buffer2.testcase \ + buffer3.testcase \ + buffer4.testcase \ + buffer5.testcase \ + buffer6.testcase \ + buffer7.testcase \ + buffer8.testcase \ + buffer9.testcase \ + buildarea1.testcase \ + buildarea2.testcase \ + buildarea3.testcase \ + buildarea4.testcase \ + buildarea5.testcase \ + buildarea6.testcase \ + centroid1.testcase \ + centroid2.testcase \ + centroid3.testcase \ + centroid4.testcase \ + centroid5.testcase \ + centroid6.testcase \ + centroid7.testcase \ + centroid8.testcase \ + convexhull10.testcase \ + convexhull1.testcase \ + convexhull2.testcase \ + convexhull3.testcase \ + convexhull4.testcase \ + convexhull5.testcase \ + convexhull6.testcase \ + convexhull7.testcase \ + convexhull8.testcase \ + convexhull9.testcase \ + difference10.testcase \ + difference11.testcase \ + difference12.testcase \ + difference1.testcase \ + difference2.testcase \ + difference3.testcase \ + difference4.testcase \ + difference6.testcase \ + difference7.testcase \ + difference8.testcase \ + difference9.testcase \ + distance10.testcase \ + distance1.testcase \ + distance2.testcase \ + distance3.testcase \ + distance4.testcase \ + distance5.testcase \ + distance6.testcase \ + distance7.testcase \ + distance8.testcase \ + distance9.testcase \ + intersection10.testcase \ + intersection11.testcase \ + intersection12.testcase \ + intersection1.testcase \ + intersection2.testcase \ + intersection3.testcase \ + intersection4.testcase \ + intersection5.testcase \ + intersection6.testcase \ + intersection7.testcase \ + intersection8.testcase \ + intersection9.testcase \ + isclosed10.testcase \ + isclosed1.testcase \ + isclosed2.testcase \ + isclosed3.testcase \ + isclosed4.testcase \ + isclosed5.testcase \ + isclosed6.testcase \ + isclosed7.testcase \ + isclosed8.testcase \ + isclosed9.testcase \ + isring1.testcase \ + isring2.testcase \ + isring3.testcase \ + isring4.testcase \ + isring5.testcase \ + isring6.testcase \ + isring7.testcase \ + isring8.testcase \ + isring9.testcase \ + issimple1.testcase \ + issimple2.testcase \ + issimple3.testcase \ + issimple4.testcase \ + issimple5.testcase \ + issimple6.testcase \ + isvalid10.testcase \ + isvalid11.testcase \ + isvalid12.testcase \ + isvalid13.testcase \ + isvalid14.testcase \ + isvalid15.testcase \ + isvalid16.testcase \ + isvalid17.testcase \ + isvalid18.testcase \ + isvalid19.testcase \ + isvalid1.testcase \ + isvalid20.testcase \ + isvalid2.testcase \ + isvalid3.testcase \ + isvalid4.testcase \ + isvalid5.testcase \ + isvalid6.testcase \ + isvalid7.testcase \ + isvalid8.testcase \ + isvalid9.testcase \ + isvaliddetail1.testcase \ + isvaliddetail2.testcase \ + isvaliddetail3.testcase \ + isvaliddetail4.testcase \ + isvaliddetail5.testcase \ + isvalidreason1.testcase \ + isvalidreason2.testcase \ + isvalidreason3.testcase \ + isvalidreason4.testcase \ + isvalidreason5.testcase \ + pointonsurface1.testcase \ + pointonsurface2.testcase \ + pointonsurface3.testcase \ + pointonsurface4.testcase \ + pointonsurface5.testcase \ + pointonsurface6.testcase \ + pointonsurface7.testcase \ + polygonize10.testcase \ + polygonize11.testcase \ + polygonize12.testcase \ + polygonize13.testcase \ + polygonize14.testcase \ + polygonize1.testcase \ + polygonize2.testcase \ + polygonize3.testcase \ + polygonize4.testcase \ + polygonize5.testcase \ + polygonize6.testcase \ + polygonize7.testcase \ + polygonize8.testcase \ + polygonize9.testcase \ + ptdistancewithin10.testcase \ + ptdistancewithin11.testcase \ + ptdistancewithin12.testcase \ + ptdistancewithin13.testcase \ + ptdistancewithin14.testcase \ + ptdistancewithin15.testcase \ + ptdistancewithin16.testcase \ + ptdistancewithin17.testcase \ + ptdistancewithin18.testcase \ + ptdistancewithin1.testcase \ + ptdistancewithin2.testcase \ + ptdistancewithin3.testcase \ + ptdistancewithin4.testcase \ + ptdistancewithin5.testcase \ + ptdistancewithin6.testcase \ + ptdistancewithin7.testcase \ + ptdistancewithin8.testcase \ + ptdistancewithin9.testcase \ + ptdistwithin10.testcase \ + ptdistwithin11.testcase \ + ptdistwithin12.testcase \ + ptdistwithin13.testcase \ + ptdistwithin14.testcase \ + ptdistwithin15.testcase \ + ptdistwithin16.testcase \ + ptdistwithin1.testcase \ + ptdistwithin2.testcase \ + ptdistwithin3.testcase \ + ptdistwithin4.testcase \ + ptdistwithin5.testcase \ + ptdistwithin6.testcase \ + ptdistwithin7.testcase \ + ptdistwithin8.testcase \ + ptdistwithin9.testcase \ + relate1.testcase \ + relate2.testcase \ + relate3.testcase \ + relate4.testcase \ + relate5.testcase \ + relate6.testcase \ + relate7.testcase \ + relate8.testcase \ + relate9.testcase \ + relations1.testcase \ + relations2.testcase \ + relations3.testcase \ + relations4.testcase \ + relations5.testcase \ + relations6.testcase \ + relations7.testcase \ + relations8.testcase \ + routing6.testcase \ + simplify10.testcase \ + simplify11.testcase \ + simplify12.testcase \ + simplify13.testcase \ + simplify14.testcase \ + simplify15.testcase \ + simplify16.testcase \ + simplify1.testcase \ + simplify2.testcase \ + simplify3.testcase \ + simplify4.testcase \ + simplify5.testcase \ + simplify6.testcase \ + simplify7.testcase \ + simplify8.testcase \ + simplify9.testcase \ + st_area1.testcase \ + st_area2.testcase \ + st_area3.testcase \ + st_area4.testcase \ + st_area5.testcase \ + st_area6.testcase \ + st_area7.testcase \ + st_area8.testcase \ + st_area9.testcase \ + st_length10.testcase \ + st_length11.testcase \ + st_length12.testcase \ + st_length13.testcase \ + st_length14.testcase \ + st_length15.testcase \ + st_length16.testcase \ + st_length17.testcase \ + st_length18.testcase \ + st_length1.testcase \ + st_length2.testcase \ + st_length3.testcase \ + st_length4.testcase \ + st_length5.testcase \ + st_length6.testcase \ + st_length7.testcase \ + st_length8.testcase \ + st_length9.testcase \ + st_perimeter10.testcase \ + st_perimeter11.testcase \ + st_perimeter12.testcase \ + st_perimeter13.testcase \ + st_perimeter14.testcase \ + st_perimeter15.testcase \ + st_perimeter16.testcase \ + st_perimeter17.testcase \ + st_perimeter18.testcase \ + st_perimeter1.testcase \ + st_perimeter2.testcase \ + st_perimeter3.testcase \ + st_perimeter4.testcase \ + st_perimeter5.testcase \ + st_perimeter6.testcase \ + st_perimeter7.testcase \ + st_perimeter8.testcase \ + st_perimeter9.testcase \ + symdifference10.testcase \ + symdifference11.testcase \ + symdifference1.testcase \ + symdifference2.testcase \ + symdifference3.testcase \ + symdifference4.testcase \ + symdifference5.testcase \ + symdifference6.testcase \ + symdifference7.testcase \ + symdifference8.testcase \ + symdifference9.testcase \ + union10.testcase \ + union11.testcase \ + union12.testcase \ + union13.testcase \ + union14.testcase \ + union15.testcase \ + union16.testcase \ + union17.testcase \ + union18.testcase \ + union19.testcase \ + union1.testcase \ + union20.testcase \ + union21.testcase \ + union22.testcase \ + union23.testcase \ + union24.testcase \ + union25.testcase \ + union26.testcase \ + union27.testcase \ + union28.testcase \ + union29.testcase \ + union2.testcase \ + union3.testcase \ + union4.testcase \ + union5.testcase \ + union6.testcase \ + union7.testcase \ + union8.testcase \ + union9.testcase \ + makearc15.testcase \ + makearc19.testcase \ + makearc23.testcase \ + makecircle10.testcase \ + makecircle11.testcase \ + makecircle12.testcase \ + makecircle13.testcase \ + makecircle14.testcase \ + makecircle15.testcase \ + makecircle16.testcase \ + makecircle17.testcase \ + makecircle18.testcase \ + makeellipse13.testcase \ + makeellipse17.testcase \ + makeellipse21.testcase \ + makeellipticarc18.testcase \ + makeellipticarc22.testcase \ + makeellipticarc26.testcase \ + makecircularsector15.testcase \ + makecircularsector19.testcase \ + makecircularsector23.testcase \ + makecircularstripe15.testcase \ + makecircularstripe19.testcase \ + makecircularstripe23.testcase \ + makeellipticsector18.testcase \ + makeellipticsector22.testcase \ + makeellipticsector26.testcase \ + geoserror1.testcase \ + geoserror2.testcase \ + geoserror3.testcase \ + geoserror4.testcase \ + geoserror5.testcase \ + geoserror6.testcase \ + geoserror7.testcase \ + geoserror7.testcase \ + testgeos1.testcase \ + testgeos2.testcase \ + testgeos3.testcase \ + testgeos4.testcase \ + testgeos5.testcase \ + testgeos6.testcase \ + testgeos7.testcase \ + testgeos8.testcase \ + testgeos9.testcase \ + testgeos10.testcase \ + closestpoint10.testcase \ + closestpoint11.testcase \ + closestpoint12.testcase \ + closestpoint13.testcase \ + closestpoint14.testcase \ + closestpoint15.testcase \ + closestpoint16.testcase \ + closestpoint17.testcase \ + closestpoint18.testcase \ + closestpoint19.testcase \ + closestpoint1.testcase \ + closestpoint20.testcase \ + closestpoint21.testcase \ + closestpoint22.testcase \ + closestpoint2.testcase \ + closestpoint3.testcase \ + closestpoint4.testcase \ + closestpoint5.testcase \ + closestpoint6.testcase \ + closestpoint7.testcase \ + closestpoint8.testcase \ + closestpoint9.testcase \ + coveredby1.testcase \ + coveredby2.testcase \ + covers1.testcase \ + covers2.testcase \ + covers_covered1.testcase \ + covers_covered2.testcase \ + covers_covered3.testcase \ + covers_covered4.testcase \ + covers_covered5.testcase \ + covers_covered6.testcase \ + covers_covered7.testcase \ + createtopo10.testcase \ + createtopo11.testcase \ + createtopo12.testcase \ + createtopo13.testcase \ + createtopo14.testcase \ + createtopo15.testcase \ + createtopo16.testcase \ + createtopo17.testcase \ + createtopo18.testcase \ + createtopo1.testcase \ + createtopo2.testcase \ + createtopo3.testcase \ + createtopo4.testcase \ + createtopo5.testcase \ + createtopo6.testcase \ + createtopo7.testcase \ + createtopo8.testcase \ + createtopo9.testcase \ + distance_geogr10.testcase \ + distance_geogr11.testcase \ + distance_geogr12.testcase \ + distance_geogr1.testcase \ + distance_geogr2.testcase \ + distance_geogr3.testcase \ + distance_geogr4.testcase \ + distance_geogr5.testcase \ + distance_geogr6.testcase \ + distance_geogr7.testcase \ + distance_geogr8.testcase \ + distance_geogr9.testcase \ + hausdorffdistance1.testcase \ + hausdorffdistance2.testcase \ + hausdorffdistance3.testcase \ + hausdorffdistance4.testcase \ + hausdorffdistance5.testcase \ + hausdorffdistance6.testcase \ + hausdorffdistance7.testcase \ + hexgrid10.testcase \ + hexgrid11.testcase \ + hexgrid12.testcase \ + hexgrid13.testcase \ + hexgrid14.testcase \ + hexgrid15.testcase \ + hexgrid16.testcase \ + hexgrid17.testcase \ + hexgrid18.testcase \ + hexgrid19.testcase \ + hexgrid1.testcase \ + hexgrid20.testcase \ + hexgrid21.testcase \ + hexgrid22.testcase \ + hexgrid23.testcase \ + hexgrid2.testcase \ + hexgrid3.testcase \ + hexgrid4.testcase \ + hexgrid5.testcase \ + hexgrid6.testcase \ + hexgrid7.testcase \ + hexgrid8.testcase \ + hexgrid9.testcase \ + interpolateequidistantpoint10.testcase \ + interpolateequidistantpoint11.testcase \ + interpolateequidistantpoint12.testcase \ + interpolateequidistantpoint13.testcase \ + interpolateequidistantpoint14.testcase \ + interpolateequidistantpoint1.testcase \ + interpolateequidistantpoint2.testcase \ + interpolateequidistantpoint3.testcase \ + interpolateequidistantpoint4.testcase \ + interpolateequidistantpoint5.testcase \ + interpolateequidistantpoint6.testcase \ + interpolateequidistantpoint7.testcase \ + interpolateequidistantpoint8.testcase \ + interpolateequidistantpoint9.testcase \ + interpolatepoint10.testcase \ + interpolatepoint11.testcase \ + interpolatepoint12.testcase \ + interpolatepoint13.testcase \ + interpolatepoint14.testcase \ + interpolatepoint1.testcase \ + interpolatepoint2.testcase \ + interpolatepoint3.testcase \ + interpolatepoint4.testcase \ + interpolatepoint5.testcase \ + interpolatepoint6.testcase \ + interpolatepoint7.testcase \ + interpolatepoint8.testcase \ + interpolatepoint9.testcase \ + linemerge10.testcase \ + linemerge1.testcase \ + linemerge2.testcase \ + linemerge3.testcase \ + linemerge4.testcase \ + linemerge5.testcase \ + linemerge6.testcase \ + linemerge7.testcase \ + linemerge8.testcase \ + linemerge9.testcase \ + linesnodes10.testcase \ + linesnodes11.testcase \ + linesnodes12.testcase \ + linesnodes13.testcase \ + linesnodes14.testcase \ + linesnodes15.testcase \ + linesnodes16.testcase \ + linesnodes17.testcase \ + linesnodes18.testcase \ + linesnodes19.testcase \ + linesnodes1.testcase \ + linesnodes2.testcase \ + linesnodes3.testcase \ + linesnodes4.testcase \ + linesnodes5.testcase \ + linesnodes6.testcase \ + linesnodes7.testcase \ + linesnodes8.testcase \ + linesnodes9.testcase \ + linesubstring10.testcase \ + linesubstring11.testcase \ + linesubstring12.testcase \ + linesubstring13.testcase \ + linesubstring14.testcase \ + linesubstring15.testcase \ + linesubstring16.testcase \ + linesubstring17.testcase \ + linesubstring18.testcase \ + linesubstring19.testcase \ + linesubstring1.testcase \ + linesubstring20.testcase \ + linesubstring21.testcase \ + linesubstring22.testcase \ + linesubstring23.testcase \ + linesubstring24.testcase \ + linesubstring25.testcase \ + linesubstring26.testcase \ + linesubstring2.testcase \ + linesubstring3.testcase \ + linesubstring4.testcase \ + linesubstring5.testcase \ + linesubstring6.testcase \ + linesubstring7.testcase \ + linesubstring8.testcase \ + linesubstring9.testcase \ + locatepoint10.testcase \ + locatepoint11.testcase \ + locatepoint12.testcase \ + locatepoint1.testcase \ + locatepoint2.testcase \ + locatepoint3.testcase \ + locatepoint4.testcase \ + locatepoint5.testcase \ + locatepoint6.testcase \ + locatepoint7.testcase \ + locatepoint8.testcase \ + locatepoint9.testcase \ + offsetcurve10.testcase \ + offsetcurve11.testcase \ + offsetcurve12.testcase \ + offsetcurve13.testcase \ + offsetcurve14.testcase \ + offsetcurve1.testcase \ + offsetcurve2.testcase \ + offsetcurve3.testcase \ + offsetcurve4.testcase \ + offsetcurve5.testcase \ + offsetcurve6.testcase \ + offsetcurve7.testcase \ + offsetcurve8.testcase \ + offsetcurve9.testcase \ + ringsnodes1.testcase \ + ringsnodes2.testcase \ + ringsnodes3.testcase \ + ringsnodes4.testcase \ + ringsnodes5.testcase \ + ringsnodes6.testcase \ + sharedpaths10.testcase \ + sharedpaths11.testcase \ + sharedpaths12.testcase \ + sharedpaths13.testcase \ + sharedpaths14.testcase \ + sharedpaths15.testcase \ + sharedpaths16.testcase \ + sharedpaths17.testcase \ + sharedpaths18.testcase \ + sharedpaths19.testcase \ + sharedpaths1.testcase \ + sharedpaths20.testcase \ + sharedpaths21.testcase \ + sharedpaths22.testcase \ + sharedpaths23.testcase \ + sharedpaths24.testcase \ + sharedpaths25.testcase \ + sharedpaths26.testcase \ + sharedpaths27.testcase \ + sharedpaths28.testcase \ + sharedpaths29.testcase \ + sharedpaths2.testcase \ + sharedpaths30.testcase \ + sharedpaths31.testcase \ + sharedpaths32.testcase \ + sharedpaths3.testcase \ + sharedpaths4.testcase \ + sharedpaths5.testcase \ + sharedpaths6.testcase \ + sharedpaths7.testcase \ + sharedpaths8.testcase \ + sharedpaths9.testcase \ + shortestline1.testcase \ + shortestline2.testcase \ + shortestline3.testcase \ + shortestline4.testcase \ + shortestline5.testcase \ + shortestline6.testcase \ + shortestline7.testcase \ + singlesidedbuffer11.testcase \ + singlesidedbuffer12.testcase \ + singlesidedbuffer13.testcase \ + singlesidedbuffer14.testcase \ + singlesidedbuffer15.testcase \ + singlesidedbuffer16.testcase \ + singlesidedbuffer17.testcase \ + singlesidedbuffer1.testcase \ + singlesidedbuffer2.testcase \ + singlesidedbuffer3.testcase \ + singlesidedbuffer4.testcase \ + singlesidedbuffer5.testcase \ + singlesidedbuffer6.testcase \ + singlesidedbuffer7.testcase \ + singlesidedbuffer8.testcase \ + singlesidedbuffer9.testcase \ + snap10.testcase \ + snap1.testcase \ + snap2.testcase \ + snap3.testcase \ + snap4.testcase \ + snap5.testcase \ + snap6.testcase \ + snap7.testcase \ + snap8.testcase \ + snap9.testcase \ + squaregrid10.testcase \ + squaregrid11.testcase \ + squaregrid12.testcase \ + squaregrid13.testcase \ + squaregrid14.testcase \ + squaregrid15.testcase \ + squaregrid16.testcase \ + squaregrid17.testcase \ + squaregrid18.testcase \ + squaregrid19.testcase \ + squaregrid1.testcase \ + squaregrid20.testcase \ + squaregrid21.testcase \ + squaregrid22.testcase \ + squaregrid23.testcase \ + squaregrid2.testcase \ + squaregrid3.testcase \ + squaregrid4.testcase \ + squaregrid5.testcase \ + squaregrid6.testcase \ + squaregrid7.testcase \ + squaregrid8.testcase \ + squaregrid9.testcase \ + trianggrid10.testcase \ + trianggrid11.testcase \ + trianggrid12.testcase \ + trianggrid13.testcase \ + trianggrid14.testcase \ + trianggrid15.testcase \ + trianggrid16.testcase \ + trianggrid17.testcase \ + trianggrid18.testcase \ + trianggrid19.testcase \ + trianggrid1.testcase \ + trianggrid20.testcase \ + trianggrid21.testcase \ + trianggrid22.testcase \ + trianggrid23.testcase \ + trianggrid2.testcase \ + trianggrid3.testcase \ + trianggrid4.testcase \ + trianggrid5.testcase \ + trianggrid6.testcase \ + trianggrid7.testcase \ + trianggrid8.testcase \ + trianggrid9.testcase \ + unaryunion1.testcase \ + unaryunion2.testcase \ + unaryunion3.testcase \ + unaryunion4.testcase \ + unaryunion5.testcase \ + unaryunion6.testcase \ + unaryunion7.testcase \ + unaryunion8.testcase + diff --git a/src/spatialite/test/sql_stmt_geos_tests/Makefile.in b/src/spatialite/test/sql_stmt_geos_tests/Makefile.in new file mode 100644 index 0000000..9279b26 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/Makefile.in @@ -0,0 +1,1179 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_geos_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = bdmpolyfromtext10.testcase \ + bdmpolyfromtext13.testcase \ + bdmpolyfromtext14.testcase \ + bdmpolyfromtext15.testcase \ + bdmpolyfromtext16.testcase \ + bdmpolyfromtext17.testcase \ + bdmpolyfromtext1.testcase \ + bdmpolyfromtext2.testcase \ + bdmpolyfromtext3.testcase \ + bdmpolyfromtext4.testcase \ + bdmpolyfromtext9.testcase \ + bdmpolyfromwkb10.testcase \ + bdmpolyfromwkb11.testcase \ + bdmpolyfromwkb12.testcase \ + bdmpolyfromwkb13.testcase \ + bdmpolyfromwkb14.testcase \ + bdmpolyfromwkb15.testcase \ + bdmpolyfromwkb16.testcase \ + bdmpolyfromwkb17.testcase \ + bdmpolyfromwkb18.testcase \ + bdmpolyfromwkb19.testcase \ + bdmpolyfromwkb1.testcase \ + bdmpolyfromwkb2.testcase \ + bdmpolyfromwkb3.testcase \ + bdmpolyfromwkb4.testcase \ + bdmpolyfromwkb5.testcase \ + bdmpolyfromwkb6.testcase \ + bdmpolyfromwkb7.testcase \ + bdmpolyfromwkb8.testcase \ + bdmpolyfromwkb9.testcase \ + bdpolyfromtext10.testcase \ + bdpolyfromtext11.testcase \ + bdpolyfromtext12.testcase \ + bdpolyfromtext13.testcase \ + bdpolyfromtext14.testcase \ + bdpolyfromtext15.testcase \ + bdpolyfromtext16.testcase \ + bdpolyfromtext1.testcase \ + bdpolyfromtext2.testcase \ + bdpolyfromtext3.testcase \ + bdpolyfromtext4.testcase \ + bdpolyfromtext5.testcase \ + bdpolyfromtext6.testcase \ + bdpolyfromtext7.testcase \ + bdpolyfromtext8.testcase \ + bdpolyfromtext9.testcase \ + bdpolyfromwkb10.testcase \ + bdpolyfromwkb11.testcase \ + bdpolyfromwkb12.testcase \ + bdpolyfromwkb13.testcase \ + bdpolyfromwkb14.testcase \ + bdpolyfromwkb15.testcase \ + bdpolyfromwkb16.testcase \ + bdpolyfromwkb17.testcase \ + bdpolyfromwkb18.testcase \ + bdpolyfromwkb19.testcase \ + bdpolyfromwkb1.testcase \ + bdpolyfromwkb2.testcase \ + bdpolyfromwkb3.testcase \ + bdpolyfromwkb4.testcase \ + bdpolyfromwkb5.testcase \ + bdpolyfromwkb6.testcase \ + bdpolyfromwkb7.testcase \ + bdpolyfromwkb8.testcase \ + bdpolyfromwkb9.testcase \ + boundary1.testcase \ + boundary2.testcase \ + boundary3.testcase \ + boundary4.testcase \ + boundary5.testcase \ + boundary6.testcase \ + boundary7.testcase \ + boundary8.testcase \ + boundary9.testcase \ + buffer10.testcase \ + buffer1.testcase \ + buffer2.testcase \ + buffer3.testcase \ + buffer4.testcase \ + buffer5.testcase \ + buffer6.testcase \ + buffer7.testcase \ + buffer8.testcase \ + buffer9.testcase \ + buildarea1.testcase \ + buildarea2.testcase \ + buildarea3.testcase \ + buildarea4.testcase \ + buildarea5.testcase \ + buildarea6.testcase \ + centroid1.testcase \ + centroid2.testcase \ + centroid3.testcase \ + centroid4.testcase \ + centroid5.testcase \ + centroid6.testcase \ + centroid7.testcase \ + centroid8.testcase \ + convexhull10.testcase \ + convexhull1.testcase \ + convexhull2.testcase \ + convexhull3.testcase \ + convexhull4.testcase \ + convexhull5.testcase \ + convexhull6.testcase \ + convexhull7.testcase \ + convexhull8.testcase \ + convexhull9.testcase \ + difference10.testcase \ + difference11.testcase \ + difference12.testcase \ + difference1.testcase \ + difference2.testcase \ + difference3.testcase \ + difference4.testcase \ + difference6.testcase \ + difference7.testcase \ + difference8.testcase \ + difference9.testcase \ + distance10.testcase \ + distance1.testcase \ + distance2.testcase \ + distance3.testcase \ + distance4.testcase \ + distance5.testcase \ + distance6.testcase \ + distance7.testcase \ + distance8.testcase \ + distance9.testcase \ + intersection10.testcase \ + intersection11.testcase \ + intersection12.testcase \ + intersection1.testcase \ + intersection2.testcase \ + intersection3.testcase \ + intersection4.testcase \ + intersection5.testcase \ + intersection6.testcase \ + intersection7.testcase \ + intersection8.testcase \ + intersection9.testcase \ + isclosed10.testcase \ + isclosed1.testcase \ + isclosed2.testcase \ + isclosed3.testcase \ + isclosed4.testcase \ + isclosed5.testcase \ + isclosed6.testcase \ + isclosed7.testcase \ + isclosed8.testcase \ + isclosed9.testcase \ + isring1.testcase \ + isring2.testcase \ + isring3.testcase \ + isring4.testcase \ + isring5.testcase \ + isring6.testcase \ + isring7.testcase \ + isring8.testcase \ + isring9.testcase \ + issimple1.testcase \ + issimple2.testcase \ + issimple3.testcase \ + issimple4.testcase \ + issimple5.testcase \ + issimple6.testcase \ + isvalid10.testcase \ + isvalid11.testcase \ + isvalid12.testcase \ + isvalid13.testcase \ + isvalid14.testcase \ + isvalid15.testcase \ + isvalid16.testcase \ + isvalid17.testcase \ + isvalid18.testcase \ + isvalid19.testcase \ + isvalid1.testcase \ + isvalid20.testcase \ + isvalid2.testcase \ + isvalid3.testcase \ + isvalid4.testcase \ + isvalid5.testcase \ + isvalid6.testcase \ + isvalid7.testcase \ + isvalid8.testcase \ + isvalid9.testcase \ + isvaliddetail1.testcase \ + isvaliddetail2.testcase \ + isvaliddetail3.testcase \ + isvaliddetail4.testcase \ + isvaliddetail5.testcase \ + isvalidreason1.testcase \ + isvalidreason2.testcase \ + isvalidreason3.testcase \ + isvalidreason4.testcase \ + isvalidreason5.testcase \ + pointonsurface1.testcase \ + pointonsurface2.testcase \ + pointonsurface3.testcase \ + pointonsurface4.testcase \ + pointonsurface5.testcase \ + pointonsurface6.testcase \ + pointonsurface7.testcase \ + polygonize10.testcase \ + polygonize11.testcase \ + polygonize12.testcase \ + polygonize13.testcase \ + polygonize14.testcase \ + polygonize1.testcase \ + polygonize2.testcase \ + polygonize3.testcase \ + polygonize4.testcase \ + polygonize5.testcase \ + polygonize6.testcase \ + polygonize7.testcase \ + polygonize8.testcase \ + polygonize9.testcase \ + ptdistancewithin10.testcase \ + ptdistancewithin11.testcase \ + ptdistancewithin12.testcase \ + ptdistancewithin13.testcase \ + ptdistancewithin14.testcase \ + ptdistancewithin15.testcase \ + ptdistancewithin16.testcase \ + ptdistancewithin17.testcase \ + ptdistancewithin18.testcase \ + ptdistancewithin1.testcase \ + ptdistancewithin2.testcase \ + ptdistancewithin3.testcase \ + ptdistancewithin4.testcase \ + ptdistancewithin5.testcase \ + ptdistancewithin6.testcase \ + ptdistancewithin7.testcase \ + ptdistancewithin8.testcase \ + ptdistancewithin9.testcase \ + ptdistwithin10.testcase \ + ptdistwithin11.testcase \ + ptdistwithin12.testcase \ + ptdistwithin13.testcase \ + ptdistwithin14.testcase \ + ptdistwithin15.testcase \ + ptdistwithin16.testcase \ + ptdistwithin1.testcase \ + ptdistwithin2.testcase \ + ptdistwithin3.testcase \ + ptdistwithin4.testcase \ + ptdistwithin5.testcase \ + ptdistwithin6.testcase \ + ptdistwithin7.testcase \ + ptdistwithin8.testcase \ + ptdistwithin9.testcase \ + relate1.testcase \ + relate2.testcase \ + relate3.testcase \ + relate4.testcase \ + relate5.testcase \ + relate6.testcase \ + relate7.testcase \ + relate8.testcase \ + relate9.testcase \ + relations1.testcase \ + relations2.testcase \ + relations3.testcase \ + relations4.testcase \ + relations5.testcase \ + relations6.testcase \ + relations7.testcase \ + relations8.testcase \ + routing6.testcase \ + simplify10.testcase \ + simplify11.testcase \ + simplify12.testcase \ + simplify13.testcase \ + simplify14.testcase \ + simplify15.testcase \ + simplify16.testcase \ + simplify1.testcase \ + simplify2.testcase \ + simplify3.testcase \ + simplify4.testcase \ + simplify5.testcase \ + simplify6.testcase \ + simplify7.testcase \ + simplify8.testcase \ + simplify9.testcase \ + st_area1.testcase \ + st_area2.testcase \ + st_area3.testcase \ + st_area4.testcase \ + st_area5.testcase \ + st_area6.testcase \ + st_area7.testcase \ + st_area8.testcase \ + st_area9.testcase \ + st_length10.testcase \ + st_length11.testcase \ + st_length12.testcase \ + st_length13.testcase \ + st_length14.testcase \ + st_length15.testcase \ + st_length16.testcase \ + st_length17.testcase \ + st_length18.testcase \ + st_length1.testcase \ + st_length2.testcase \ + st_length3.testcase \ + st_length4.testcase \ + st_length5.testcase \ + st_length6.testcase \ + st_length7.testcase \ + st_length8.testcase \ + st_length9.testcase \ + st_perimeter10.testcase \ + st_perimeter11.testcase \ + st_perimeter12.testcase \ + st_perimeter13.testcase \ + st_perimeter14.testcase \ + st_perimeter15.testcase \ + st_perimeter16.testcase \ + st_perimeter17.testcase \ + st_perimeter18.testcase \ + st_perimeter1.testcase \ + st_perimeter2.testcase \ + st_perimeter3.testcase \ + st_perimeter4.testcase \ + st_perimeter5.testcase \ + st_perimeter6.testcase \ + st_perimeter7.testcase \ + st_perimeter8.testcase \ + st_perimeter9.testcase \ + symdifference10.testcase \ + symdifference11.testcase \ + symdifference1.testcase \ + symdifference2.testcase \ + symdifference3.testcase \ + symdifference4.testcase \ + symdifference5.testcase \ + symdifference6.testcase \ + symdifference7.testcase \ + symdifference8.testcase \ + symdifference9.testcase \ + union10.testcase \ + union11.testcase \ + union12.testcase \ + union13.testcase \ + union14.testcase \ + union15.testcase \ + union16.testcase \ + union17.testcase \ + union18.testcase \ + union19.testcase \ + union1.testcase \ + union20.testcase \ + union21.testcase \ + union22.testcase \ + union23.testcase \ + union24.testcase \ + union25.testcase \ + union26.testcase \ + union27.testcase \ + union28.testcase \ + union29.testcase \ + union2.testcase \ + union3.testcase \ + union4.testcase \ + union5.testcase \ + union6.testcase \ + union7.testcase \ + union8.testcase \ + union9.testcase \ + makearc15.testcase \ + makearc19.testcase \ + makearc23.testcase \ + makecircle10.testcase \ + makecircle11.testcase \ + makecircle12.testcase \ + makecircle13.testcase \ + makecircle14.testcase \ + makecircle15.testcase \ + makecircle16.testcase \ + makecircle17.testcase \ + makecircle18.testcase \ + makeellipse13.testcase \ + makeellipse17.testcase \ + makeellipse21.testcase \ + makeellipticarc18.testcase \ + makeellipticarc22.testcase \ + makeellipticarc26.testcase \ + makecircularsector15.testcase \ + makecircularsector19.testcase \ + makecircularsector23.testcase \ + makecircularstripe15.testcase \ + makecircularstripe19.testcase \ + makecircularstripe23.testcase \ + makeellipticsector18.testcase \ + makeellipticsector22.testcase \ + makeellipticsector26.testcase \ + geoserror1.testcase \ + geoserror2.testcase \ + geoserror3.testcase \ + geoserror4.testcase \ + geoserror5.testcase \ + geoserror6.testcase \ + geoserror7.testcase \ + geoserror7.testcase \ + testgeos1.testcase \ + testgeos2.testcase \ + testgeos3.testcase \ + testgeos4.testcase \ + testgeos5.testcase \ + testgeos6.testcase \ + testgeos7.testcase \ + testgeos8.testcase \ + testgeos9.testcase \ + testgeos10.testcase \ + closestpoint10.testcase \ + closestpoint11.testcase \ + closestpoint12.testcase \ + closestpoint13.testcase \ + closestpoint14.testcase \ + closestpoint15.testcase \ + closestpoint16.testcase \ + closestpoint17.testcase \ + closestpoint18.testcase \ + closestpoint19.testcase \ + closestpoint1.testcase \ + closestpoint20.testcase \ + closestpoint21.testcase \ + closestpoint22.testcase \ + closestpoint2.testcase \ + closestpoint3.testcase \ + closestpoint4.testcase \ + closestpoint5.testcase \ + closestpoint6.testcase \ + closestpoint7.testcase \ + closestpoint8.testcase \ + closestpoint9.testcase \ + coveredby1.testcase \ + coveredby2.testcase \ + covers1.testcase \ + covers2.testcase \ + covers_covered1.testcase \ + covers_covered2.testcase \ + covers_covered3.testcase \ + covers_covered4.testcase \ + covers_covered5.testcase \ + covers_covered6.testcase \ + covers_covered7.testcase \ + createtopo10.testcase \ + createtopo11.testcase \ + createtopo12.testcase \ + createtopo13.testcase \ + createtopo14.testcase \ + createtopo15.testcase \ + createtopo16.testcase \ + createtopo17.testcase \ + createtopo18.testcase \ + createtopo1.testcase \ + createtopo2.testcase \ + createtopo3.testcase \ + createtopo4.testcase \ + createtopo5.testcase \ + createtopo6.testcase \ + createtopo7.testcase \ + createtopo8.testcase \ + createtopo9.testcase \ + distance_geogr10.testcase \ + distance_geogr11.testcase \ + distance_geogr12.testcase \ + distance_geogr1.testcase \ + distance_geogr2.testcase \ + distance_geogr3.testcase \ + distance_geogr4.testcase \ + distance_geogr5.testcase \ + distance_geogr6.testcase \ + distance_geogr7.testcase \ + distance_geogr8.testcase \ + distance_geogr9.testcase \ + hausdorffdistance1.testcase \ + hausdorffdistance2.testcase \ + hausdorffdistance3.testcase \ + hausdorffdistance4.testcase \ + hausdorffdistance5.testcase \ + hausdorffdistance6.testcase \ + hausdorffdistance7.testcase \ + hexgrid10.testcase \ + hexgrid11.testcase \ + hexgrid12.testcase \ + hexgrid13.testcase \ + hexgrid14.testcase \ + hexgrid15.testcase \ + hexgrid16.testcase \ + hexgrid17.testcase \ + hexgrid18.testcase \ + hexgrid19.testcase \ + hexgrid1.testcase \ + hexgrid20.testcase \ + hexgrid21.testcase \ + hexgrid22.testcase \ + hexgrid23.testcase \ + hexgrid2.testcase \ + hexgrid3.testcase \ + hexgrid4.testcase \ + hexgrid5.testcase \ + hexgrid6.testcase \ + hexgrid7.testcase \ + hexgrid8.testcase \ + hexgrid9.testcase \ + interpolateequidistantpoint10.testcase \ + interpolateequidistantpoint11.testcase \ + interpolateequidistantpoint12.testcase \ + interpolateequidistantpoint13.testcase \ + interpolateequidistantpoint14.testcase \ + interpolateequidistantpoint1.testcase \ + interpolateequidistantpoint2.testcase \ + interpolateequidistantpoint3.testcase \ + interpolateequidistantpoint4.testcase \ + interpolateequidistantpoint5.testcase \ + interpolateequidistantpoint6.testcase \ + interpolateequidistantpoint7.testcase \ + interpolateequidistantpoint8.testcase \ + interpolateequidistantpoint9.testcase \ + interpolatepoint10.testcase \ + interpolatepoint11.testcase \ + interpolatepoint12.testcase \ + interpolatepoint13.testcase \ + interpolatepoint14.testcase \ + interpolatepoint1.testcase \ + interpolatepoint2.testcase \ + interpolatepoint3.testcase \ + interpolatepoint4.testcase \ + interpolatepoint5.testcase \ + interpolatepoint6.testcase \ + interpolatepoint7.testcase \ + interpolatepoint8.testcase \ + interpolatepoint9.testcase \ + linemerge10.testcase \ + linemerge1.testcase \ + linemerge2.testcase \ + linemerge3.testcase \ + linemerge4.testcase \ + linemerge5.testcase \ + linemerge6.testcase \ + linemerge7.testcase \ + linemerge8.testcase \ + linemerge9.testcase \ + linesnodes10.testcase \ + linesnodes11.testcase \ + linesnodes12.testcase \ + linesnodes13.testcase \ + linesnodes14.testcase \ + linesnodes15.testcase \ + linesnodes16.testcase \ + linesnodes17.testcase \ + linesnodes18.testcase \ + linesnodes19.testcase \ + linesnodes1.testcase \ + linesnodes2.testcase \ + linesnodes3.testcase \ + linesnodes4.testcase \ + linesnodes5.testcase \ + linesnodes6.testcase \ + linesnodes7.testcase \ + linesnodes8.testcase \ + linesnodes9.testcase \ + linesubstring10.testcase \ + linesubstring11.testcase \ + linesubstring12.testcase \ + linesubstring13.testcase \ + linesubstring14.testcase \ + linesubstring15.testcase \ + linesubstring16.testcase \ + linesubstring17.testcase \ + linesubstring18.testcase \ + linesubstring19.testcase \ + linesubstring1.testcase \ + linesubstring20.testcase \ + linesubstring21.testcase \ + linesubstring22.testcase \ + linesubstring23.testcase \ + linesubstring24.testcase \ + linesubstring25.testcase \ + linesubstring26.testcase \ + linesubstring2.testcase \ + linesubstring3.testcase \ + linesubstring4.testcase \ + linesubstring5.testcase \ + linesubstring6.testcase \ + linesubstring7.testcase \ + linesubstring8.testcase \ + linesubstring9.testcase \ + locatepoint10.testcase \ + locatepoint11.testcase \ + locatepoint12.testcase \ + locatepoint1.testcase \ + locatepoint2.testcase \ + locatepoint3.testcase \ + locatepoint4.testcase \ + locatepoint5.testcase \ + locatepoint6.testcase \ + locatepoint7.testcase \ + locatepoint8.testcase \ + locatepoint9.testcase \ + offsetcurve10.testcase \ + offsetcurve11.testcase \ + offsetcurve12.testcase \ + offsetcurve13.testcase \ + offsetcurve14.testcase \ + offsetcurve1.testcase \ + offsetcurve2.testcase \ + offsetcurve3.testcase \ + offsetcurve4.testcase \ + offsetcurve5.testcase \ + offsetcurve6.testcase \ + offsetcurve7.testcase \ + offsetcurve8.testcase \ + offsetcurve9.testcase \ + ringsnodes1.testcase \ + ringsnodes2.testcase \ + ringsnodes3.testcase \ + ringsnodes4.testcase \ + ringsnodes5.testcase \ + ringsnodes6.testcase \ + sharedpaths10.testcase \ + sharedpaths11.testcase \ + sharedpaths12.testcase \ + sharedpaths13.testcase \ + sharedpaths14.testcase \ + sharedpaths15.testcase \ + sharedpaths16.testcase \ + sharedpaths17.testcase \ + sharedpaths18.testcase \ + sharedpaths19.testcase \ + sharedpaths1.testcase \ + sharedpaths20.testcase \ + sharedpaths21.testcase \ + sharedpaths22.testcase \ + sharedpaths23.testcase \ + sharedpaths24.testcase \ + sharedpaths25.testcase \ + sharedpaths26.testcase \ + sharedpaths27.testcase \ + sharedpaths28.testcase \ + sharedpaths29.testcase \ + sharedpaths2.testcase \ + sharedpaths30.testcase \ + sharedpaths31.testcase \ + sharedpaths32.testcase \ + sharedpaths3.testcase \ + sharedpaths4.testcase \ + sharedpaths5.testcase \ + sharedpaths6.testcase \ + sharedpaths7.testcase \ + sharedpaths8.testcase \ + sharedpaths9.testcase \ + shortestline1.testcase \ + shortestline2.testcase \ + shortestline3.testcase \ + shortestline4.testcase \ + shortestline5.testcase \ + shortestline6.testcase \ + shortestline7.testcase \ + singlesidedbuffer11.testcase \ + singlesidedbuffer12.testcase \ + singlesidedbuffer13.testcase \ + singlesidedbuffer14.testcase \ + singlesidedbuffer15.testcase \ + singlesidedbuffer16.testcase \ + singlesidedbuffer17.testcase \ + singlesidedbuffer1.testcase \ + singlesidedbuffer2.testcase \ + singlesidedbuffer3.testcase \ + singlesidedbuffer4.testcase \ + singlesidedbuffer5.testcase \ + singlesidedbuffer6.testcase \ + singlesidedbuffer7.testcase \ + singlesidedbuffer8.testcase \ + singlesidedbuffer9.testcase \ + snap10.testcase \ + snap1.testcase \ + snap2.testcase \ + snap3.testcase \ + snap4.testcase \ + snap5.testcase \ + snap6.testcase \ + snap7.testcase \ + snap8.testcase \ + snap9.testcase \ + squaregrid10.testcase \ + squaregrid11.testcase \ + squaregrid12.testcase \ + squaregrid13.testcase \ + squaregrid14.testcase \ + squaregrid15.testcase \ + squaregrid16.testcase \ + squaregrid17.testcase \ + squaregrid18.testcase \ + squaregrid19.testcase \ + squaregrid1.testcase \ + squaregrid20.testcase \ + squaregrid21.testcase \ + squaregrid22.testcase \ + squaregrid23.testcase \ + squaregrid2.testcase \ + squaregrid3.testcase \ + squaregrid4.testcase \ + squaregrid5.testcase \ + squaregrid6.testcase \ + squaregrid7.testcase \ + squaregrid8.testcase \ + squaregrid9.testcase \ + trianggrid10.testcase \ + trianggrid11.testcase \ + trianggrid12.testcase \ + trianggrid13.testcase \ + trianggrid14.testcase \ + trianggrid15.testcase \ + trianggrid16.testcase \ + trianggrid17.testcase \ + trianggrid18.testcase \ + trianggrid19.testcase \ + trianggrid1.testcase \ + trianggrid20.testcase \ + trianggrid21.testcase \ + trianggrid22.testcase \ + trianggrid23.testcase \ + trianggrid2.testcase \ + trianggrid3.testcase \ + trianggrid4.testcase \ + trianggrid5.testcase \ + trianggrid6.testcase \ + trianggrid7.testcase \ + trianggrid8.testcase \ + trianggrid9.testcase \ + unaryunion1.testcase \ + unaryunion2.testcase \ + unaryunion3.testcase \ + unaryunion4.testcase \ + unaryunion5.testcase \ + unaryunion6.testcase \ + unaryunion7.testcase \ + unaryunion8.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint1.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint10.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint11.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint12.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint13.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint14.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint15.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint16.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint17.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint18.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint19.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint2.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint20.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint20.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint20.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint20.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint21.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint21.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint21.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint21.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint22.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint22.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint22.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint3.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint4.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint5.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint6.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint7.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint8.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint9.testcase b/src/spatialite/test/sql_stmt_geos_tests/closestpoint9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/closestpoint9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/closestpoint9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/coveredby1.testcase b/src/spatialite/test/sql_stmt_geos_tests/coveredby1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/coveredby1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/coveredby1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/coveredby2.testcase b/src/spatialite/test/sql_stmt_geos_tests/coveredby2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/coveredby2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/coveredby2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers1.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers2.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered1.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered2.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered3.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered4.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered5.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered6.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered7.testcase b/src/spatialite/test/sql_stmt_geos_tests/covers_covered7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/covers_covered7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/covers_covered7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo1.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo1.testcase similarity index 77% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo1.testcase index 920de0b..dc6ca17 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo1.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo1.testcase @@ -1,7 +1,7 @@ CreateTopology - 2 arguments, 2D -:memory: #use in-memory database +NEW:memory: #use in-memory database (empty) SELECT CreateTopologyTables(4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XY") -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo10.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo11.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo12.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo12.testcase similarity index 83% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo12.testcase index 8b12dfc..3eb09c3 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo12.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo12.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, spaces in prefix -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("hello world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello world", 4326, 3) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo13.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo13.testcase similarity index 83% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo13.testcase index 068d863..dc78c9a 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo13.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo13.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, quote in prefix -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("hello'_world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello'_world", 4326, 3) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo14.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo14.testcase similarity index 80% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo14.testcase index a155ed5..7ded789 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo14.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo14.testcase @@ -1,7 +1,7 @@ CreateTopology - 2 arguments, 2D int -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 2) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo15.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo15.testcase similarity index 80% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo15.testcase index 92c20c8..7ec6147 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo15.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo15.testcase @@ -1,7 +1,7 @@ CreateTopology - 2 arguments, 3D int -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 3) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo16.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo17.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo18.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo2.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo2.testcase similarity index 80% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo2.testcase index 64f2b61..dbcf50e 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo2.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo2.testcase @@ -1,7 +1,7 @@ CreateTopology - 2 arguments, 3D -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XYZ") -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo3.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo3.testcase similarity index 82% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo3.testcase index 586f181..d46f699 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo3.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo3.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, 2D -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XY") -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo4.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo4.testcase similarity index 83% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo4.testcase index 3e75e6b..9cc7604 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo4.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo4.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, 3D -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XYZ") -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo5.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo5.testcase similarity index 82% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo5.testcase index 0a1b86d..e128fb2 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo5.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo5.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, 3D int -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 3) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo6.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo6.testcase similarity index 82% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo6.testcase index ae3429c..e662c9b 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo6.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/createtopo6.testcase @@ -1,7 +1,7 @@ CreateTopology - 3 arguments, 2D int -:memory: #use in-memory database +NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 2) -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo7.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo8.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo9.testcase b/src/spatialite/test/sql_stmt_geos_tests/createtopo9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/createtopo9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/createtopo9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr1.testcase similarity index 94% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr1.testcase index 5984a7e..68de956 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr1.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0) -15577.651163:6 +13842.154368:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr10.testcase similarity index 96% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr10.testcase index fe840be..9daa21d 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr10.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 1) -11061.654932:6 +8232.9862107:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr11.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr12.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr2.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr2.testcase index b13ec9a..dee4826 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr2.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0) -15577.651163:6 +13842.154368:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr3.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr3.testcase index 154408a..fc3f64f 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr3.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0) -15577.651163:6 +13842.154368:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr4.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr4.testcase index 981e089..40e2f2b 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr4.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 0) -15577.651163:6 +13842.154368:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr5.testcase similarity index 94% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr5.testcase index 6a839ed..b2307c2 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr5.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1) -15545.889589:6 +13845.545374:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr6.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr6.testcase index 3a7b0ac..7cf9b8b 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr6.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1) -15545.889589:6 +13845.545374:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr7.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr7.testcase index d1db500..d2ced16 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr7.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1) -15545.889589:6 +13845.545374:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr8.testcase similarity index 95% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr8.testcase index 85cfb0b..71fbab2 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr8.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 1) -15545.889589:6 +13845.545374:6 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr9.testcase similarity index 96% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/distance_geogr9.testcase index 982f62a..f40384d 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/distance_geogr9.testcase @@ -4,5 +4,5 @@ SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 0) -11119.507973:6 +8211.259574:6 diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror1.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror1.testcase new file mode 100644 index 0000000..7859bf8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror1.testcase @@ -0,0 +1,18 @@ +GEOS_Error - valid Linestring +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +1 +(NULL) +(NULL) +(NULL) +(NULL) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror2.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror2.testcase new file mode 100644 index 0000000..49c55c8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror2.testcase @@ -0,0 +1,18 @@ +GEOS_Error - valid Polygon +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +1 +(NULL) +(NULL) +(NULL) +(NULL) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror3.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror3.testcase new file mode 100644 index 0000000..949cdc3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror3.testcase @@ -0,0 +1,18 @@ +GEOS_Error - invalid Linestring (collapses to a Point) +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +0 +Too few points in geometry component at or near point 1 1 +(NULL) +(NULL) +POINT(1 1) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror4.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror4.testcase new file mode 100644 index 0000000..95c83f3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror4.testcase @@ -0,0 +1,18 @@ +GEOS_Error - valid self-intersecting Linestring +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +1 +(NULL) +(NULL) +(NULL) +(NULL) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror5.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror5.testcase new file mode 100644 index 0000000..bdf69b8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror5.testcase @@ -0,0 +1,18 @@ +GEOS_Error - invalid self-intersecting Polygon +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg(4326)); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg(4326)) +0 +Self-intersection at or near point 0.5 0.5 +(NULL) +(NULL) +POINT(0.5 0.5) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror6.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror6.testcase new file mode 100644 index 0000000..6be425a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror6.testcase @@ -0,0 +1,19 @@ +GEOS_Error - invalid unclosed Polygon +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +0 +(NULL) +(NULL) +gaia detected a not-closed Ring +(NULL) + + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/geoserror7.testcase b/src/spatialite/test/sql_stmt_geos_tests/geoserror7.testcase new file mode 100644 index 0000000..ec81793 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/geoserror7.testcase @@ -0,0 +1,19 @@ +GEOS_Error - invalid Polygon (collapsed to a line) +:memory: #use in-memory database +SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); +1 # rows (not including the header row) +5 # columns +ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))')) +GEOS_GetLastWarningMsg() +GEOS_GetLastErrorMsg() +GEOS_GetLastAuxErrorMsg() +ST_AsText(GEOS_GetCriticalPointFromMsg()) +0 +Too few points in geometry component at or near point 0 0 +(NULL) +(NULL) +POINT(0 0) + + + + diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase b/src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hausdorffdistance7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid1.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid10.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid11.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid12.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid13.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid14.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid15.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid16.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid17.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid18.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid19.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid2.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid20.testcase similarity index 51% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid20.testcase index ef3914a..b78c96d 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/hexgrid20.testcase @@ -4,4 +4,4 @@ SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0. 1 # rows (not including the header row) 1 # columns AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) -MULTIPOLYGON(((0.1 0.1, 0.6 -0.766025, 1.6 -0.766025, 2.1 0.1, 1.6 0.966025, 0.6 0.966025, 0.1 0.1)), ((-1.4 0.966025, -0.9 0.1, 0.1 0.1, 0.6 0.966025, 0.1 1.832051, -0.9 1.832051, -1.4 0.966025)), ((1.6 0.966025, 2.1 0.1, 3.1 0.1, 3.6 0.966025, 3.1 1.832051, 2.1 1.832051, 1.6 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.6 0.966025, 2.1 1.832051, 1.6 2.698076, 0.6 2.698076, 0.1 1.832051))) +MULTIPOLYGON(((0.1 0.966025, 0.6 0.1, 1.6 0.1, 2.1 0.966025, 1.6 1.832051, 0.6 1.832051, 0.1 0.966025)), ((1.6 1.832051, 2.1 0.966025, 3.1 0.966025, 3.6 1.832051, 3.1 2.698076, 2.1 2.698076, 1.6 1.832051))) diff --git a/src/spatialite/test/sql_stmt_geos_tests/hexgrid21.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid21.testcase new file mode 100644 index 0000000..4642174 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/hexgrid21.testcase @@ -0,0 +1,10 @@ +HexagonalGrid - valid - no Origin +:memory: #use in-memory database +SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); +1 # rows (not including the header row) +1 # columns +AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) +MULTIPOLYGON(((0 0.866025, 0.5 0, 1.5 0, 2 0.866025, 1.5 1.732051, 0.5 1.732051, 0 0.866025)), ((1.5 1.732051, 2 0.866025, 3 0.866025, 3.5 1.732051, 3 2.598076, 2 2.598076, 1.5 1.732051))) + + + diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid22.testcase similarity index 98% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid22.testcase index aaacd35..f887c40 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/hexgrid22.testcase @@ -4,4 +4,4 @@ SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) -24.0 +12.0 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid23.testcase similarity index 98% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid23.testcase index a54198f..4978418 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/hexgrid23.testcase @@ -4,4 +4,4 @@ SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) -19.0 +11.0 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid3.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid4.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid5.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid6.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid7.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid8.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid9.testcase b/src/spatialite/test/sql_stmt_geos_tests/hexgrid9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/hexgrid9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolateequidistantpoint9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint1.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint10.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint11.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint12.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint13.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint14.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint2.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint3.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint4.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint5.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint6.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint7.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint8.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint9.testcase b/src/spatialite/test/sql_stmt_geos_tests/interpolatepoint9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/interpolatepoint9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/interpolatepoint9.testcase diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail1.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail1.testcase new file mode 100644 index 0000000..9a65f17 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail1.testcase @@ -0,0 +1,7 @@ +isvaliddetail1 +:memory: #use in-memory database +SELECT IsValidDetail(zeroblob(10)); +1 # rows (not including the header row) +1 # columns +IsValidDetail(zeroblob(10)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail2.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail2.testcase new file mode 100644 index 0000000..814e046 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail2.testcase @@ -0,0 +1,7 @@ +isvaliddetail2 +:memory: #use in-memory database +SELECT IsValidDetail(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); +1 # rows (not including the header row) +1 # columns +IsValidDetail(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail3.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail3.testcase new file mode 100644 index 0000000..51220d4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail3.testcase @@ -0,0 +1,7 @@ +isvaliddetail3 +:memory: #use in-memory database +SELECT IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); +1 # rows (not including the header row) +1 # columns +IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail4.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail4.testcase new file mode 100644 index 0000000..9c8377a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail4.testcase @@ -0,0 +1,7 @@ +isvaliddetail4 +:memory: #use in-memory database +SELECT IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); +1 # rows (not including the header row) +1 # columns +IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) +(NULL) diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail5.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail5.testcase new file mode 100644 index 0000000..f39c312 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvaliddetail5.testcase @@ -0,0 +1,7 @@ +isvaliddetail5 +:memory: #use in-memory database +SELECT AsText(IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))"))); +1 # rows (not including the header row) +1 # columns +AsText(IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))"))) +POINT(135.2 -34.5) diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvalidreason1.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason1.testcase new file mode 100644 index 0000000..f2235ca --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason1.testcase @@ -0,0 +1,7 @@ +isvalidreason1 +:memory: #use in-memory database +SELECT IsValidReason(zeroblob(10)); +1 # rows (not including the header row) +1 # columns +IsValidReason(zeroblob(10)) +Invalid: NULL Geometry diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvalidreason2.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason2.testcase new file mode 100644 index 0000000..1050a30 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason2.testcase @@ -0,0 +1,7 @@ +isvalidreason2 +:memory: #use in-memory database +SELECT IsValidReason(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); +1 # rows (not including the header row) +1 # columns +IsValidReason(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) +Valid Geometry diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvalidreason3.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason3.testcase new file mode 100644 index 0000000..ce0d158 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason3.testcase @@ -0,0 +1,7 @@ +isvalidreason3 +:memory: #use in-memory database +SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); +1 # rows (not including the header row) +1 # columns +IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) +Valid Geometry diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvalidreason4.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason4.testcase new file mode 100644 index 0000000..f5675e1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason4.testcase @@ -0,0 +1,7 @@ +isvalidreason4 +:memory: #use in-memory database +SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); +1 # rows (not including the header row) +1 # columns +IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) +Invalid: Unclosed Rings were detected diff --git a/src/spatialite/test/sql_stmt_geos_tests/isvalidreason5.testcase b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason5.testcase new file mode 100644 index 0000000..a73343b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/isvalidreason5.testcase @@ -0,0 +1,7 @@ +isvalidreason5 +:memory: #use in-memory database +SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))")); +1 # rows (not including the header row) +1 # columns +IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))")) +Self-intersection[135.2 -34.5] diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge1.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge10.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge2.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge3.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge4.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge5.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge6.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge7.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge8.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge9.testcase b/src/spatialite/test/sql_stmt_geos_tests/linemerge9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linemerge9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linemerge9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes1.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes10.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes11.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes12.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes13.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes14.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes15.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes16.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes17.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes18.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes19.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes2.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes3.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes4.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes5.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes6.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes7.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes8.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes9.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesnodes9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesnodes9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesnodes9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring1.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring10.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring11.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring12.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring13.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring14.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring15.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring16.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring17.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring18.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring19.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring2.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring20.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring20.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring20.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring20.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring21.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring21.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring21.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring21.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring22.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring22.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring22.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring23.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring23.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring23.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring23.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring24.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring24.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring24.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring24.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring25.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring25.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring25.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring25.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring26.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring26.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring26.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring26.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring3.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring4.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring5.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring6.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring7.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring8.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring9.testcase b/src/spatialite/test/sql_stmt_geos_tests/linesubstring9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/linesubstring9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/linesubstring9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint1.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint10.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint11.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint12.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint2.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint3.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint4.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint5.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint6.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint7.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint8.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint9.testcase b/src/spatialite/test/sql_stmt_geos_tests/locatepoint9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/locatepoint9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/locatepoint9.testcase diff --git a/src/spatialite/test/sql_stmt_geos_tests/makearc15.testcase b/src/spatialite/test/sql_stmt_geos_tests/makearc15.testcase new file mode 100644 index 0000000..ca1bceb --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makearc15.testcase @@ -0,0 +1,8 @@ +makearc14 - valid +:memory: #use in-memory database +SELECT ST_Length(MakeArc(0, 0, 100, 30, 60)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeArc(0, 0, 100, 30, 60)) +52.2934:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makearc19.testcase b/src/spatialite/test/sql_stmt_geos_tests/makearc19.testcase new file mode 100644 index 0000000..47e0bf1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makearc19.testcase @@ -0,0 +1,8 @@ +makearc19 - WGS84 srid +:memory: #use in-memory database +SELECT ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)) +52.2934:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makearc23.testcase b/src/spatialite/test/sql_stmt_geos_tests/makearc23.testcase new file mode 100644 index 0000000..3822603 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makearc23.testcase @@ -0,0 +1,8 @@ +makearc23 - valid step +:memory: #use in-memory database +SELECT ST_Length(MakeArc(0.0, 0.0, 100.0, 30.0, 60.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeArc(0.0, 0.0, 100.0, 30.0, 60.0, 4326, 1.0)) +52.3592:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle10.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle10.testcase new file mode 100644 index 0000000..c4ccd6a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle10.testcase @@ -0,0 +1,8 @@ +makecircle10 - valid +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100)) +627.5213:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle11.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle11.testcase new file mode 100644 index 0000000..abd4395 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle11.testcase @@ -0,0 +1,8 @@ +makecircle11 - NULL srid +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, NULL)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, NULL)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle12.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle12.testcase new file mode 100644 index 0000000..35c992f --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle12.testcase @@ -0,0 +1,8 @@ +makecircle12 - text srid +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, 'alpha')); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, 'alpha')) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle13.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle13.testcase new file mode 100644 index 0000000..5ce974b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle13.testcase @@ -0,0 +1,8 @@ +makecircle13 - BLOB srid +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, zeroblob(4))); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, zeroblob(4))) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle14.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle14.testcase new file mode 100644 index 0000000..b279df6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle14.testcase @@ -0,0 +1,8 @@ +makecircle14 - WGS84 srid +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, 4326)) +627.5213:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle15.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle15.testcase new file mode 100644 index 0000000..3719494 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle15.testcase @@ -0,0 +1,8 @@ +makecircle15 - NULL step +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, 4326, NULL)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, 4326, NULL)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle16.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle16.testcase new file mode 100644 index 0000000..ea85e6d --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle16.testcase @@ -0,0 +1,8 @@ +makecircle16 - text step +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle17.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle17.testcase new file mode 100644 index 0000000..cf63755 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle17.testcase @@ -0,0 +1,8 @@ +makecircle17 - BLOB step +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0, 0, 100, 4326, zeroblob(4))); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0, 0, 100, 4326, zeroblob(4))) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircle18.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircle18.testcase new file mode 100644 index 0000000..b63da15 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircle18.testcase @@ -0,0 +1,8 @@ +makecircle18 - valid step +:memory: #use in-memory database +SELECT ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)) +628.3105:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularsector15.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector15.testcase new file mode 100644 index 0000000..2d97bee --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector15.testcase @@ -0,0 +1,8 @@ +makecircularsector15 - valid +:memory: #use in-memory database +SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularSector(0, 0, 100, 30, 60)) +2604.7226:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularsector19.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector19.testcase new file mode 100644 index 0000000..6c6cb53 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector19.testcase @@ -0,0 +1,8 @@ +makecircularsector19 - WGS84 srid +:memory: #use in-memory database +SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)) +2604.7226:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularsector23.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector23.testcase new file mode 100644 index 0000000..87e869e --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularsector23.testcase @@ -0,0 +1,8 @@ +makecircularsector23 - valid step +:memory: #use in-memory database +SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326, 1.0)) +2617.8609:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe15.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe15.testcase new file mode 100644 index 0000000..25de187 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe15.testcase @@ -0,0 +1,8 @@ +makecircularstripe15 - valid +:memory: #use in-memory database +SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)) +494.8973:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe19.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe19.testcase new file mode 100644 index 0000000..4715c7a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe19.testcase @@ -0,0 +1,8 @@ +makecircularstrpe19 - WGS84 srid +:memory: #use in-memory database +SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)) +494.8973:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe23.testcase b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe23.testcase new file mode 100644 index 0000000..90ec5db --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makecircularstripe23.testcase @@ -0,0 +1,8 @@ +makecircularstripe23 - valid step +:memory: #use in-memory database +SELECT ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)) +497.3935:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipse13.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipse13.testcase new file mode 100644 index 0000000..089a35b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipse13.testcase @@ -0,0 +1,8 @@ +makeellipse13 - valid +:memory: #use in-memory database +SELECT ST_Length(MakeEllipse(0, 0, 100, 200)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipse(0, 0, 100, 200)) +967.6155:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipse17.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipse17.testcase new file mode 100644 index 0000000..841efa9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipse17.testcase @@ -0,0 +1,8 @@ +makeellipse17 - WGS84 srid +:memory: #use in-memory database +SELECT ST_Length(MakeEllipse(0, 0, 100, 200, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipse(0, 0, 100, 200, 4326)) +967.6155:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipse21.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipse21.testcase new file mode 100644 index 0000000..cc03dc8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipse21.testcase @@ -0,0 +1,8 @@ +makeellipse21 - valid step +:memory: #use in-memory database +SELECT ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)) +968.8325:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc18.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc18.testcase new file mode 100644 index 0000000..ac1b60c --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc18.testcase @@ -0,0 +1,8 @@ +makeellipticarc18 - valid +:memory: #use in-memory database +SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)) +82.3891:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc22.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc22.testcase new file mode 100644 index 0000000..daa3b4b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc22.testcase @@ -0,0 +1,8 @@ +makeellipticarc22 - WGS84 sid +:memory: #use in-memory database +SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)) +82.3891:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc26.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc26.testcase new file mode 100644 index 0000000..814e3bd --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticarc26.testcase @@ -0,0 +1,8 @@ +makeellipticarc26 - valid step +:memory: #use in-memory database +SELECT ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) +82.4595:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector18.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector18.testcase new file mode 100644 index 0000000..5ea8a8a --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector18.testcase @@ -0,0 +1,8 @@ +makeellipticsector18 - valid +:memory: #use in-memory database +SELECT ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)) +5209.4453:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector22.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector22.testcase new file mode 100644 index 0000000..58e13ee --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector22.testcase @@ -0,0 +1,8 @@ +makeellipticsector22 - WGS84 sid +:memory: #use in-memory database +SELECT ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326)) +5209.4453:4 + diff --git a/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector26.testcase b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector26.testcase new file mode 100644 index 0000000..c5a9c01 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/makeellipticsector26.testcase @@ -0,0 +1,8 @@ +makeellipticsector26 - valid step +:memory: #use in-memory database +SELECT ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); +1 # rows (not including the header row) +1 # columns +ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) +5235.7219:4 + diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve1.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve10.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve11.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve12.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve13.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve14.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve2.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve3.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve4.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve5.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve6.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve7.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve8.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve9.testcase b/src/spatialite/test/sql_stmt_geos_tests/offsetcurve9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/offsetcurve9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/offsetcurve9.testcase diff --git a/src/spatialite/test/sql_stmt_geos_tests/relations1.testcase b/src/spatialite/test/sql_stmt_geos_tests/relations1.testcase index 241c539..5087999 100644 --- a/src/spatialite/test/sql_stmt_geos_tests/relations1.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/relations1.testcase @@ -18,4 +18,4 @@ Contains(geom1, geom2) 0 0 1 -1 \ No newline at end of file +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes1.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes2.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes3.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes4.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes5.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes6.testcase b/src/spatialite/test/sql_stmt_geos_tests/ringsnodes6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/ringsnodes6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/ringsnodes6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths1.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths10.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths11.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths12.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths13.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths14.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths15.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths16.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths17.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths18.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths19.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths2.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths20.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths20.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths20.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths20.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths21.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths21.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths21.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths21.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths22.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths22.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths22.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths23.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths23.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths23.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths23.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths24.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths24.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths24.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths24.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths25.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths25.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths25.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths25.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths26.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths26.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths26.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths26.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths27.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths27.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths27.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths27.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths28.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths28.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths28.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths28.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths29.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths29.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths29.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths29.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths3.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths30.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths30.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths30.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths30.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths31.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths31.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths31.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths31.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths32.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths32.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths32.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths32.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths4.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths5.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths6.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths7.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths8.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths9.testcase b/src/spatialite/test/sql_stmt_geos_tests/sharedpaths9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/sharedpaths9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/sharedpaths9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline1.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline2.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline3.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline4.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline5.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline6.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline7.testcase b/src/spatialite/test/sql_stmt_geos_tests/shortestline7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/shortestline7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/shortestline7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase b/src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/singlesidedbuffer9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap1.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap10.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap2.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap3.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap4.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap5.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap6.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap7.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap8.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/snap9.testcase b/src/spatialite/test/sql_stmt_geos_tests/snap9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/snap9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/snap9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid1.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid10.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid11.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid12.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid13.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid14.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid15.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid16.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid17.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid18.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid19.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid2.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid20.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid20.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid20.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid20.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid21.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid21.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid21.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid21.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid22.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid22.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid22.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid23.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid23.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid23.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid23.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid3.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid4.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid5.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid6.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid7.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid8.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid9.testcase b/src/spatialite/test/sql_stmt_geos_tests/squaregrid9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/squaregrid9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/squaregrid9.testcase diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos1.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos1.testcase new file mode 100644 index 0000000..2487148 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos1.testcase @@ -0,0 +1,7 @@ +GEOS test - Equals +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Equals(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +1 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos10.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos10.testcase new file mode 100644 index 0000000..252901b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos10.testcase @@ -0,0 +1,7 @@ +GEOS test - CoveredBy +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_CoveredBy(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +1 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos2.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos2.testcase new file mode 100644 index 0000000..dded825 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos2.testcase @@ -0,0 +1,7 @@ +GEOS test - Intersects +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Intersects(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +10 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos3.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos3.testcase new file mode 100644 index 0000000..9de37fa --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos3.testcase @@ -0,0 +1,7 @@ +GEOS test - Disjoint +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Disjoint(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +2 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos4.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos4.testcase new file mode 100644 index 0000000..bb1da3c --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos4.testcase @@ -0,0 +1,7 @@ +GEOS test - Overlaps +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Overlaps(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +0 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos5.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos5.testcase new file mode 100644 index 0000000..1a48610 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos5.testcase @@ -0,0 +1,7 @@ +GEOS test - Crosses +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Crosses(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +0 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos6.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos6.testcase new file mode 100644 index 0000000..e91dbec --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos6.testcase @@ -0,0 +1,7 @@ +GEOS test - Touches +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Touches(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +9 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos7.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos7.testcase new file mode 100644 index 0000000..ececaa0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos7.testcase @@ -0,0 +1,7 @@ +GEOS test - Within +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Within(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +1 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos8.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos8.testcase new file mode 100644 index 0000000..0152971 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos8.testcase @@ -0,0 +1,7 @@ +GEOS test - Contains +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Contains(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +1 diff --git a/src/spatialite/test/sql_stmt_geos_tests/testgeos9.testcase b/src/spatialite/test/sql_stmt_geos_tests/testgeos9.testcase new file mode 100644 index 0000000..9a63c5b --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/testgeos9.testcase @@ -0,0 +1,7 @@ +GEOS test - Covers +test_geos_x.sqlite +SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Covers(a.geometry, b.geometry) = 1; +1 # rows (not including the header row) +1 # columns +Count(*) +1 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid1.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid10.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid10.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid10.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid11.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid11.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid11.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid12.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid12.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid12.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid13.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid13.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid13.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid14.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid14.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid14.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid15.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid15.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid15.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid16.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid16.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid16.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid17.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid17.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid17.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid18.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid18.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid18.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid19.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid19.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid19.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid2.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid2.testcase diff --git a/src/spatialite/test/sql_stmt_geos_tests/trianggrid20.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid20.testcase new file mode 100644 index 0000000..542ec00 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/trianggrid20.testcase @@ -0,0 +1,10 @@ +TriangularGrid - valid - no Origin +:memory: #use in-memory database +SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); +1 # rows (not including the header row) +1 # columns +AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) +MULTIPOLYGON(((0 0.866025, 1 0.866025, 0.5 1.732051, 0 0.866025)), ((0.5 1.732051, 1 0.866025, 1.5 1.732051, 0.5 1.732051)), ((1 0.866025, 2 0.866025, 1.5 1.732051, 1 0.866025)), ((1.5 1.732051, 2 0.866025, 2.5 1.732051, 1.5 1.732051)), ((2 0.866025, 3 0.866025, 2.5 1.732051, 2 0.866025))) + + + diff --git a/src/spatialite/test/sql_stmt_geos_tests/trianggrid21.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid21.testcase new file mode 100644 index 0000000..d691017 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geos_tests/trianggrid21.testcase @@ -0,0 +1,7 @@ +TriangularGrid - valid - with Origin +:memory: #use in-memory database +SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); +1 # rows (not including the header row) +1 # columns +AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) +MULTIPOLYGON(((-0.4 1.832051, 0.1 0.966025, 0.6 1.832051, -0.4 1.832051)), ((0.1 0.966025, 1.1 0.966025, 0.6 1.832051, 0.1 0.966025)), ((0.6 1.832051, 1.1 0.966025, 1.6 1.832051, 0.6 1.832051)), ((1.1 0.966025, 2.1 0.966025, 1.6 1.832051, 1.1 0.966025)), ((1.6 1.832051, 2.1 0.966025, 2.6 1.832051, 1.6 1.832051)), ((2.1 0.966025, 3.1 0.966025, 2.6 1.832051, 2.1 0.966025))) diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid22.testcase similarity index 98% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid22.testcase index 5c08ffd..c6a1fd9 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/trianggrid22.testcase @@ -4,7 +4,7 @@ SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) -18.0 +9.0 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid23.testcase similarity index 98% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid23.testcase index ada451e..f8826bf 100644 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase +++ b/src/spatialite/test/sql_stmt_geos_tests/trianggrid23.testcase @@ -4,4 +4,4 @@ SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) -18.0 +12.0 diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid3.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid4.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid5.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid6.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid7.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid8.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid9.testcase b/src/spatialite/test/sql_stmt_geos_tests/trianggrid9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid9.testcase rename to src/spatialite/test/sql_stmt_geos_tests/trianggrid9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion1.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion1.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion1.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion2.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion2.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion2.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion3.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion3.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion3.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion4.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion4.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion4.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion5.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion5.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion5.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion6.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion6.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion6.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion7.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion7.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion7.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion8.testcase b/src/spatialite/test/sql_stmt_geos_tests/unaryunion8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geosadvanced_tests/unaryunion8.testcase rename to src/spatialite/test/sql_stmt_geos_tests/unaryunion8.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.am b/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.am new file mode 100644 index 0000000..1861ed4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.am @@ -0,0 +1,58 @@ + +EXTRA_DIST = concave_hull10.testcase \ + concave_hull11.testcase \ + concave_hull12.testcase \ + concave_hull13.testcase \ + concave_hull14.testcase \ + concave_hull15.testcase \ + concave_hull16.testcase \ + concave_hull17.testcase \ + concave_hull18.testcase \ + concave_hull19.testcase \ + concave_hull1.testcase \ + concave_hull2.testcase \ + concave_hull3.testcase \ + concave_hull4.testcase \ + concave_hull5.testcase \ + concave_hull6.testcase \ + concave_hull7.testcase \ + concave_hull8.testcase \ + concave_hull9.testcase \ + delaunay10.testcase \ + delaunay11.testcase \ + delaunay12.testcase \ + delaunay13.testcase \ + delaunay14.testcase \ + delaunay15.testcase \ + delaunay16.testcase \ + delaunay17.testcase \ + delaunay18.testcase \ + delaunay19.testcase \ + delaunay1.testcase \ + delaunay2.testcase \ + delaunay3.testcase \ + delaunay4.testcase \ + delaunay5.testcase \ + delaunay6.testcase \ + delaunay7.testcase \ + delaunay8.testcase \ + delaunay9.testcase \ + voronoj10.testcase \ + voronoj11.testcase \ + voronoj12.testcase \ + voronoj13.testcase \ + voronoj14.testcase \ + voronoj15.testcase \ + voronoj16.testcase \ + voronoj17.testcase \ + voronoj18.testcase \ + voronoj19.testcase \ + voronoj1.testcase \ + voronoj20.testcase \ + voronoj2.testcase \ + voronoj3.testcase \ + voronoj4.testcase \ + voronoj5.testcase \ + voronoj6.testcase \ + voronoj8.testcase \ + voronoj9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.in b/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.in new file mode 100644 index 0000000..a9da1ee --- /dev/null +++ b/src/spatialite/test/sql_stmt_geosadvanced_tests/Makefile.in @@ -0,0 +1,494 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_geosadvanced_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = concave_hull10.testcase \ + concave_hull11.testcase \ + concave_hull12.testcase \ + concave_hull13.testcase \ + concave_hull14.testcase \ + concave_hull15.testcase \ + concave_hull16.testcase \ + concave_hull17.testcase \ + concave_hull18.testcase \ + concave_hull19.testcase \ + concave_hull1.testcase \ + concave_hull2.testcase \ + concave_hull3.testcase \ + concave_hull4.testcase \ + concave_hull5.testcase \ + concave_hull6.testcase \ + concave_hull7.testcase \ + concave_hull8.testcase \ + concave_hull9.testcase \ + delaunay10.testcase \ + delaunay11.testcase \ + delaunay12.testcase \ + delaunay13.testcase \ + delaunay14.testcase \ + delaunay15.testcase \ + delaunay16.testcase \ + delaunay17.testcase \ + delaunay18.testcase \ + delaunay19.testcase \ + delaunay1.testcase \ + delaunay2.testcase \ + delaunay3.testcase \ + delaunay4.testcase \ + delaunay5.testcase \ + delaunay6.testcase \ + delaunay7.testcase \ + delaunay8.testcase \ + delaunay9.testcase \ + voronoj10.testcase \ + voronoj11.testcase \ + voronoj12.testcase \ + voronoj13.testcase \ + voronoj14.testcase \ + voronoj15.testcase \ + voronoj16.testcase \ + voronoj17.testcase \ + voronoj18.testcase \ + voronoj19.testcase \ + voronoj1.testcase \ + voronoj20.testcase \ + voronoj2.testcase \ + voronoj3.testcase \ + voronoj4.testcase \ + voronoj5.testcase \ + voronoj6.testcase \ + voronoj8.testcase \ + voronoj9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull1.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull1.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull1.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull10.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull10.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull10.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull11.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull11.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull11.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull12.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull12.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull12.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull13.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull13.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull13.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull14.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull14.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull14.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull15.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull15.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull15.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull16.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull16.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull16.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull17.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull17.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull17.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull18.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull18.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull18.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull19.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull19.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull19.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull2.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull2.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull2.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull3.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull3.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull3.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull4.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull4.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull4.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull5.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull5.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull5.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull6.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull6.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull6.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull7.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull7.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull7.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull8.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull8.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull8.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull9.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/concave_hull9.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/concave_hull9.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay1.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay1.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay1.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay10.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay10.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay10.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay11.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay11.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay11.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay12.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay12.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay12.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay13.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay13.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay13.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay14.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay14.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay14.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay15.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay15.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay15.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay16.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay16.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay16.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay17.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay17.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay17.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay18.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay18.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay18.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay19.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay19.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay19.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay2.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay2.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay2.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay3.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay3.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay3.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay4.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay4.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay4.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay5.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay5.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay5.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay6.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay6.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay6.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay7.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay7.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay7.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay7.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay8.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay8.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay8.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/delaunay9.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/delaunay9.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/delaunay9.testcase diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase deleted file mode 100644 index c8bd97a..0000000 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase +++ /dev/null @@ -1,10 +0,0 @@ -HexagonalGrid - valid - no Origin -:memory: #use in-memory database -SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); -1 # rows (not including the header row) -1 # columns -AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) -MULTIPOLYGON(((0 0, 0.5 -0.866025, 1.5 -0.866025, 2 0, 1.5 0.866025, 0.5 0.866025, 0 0)), ((-1.5 0.866025, -1 0, 0 0, 0.5 0.866025, 0 1.732051, -1 1.732051, -1.5 0.866025)), ((1.5 0.866025, 2 0, 3 0, 3.5 0.866025, 3 1.732051, 2 1.732051, 1.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1.5 0.866025, 2 1.732051, 1.5 2.598076, 0.5 2.598076, 0 1.732051))) - - - diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase deleted file mode 100644 index d74abcd..0000000 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase +++ /dev/null @@ -1,10 +0,0 @@ -TriangularGrid - valid - no Origin -:memory: #use in-memory database -SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); -1 # rows (not including the header row) -1 # columns -AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) -MULTIPOLYGON(((0 0, 1 0, 0.5 0.866025, 0 0)), ((0.5 0.866025, 1 0, 1.5 0.866025, 0.5 0.866025)), ((1 0, 2 0, 1.5 0.866025, 1 0)), ((1.5 0.866025, 2 0, 2.5 0.866025, 1.5 0.866025)), ((2 0, 3 0, 2.5 0.866025, 2 0)), ((-0.5 0.866025, 0.5 0.866025, 0 1.732051, -0.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1 1.732051, 0 1.732051)), ((0.5 0.866025, 1.5 0.866025, 1 1.732051, 0.5 0.866025)), ((1 1.732051, 1.5 0.866025, 2 1.732051, 1 1.732051)), ((1.5 0.866025, 2.5 0.866025, 2 1.732051, 1.5 0.866025))) - - - diff --git a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase deleted file mode 100644 index b19d523..0000000 --- a/src/spatialite/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase +++ /dev/null @@ -1,7 +0,0 @@ -TriangularGrid - valid - with Origin -:memory: #use in-memory database -SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); -1 # rows (not including the header row) -1 # columns -AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) -MULTIPOLYGON(((0.1 0.1, 1.1 0.1, 0.6 0.966025, 0.1 0.1)), ((0.6 0.966025, 1.1 0.1, 1.6 0.966025, 0.6 0.966025)), ((1.1 0.1, 2.1 0.1, 1.6 0.966025, 1.1 0.1)), ((1.6 0.966025, 2.1 0.1, 2.6 0.966025, 1.6 0.966025)), ((2.1 0.1, 3.1 0.1, 2.6 0.966025, 2.1 0.1)), ((-0.4 0.966025, 0.6 0.966025, 0.1 1.832051, -0.4 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.1 1.832051, 0.1 1.832051)), ((0.6 0.966025, 1.6 0.966025, 1.1 1.832051, 0.6 0.966025)), ((1.1 1.832051, 1.6 0.966025, 2.1 1.832051, 1.1 1.832051)), ((1.6 0.966025, 2.6 0.966025, 2.1 1.832051, 1.6 0.966025))) diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj1.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj1.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj1.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj1.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj10.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj10.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj10.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj10.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj11.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj11.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj11.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj11.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj12.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj12.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj12.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj12.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj13.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj13.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj13.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj13.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj14.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj14.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj14.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj14.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj15.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj15.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj15.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj15.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj16.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj16.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj16.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj16.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj17.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj17.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj17.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj17.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj18.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj18.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj18.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj18.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj19.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj19.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj19.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj19.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj2.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj2.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj2.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj2.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj20.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj20.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj20.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj20.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj3.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj3.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj3.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj3.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj4.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj4.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj4.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj4.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj5.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj5.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj5.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj5.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj6.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj6.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj6.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj6.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj8.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj8.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj8.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj8.testcase diff --git a/src/spatialite/test/sql_stmt_geostrunk_tests/voronoj9.testcase b/src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj9.testcase similarity index 100% rename from src/spatialite/test/sql_stmt_geostrunk_tests/voronoj9.testcase rename to src/spatialite/test/sql_stmt_geosadvanced_tests/voronoj9.testcase diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.am b/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.am new file mode 100644 index 0000000..0c86ef8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.am @@ -0,0 +1,334 @@ + +EXTRA_DIST = addfileid1.testcase \ + addfileid2.testcase \ + addfileid3.testcase \ + addfileid4.testcase \ + addfileid5.testcase \ + addfileid6.testcase \ + addfileid7.testcase \ + addparentid1.testcase \ + addparentid2.testcase \ + addparentid3.testcase \ + addparentid4.testcase \ + addparentid5.testcase \ + addparentid6.testcase \ + addparentid7.testcase \ + createisometa1.testcase \ + createisometa2.testcase \ + createisometa3.testcase \ + createisometa4.testcase \ + createisometa5.testcase \ + createisometa6.testcase \ + createstyling1.testcase \ + createstyling2.testcase \ + createstyling3.testcase \ + createstyling4.testcase \ + createstyling5.testcase \ + createstyling6.testcase \ + getIsoMetaId1.testcase \ + getIsoMetaId2.testcase \ + getIsoMetaId3.testcase \ + getIsoMetaId4.testcase \ + getIsoMetaId5.testcase \ + iscompressedxmlblob1.testcase \ + iscompressedxmlblob2.testcase \ + iscompressedxmlblob3.testcase \ + iscompressedxmlblob4.testcase \ + iscompressedxmlblob5.testcase \ + iscompressedxmlblob6.testcase \ + iscompressedxmlblob7.testcase \ + isisometadata1.testcase \ + isisometadata2.testcase \ + isisometadata3.testcase \ + isisometadata4.testcase \ + isisometadata5.testcase \ + isisometadata6.testcase \ + isisometadata7.testcase \ + isschemavalidatedxmlblob1.testcase \ + isschemavalidatedxmlblob2.testcase \ + isschemavalidatedxmlblob3.testcase \ + isschemavalidatedxmlblob4.testcase \ + isschemavalidatedxmlblob5.testcase \ + isschemavalidatedxmlblob6.testcase \ + issldserststyle1.testcase \ + issldserststyle2.testcase \ + issldserststyle3.testcase \ + issldserststyle4.testcase \ + issldserststyle5.testcase \ + issldserststyle6.testcase \ + issldserststyle7.testcase \ + issldsestyle1.testcase \ + issldsestyle2.testcase \ + issldsestyle3.testcase \ + issldsestyle4.testcase \ + issldsestyle5.testcase \ + issldsestyle6.testcase \ + issldsestyle7.testcase \ + issvg1.testcase \ + issvg2.testcase \ + issvg3.testcase \ + issvg4.testcase \ + issvg5.testcase \ + issvg6.testcase \ + issvg7.testcase \ + isvalidxmlblob1.testcase \ + isvalidxmlblob2.testcase \ + isvalidxmlblob3.testcase \ + isvalidxmlblob4.testcase \ + isvalidxmlblob5.testcase \ + isvalidxmlblob6.testcase \ + registerGraphic10.testcase \ + registerGraphic11.testcase \ + registerGraphic12.testcase \ + registerGraphic13.testcase \ + registerGraphic14.testcase \ + registerGraphic15.testcase \ + registerGraphic16.testcase \ + registerGraphic17.testcase \ + registerGraphic18.testcase \ + registerGraphic19.testcase \ + registerGraphic1.testcase \ + registerGraphic20.testcase \ + registerGraphic21.testcase \ + registerGraphic22.testcase \ + registerGraphic2.testcase \ + registerGraphic3.testcase \ + registerGraphic4.testcase \ + registerGraphic5.testcase \ + registerGraphic6.testcase \ + registerGraphic7.testcase \ + registerGraphic8.testcase \ + registerGraphic9.testcase \ + registerGroup14.testcase \ + registerGroup15.testcase \ + registerGroup16.testcase \ + registerGroup17.testcase \ + registerGroup18.testcase \ + registerGroup1.testcase \ + registerGroup25.testcase \ + registerGroup26.testcase \ + registerGroup27.testcase \ + registerGroup28.testcase \ + registerGroup29.testcase \ + registerGroup2.testcase \ + registerGroup3.testcase \ + registerGroup4.testcase \ + registerGroup5.testcase \ + registerGroup6.testcase \ + registerGroup7.testcase \ + registerGroup8.testcase \ + registerGroupStyle1.testcase \ + registerGroupStyle2.testcase \ + registerGroupStyle3.testcase \ + registerGroupStyle4.testcase \ + registerGroupStyle5.testcase \ + registerGroupStyle6.testcase \ + registerGroupStyle7.testcase \ + registerGroupStyle8.testcase \ + registerGroupStyle9.testcase \ + registerGroupStyle10.testcase \ + registerGroupStyle11.testcase \ + registerGroupStyle12.testcase \ + registerGroupStyle13.testcase \ + registerGroupStyle14.testcase \ + registerGroupStyle15.testcase \ + registerGroupStyle16.testcase \ + registerGroupStyle17.testcase \ + registerIsoMeta10.testcase \ + registerIsoMeta11.testcase \ + registerIsoMeta12.testcase \ + registerIsoMeta13.testcase \ + registerIsoMeta14.testcase \ + registerIsoMeta1.testcase \ + registerIsoMeta2.testcase \ + registerIsoMeta3.testcase \ + registerIsoMeta4.testcase \ + registerIsoMeta5.testcase \ + registerIsoMeta6.testcase \ + registerIsoMeta7.testcase \ + registerIsoMeta8.testcase \ + registerIsoMeta9.testcase \ + registerRaster10.testcase \ + registerRaster11.testcase \ + registerRaster12.testcase \ + registerRaster13.testcase \ + registerRaster14.testcase \ + registerRaster15.testcase \ + registerRaster16.testcase \ + registerRaster17.testcase \ + registerRaster1.testcase \ + registerRaster2.testcase \ + registerRaster3.testcase \ + registerRaster4.testcase \ + registerRaster5.testcase \ + registerRaster6.testcase \ + registerRaster7.testcase \ + registerRaster8.testcase \ + registerRaster9.testcase \ + registerVector10.testcase \ + registerVector11.testcase \ + registerVector12.testcase \ + registerVector13.testcase \ + registerVector14.testcase \ + registerVector15.testcase \ + registerVector16.testcase \ + registerVector17.testcase \ + registerVector18.testcase \ + registerVector19.testcase \ + registerVector1.testcase \ + registerVector20.testcase \ + registerVector21.testcase \ + registerVector22.testcase \ + registerVector2.testcase \ + registerVector3.testcase \ + registerVector4.testcase \ + registerVector5.testcase \ + registerVector6.testcase \ + registerVector7.testcase \ + registerVector8.testcase \ + registerVector9.testcase \ + setfileid1.testcase \ + setfileid2.testcase \ + setfileid3.testcase \ + setfileid4.testcase \ + setfileid5.testcase \ + setGroupInfos10.testcase \ + setGroupInfos11.testcase \ + setGroupInfos12.testcase \ + setGroupInfos13.testcase \ + setGroupInfos1.testcase \ + setGroupInfos2.testcase \ + setGroupInfos3.testcase \ + setGroupInfos4.testcase \ + setGroupInfos5.testcase \ + setGroupInfos6.testcase \ + setGroupInfos7.testcase \ + setGroupInfos8.testcase \ + setGroupInfos9.testcase \ + setparentid1.testcase \ + setparentid2.testcase \ + setparentid3.testcase \ + setparentid4.testcase \ + setparentid5.testcase \ + xmlblobgetabstract1.testcase \ + xmlblobgetabstract2.testcase \ + xmlblobgetabstract3.testcase \ + xmlblobgetabstract4.testcase \ + xmlblobgetabstract5.testcase \ + xmlblobgetabstract6.testcase \ + xmlblobgetdocumentsize1.testcase \ + xmlblobgetdocumentsize2.testcase \ + xmlblobgetdocumentsize3.testcase \ + xmlblobgetdocumentsize4.testcase \ + xmlblobgetdocumentsize5.testcase \ + xmlblobgetdocumentsize6.testcase \ + xmlblobgetencoding1.testcase \ + xmlblobgetencoding2.testcase \ + xmlblobgetencoding3.testcase \ + xmlblobgetencoding4.testcase \ + xmlblobgetencoding5.testcase \ + xmlblobgetencoding6.testcase \ + xmlblobgetencoding7.testcase \ + xmlblobgetfileid1.testcase \ + xmlblobgetfileid2.testcase \ + xmlblobgetfileid3.testcase \ + xmlblobgetfileid4.testcase \ + xmlblobgetfileid5.testcase \ + xmlblobgetfileid6.testcase \ + xmlblobgetgeometry1.testcase \ + xmlblobgetgeometry2.testcase \ + xmlblobgetgeometry3.testcase \ + xmlblobgetgeometry4.testcase \ + xmlblobgetgeometry5.testcase \ + xmlblobgetgeometry6.testcase \ + xmlblobgetinternalschemauri1.testcase \ + xmlblobgetinternalschemauri2.testcase \ + xmlblobgetinternalschemauri3.testcase \ + xmlblobgetinternalschemauri4.testcase \ + xmlblobgetinternalschemauri5.testcase \ + xmlblobgetparentid1.testcase \ + xmlblobgetparentid2.testcase \ + xmlblobgetparentid3.testcase \ + xmlblobgetparentid4.testcase \ + xmlblobgetparentid5.testcase \ + xmlblobgetparentid6.testcase \ + xmlblobgetschemauri1.testcase \ + xmlblobgetschemauri2.testcase \ + xmlblobgetschemauri3.testcase \ + xmlblobgetschemauri4.testcase \ + xmlblobgetschemauri5.testcase \ + xmlblobgetschemauri6.testcase \ + xmlblobgetname1.testcase \ + xmlblobgetname2.testcase \ + xmlblobgetname3.testcase \ + xmlblobgetname4.testcase \ + xmlblobgetname5.testcase \ + xmlblobgetname6.testcase \ + xmlblobgetname7.testcase \ + xmlblobgetname8.testcase \ + xmlblobgettitle1.testcase \ + xmlblobgettitle2.testcase \ + xmlblobgettitle3.testcase \ + xmlblobgettitle4.testcase \ + xmlblobgettitle5.testcase \ + xmlblobgettitle6.testcase \ + xmlcompress1.testcase \ + xmlcompress2.testcase \ + xmlcompress3.testcase \ + xmlcompress4.testcase \ + xmlcompress5.testcase \ + xmlcompress6.testcase \ + xmlcompress7.testcase \ + xmlcompress8.testcase \ + xmlfromblob10.testcase \ + xmlfromblob11.testcase \ + xmlfromblob12.testcase \ + xmlfromblob13.testcase \ + xmlfromblob1.testcase \ + xmlfromblob2.testcase \ + xmlfromblob3.testcase \ + xmlfromblob4.testcase \ + xmlfromblob5.testcase \ + xmlfromblob6.testcase \ + xmlfromblob7.testcase \ + xmlfromblob8.testcase \ + xmlfromblob9.testcase \ + xmltextfromblob10.testcase \ + xmltextfromblob11.testcase \ + xmltextfromblob12.testcase \ + xmltextfromblob13.testcase \ + xmltextfromblob1.testcase \ + xmltextfromblob2.testcase \ + xmltextfromblob3.testcase \ + xmltextfromblob4.testcase \ + xmltextfromblob5.testcase \ + xmltextfromblob6.testcase \ + xmltextfromblob7.testcase \ + xmltextfromblob8.testcase \ + xmltextfromblob9.testcase \ + xmltoblob10.testcase \ + xmltoblob11.testcase \ + xmltoblob12.testcase \ + xmltoblob13.testcase \ + xmltoblob14.testcase \ + xmltoblob15.testcase \ + xmltoblob16.testcase \ + xmltoblob17.testcase \ + xmltoblob18.testcase \ + xmltoblob1.testcase \ + xmltoblob2.testcase \ + xmltoblob3.testcase \ + xmltoblob4.testcase \ + xmltoblob5.testcase \ + xmltoblob6.testcase \ + xmltoblob7.testcase \ + xmltoblob8.testcase \ + xmltoblob9.testcase \ + xmluncompress1.testcase \ + xmluncompress2.testcase \ + xmluncompress3.testcase \ + xmluncompress4.testcase \ + xmluncompress5.testcase \ + xmluncompress6.testcase \ + xmluncompress7.testcase \ + xmluncompress8.testcase diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.in b/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.in new file mode 100644 index 0000000..9d39232 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/Makefile.in @@ -0,0 +1,770 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_libxml2_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = addfileid1.testcase \ + addfileid2.testcase \ + addfileid3.testcase \ + addfileid4.testcase \ + addfileid5.testcase \ + addfileid6.testcase \ + addfileid7.testcase \ + addparentid1.testcase \ + addparentid2.testcase \ + addparentid3.testcase \ + addparentid4.testcase \ + addparentid5.testcase \ + addparentid6.testcase \ + addparentid7.testcase \ + createisometa1.testcase \ + createisometa2.testcase \ + createisometa3.testcase \ + createisometa4.testcase \ + createisometa5.testcase \ + createisometa6.testcase \ + createstyling1.testcase \ + createstyling2.testcase \ + createstyling3.testcase \ + createstyling4.testcase \ + createstyling5.testcase \ + createstyling6.testcase \ + getIsoMetaId1.testcase \ + getIsoMetaId2.testcase \ + getIsoMetaId3.testcase \ + getIsoMetaId4.testcase \ + getIsoMetaId5.testcase \ + iscompressedxmlblob1.testcase \ + iscompressedxmlblob2.testcase \ + iscompressedxmlblob3.testcase \ + iscompressedxmlblob4.testcase \ + iscompressedxmlblob5.testcase \ + iscompressedxmlblob6.testcase \ + iscompressedxmlblob7.testcase \ + isisometadata1.testcase \ + isisometadata2.testcase \ + isisometadata3.testcase \ + isisometadata4.testcase \ + isisometadata5.testcase \ + isisometadata6.testcase \ + isisometadata7.testcase \ + isschemavalidatedxmlblob1.testcase \ + isschemavalidatedxmlblob2.testcase \ + isschemavalidatedxmlblob3.testcase \ + isschemavalidatedxmlblob4.testcase \ + isschemavalidatedxmlblob5.testcase \ + isschemavalidatedxmlblob6.testcase \ + issldserststyle1.testcase \ + issldserststyle2.testcase \ + issldserststyle3.testcase \ + issldserststyle4.testcase \ + issldserststyle5.testcase \ + issldserststyle6.testcase \ + issldserststyle7.testcase \ + issldsestyle1.testcase \ + issldsestyle2.testcase \ + issldsestyle3.testcase \ + issldsestyle4.testcase \ + issldsestyle5.testcase \ + issldsestyle6.testcase \ + issldsestyle7.testcase \ + issvg1.testcase \ + issvg2.testcase \ + issvg3.testcase \ + issvg4.testcase \ + issvg5.testcase \ + issvg6.testcase \ + issvg7.testcase \ + isvalidxmlblob1.testcase \ + isvalidxmlblob2.testcase \ + isvalidxmlblob3.testcase \ + isvalidxmlblob4.testcase \ + isvalidxmlblob5.testcase \ + isvalidxmlblob6.testcase \ + registerGraphic10.testcase \ + registerGraphic11.testcase \ + registerGraphic12.testcase \ + registerGraphic13.testcase \ + registerGraphic14.testcase \ + registerGraphic15.testcase \ + registerGraphic16.testcase \ + registerGraphic17.testcase \ + registerGraphic18.testcase \ + registerGraphic19.testcase \ + registerGraphic1.testcase \ + registerGraphic20.testcase \ + registerGraphic21.testcase \ + registerGraphic22.testcase \ + registerGraphic2.testcase \ + registerGraphic3.testcase \ + registerGraphic4.testcase \ + registerGraphic5.testcase \ + registerGraphic6.testcase \ + registerGraphic7.testcase \ + registerGraphic8.testcase \ + registerGraphic9.testcase \ + registerGroup14.testcase \ + registerGroup15.testcase \ + registerGroup16.testcase \ + registerGroup17.testcase \ + registerGroup18.testcase \ + registerGroup1.testcase \ + registerGroup25.testcase \ + registerGroup26.testcase \ + registerGroup27.testcase \ + registerGroup28.testcase \ + registerGroup29.testcase \ + registerGroup2.testcase \ + registerGroup3.testcase \ + registerGroup4.testcase \ + registerGroup5.testcase \ + registerGroup6.testcase \ + registerGroup7.testcase \ + registerGroup8.testcase \ + registerGroupStyle1.testcase \ + registerGroupStyle2.testcase \ + registerGroupStyle3.testcase \ + registerGroupStyle4.testcase \ + registerGroupStyle5.testcase \ + registerGroupStyle6.testcase \ + registerGroupStyle7.testcase \ + registerGroupStyle8.testcase \ + registerGroupStyle9.testcase \ + registerGroupStyle10.testcase \ + registerGroupStyle11.testcase \ + registerGroupStyle12.testcase \ + registerGroupStyle13.testcase \ + registerGroupStyle14.testcase \ + registerGroupStyle15.testcase \ + registerGroupStyle16.testcase \ + registerGroupStyle17.testcase \ + registerIsoMeta10.testcase \ + registerIsoMeta11.testcase \ + registerIsoMeta12.testcase \ + registerIsoMeta13.testcase \ + registerIsoMeta14.testcase \ + registerIsoMeta1.testcase \ + registerIsoMeta2.testcase \ + registerIsoMeta3.testcase \ + registerIsoMeta4.testcase \ + registerIsoMeta5.testcase \ + registerIsoMeta6.testcase \ + registerIsoMeta7.testcase \ + registerIsoMeta8.testcase \ + registerIsoMeta9.testcase \ + registerRaster10.testcase \ + registerRaster11.testcase \ + registerRaster12.testcase \ + registerRaster13.testcase \ + registerRaster14.testcase \ + registerRaster15.testcase \ + registerRaster16.testcase \ + registerRaster17.testcase \ + registerRaster1.testcase \ + registerRaster2.testcase \ + registerRaster3.testcase \ + registerRaster4.testcase \ + registerRaster5.testcase \ + registerRaster6.testcase \ + registerRaster7.testcase \ + registerRaster8.testcase \ + registerRaster9.testcase \ + registerVector10.testcase \ + registerVector11.testcase \ + registerVector12.testcase \ + registerVector13.testcase \ + registerVector14.testcase \ + registerVector15.testcase \ + registerVector16.testcase \ + registerVector17.testcase \ + registerVector18.testcase \ + registerVector19.testcase \ + registerVector1.testcase \ + registerVector20.testcase \ + registerVector21.testcase \ + registerVector22.testcase \ + registerVector2.testcase \ + registerVector3.testcase \ + registerVector4.testcase \ + registerVector5.testcase \ + registerVector6.testcase \ + registerVector7.testcase \ + registerVector8.testcase \ + registerVector9.testcase \ + setfileid1.testcase \ + setfileid2.testcase \ + setfileid3.testcase \ + setfileid4.testcase \ + setfileid5.testcase \ + setGroupInfos10.testcase \ + setGroupInfos11.testcase \ + setGroupInfos12.testcase \ + setGroupInfos13.testcase \ + setGroupInfos1.testcase \ + setGroupInfos2.testcase \ + setGroupInfos3.testcase \ + setGroupInfos4.testcase \ + setGroupInfos5.testcase \ + setGroupInfos6.testcase \ + setGroupInfos7.testcase \ + setGroupInfos8.testcase \ + setGroupInfos9.testcase \ + setparentid1.testcase \ + setparentid2.testcase \ + setparentid3.testcase \ + setparentid4.testcase \ + setparentid5.testcase \ + xmlblobgetabstract1.testcase \ + xmlblobgetabstract2.testcase \ + xmlblobgetabstract3.testcase \ + xmlblobgetabstract4.testcase \ + xmlblobgetabstract5.testcase \ + xmlblobgetabstract6.testcase \ + xmlblobgetdocumentsize1.testcase \ + xmlblobgetdocumentsize2.testcase \ + xmlblobgetdocumentsize3.testcase \ + xmlblobgetdocumentsize4.testcase \ + xmlblobgetdocumentsize5.testcase \ + xmlblobgetdocumentsize6.testcase \ + xmlblobgetencoding1.testcase \ + xmlblobgetencoding2.testcase \ + xmlblobgetencoding3.testcase \ + xmlblobgetencoding4.testcase \ + xmlblobgetencoding5.testcase \ + xmlblobgetencoding6.testcase \ + xmlblobgetencoding7.testcase \ + xmlblobgetfileid1.testcase \ + xmlblobgetfileid2.testcase \ + xmlblobgetfileid3.testcase \ + xmlblobgetfileid4.testcase \ + xmlblobgetfileid5.testcase \ + xmlblobgetfileid6.testcase \ + xmlblobgetgeometry1.testcase \ + xmlblobgetgeometry2.testcase \ + xmlblobgetgeometry3.testcase \ + xmlblobgetgeometry4.testcase \ + xmlblobgetgeometry5.testcase \ + xmlblobgetgeometry6.testcase \ + xmlblobgetinternalschemauri1.testcase \ + xmlblobgetinternalschemauri2.testcase \ + xmlblobgetinternalschemauri3.testcase \ + xmlblobgetinternalschemauri4.testcase \ + xmlblobgetinternalschemauri5.testcase \ + xmlblobgetparentid1.testcase \ + xmlblobgetparentid2.testcase \ + xmlblobgetparentid3.testcase \ + xmlblobgetparentid4.testcase \ + xmlblobgetparentid5.testcase \ + xmlblobgetparentid6.testcase \ + xmlblobgetschemauri1.testcase \ + xmlblobgetschemauri2.testcase \ + xmlblobgetschemauri3.testcase \ + xmlblobgetschemauri4.testcase \ + xmlblobgetschemauri5.testcase \ + xmlblobgetschemauri6.testcase \ + xmlblobgetname1.testcase \ + xmlblobgetname2.testcase \ + xmlblobgetname3.testcase \ + xmlblobgetname4.testcase \ + xmlblobgetname5.testcase \ + xmlblobgetname6.testcase \ + xmlblobgetname7.testcase \ + xmlblobgetname8.testcase \ + xmlblobgettitle1.testcase \ + xmlblobgettitle2.testcase \ + xmlblobgettitle3.testcase \ + xmlblobgettitle4.testcase \ + xmlblobgettitle5.testcase \ + xmlblobgettitle6.testcase \ + xmlcompress1.testcase \ + xmlcompress2.testcase \ + xmlcompress3.testcase \ + xmlcompress4.testcase \ + xmlcompress5.testcase \ + xmlcompress6.testcase \ + xmlcompress7.testcase \ + xmlcompress8.testcase \ + xmlfromblob10.testcase \ + xmlfromblob11.testcase \ + xmlfromblob12.testcase \ + xmlfromblob13.testcase \ + xmlfromblob1.testcase \ + xmlfromblob2.testcase \ + xmlfromblob3.testcase \ + xmlfromblob4.testcase \ + xmlfromblob5.testcase \ + xmlfromblob6.testcase \ + xmlfromblob7.testcase \ + xmlfromblob8.testcase \ + xmlfromblob9.testcase \ + xmltextfromblob10.testcase \ + xmltextfromblob11.testcase \ + xmltextfromblob12.testcase \ + xmltextfromblob13.testcase \ + xmltextfromblob1.testcase \ + xmltextfromblob2.testcase \ + xmltextfromblob3.testcase \ + xmltextfromblob4.testcase \ + xmltextfromblob5.testcase \ + xmltextfromblob6.testcase \ + xmltextfromblob7.testcase \ + xmltextfromblob8.testcase \ + xmltextfromblob9.testcase \ + xmltoblob10.testcase \ + xmltoblob11.testcase \ + xmltoblob12.testcase \ + xmltoblob13.testcase \ + xmltoblob14.testcase \ + xmltoblob15.testcase \ + xmltoblob16.testcase \ + xmltoblob17.testcase \ + xmltoblob18.testcase \ + xmltoblob1.testcase \ + xmltoblob2.testcase \ + xmltoblob3.testcase \ + xmltoblob4.testcase \ + xmltoblob5.testcase \ + xmltoblob6.testcase \ + xmltoblob7.testcase \ + xmltoblob8.testcase \ + xmltoblob9.testcase \ + xmluncompress1.testcase \ + xmluncompress2.testcase \ + xmluncompress3.testcase \ + xmluncompress4.testcase \ + xmluncompress5.testcase \ + xmluncompress6.testcase \ + xmluncompress7.testcase \ + xmluncompress8.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid1.testcase new file mode 100644 index 0000000..98dc266 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid1.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid2.testcase new file mode 100644 index 0000000..904da06 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid2.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - not ISO Metadata XmlBLOB +:memory: #use in-memory database +SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid3.testcase new file mode 100644 index 0000000..89792da --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid3.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - ISO Metadata - already defined fileIdentfier +:memory: #use in-memory database +SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid4.testcase new file mode 100644 index 0000000..5cfd39a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid4.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - ISO Metadata - INTEGER fileId +:memory: #use in-memory database +SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid5.testcase new file mode 100644 index 0000000..4c79edc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid5.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - valid - no namespaces +:memory: #use in-memory database +SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)) +newfileid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid6.testcase new file mode 100644 index 0000000..8656e20 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid6.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - valid - gmd namespace +:memory: #use in-memory database +SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 +newfileid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addfileid7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid7.testcase new file mode 100644 index 0000000..d40d0d5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addfileid7.testcase @@ -0,0 +1,8 @@ +XB_AddFileId - valid - default namespace +:memory: #use in-memory database +SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 +newfileid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid1.testcase new file mode 100644 index 0000000..a00e5f3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid1.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid2.testcase new file mode 100644 index 0000000..0088545 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid2.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - not ISO Metadata XmlBLOB +:memory: #use in-memory database +SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid3.testcase new file mode 100644 index 0000000..6ab24f9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid3.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - ISO Metadata - already defined parentIdentfier +:memory: #use in-memory database +SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid4.testcase new file mode 100644 index 0000000..00ccfe3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid4.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - ISO Metadata - INTEGER fileId +:memory: #use in-memory database +SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid5.testcase new file mode 100644 index 0000000..d16f35d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid5.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - valid - no namespaces +:memory: #use in-memory database +SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)) +newparentid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid6.testcase new file mode 100644 index 0000000..5e16591 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid6.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - valid - gmd namespace +:memory: #use in-memory database +SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 +newparentid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/addparentid7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid7.testcase new file mode 100644 index 0000000..25cb17c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/addparentid7.testcase @@ -0,0 +1,8 @@ +XB_AddParentId - valid - default namespace +:memory: #use in-memory database +SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 +newparentid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa1.testcase new file mode 100644 index 0000000..93f5622 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa1.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - NULL +:memory: #use in-memory database +SELECT CreateIsoMetadataTables(NULL); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa2.testcase new file mode 100644 index 0000000..7291756 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa2.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - TEXT +:memory: #use in-memory database +SELECT CreateIsoMetadataTables('alpha'); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa3.testcase new file mode 100644 index 0000000..0157d6d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa3.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - DOUBLE +:memory: #use in-memory database +SELECT CreateIsoMetadataTables(1.1); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa4.testcase new file mode 100644 index 0000000..876723d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa4.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - BLOB +:memory: #use in-memory database +SELECT CreateIsoMetadataTables(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables(zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa5.testcase new file mode 100644 index 0000000..023bacd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa5.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - no args +NEW:memory: #use in-memory database +SELECT CreateIsoMetadataTables(); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables() +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createisometa6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa6.testcase new file mode 100644 index 0000000..e9988cd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createisometa6.testcase @@ -0,0 +1,8 @@ +CreateIsoMetadataTables - relaxed +NEW:memory: #use in-memory database +SELECT CreateIsoMetadataTables(1); +1 # rows (not including the header row) +1 # columns +CreateIsoMetadataTables(1) +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling1.testcase new file mode 100644 index 0000000..5154f9b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling1.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - NULL +:memory: #use in-memory database +SELECT CreateStylingTables(NULL); +1 # rows (not including the header row) +1 # columns +CreateStylingTables(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling2.testcase new file mode 100644 index 0000000..2065956 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling2.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - TEXT +:memory: #use in-memory database +SELECT CreateStylingTables('alpha'); +1 # rows (not including the header row) +1 # columns +CreateStylingTables('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling3.testcase new file mode 100644 index 0000000..29dfb0b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling3.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - DOUBLE +:memory: #use in-memory database +SELECT CreateStylingTables(1.1); +1 # rows (not including the header row) +1 # columns +CreateStylingTables(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling4.testcase new file mode 100644 index 0000000..f7c33a9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling4.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - BLOB +:memory: #use in-memory database +SELECT CreateStylingTables(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +CreateStylingTables(zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling5.testcase new file mode 100644 index 0000000..ecfc240 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling5.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - no args +NEW:memory: #use in-memory database +SELECT CreateStylingTables(); +1 # rows (not including the header row) +1 # columns +CreateStylingTables() +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/createstyling6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling6.testcase new file mode 100644 index 0000000..c5067cd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/createstyling6.testcase @@ -0,0 +1,8 @@ +CreateStylingTables - relaxed +NEW:memory: #use in-memory database +SELECT CreateStylingTables(1); +1 # rows (not including the header row) +1 # columns +CreateStylingTables(1) +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId1.testcase new file mode 100644 index 0000000..52cbf90 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId1.testcase @@ -0,0 +1,8 @@ +GetIsoMetadataId - NULL fileIdentifier +:memory: #use in-memory database +SELECT GetIsoMetadataId(NULL); +1 # rows (not including the header row) +1 # columns +GetIsoMetadataId(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId2.testcase new file mode 100644 index 0000000..ff4c8a1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId2.testcase @@ -0,0 +1,8 @@ +GetIsoMetadataId - INTEGER fileIdentifier +:memory: #use in-memory database +SELECT GetIsoMetadataId(1); +1 # rows (not including the header row) +1 # columns +GetIsoMetadataId(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId3.testcase new file mode 100644 index 0000000..b6905dc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId3.testcase @@ -0,0 +1,8 @@ +GetIsoMetadataId - DOUBLE fileIdentifier +:memory: #use in-memory database +SELECT GetIsoMetadataId(1.1); +1 # rows (not including the header row) +1 # columns +GetIsoMetadataId(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId4.testcase new file mode 100644 index 0000000..6644abd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId4.testcase @@ -0,0 +1,8 @@ +GetIsoMetadataId - BLOB fileIdentifier +:memory: #use in-memory database +SELECT GetIsoMetadataId(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +GetIsoMetadataId(zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId5.testcase new file mode 100644 index 0000000..ab5e8c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/getIsoMetaId5.testcase @@ -0,0 +1,8 @@ +GetIsoMetadataId - TEXT fileIdentifier +:memory: #use in-memory database +SELECT GetIsoMetadataId('alpha'); +1 # rows (not including the header row) +1 # columns +GetIsoMetadataId('alpha') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob1.testcase new file mode 100644 index 0000000..393ece1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob1.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsCompressed(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob2.testcase new file mode 100644 index 0000000..9375025 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob2.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsCompressed(1); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob3.testcase new file mode 100644 index 0000000..bfa0ff6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob3.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsCompressed(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob4.testcase new file mode 100644 index 0000000..dd9a966 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob4.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsCompressed('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob5.testcase new file mode 100644 index 0000000..6e2e507 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob5.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsCompressed(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob6.testcase new file mode 100644 index 0000000..aa919a5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob6.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - valid XmlBLOB (compressed) +:memory: #use in-memory database +SELECT XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob7.testcase new file mode 100644 index 0000000..2a4734e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/iscompressedxmlblob7.testcase @@ -0,0 +1,8 @@ +XB_IsCompressed - valid XmlBLOB (uncompressed) +:memory: #use in-memory database +SELECT XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata1.testcase new file mode 100644 index 0000000..639b66e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata1.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata2.testcase new file mode 100644 index 0000000..ce98e57 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata2.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(1); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata3.testcase new file mode 100644 index 0000000..7eb14df --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata3.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata4.testcase new file mode 100644 index 0000000..2cb2f4e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata4.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsIsoMetadata('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata5.testcase new file mode 100644 index 0000000..f7d6466 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata5.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata6.testcase new file mode 100644 index 0000000..188a395 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata6.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - valid XmlBLOB (TRUE) +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD'); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata7.testcase new file mode 100644 index 0000000..1da938d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isisometadata7.testcase @@ -0,0 +1,8 @@ +XB_IsIsoMetadata - valid XmlBLOB (FALSE) +:memory: #use in-memory database +SELECT XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob1.testcase new file mode 100644 index 0000000..1ca1029 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob1.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob2.testcase new file mode 100644 index 0000000..1a89cb0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob2.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated(1); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob3.testcase new file mode 100644 index 0000000..95cd3d0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob3.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob4.testcase new file mode 100644 index 0000000..afb84f2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob4.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob5.testcase new file mode 100644 index 0000000..1801f26 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob5.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob6.testcase new file mode 100644 index 0000000..fd56d98 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob6.testcase @@ -0,0 +1,8 @@ +XB_IsSchemaValidated - not SchemaValidated XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle1.testcase new file mode 100644 index 0000000..c1ac3ef --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle1.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle2.testcase new file mode 100644 index 0000000..294fcf5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle2.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(1); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle3.testcase new file mode 100644 index 0000000..903bdcf --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle3.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle4.testcase new file mode 100644 index 0000000..c5a1f79 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle4.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle5.testcase new file mode 100644 index 0000000..a89bc5d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle5.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle6.testcase new file mode 100644 index 0000000..acf02eb --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle6.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - valid XmlBLOB (TRUE) +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle7.testcase new file mode 100644 index 0000000..560f78d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldserststyle7.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeRasterStyle - valid XmlBLOB (FALSE) +:memory: #use in-memory database +SELECT XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle1.testcase new file mode 100644 index 0000000..6b1b73c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle1.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle2.testcase new file mode 100644 index 0000000..ad4b1a9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle2.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(1); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle3.testcase new file mode 100644 index 0000000..d37fefd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle3.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle4.testcase new file mode 100644 index 0000000..ff40cd4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle4.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle5.testcase new file mode 100644 index 0000000..9d3ace5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle5.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle6.testcase new file mode 100644 index 0000000..546d899 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle6.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - valid XmlBLOB (TRUE) +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle7.testcase new file mode 100644 index 0000000..ea50ec6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issldsestyle7.testcase @@ -0,0 +1,8 @@ +XB_IsSldSeVectorStyle - valid XmlBLOB (FALSE) +:memory: #use in-memory database +SELECT XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg1.testcase new file mode 100644 index 0000000..b77a334 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg1.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSvg(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg2.testcase new file mode 100644 index 0000000..487a269 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg2.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSvg(1); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg3.testcase new file mode 100644 index 0000000..f01bf77 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg3.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSvg(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg4.testcase new file mode 100644 index 0000000..7802fe4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg4.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSvg('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsSvg('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg5.testcase new file mode 100644 index 0000000..ae2b536 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg5.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsSvg(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(zeroblob(100)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg6.testcase new file mode 100644 index 0000000..2602105 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg6.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - valid XmlBLOB (TRUE) +:memory: #use in-memory database +SELECT XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD'); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/issvg7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/issvg7.testcase new file mode 100644 index 0000000..710493a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/issvg7.testcase @@ -0,0 +1,8 @@ +XB_IsSvg - valid XmlBLOB (FALSE) +:memory: #use in-memory database +SELECT XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob1.testcase new file mode 100644 index 0000000..bdbe69f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob1.testcase @@ -0,0 +1,8 @@ +XB_IsValid - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid(NULL); +1 # rows (not including the header row) +1 # columns +XB_IsValid(NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob2.testcase new file mode 100644 index 0000000..1756ec9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob2.testcase @@ -0,0 +1,8 @@ +XB_IsValid - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid(1); +1 # rows (not including the header row) +1 # columns +XB_IsValid(1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob3.testcase new file mode 100644 index 0000000..6a4a052 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob3.testcase @@ -0,0 +1,8 @@ +XB_IsValid - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid(1.1); +1 # rows (not including the header row) +1 # columns +XB_IsValid(1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob4.testcase new file mode 100644 index 0000000..4d3640b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob4.testcase @@ -0,0 +1,8 @@ +XB_IsValid - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid('alpha'); +1 # rows (not including the header row) +1 # columns +XB_IsValid('alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob5.testcase new file mode 100644 index 0000000..392f782 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob5.testcase @@ -0,0 +1,8 @@ +XB_IsValid - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_IsValid(zeroblob(100)) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob6.testcase new file mode 100644 index 0000000..7606fb1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/isvalidxmlblob6.testcase @@ -0,0 +1,8 @@ +XB_IsValid - valid XmlBLOB +:memory: #use in-memory database +SELECT XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic1.testcase new file mode 100644 index 0000000..cb09677 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic1.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - NULL URL +:memory: #use in-memory database +SELECT RegisterExternalGraphic(NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic(NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic10.testcase new file mode 100644 index 0000000..e0e4299 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic10.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - NULL title +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic11.testcase new file mode 100644 index 0000000..8eb3410 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic11.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - INTEGER title +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic12.testcase new file mode 100644 index 0000000..c4338c6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic12.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - DOUBLE title +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic13.testcase new file mode 100644 index 0000000..f2bd186 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic13.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - BLOB title +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic14.testcase new file mode 100644 index 0000000..1fbb3ae --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic14.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - NULL abstract +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic15.testcase new file mode 100644 index 0000000..d1ccf5c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic15.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - INTEGER abstract +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic16.testcase new file mode 100644 index 0000000..f3a1ff0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic16.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - DOUBLE abstract +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic17.testcase new file mode 100644 index 0000000..e019fd1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic17.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - BLOB abstract +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic18.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic18.testcase new file mode 100644 index 0000000..3f7d3d2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic18.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - NULL filename +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic19.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic19.testcase new file mode 100644 index 0000000..8daa305 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic19.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - INTEGER filename +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic2.testcase new file mode 100644 index 0000000..beea693 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic2.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - INTEGER URL +:memory: #use in-memory database +SELECT RegisterExternalGraphic(1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic(1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic20.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic20.testcase new file mode 100644 index 0000000..5282462 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic20.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - DOUBLE filename +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic21.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic21.testcase new file mode 100644 index 0000000..256bf15 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic21.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - BLOB filename +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic22.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic22.testcase new file mode 100644 index 0000000..62b0f51 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic22.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - TEXT filename +NEW:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic3.testcase new file mode 100644 index 0000000..6196dc1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic3.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - DOUBLE URL +:memory: #use in-memory database +SELECT RegisterExternalGraphic(1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic(1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic4.testcase new file mode 100644 index 0000000..613e8c2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic4.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - BLOB URL +:memory: #use in-memory database +SELECT RegisterExternalGraphic(zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic(zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic5.testcase new file mode 100644 index 0000000..eb7d544 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic5.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - NULL resource +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', NULL); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic6.testcase new file mode 100644 index 0000000..9a16137 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic6.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - INTEGER resource +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', 1); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', 1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic7.testcase new file mode 100644 index 0000000..8c75fe5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic7.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - DOUBLE resource +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', 1.1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic8.testcase new file mode 100644 index 0000000..54fee42 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic8.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - TEXT resource +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', 'alpha'); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', 'alpha'); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic9.testcase new file mode 100644 index 0000000..b2eb144 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGraphic9.testcase @@ -0,0 +1,8 @@ +RegisterExternalGraphic - BLOB resource +:memory: #use in-memory database +SELECT RegisterExternalGraphic('resource.png', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterExternalGraphic('resource.png', zeroblob(4)); +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup1.testcase new file mode 100644 index 0000000..a79e282 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup1.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - NULL group_name +:memory: #use in-memory database +SELECT RegisterStyledGroup(NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup(NULL, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup14.testcase new file mode 100644 index 0000000..d72a998 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup14.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - NULL paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup15.testcase new file mode 100644 index 0000000..1cbf0b8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup15.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - DOUBLE paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup16.testcase new file mode 100644 index 0000000..b564427 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup16.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - TEXT paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma'); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup17.testcase new file mode 100644 index 0000000..62d6b4c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup17.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - BLOB paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup18.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup18.testcase new file mode 100644 index 0000000..f7cc963 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup18.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - INTEGER paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 1); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 1) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup2.testcase new file mode 100644 index 0000000..fe0eec9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup2.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - INTEGER group_name +:memory: #use in-memory database +SELECT RegisterStyledGroup(1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup(1, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup25.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup25.testcase new file mode 100644 index 0000000..1090cfe --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup25.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - vector NULL paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup26.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup26.testcase new file mode 100644 index 0000000..96655a2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup26.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - vector DOUBLE paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup27.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup27.testcase new file mode 100644 index 0000000..fab3afe --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup27.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - vector TEXT paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 'gamma'); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma', 'gamma') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup28.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup28.testcase new file mode 100644 index 0000000..e4e5672 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup28.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - vector BLOB paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup29.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup29.testcase new file mode 100644 index 0000000..12c60c7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup29.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - vector INTEGER paint_order +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 'beta', 'gamma', 1) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup3.testcase new file mode 100644 index 0000000..ee18545 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup3.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - DOUBLE group_name +:memory: #use in-memory database +SELECT RegisterStyledGroup(1.1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup(1.1, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup4.testcase new file mode 100644 index 0000000..5d5bf08 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup4.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - BLOB group_name +:memory: #use in-memory database +SELECT RegisterStyledGroup(zeroblob(4), NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup(zeroblob(4), NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup5.testcase new file mode 100644 index 0000000..9598df8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup5.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - NULL coverage_name +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup6.testcase new file mode 100644 index 0000000..029d51f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup6.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - INTEGER coverage_name +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup7.testcase new file mode 100644 index 0000000..1f73700 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup7.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - DOUBLE coverage_name +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', 1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', 1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup8.testcase new file mode 100644 index 0000000..29618e1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroup8.testcase @@ -0,0 +1,8 @@ +RegisterStyledGroup - BLOB coverage_name +:memory: #use in-memory database +SELECT RegisterStyledGroup('alpha', zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterStyledGroup('alpha', zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase new file mode 100644 index 0000000..ecc9836 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - NULL group +:memory: #use in-memory database +SELECT RegisterGroupStyle(NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle(NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase new file mode 100644 index 0000000..aac9824 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - DOUBLE style_id +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1.1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1.1, zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase new file mode 100644 index 0000000..14f66ae --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - TEXT style_id +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 'beta', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 'beta', zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase new file mode 100644 index 0000000..74dd16e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - BLOB style_id +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', zeroblob(4), zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase new file mode 100644 index 0000000..8dc0358 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - INTEGER style_id +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1, zeroblob(4)); +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase new file mode 100644 index 0000000..8bb8616 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - NULL style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase new file mode 100644 index 0000000..eda583e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - INTEGER style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1, 1); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1, 1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase new file mode 100644 index 0000000..f995d3a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - DOUBLE style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1, 1.1); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1, 1.1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase new file mode 100644 index 0000000..0b8ee4c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - TEXT style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1, 'beta'); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1, 'beta'); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase new file mode 100644 index 0000000..49d4f0d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - INTEGER group +:memory: #use in-memory database +SELECT RegisterGroupStyle(1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle(1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase new file mode 100644 index 0000000..a1a4f2e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - DOUBLE group +:memory: #use in-memory database +SELECT RegisterGroupStyle(1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle(1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase new file mode 100644 index 0000000..8b8d8e3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - BLOB group +:memory: #use in-memory database +SELECT RegisterGroupStyle(zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle(zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase new file mode 100644 index 0000000..6824435 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - NULL style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', NULL); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase new file mode 100644 index 0000000..a1cb8e2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - INTEGER style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase new file mode 100644 index 0000000..d89d2d3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - DOUBLE style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase new file mode 100644 index 0000000..8c9b034 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - TEXT style +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', 'beta'); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', 'beta') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase new file mode 100644 index 0000000..659021f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase @@ -0,0 +1,8 @@ +RegisterGroupStyle - NULL style_id +:memory: #use in-memory database +SELECT RegisterGroupStyle('alpha', NULL, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterGroupStyle('alpha', NULL, zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta1.testcase new file mode 100644 index 0000000..51ca8bd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta1.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - NULL scope +:memory: #use in-memory database +SELECT RegisterIsoMetadata(NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata(NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta10.testcase new file mode 100644 index 0000000..d481c0c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta10.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - NULL id +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta11.testcase new file mode 100644 index 0000000..c873264 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta11.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - DOUBLE id +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4), 1.1); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4), 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta12.testcase new file mode 100644 index 0000000..4d07488 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta12.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - BLOB id +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta13.testcase new file mode 100644 index 0000000..d22424b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta13.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - INTEGER id +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4), 1); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4), 1) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta14.testcase new file mode 100644 index 0000000..e56885a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta14.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - TEXT fileIdentifier +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4), 'alpha'); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4), 'alpha') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta2.testcase new file mode 100644 index 0000000..bf39c51 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta2.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - INTEGER scope +:memory: #use in-memory database +SELECT RegisterIsoMetadata(1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata(1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta3.testcase new file mode 100644 index 0000000..de14906 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta3.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - DOUBLE scope +:memory: #use in-memory database +SELECT RegisterIsoMetadata(1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata(1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta4.testcase new file mode 100644 index 0000000..0d3014a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta4.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - BLOB scope +:memory: #use in-memory database +SELECT RegisterIsoMetadata(zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata(zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta5.testcase new file mode 100644 index 0000000..376c85e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta5.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - NULL metadata +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', NULL); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta6.testcase new file mode 100644 index 0000000..c8fd89c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta6.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - INTEGER metadata +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', 1); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta7.testcase new file mode 100644 index 0000000..31fadf6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta7.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - DOUBLE metadata +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta8.testcase new file mode 100644 index 0000000..22a0175 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta8.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - TEXT metadata +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', 'alpha'); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', 'alpha') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta9.testcase new file mode 100644 index 0000000..7be2ca3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerIsoMeta9.testcase @@ -0,0 +1,8 @@ +RegisterIsoMetadata - BLOB metadata +:memory: #use in-memory database +SELECT RegisterIsoMetadata('series', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterIsoMetadata('series', zeroblob(4)) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster1.testcase new file mode 100644 index 0000000..aae6d29 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster1.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - NULL coverage +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer(NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer(NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster10.testcase new file mode 100644 index 0000000..1eef9c7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster10.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - DOUBLE style_id +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1.1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1.1, zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster11.testcase new file mode 100644 index 0000000..dbf8a07 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster11.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - TEXT style_id +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 'beta', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 'beta', zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster12.testcase new file mode 100644 index 0000000..d3dc171 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster12.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - BLOB style_id +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', zeroblob(4), zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster13.testcase new file mode 100644 index 0000000..6202f7d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster13.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - INTEGER style_id +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1, zeroblob(4)); +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster14.testcase new file mode 100644 index 0000000..b1fded5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster14.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - NULL style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1, NULL); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster15.testcase new file mode 100644 index 0000000..9e33ed1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster15.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - INTEGER style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1, 1); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1, 1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster16.testcase new file mode 100644 index 0000000..f063bc9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster16.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - DOUBLE style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1, 1.1); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1, 1.1); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster17.testcase new file mode 100644 index 0000000..c4ed6f8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster17.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - TEXT style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1, 'beta'); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1, 'beta'); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster2.testcase new file mode 100644 index 0000000..c18874a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster2.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - INTEGER coverage +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer(1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer(1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster3.testcase new file mode 100644 index 0000000..56debc4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster3.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - DOUBLE coverage +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer(1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer(1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster4.testcase new file mode 100644 index 0000000..a019219 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster4.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - BLOB coverage +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer(zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer(zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster5.testcase new file mode 100644 index 0000000..64139f9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster5.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - NULL style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', NULL); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster6.testcase new file mode 100644 index 0000000..9874761 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster6.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - INTEGER style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster7.testcase new file mode 100644 index 0000000..b713af7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster7.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - DOUBLE style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster8.testcase new file mode 100644 index 0000000..27b2673 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster8.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - TEXT style +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', 'beta'); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', 'beta') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster9.testcase new file mode 100644 index 0000000..c3fb1c8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerRaster9.testcase @@ -0,0 +1,8 @@ +RegisterRasterStyledLayer - NULL style_id +:memory: #use in-memory database +SELECT RegisterRasterStyledLayer('alpha', NULL, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterRasterStyledLayer('alpha', NULL, zeroblob(4)); +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector1.testcase new file mode 100644 index 0000000..6d42c1f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector1.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - NULL f_table_name +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer(NULL, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer(NULL, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector10.testcase new file mode 100644 index 0000000..9f791bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector10.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - INTEGER style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector11.testcase new file mode 100644 index 0000000..ecc733a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector11.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - DOUBLE style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1.1); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector12.testcase new file mode 100644 index 0000000..808e350 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector12.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - TEXT style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 'gamma'); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 'gamma') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector13.testcase new file mode 100644 index 0000000..7600f7c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector13.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - BLOB style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4)) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector14.testcase new file mode 100644 index 0000000..51b9191 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector14.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - NULL style_id +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', NULL, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', NULL, zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector15.testcase new file mode 100644 index 0000000..bef65bd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector15.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - DOUBLE style_id +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1.1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1.1, zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector16.testcase new file mode 100644 index 0000000..5875987 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector16.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - TEXT style_id +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 'gamma', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 'gamma', zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector17.testcase new file mode 100644 index 0000000..c4d3cc6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector17.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - BLOB style_id +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4), zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector18.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector18.testcase new file mode 100644 index 0000000..03d0922 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector18.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - INTEGER style_id +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1, zeroblob(4)) +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector19.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector19.testcase new file mode 100644 index 0000000..41c36b3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector19.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - NULL style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector2.testcase new file mode 100644 index 0000000..36d302f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector2.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - INTEGER f_table_name +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer(1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer(1, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector20.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector20.testcase new file mode 100644 index 0000000..e1bfa03 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector20.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - INTEGER style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 1); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1, 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector21.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector21.testcase new file mode 100644 index 0000000..123c4c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector21.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - DOUBLE style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 1.1); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1, 1.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector22.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector22.testcase new file mode 100644 index 0000000..d594a80 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector22.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - TEXT style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 'gamma'); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', 1, 'gamma') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector3.testcase new file mode 100644 index 0000000..b2e5eea --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector3.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - DOUBLE f_table_name +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer(1.1, NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer(1.1, NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector4.testcase new file mode 100644 index 0000000..374f21a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector4.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - BLOB f_table_name +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer(zeroblob(4), NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer(zeroblob(4), NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector5.testcase new file mode 100644 index 0000000..d3bda4e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector5.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - NULL f_geometry_column +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', NULL, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', NULL, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector6.testcase new file mode 100644 index 0000000..72dd2bf --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector6.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - INTEGER f_geometry_column +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector7.testcase new file mode 100644 index 0000000..f297485 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector7.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - DOUBLE f_geometry_column +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 1.1, NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 1.1, NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector8.testcase new file mode 100644 index 0000000..e311962 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector8.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - BLOB f_geometry_column +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/registerVector9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector9.testcase new file mode 100644 index 0000000..d0c374b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/registerVector9.testcase @@ -0,0 +1,8 @@ +RegisterVectorStyledLayer - NULL style +:memory: #use in-memory database +SELECT RegisterVectorStyledLayer('alpha', 'beta', NULL); +1 # rows (not including the header row) +1 # columns +RegisterVectorStyledLayer('alpha', 'beta', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos1.testcase new file mode 100644 index 0000000..7cd1b86 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos1.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - NULL group_name +:memory: #use in-memory database +SELECT SetStyledGroupInfos(NULL, 'title', 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos(NULL, 'title', 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos10.testcase new file mode 100644 index 0000000..9cd1349 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos10.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - INTEGER abstract +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 'title', 1); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 'title', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos11.testcase new file mode 100644 index 0000000..e3a67b0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos11.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - DOUBLE abstract +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 'title', 0.1); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 'title', 0.1) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos12.testcase new file mode 100644 index 0000000..199bcfe --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos12.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - BLOB abstract +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 'title', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 'title', zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos13.testcase new file mode 100644 index 0000000..d8b230e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos13.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - valid +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 'title', 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 'title', 'abstract') +0 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos2.testcase new file mode 100644 index 0000000..c19b792 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos2.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - INTEGER group_name +:memory: #use in-memory database +SELECT SetStyledGroupInfos(1, 'title', 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos(1, 'title', 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos3.testcase new file mode 100644 index 0000000..4da81e8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos3.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - DOUBLE group_name +:memory: #use in-memory database +SELECT SetStyledGroupInfos(1.5, 'title', 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos(1.5, 'title', 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos4.testcase new file mode 100644 index 0000000..202b76c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos4.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - BLOB group_name +:memory: #use in-memory database +SELECT SetStyledGroupInfos(zeroblob(4), 'title', 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos(zeroblob(4), 'title', 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos5.testcase new file mode 100644 index 0000000..896c863 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos5.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - NULL title +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', NULL, 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', NULL, 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos6.testcase new file mode 100644 index 0000000..46cfe88 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos6.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - INTEGER title +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 1, 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 1, 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos7.testcase new file mode 100644 index 0000000..e5921c3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos7.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - DOUBLE title +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 1.4, 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 1.4, 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos8.testcase new file mode 100644 index 0000000..ec82e83 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos8.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - BLOB title +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', zeroblob(4), 'abstract'); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', zeroblob(4), 'abstract') +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos9.testcase new file mode 100644 index 0000000..bd6bf5b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setGroupInfos9.testcase @@ -0,0 +1,8 @@ +SetStyledGroupInfos - NULL abstract +:memory: #use in-memory database +SELECT SetStyledGroupInfos('group', 'title', NULL); +1 # rows (not including the header row) +1 # columns +SetStyledGroupInfos('group', 'title', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setfileid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid1.testcase new file mode 100644 index 0000000..b9299d0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid1.testcase @@ -0,0 +1,8 @@ +XB_SetFileId - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_SetFileId(NULL, 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetFileId(NULL, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setfileid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid2.testcase new file mode 100644 index 0000000..5d5501f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid2.testcase @@ -0,0 +1,8 @@ +XB_SetFileId - not ISO Metadata XmlBLOB +:memory: #use in-memory database +SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setfileid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid3.testcase new file mode 100644 index 0000000..fa4b91c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid3.testcase @@ -0,0 +1,8 @@ +XB_SetFileId - ISO Metadata - no fileIdentfier +:memory: #use in-memory database +SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setfileid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid4.testcase new file mode 100644 index 0000000..a3531fa --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid4.testcase @@ -0,0 +1,8 @@ +XB_SetFileId - ISO Metadata - INTEGER fileId +:memory: #use in-memory database +SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 1234); +1 # rows (not including the header row) +1 # columns +XB_SetFileId(XB_Create(CastToBlob('a')), 1234) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setfileid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid5.testcase new file mode 100644 index 0000000..8fe3392 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setfileid5.testcase @@ -0,0 +1,8 @@ +XB_SetFileId - valid +:memory: #use in-memory database +SELECT XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')) +newfileid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setparentid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid1.testcase new file mode 100644 index 0000000..a8c8415 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid1.testcase @@ -0,0 +1,8 @@ +XB_SetParentId - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_SetParentId(NULL, 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetParentId(NULL, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setparentid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid2.testcase new file mode 100644 index 0000000..1df82b4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid2.testcase @@ -0,0 +1,8 @@ +XB_SetParentId - not ISO Metadata XmlBLOB +:memory: #use in-memory database +SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setparentid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid3.testcase new file mode 100644 index 0000000..938fb3a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid3.testcase @@ -0,0 +1,8 @@ +XB_SetParentId - ISO Metadata - no parentIdentfier +:memory: #use in-memory database +SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setparentid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid4.testcase new file mode 100644 index 0000000..f5f03db --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid4.testcase @@ -0,0 +1,8 @@ +XB_SetParentId - ISO Metadata - INTEGER parentId +:memory: #use in-memory database +SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 1234); +1 # rows (not including the header row) +1 # columns +XB_SetParentId(XB_Create(CastToBlob('a')), 1234) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/setparentid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid5.testcase new file mode 100644 index 0000000..9cb3d31 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/setparentid5.testcase @@ -0,0 +1,8 @@ +XB_SetParentId - valid +:memory: #use in-memory database +SELECT XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')) +newparentid + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract1.testcase new file mode 100644 index 0000000..fcf4ace --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract1.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetAbstract(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract2.testcase new file mode 100644 index 0000000..4665b2a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract2.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetAbstract(1); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract3.testcase new file mode 100644 index 0000000..c394d6a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract3.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetAbstract(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract4.testcase new file mode 100644 index 0000000..6b9a4c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract4.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetAbstract(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract5.testcase new file mode 100644 index 0000000..a8cc41c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract5.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetAbstract(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract6.testcase new file mode 100644 index 0000000..7a818be --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetabstract6.testcase @@ -0,0 +1,8 @@ +XB_GetAbstract - valid XmlBLOB, no Abstract +:memory: #use in-memory database +SELECT XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize1.testcase new file mode 100644 index 0000000..eac4623 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize1.testcase @@ -0,0 +1,8 @@ +XB_GetDocumentSize - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize2.testcase new file mode 100644 index 0000000..0a63bad --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize2.testcase @@ -0,0 +1,8 @@ +XB_GetDocumentSize - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize(1); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize3.testcase new file mode 100644 index 0000000..444718a --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize3.testcase @@ -0,0 +1,8 @@ +XB_GetDocumentSize - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize4.testcase new file mode 100644 index 0000000..8a49a02 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize4.testcase @@ -0,0 +1,8 @@ +XB_GetDocumentSize - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize5.testcase new file mode 100644 index 0000000..009e1b6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize5.testcase @@ -0,0 +1,8 @@ +XB_GetDocumentSize - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize6.testcase new file mode 100644 index 0000000..7a260a4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize6.testcase @@ -0,0 +1,7 @@ +XB_GetDocumentSize - valid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +18 diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding1.testcase new file mode 100644 index 0000000..ef34f52 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding1.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_GetEncoding(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding2.testcase new file mode 100644 index 0000000..20667f1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding2.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_GetEncoding(1); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding3.testcase new file mode 100644 index 0000000..389f5f5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding3.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_GetEncoding(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding4.testcase new file mode 100644 index 0000000..021511b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding4.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetEncoding('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding5.testcase new file mode 100644 index 0000000..09d8272 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding5.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetEncoding(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding6.testcase new file mode 100644 index 0000000..656a485 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding6.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - valid XmlBLOB, no encoding +:memory: #use in-memory database +SELECT XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding7.testcase new file mode 100644 index 0000000..d126748 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetencoding7.testcase @@ -0,0 +1,8 @@ +XB_GetEncoding - valid XmlBLOB, UTF-8 encoding +:memory: #use in-memory database +SELECT XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD'); +1 # rows (not including the header row) +1 # columns +XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD') +UTF-8 + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid1.testcase new file mode 100644 index 0000000..b571636 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid1.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetFileId(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid2.testcase new file mode 100644 index 0000000..d215420 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid2.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetFileId(1); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid3.testcase new file mode 100644 index 0000000..f969d75 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid3.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetFileId(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid4.testcase new file mode 100644 index 0000000..f2ee095 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid4.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetFileId(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid5.testcase new file mode 100644 index 0000000..eb4701c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid5.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetFileId(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid6.testcase new file mode 100644 index 0000000..b82d600 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetfileid6.testcase @@ -0,0 +1,8 @@ +XB_GetFileId - valid XmlBLOB, no FileIdentifier +:memory: #use in-memory database +SELECT XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry1.testcase new file mode 100644 index 0000000..bd4e69f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry1.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetGeometry(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry2.testcase new file mode 100644 index 0000000..d178fd8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry2.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetGeometry(1); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry3.testcase new file mode 100644 index 0000000..86c0b86 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry3.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetGeometry(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry4.testcase new file mode 100644 index 0000000..e956c9f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry4.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetGeometry(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry5.testcase new file mode 100644 index 0000000..43ab5bc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry5.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetGeometry(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry6.testcase new file mode 100644 index 0000000..37e2ac0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetgeometry6.testcase @@ -0,0 +1,8 @@ +XB_GetGeometry - valid XmlBLOB, no Abstract +:memory: #use in-memory database +SELECT XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri1.testcase new file mode 100644 index 0000000..b85b184 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri1.testcase @@ -0,0 +1,8 @@ +XB_GetInternalSchemaURI - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_GetInternalSchemaURI(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetInternalSchemaURI(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri2.testcase new file mode 100644 index 0000000..8f61f13 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri2.testcase @@ -0,0 +1,8 @@ +XB_GetInternalSchemaURI - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_GetInternalSchemaURI(1); +1 # rows (not including the header row) +1 # columns +XB_GetInternalSchemaURI(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri3.testcase new file mode 100644 index 0000000..7a38323 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri3.testcase @@ -0,0 +1,8 @@ +XB_GetInternalSchemaURI - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_GetInternalSchemaURI(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetInternalSchemaURI(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri4.testcase new file mode 100644 index 0000000..f7717c7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri4.testcase @@ -0,0 +1,8 @@ +XB_GetInternalSchemaURI - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetInternalSchemaURI('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetInternalSchemaURI('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri5.testcase new file mode 100644 index 0000000..f7717c7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri5.testcase @@ -0,0 +1,8 @@ +XB_GetInternalSchemaURI - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetInternalSchemaURI('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetInternalSchemaURI('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase new file mode 100644 index 0000000..f063908 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase @@ -0,0 +1,8 @@ +XB_GetName - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetName(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetName(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase new file mode 100644 index 0000000..77c5f23 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase @@ -0,0 +1,8 @@ +XB_Getname - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetName(1); +1 # rows (not including the header row) +1 # columns +XB_GetName(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase new file mode 100644 index 0000000..8320f3b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase @@ -0,0 +1,8 @@ +XB_GetName - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetName(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetName(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase new file mode 100644 index 0000000..b42c96d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase @@ -0,0 +1,8 @@ +XB_GetName - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetName(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetName(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase new file mode 100644 index 0000000..f2d6152 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase @@ -0,0 +1,8 @@ +XB_GetName - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetName(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetName(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase new file mode 100644 index 0000000..9286703 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase @@ -0,0 +1,8 @@ +XB_GetName - valid XmlBLOB, legacy blob +:memory: #use in-memory database +SELECT XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase new file mode 100644 index 0000000..5dd093b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase @@ -0,0 +1,8 @@ +XB_GetName - valid XmlBLOB, current blob (valid) +:memory: #use in-memory database +SELECT XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD'); +1 # rows (not including the header row) +1 # columns +XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD') +alpha + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase new file mode 100644 index 0000000..7b0a9c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase @@ -0,0 +1,8 @@ +XB_GetName - valid XmlBLOB, current blob (undefined) +:memory: #use in-memory database +SELECT XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD'); +1 # rows (not including the header row) +1 # columns +XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid1.testcase new file mode 100644 index 0000000..c49ff8f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid1.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetParentId(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid2.testcase new file mode 100644 index 0000000..a086033 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid2.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetParentId(1); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid3.testcase new file mode 100644 index 0000000..aba4317 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid3.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetParentId(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid4.testcase new file mode 100644 index 0000000..3c3d585 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid4.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetParentId(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid5.testcase new file mode 100644 index 0000000..05a1286 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid5.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetParentId(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid6.testcase new file mode 100644 index 0000000..68766b6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetparentid6.testcase @@ -0,0 +1,8 @@ +XB_GetParentId - valid XmlBLOB, no ParentIdentifier +:memory: #use in-memory database +SELECT XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri1.testcase new file mode 100644 index 0000000..c88c666 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri1.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetSchemaURI(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri2.testcase new file mode 100644 index 0000000..97077ca --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri2.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetSchemaURI(1); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri3.testcase new file mode 100644 index 0000000..9062403 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri3.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetSchemaURI(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri4.testcase new file mode 100644 index 0000000..2aef902 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri4.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetSchemaURI(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri5.testcase new file mode 100644 index 0000000..e23bf17 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri5.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetSchemaURI(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri6.testcase new file mode 100644 index 0000000..2145d67 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgetschemauri6.testcase @@ -0,0 +1,8 @@ +XB_GetSchemaURI - valid XmlBLOB, not validated +:memory: #use in-memory database +SELECT XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle1.testcase new file mode 100644 index 0000000..d5bcb5e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle1.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - NULL XmlDocument +:memory: #use in-memory database +SELECT XB_GetTitle(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle2.testcase new file mode 100644 index 0000000..4967847 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle2.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - INTEGER XmlDocument +:memory: #use in-memory database +SELECT XB_GetTitle(1); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle3.testcase new file mode 100644 index 0000000..69d70e0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle3.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - DOUBLE XmlDocument +:memory: #use in-memory database +SELECT XB_GetTitle(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle4.testcase new file mode 100644 index 0000000..789efde --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle4.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - BLOB XmlDocument +:memory: #use in-memory database +SELECT XB_GetTitle(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle5.testcase new file mode 100644 index 0000000..8a01790 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle5.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_GetTitle(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle6.testcase new file mode 100644 index 0000000..7cd386e --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlblobgettitle6.testcase @@ -0,0 +1,8 @@ +XB_GetTitle - valid XmlBLOB, no Title +:memory: #use in-memory database +SELECT XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); +1 # rows (not including the header row) +1 # columns +XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress1.testcase new file mode 100644 index 0000000..52c20f1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress1.testcase @@ -0,0 +1,7 @@ +XB_Compress - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_Compress(NULL); +1 # rows (not including the header row) +1 # columns +XB_Compress(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress2.testcase new file mode 100644 index 0000000..a1599aa --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress2.testcase @@ -0,0 +1,7 @@ +XB_Compress - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_Compress('alpha'); +1 # rows (not including the header row) +1 # columns +XB_Compress('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress3.testcase new file mode 100644 index 0000000..1f53bfc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress3.testcase @@ -0,0 +1,7 @@ +XB_Compress - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_Compress(1); +1 # rows (not including the header row) +1 # columns +XB_Compress(1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress4.testcase new file mode 100644 index 0000000..dd720c2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress4.testcase @@ -0,0 +1,7 @@ +XB_Compress - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_Compress(1.1); +1 # rows (not including the header row) +1 # columns +XB_Compress(1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress5.testcase new file mode 100644 index 0000000..e42e094 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress5.testcase @@ -0,0 +1,7 @@ +XB_Compress - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_Compress(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_Compress(zeroblob(100)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress6.testcase new file mode 100644 index 0000000..6d864ef --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress6.testcase @@ -0,0 +1,8 @@ +XB_Compress - valid XmlBLOB (already compressed) +:memory: #use in-memory database +SELECT Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) +0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress7.testcase new file mode 100644 index 0000000..2a2dda6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress7.testcase @@ -0,0 +1,7 @@ +XB_Compress - valid XmlBLOB (uncompressed) +:memory: #use in-memory database +SELECT Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) +0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress8.testcase new file mode 100644 index 0000000..820890b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlcompress8.testcase @@ -0,0 +1,8 @@ +XB_Compress - valid XmlBLOB (already compressed - legacy blob) +:memory: #use in-memory database +SELECT Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD')) +0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob1.testcase new file mode 100644 index 0000000..aa9a6c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob1.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob10.testcase new file mode 100644 index 0000000..cafa1f4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob10.testcase @@ -0,0 +1,7 @@ +XB_GetPayload - valid XmlBLOB, TEXT format +:memory: #use in-memory database +SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob11.testcase new file mode 100644 index 0000000..80d31c5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob11.testcase @@ -0,0 +1,7 @@ +XB_GetPayload - valid XmlBLOB, DOUBLE format +:memory: #use in-memory database +SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob12.testcase new file mode 100644 index 0000000..019f930 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob12.testcase @@ -0,0 +1,7 @@ +XB_GetPayload - valid XmlBLOB, BLOB format +:memory: #use in-memory database +SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob13.testcase new file mode 100644 index 0000000..7ef6822 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob13.testcase @@ -0,0 +1,7 @@ +XB_GetPayload - valid XmlBLOB, INTEGER format +:memory: #use in-memory database +SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) +text diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob2.testcase new file mode 100644 index 0000000..5c09865 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob2.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload(1); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob3.testcase new file mode 100644 index 0000000..b3b3da5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob3.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob4.testcase new file mode 100644 index 0000000..4d1bb5c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob4.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetPayload('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob5.testcase new file mode 100644 index 0000000..368a98c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob5.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - invalid BLOB XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob6.testcase new file mode 100644 index 0000000..368a98c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob6.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - invalid BLOB XmlBLOB +:memory: #use in-memory database +SELECT XB_GetPayload(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob7.testcase new file mode 100644 index 0000000..2dee8ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob7.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - valid XmlBLOB (uncompressed) +:memory: #use in-memory database +SELECT XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +text + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob8.testcase new file mode 100644 index 0000000..45f0a77 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob8.testcase @@ -0,0 +1,8 @@ +XB_GetPayload - valid XmlBLOB (compressed) +:memory: #use in-memory database +SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +text + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob9.testcase new file mode 100644 index 0000000..988c80f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmlfromblob9.testcase @@ -0,0 +1,7 @@ +XB_GetPayload - valid XmlBLOB, NULL format +:memory: #use in-memory database +SELECT XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL); +1 # rows (not including the header row) +1 # columns +XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob1.testcase new file mode 100644 index 0000000..2628995 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob1.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument(NULL); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob10.testcase new file mode 100644 index 0000000..a4079a4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob10.testcase @@ -0,0 +1,7 @@ +XB_GetDocument - valid XmlBLOB, TEXT format +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob11.testcase new file mode 100644 index 0000000..24846bd --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob11.testcase @@ -0,0 +1,7 @@ +XB_GetDocument - valid XmlBLOB, DOUBLE format +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob12.testcase new file mode 100644 index 0000000..f014df5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob12.testcase @@ -0,0 +1,7 @@ +XB_GetDocument - valid XmlBLOB, BLOB format +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob13.testcase new file mode 100644 index 0000000..aa73d05 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob13.testcase @@ -0,0 +1,7 @@ +XB_GetDocument - valid XmlBLOB, INTEGER format +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) +text diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob2.testcase new file mode 100644 index 0000000..5c1adb2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob2.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument(1); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob3.testcase new file mode 100644 index 0000000..ad11ff9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob3.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument(1.1); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob4.testcase new file mode 100644 index 0000000..312ffbe --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob4.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument('alpha'); +1 # rows (not including the header row) +1 # columns +XB_GetDocument('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob5.testcase new file mode 100644 index 0000000..a94d59d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob5.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - invalid BLOB XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob6.testcase new file mode 100644 index 0000000..a94d59d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob6.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - invalid BLOB XmlBLOB +:memory: #use in-memory database +SELECT XB_GetDocument(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(zeroblob(100)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob7.testcase new file mode 100644 index 0000000..74ae090 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob7.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - valid XmlBLOB (uncompressed) +:memory: #use in-memory database +SELECT XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') +text + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob8.testcase new file mode 100644 index 0000000..d6bc2cc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob8.testcase @@ -0,0 +1,8 @@ +XB_GetDocument - valid XmlBLOB (compressed) +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') +text + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob9.testcase new file mode 100644 index 0000000..3c2e50d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltextfromblob9.testcase @@ -0,0 +1,7 @@ +XB_GetDocument - valid XmlBLOB, NULL format +:memory: #use in-memory database +SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL); +1 # rows (not including the header row) +1 # columns +XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob1.testcase new file mode 100644 index 0000000..1b0a529 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob1.testcase @@ -0,0 +1,8 @@ +XB_Create - NULL XMLDocument +:memory: #use in-memory database +SELECT XB_Create(NULL); +1 # rows (not including the header row) +1 # columns +XB_Create(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob10.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob10.testcase new file mode 100644 index 0000000..fcafe9d --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob10.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, DOUBLE compression +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob11.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob11.testcase new file mode 100644 index 0000000..cf92cfc --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob11.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed - legacy format +:memory: #use in-memory database +SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)); +1 # rows (not including the header row) +1 # columns +Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)) +0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob12.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob12.testcase new file mode 100644 index 0000000..5cb4991 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob12.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, uncompressed +:memory: #use in-memory database +SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)); +1 # rows (not including the header row) +1 # columns +Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)) +0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob13.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob13.testcase new file mode 100644 index 0000000..cb9e354 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob13.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed, NULL SchemaURI +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob14.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob14.testcase new file mode 100644 index 0000000..006a043 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob14.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed, DOUBLE SchemaURI +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob15.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob15.testcase new file mode 100644 index 0000000..772b11c --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob15.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed, BLOB SchemaURI +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob16.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob16.testcase new file mode 100644 index 0000000..0f12df1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob16.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed, InternalSchemaURI (fail) +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob17.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob17.testcase new file mode 100644 index 0000000..a5f7b86 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob17.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, compressed, SchemaURI (fail) +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd'); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob18.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob18.testcase new file mode 100644 index 0000000..5469944 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob18.testcase @@ -0,0 +1,7 @@ +XB_Create - valid XMLDocument, UTF-8 +:memory: #use in-memory database +SELECT Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')) +0003AC320000003A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7552A2D49D3B55052B0B7B349B42B49AD28B1D14FB403009EE70FE6BC1DE1AC65DD| diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob2.testcase new file mode 100644 index 0000000..b78d512 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob2.testcase @@ -0,0 +1,8 @@ +XB_Create - INTEGER XMLDocument +:memory: #use in-memory database +SELECT XB_Create(1); +1 # rows (not including the header row) +1 # columns +XB_Create(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob3.testcase new file mode 100644 index 0000000..3ed61c2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob3.testcase @@ -0,0 +1,8 @@ +XB_Create - DOUBLE XMLDocument +:memory: #use in-memory database +SELECT XB_Create(1.1); +1 # rows (not including the header row) +1 # columns +XB_Create(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob4.testcase new file mode 100644 index 0000000..5bdd2c1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob4.testcase @@ -0,0 +1,8 @@ +XB_Create - BLOB XMLDocument +:memory: #use in-memory database +SELECT XB_Create(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_Create(zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob5.testcase new file mode 100644 index 0000000..1428b23 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob5.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument +:memory: #use in-memory database +SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')) +0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob6.testcase new file mode 100644 index 0000000..ee1137f --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob6.testcase @@ -0,0 +1,8 @@ +XB_Create - not well-formed XMLDocument +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E'); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob7.testcase new file mode 100644 index 0000000..15a9103 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob7.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, NULL compression +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob8.testcase new file mode 100644 index 0000000..e56464b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob8.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, TEXT compression +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes'); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob9.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob9.testcase new file mode 100644 index 0000000..6f44d6b --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmltoblob9.testcase @@ -0,0 +1,8 @@ +XB_Create - valid XMLDocument, BLOB compression +:memory: #use in-memory database +SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress1.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress1.testcase new file mode 100644 index 0000000..9c6b2ab --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress1.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - NULL XmlBLOB +:memory: #use in-memory database +SELECT XB_Uncompress(NULL); +1 # rows (not including the header row) +1 # columns +XB_Uncompress(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress2.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress2.testcase new file mode 100644 index 0000000..4ffdb53 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress2.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - TEXT XmlBLOB +:memory: #use in-memory database +SELECT XB_Uncompress('alpha'); +1 # rows (not including the header row) +1 # columns +XB_Uncompress('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress3.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress3.testcase new file mode 100644 index 0000000..a125aab --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress3.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - INTEGER XmlBLOB +:memory: #use in-memory database +SELECT XB_Uncompress(1); +1 # rows (not including the header row) +1 # columns +XB_Uncompress(1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress4.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress4.testcase new file mode 100644 index 0000000..9281d31 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress4.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - DOUBLE XmlBLOB +:memory: #use in-memory database +SELECT XB_Uncompress(1.1); +1 # rows (not including the header row) +1 # columns +XB_Uncompress(1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress5.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress5.testcase new file mode 100644 index 0000000..f2636b6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress5.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - invalid XmlBLOB +:memory: #use in-memory database +SELECT XB_Uncompress(zeroblob(100)); +1 # rows (not including the header row) +1 # columns +XB_Uncompress(zeroblob(100)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress6.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress6.testcase new file mode 100644 index 0000000..0ea4a65 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress6.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - valid XmlBLOB (compressed - legacy blob) +:memory: #use in-memory database +SELECT Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) +0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress7.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress7.testcase new file mode 100644 index 0000000..05a86f4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress7.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - valid XmlBLOB (already uncompressed) +:memory: #use in-memory database +SELECT Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) +0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD diff --git a/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress8.testcase b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress8.testcase new file mode 100644 index 0000000..2a4c5fe --- /dev/null +++ b/src/spatialite/test/sql_stmt_libxml2_tests/xmluncompress8.testcase @@ -0,0 +1,7 @@ +XB_Uncompress - valid XmlBLOB (compressed) +:memory: #use in-memory database +SELECT Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD')); +1 # rows (not including the header row) +1 # columns +Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD')) +0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.am b/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.am new file mode 100644 index 0000000..47d7a0c --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.am @@ -0,0 +1,290 @@ + +EXTRA_DIST = 3ddistance10.testcase \ + 3ddistance1.testcase \ + 3ddistance2.testcase \ + 3ddistance3.testcase \ + 3ddistance4.testcase \ + 3ddistance5.testcase \ + 3ddistance6.testcase \ + 3ddistance7.testcase \ + 3ddistance8.testcase \ + 3ddistance9.testcase \ + 3dmaxdistance10.testcase \ + 3dmaxdistance1.testcase \ + 3dmaxdistance2.testcase \ + 3dmaxdistance3.testcase \ + 3dmaxdistance4.testcase \ + 3dmaxdistance5.testcase \ + 3dmaxdistance6.testcase \ + 3dmaxdistance7.testcase \ + 3dmaxdistance8.testcase \ + 3dmaxdistance9.testcase \ + maxdistance10.testcase \ + maxdistance1.testcase \ + maxdistance2.testcase \ + maxdistance3.testcase \ + maxdistance4.testcase \ + maxdistance5.testcase \ + maxdistance6.testcase \ + maxdistance7.testcase \ + maxdistance8.testcase \ + maxdistance9.testcase \ + st_asx3d10.testcase \ + st_asx3d11.testcase \ + st_asx3d12.testcase \ + st_asx3d13.testcase \ + st_asx3d14.testcase \ + st_asx3d15.testcase \ + st_asx3d16.testcase \ + st_asx3d17.testcase \ + st_asx3d18.testcase \ + st_asx3d19.testcase \ + st_asx3d1.testcase \ + st_asx3d20.testcase \ + st_asx3d21.testcase \ + st_asx3d22.testcase \ + st_asx3d23.testcase \ + st_asx3d24.testcase \ + st_asx3d25.testcase \ + st_asx3d26.testcase \ + st_asx3d27.testcase \ + st_asx3d28.testcase \ + st_asx3d29.testcase \ + st_asx3d2.testcase \ + st_asx3d30.testcase \ + st_asx3d3.testcase \ + st_asx3d4.testcase \ + st_asx3d5.testcase \ + st_asx3d6.testcase \ + st_asx3d7.testcase \ + st_asx3d8.testcase \ + st_asx3d9.testcase \ + st_area10.testcase \ + st_area11.testcase \ + st_area12.testcase \ + st_area13.testcase \ + st_area14.testcase \ + st_area15.testcase \ + st_area16.testcase \ + st_area17.testcase \ + st_area18.testcase \ + st_azimuth11.testcase \ + st_azimuth12.testcase \ + st_azimuth13.testcase \ + st_azimuth14.testcase \ + st_azimuth15.testcase \ + st_azimuth16.testcase \ + st_azimuth17.testcase \ + st_azimuth1.testcase \ + st_azimuth2.testcase \ + st_azimuth3.testcase \ + st_azimuth4.testcase \ + st_azimuth5.testcase \ + st_azimuth6.testcase \ + st_azimuth7.testcase \ + st_azimuth8.testcase \ + st_azimuth9.testcase \ + st_geohash10.testcase \ + st_geohash1.testcase \ + st_geohash2.testcase \ + st_geohash3.testcase \ + st_geohash4.testcase \ + st_geohash5.testcase \ + st_geohash6.testcase \ + st_geohash7.testcase \ + st_geohash8.testcase \ + st_geohash9.testcase \ + st_makevalid1.testcase \ + st_makevalid2.testcase \ + st_makevalid3.testcase \ + st_makevalid4.testcase \ + st_makevalid5.testcase \ + st_makevalid6.testcase \ + st_makevalid7.testcase \ + st_makevalid8.testcase \ + st_makevaliddiscarded1.testcase \ + st_makevaliddiscarded2.testcase \ + st_makevaliddiscarded3.testcase \ + st_makevaliddiscarded4.testcase \ + st_makevaliddiscarded5.testcase \ + st_makevaliddiscarded6.testcase \ + st_makevaliddiscarded7.testcase \ + st_makevaliddiscarded8.testcase \ + st_project1.testcase \ + st_project2.testcase \ + st_project3.testcase \ + st_project4.testcase \ + st_project5.testcase \ + st_project6.testcase \ + st_project7.testcase \ + st_project8.testcase \ + st_project9.testcase \ + st_project10.testcase \ + st_project11.testcase \ + st_project12.testcase \ + st_project13.testcase \ + st_project14.testcase \ + st_segmentize10.testcase \ + st_segmentize11.testcase \ + st_segmentize12.testcase \ + st_segmentize13.testcase \ + st_segmentize14.testcase \ + st_segmentize15.testcase \ + st_segmentize16.testcase \ + st_segmentize17.testcase \ + st_segmentize18.testcase \ + st_segmentize19.testcase \ + st_segmentize1.testcase \ + st_segmentize20.testcase \ + st_segmentize21.testcase \ + st_segmentize22.testcase \ + st_segmentize23.testcase \ + st_segmentize24.testcase \ + st_segmentize25.testcase \ + st_segmentize26.testcase \ + st_segmentize27.testcase \ + st_segmentize28.testcase \ + st_segmentize29.testcase \ + st_segmentize2.testcase \ + st_segmentize30.testcase \ + st_segmentize31.testcase \ + st_segmentize3.testcase \ + st_segmentize4.testcase \ + st_segmentize5.testcase \ + st_segmentize6.testcase \ + st_segmentize7.testcase \ + st_segmentize8.testcase \ + st_segmentize9.testcase \ + st_snaptogrid10.testcase \ + st_snaptogrid11.testcase \ + st_snaptogrid12.testcase \ + st_snaptogrid13.testcase \ + st_snaptogrid14.testcase \ + st_snaptogrid15.testcase \ + st_snaptogrid16.testcase \ + st_snaptogrid17.testcase \ + st_snaptogrid18.testcase \ + st_snaptogrid19.testcase \ + st_snaptogrid1.testcase \ + st_snaptogrid20.testcase \ + st_snaptogrid21.testcase \ + st_snaptogrid22.testcase \ + st_snaptogrid23.testcase \ + st_snaptogrid24.testcase \ + st_snaptogrid25.testcase \ + st_snaptogrid26.testcase \ + st_snaptogrid27.testcase \ + st_snaptogrid28.testcase \ + st_snaptogrid29.testcase \ + st_snaptogrid2.testcase \ + st_snaptogrid30.testcase \ + st_snaptogrid31.testcase \ + st_snaptogrid32.testcase \ + st_snaptogrid33.testcase \ + st_snaptogrid34.testcase \ + st_snaptogrid35.testcase \ + st_snaptogrid36.testcase \ + st_snaptogrid37.testcase \ + st_snaptogrid38.testcase \ + st_snaptogrid39.testcase \ + st_snaptogrid3.testcase \ + st_snaptogrid40.testcase \ + st_snaptogrid41.testcase \ + st_snaptogrid42.testcase \ + st_snaptogrid43.testcase \ + st_snaptogrid44.testcase \ + st_snaptogrid45.testcase \ + st_snaptogrid46.testcase \ + st_snaptogrid47.testcase \ + st_snaptogrid48.testcase \ + st_snaptogrid49.testcase \ + st_snaptogrid4.testcase \ + st_snaptogrid50.testcase \ + st_snaptogrid51.testcase \ + st_snaptogrid52.testcase \ + st_snaptogrid53.testcase \ + st_snaptogrid54.testcase \ + st_snaptogrid55.testcase \ + st_snaptogrid56.testcase \ + st_snaptogrid57.testcase \ + st_snaptogrid58.testcase \ + st_snaptogrid59.testcase \ + st_snaptogrid5.testcase \ + st_snaptogrid60.testcase \ + st_snaptogrid61.testcase \ + st_snaptogrid62.testcase \ + st_snaptogrid63.testcase \ + st_snaptogrid64.testcase \ + st_snaptogrid65.testcase \ + st_snaptogrid6.testcase \ + st_snaptogrid7.testcase \ + st_snaptogrid8.testcase \ + st_snaptogrid9.testcase \ + st_split10.testcase \ + st_split11.testcase \ + st_split12.testcase \ + st_split13.testcase \ + st_split14.testcase \ + st_split15.testcase \ + st_split16.testcase \ + st_split17.testcase \ + st_split18.testcase \ + st_split19.testcase \ + st_split1.testcase \ + st_split20.testcase \ + st_split21.testcase \ + st_split22.testcase \ + st_split23.testcase \ + st_split24.testcase \ + st_split25.testcase \ + st_split26.testcase \ + st_split27.testcase \ + st_split28.testcase \ + st_split29.testcase \ + st_split2.testcase \ + st_split30.testcase \ + st_split31.testcase \ + st_split32.testcase \ + st_split33.testcase \ + st_split34.testcase \ + st_split35.testcase \ + st_split36.testcase \ + st_split37.testcase \ + st_split38.testcase \ + st_split39.testcase \ + st_split3.testcase \ + st_split40.testcase \ + st_split41.testcase \ + st_split42.testcase \ + st_split43.testcase \ + st_split44.testcase \ + st_split45.testcase \ + st_split46.testcase \ + st_split47.testcase \ + st_split48.testcase \ + st_split49.testcase \ + st_split4.testcase \ + st_split5.testcase \ + st_split6.testcase \ + st_split7.testcase \ + st_split8.testcase \ + st_split9.testcase \ + st_node1.testcase \ + st_node2.testcase \ + st_node3.testcase \ + st_node4.testcase \ + st_node5.testcase \ + st_node6.testcase \ + st_node7.testcase \ + st_node8.testcase \ + st_node9.testcase \ + st_self1.testcase \ + st_self2.testcase \ + st_self3.testcase \ + st_self4.testcase \ + st_self5.testcase \ + st_self6.testcase \ + st_self7.testcase \ + st_self8.testcase \ + st_self9.testcase + diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.in b/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.in new file mode 100644 index 0000000..44330ef --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/Makefile.in @@ -0,0 +1,725 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_lwgeom_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = 3ddistance10.testcase \ + 3ddistance1.testcase \ + 3ddistance2.testcase \ + 3ddistance3.testcase \ + 3ddistance4.testcase \ + 3ddistance5.testcase \ + 3ddistance6.testcase \ + 3ddistance7.testcase \ + 3ddistance8.testcase \ + 3ddistance9.testcase \ + 3dmaxdistance10.testcase \ + 3dmaxdistance1.testcase \ + 3dmaxdistance2.testcase \ + 3dmaxdistance3.testcase \ + 3dmaxdistance4.testcase \ + 3dmaxdistance5.testcase \ + 3dmaxdistance6.testcase \ + 3dmaxdistance7.testcase \ + 3dmaxdistance8.testcase \ + 3dmaxdistance9.testcase \ + maxdistance10.testcase \ + maxdistance1.testcase \ + maxdistance2.testcase \ + maxdistance3.testcase \ + maxdistance4.testcase \ + maxdistance5.testcase \ + maxdistance6.testcase \ + maxdistance7.testcase \ + maxdistance8.testcase \ + maxdistance9.testcase \ + st_asx3d10.testcase \ + st_asx3d11.testcase \ + st_asx3d12.testcase \ + st_asx3d13.testcase \ + st_asx3d14.testcase \ + st_asx3d15.testcase \ + st_asx3d16.testcase \ + st_asx3d17.testcase \ + st_asx3d18.testcase \ + st_asx3d19.testcase \ + st_asx3d1.testcase \ + st_asx3d20.testcase \ + st_asx3d21.testcase \ + st_asx3d22.testcase \ + st_asx3d23.testcase \ + st_asx3d24.testcase \ + st_asx3d25.testcase \ + st_asx3d26.testcase \ + st_asx3d27.testcase \ + st_asx3d28.testcase \ + st_asx3d29.testcase \ + st_asx3d2.testcase \ + st_asx3d30.testcase \ + st_asx3d3.testcase \ + st_asx3d4.testcase \ + st_asx3d5.testcase \ + st_asx3d6.testcase \ + st_asx3d7.testcase \ + st_asx3d8.testcase \ + st_asx3d9.testcase \ + st_area10.testcase \ + st_area11.testcase \ + st_area12.testcase \ + st_area13.testcase \ + st_area14.testcase \ + st_area15.testcase \ + st_area16.testcase \ + st_area17.testcase \ + st_area18.testcase \ + st_azimuth11.testcase \ + st_azimuth12.testcase \ + st_azimuth13.testcase \ + st_azimuth14.testcase \ + st_azimuth15.testcase \ + st_azimuth16.testcase \ + st_azimuth17.testcase \ + st_azimuth1.testcase \ + st_azimuth2.testcase \ + st_azimuth3.testcase \ + st_azimuth4.testcase \ + st_azimuth5.testcase \ + st_azimuth6.testcase \ + st_azimuth7.testcase \ + st_azimuth8.testcase \ + st_azimuth9.testcase \ + st_geohash10.testcase \ + st_geohash1.testcase \ + st_geohash2.testcase \ + st_geohash3.testcase \ + st_geohash4.testcase \ + st_geohash5.testcase \ + st_geohash6.testcase \ + st_geohash7.testcase \ + st_geohash8.testcase \ + st_geohash9.testcase \ + st_makevalid1.testcase \ + st_makevalid2.testcase \ + st_makevalid3.testcase \ + st_makevalid4.testcase \ + st_makevalid5.testcase \ + st_makevalid6.testcase \ + st_makevalid7.testcase \ + st_makevalid8.testcase \ + st_makevaliddiscarded1.testcase \ + st_makevaliddiscarded2.testcase \ + st_makevaliddiscarded3.testcase \ + st_makevaliddiscarded4.testcase \ + st_makevaliddiscarded5.testcase \ + st_makevaliddiscarded6.testcase \ + st_makevaliddiscarded7.testcase \ + st_makevaliddiscarded8.testcase \ + st_project1.testcase \ + st_project2.testcase \ + st_project3.testcase \ + st_project4.testcase \ + st_project5.testcase \ + st_project6.testcase \ + st_project7.testcase \ + st_project8.testcase \ + st_project9.testcase \ + st_project10.testcase \ + st_project11.testcase \ + st_project12.testcase \ + st_project13.testcase \ + st_project14.testcase \ + st_segmentize10.testcase \ + st_segmentize11.testcase \ + st_segmentize12.testcase \ + st_segmentize13.testcase \ + st_segmentize14.testcase \ + st_segmentize15.testcase \ + st_segmentize16.testcase \ + st_segmentize17.testcase \ + st_segmentize18.testcase \ + st_segmentize19.testcase \ + st_segmentize1.testcase \ + st_segmentize20.testcase \ + st_segmentize21.testcase \ + st_segmentize22.testcase \ + st_segmentize23.testcase \ + st_segmentize24.testcase \ + st_segmentize25.testcase \ + st_segmentize26.testcase \ + st_segmentize27.testcase \ + st_segmentize28.testcase \ + st_segmentize29.testcase \ + st_segmentize2.testcase \ + st_segmentize30.testcase \ + st_segmentize31.testcase \ + st_segmentize3.testcase \ + st_segmentize4.testcase \ + st_segmentize5.testcase \ + st_segmentize6.testcase \ + st_segmentize7.testcase \ + st_segmentize8.testcase \ + st_segmentize9.testcase \ + st_snaptogrid10.testcase \ + st_snaptogrid11.testcase \ + st_snaptogrid12.testcase \ + st_snaptogrid13.testcase \ + st_snaptogrid14.testcase \ + st_snaptogrid15.testcase \ + st_snaptogrid16.testcase \ + st_snaptogrid17.testcase \ + st_snaptogrid18.testcase \ + st_snaptogrid19.testcase \ + st_snaptogrid1.testcase \ + st_snaptogrid20.testcase \ + st_snaptogrid21.testcase \ + st_snaptogrid22.testcase \ + st_snaptogrid23.testcase \ + st_snaptogrid24.testcase \ + st_snaptogrid25.testcase \ + st_snaptogrid26.testcase \ + st_snaptogrid27.testcase \ + st_snaptogrid28.testcase \ + st_snaptogrid29.testcase \ + st_snaptogrid2.testcase \ + st_snaptogrid30.testcase \ + st_snaptogrid31.testcase \ + st_snaptogrid32.testcase \ + st_snaptogrid33.testcase \ + st_snaptogrid34.testcase \ + st_snaptogrid35.testcase \ + st_snaptogrid36.testcase \ + st_snaptogrid37.testcase \ + st_snaptogrid38.testcase \ + st_snaptogrid39.testcase \ + st_snaptogrid3.testcase \ + st_snaptogrid40.testcase \ + st_snaptogrid41.testcase \ + st_snaptogrid42.testcase \ + st_snaptogrid43.testcase \ + st_snaptogrid44.testcase \ + st_snaptogrid45.testcase \ + st_snaptogrid46.testcase \ + st_snaptogrid47.testcase \ + st_snaptogrid48.testcase \ + st_snaptogrid49.testcase \ + st_snaptogrid4.testcase \ + st_snaptogrid50.testcase \ + st_snaptogrid51.testcase \ + st_snaptogrid52.testcase \ + st_snaptogrid53.testcase \ + st_snaptogrid54.testcase \ + st_snaptogrid55.testcase \ + st_snaptogrid56.testcase \ + st_snaptogrid57.testcase \ + st_snaptogrid58.testcase \ + st_snaptogrid59.testcase \ + st_snaptogrid5.testcase \ + st_snaptogrid60.testcase \ + st_snaptogrid61.testcase \ + st_snaptogrid62.testcase \ + st_snaptogrid63.testcase \ + st_snaptogrid64.testcase \ + st_snaptogrid65.testcase \ + st_snaptogrid6.testcase \ + st_snaptogrid7.testcase \ + st_snaptogrid8.testcase \ + st_snaptogrid9.testcase \ + st_split10.testcase \ + st_split11.testcase \ + st_split12.testcase \ + st_split13.testcase \ + st_split14.testcase \ + st_split15.testcase \ + st_split16.testcase \ + st_split17.testcase \ + st_split18.testcase \ + st_split19.testcase \ + st_split1.testcase \ + st_split20.testcase \ + st_split21.testcase \ + st_split22.testcase \ + st_split23.testcase \ + st_split24.testcase \ + st_split25.testcase \ + st_split26.testcase \ + st_split27.testcase \ + st_split28.testcase \ + st_split29.testcase \ + st_split2.testcase \ + st_split30.testcase \ + st_split31.testcase \ + st_split32.testcase \ + st_split33.testcase \ + st_split34.testcase \ + st_split35.testcase \ + st_split36.testcase \ + st_split37.testcase \ + st_split38.testcase \ + st_split39.testcase \ + st_split3.testcase \ + st_split40.testcase \ + st_split41.testcase \ + st_split42.testcase \ + st_split43.testcase \ + st_split44.testcase \ + st_split45.testcase \ + st_split46.testcase \ + st_split47.testcase \ + st_split48.testcase \ + st_split49.testcase \ + st_split4.testcase \ + st_split5.testcase \ + st_split6.testcase \ + st_split7.testcase \ + st_split8.testcase \ + st_split9.testcase \ + st_node1.testcase \ + st_node2.testcase \ + st_node3.testcase \ + st_node4.testcase \ + st_node5.testcase \ + st_node6.testcase \ + st_node7.testcase \ + st_node8.testcase \ + st_node9.testcase \ + st_self1.testcase \ + st_self2.testcase \ + st_self3.testcase \ + st_self4.testcase \ + st_self5.testcase \ + st_self6.testcase \ + st_self7.testcase \ + st_self8.testcase \ + st_self9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area10.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area10.testcase new file mode 100644 index 0000000..c3addfd --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area10.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - valid Polygon - Sphere/Equator +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0) +189884187084.89:2 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area11.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area11.testcase new file mode 100644 index 0000000..aae1de3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area11.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - valid Polygon - Ellipsoid/Equator +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1) +189884187084.89:2 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area12.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area12.testcase new file mode 100644 index 0000000..560472d --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area12.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - valid Polygon - Sphere +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0) +67724290215.61:2 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area13.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area13.testcase new file mode 100644 index 0000000..aa00bb5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area13.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - valid Polygon - Ellipsoid +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1) +67989516071.49:2 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area14.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area14.testcase new file mode 100644 index 0000000..2ee2d23 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area14.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - Point - Ellipsoid +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POINT(50.4 50.4)"), 1); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POINT(50.4 50.4)"), 1) +0.0 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area15.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area15.testcase new file mode 100644 index 0000000..6ad51d0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area15.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - planar Polygon - Sphere +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area16.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area16.testcase new file mode 100644 index 0000000..ebe32b9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area16.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - DOUBLE use_ellipsoid +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area17.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area17.testcase new file mode 100644 index 0000000..7840c78 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area17.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - TEXT use_ellipsoid +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha'); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_area18.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area18.testcase new file mode 100644 index 0000000..10b2008 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_area18.testcase @@ -0,0 +1,7 @@ +ST_Area Geodesic - BLOB use_ellipsoid +:memory: #use in-memory database +SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase index c88c965..20bfdce 100644 --- a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase @@ -4,4 +4,4 @@ SELECT ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)) -0.785398:6 +0.778630:6 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth10.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth10.testcase deleted file mode 100644 index 1fbae7f..0000000 --- a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth10.testcase +++ /dev/null @@ -1,7 +0,0 @@ -ST_Azimuth - text PointA (error) -:memory: #use in-memory database -SELECT ST_Azimuth('alpha', MakePoint(10, 10, 4326)); -1 # rows (not including the header row) -1 # columns -ST_Azimuth('alpha', MakePoint(10, 10, 4326)) -(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase index db71a12..38d0883 100644 --- a/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase @@ -1,7 +1,7 @@ -ST_Azimuth - no SRID points +ST_Azimuth - -1 SRID points :memory: #use in-memory database -SELECT ST_Azimuth(MakePoint(123456, 12345678.5), MakePoint(123457, 12345679.5)); +SELECT ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 1 # rows (not including the header row) 1 # columns -ST_Azimuth(MakePoint(123456, 12345678.5), MakePoint(123457, 12345679.5)); +ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 0.785398:6 diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node1.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node1.testcase new file mode 100644 index 0000000..4f8afee --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node1.testcase @@ -0,0 +1,7 @@ +ST_Node - Invalid BLOB input (error) +:memory: #use in-memory database +SELECT ST_Node(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +ST_Node(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node2.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node2.testcase new file mode 100644 index 0000000..bc49dad --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node2.testcase @@ -0,0 +1,7 @@ +ST_Node - Invalid INT input (error) +:memory: #use in-memory database +SELECT ST_Node(1); +1 # rows (not including the header row) +1 # columns +ST_Node(1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node3.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node3.testcase new file mode 100644 index 0000000..d4942c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node3.testcase @@ -0,0 +1,7 @@ +ST_Node - Invalid DOUBLE input (error) +:memory: #use in-memory database +SELECT ST_Node(1.1); +1 # rows (not including the header row) +1 # columns +ST_Node(1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node4.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node4.testcase new file mode 100644 index 0000000..970dd76 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node4.testcase @@ -0,0 +1,7 @@ +ST_Node - Invalid TEXT input (error) +:memory: #use in-memory database +SELECT ST_Node('alpha'); +1 # rows (not including the header row) +1 # columns +ST_Node('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node5.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node5.testcase new file mode 100644 index 0000000..db599f8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node5.testcase @@ -0,0 +1,7 @@ +ST_Node - Valid 2D input +:memory: #use in-memory database +SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))) +MULTILINESTRING((0 0, 5 5), (5 5, 10 10, 0 10, 5 5), (5 5, 10 0)) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node6.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node6.testcase new file mode 100644 index 0000000..e785bdd --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node6.testcase @@ -0,0 +1,7 @@ +ST_Node - Valid 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) +MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3)) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node7.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node7.testcase new file mode 100644 index 0000000..04fcd4d --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node7.testcase @@ -0,0 +1,7 @@ +ST_Node - Valid MultiLinestring 2D input +:memory: #use in-memory database +SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))) +MULTILINESTRING((0 0, 5 5), (5 5, 10 10), (10 10, 0 10, 5 5), (5 5, 10 0), (10 8, 10 10), (10 10, 10 12)) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node8.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node8.testcase new file mode 100644 index 0000000..23465d2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node8.testcase @@ -0,0 +1,7 @@ +ST_Node - Valid MultiLinestring 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))) +MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10), (10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3), (10 8 4, 10 10 10), (10 10 10, 10 12 5)) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_node9.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node9.testcase new file mode 100644 index 0000000..4ba22c2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_node9.testcase @@ -0,0 +1,7 @@ +ST_Node - Invalid MultiPoint 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project1.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project1.testcase new file mode 100644 index 0000000..5f54108 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project1.testcase @@ -0,0 +1,7 @@ +ST_Project - NULL start Point +:memory: #use in-memory database +SELECT ST_Project(NULL, 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(NULL, 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project10.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project10.testcase new file mode 100644 index 0000000..7771d30 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project10.testcase @@ -0,0 +1,7 @@ +ST_Project - BLOB distance +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project11.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project11.testcase new file mode 100644 index 0000000..ef69472 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project11.testcase @@ -0,0 +1,7 @@ +ST_Project - NULL bearing +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project12.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project12.testcase new file mode 100644 index 0000000..ab464ca --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project12.testcase @@ -0,0 +1,7 @@ +ST_Project - TEXT bearing +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha'); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project13.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project13.testcase new file mode 100644 index 0000000..943d435 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project13.testcase @@ -0,0 +1,7 @@ +ST_Project - BLOB bearing +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project14.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project14.testcase new file mode 100644 index 0000000..8d0a38c --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project14.testcase @@ -0,0 +1,7 @@ +ST_Project - valid +:memory: #use in-memory database +SELECT AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))); +1 # rows (not including the header row) +1 # columns +AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))) +POINT(0.635231 0.639472) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project2.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project2.testcase new file mode 100644 index 0000000..e36c260 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project2.testcase @@ -0,0 +1,7 @@ +ST_Project - INTEGER start Point +:memory: #use in-memory database +SELECT ST_Project(1, 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(1, 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project3.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project3.testcase new file mode 100644 index 0000000..e0a2742 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project3.testcase @@ -0,0 +1,7 @@ +ST_Project - DOUBLE start Point +:memory: #use in-memory database +SELECT ST_Project(1.1, 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(1.1, 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project4.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project4.testcase new file mode 100644 index 0000000..e17b051 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project4.testcase @@ -0,0 +1,7 @@ +ST_Project - TEXT start Point +:memory: #use in-memory database +SELECT ST_Project('alpha', 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project('alpha', 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project5.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project5.testcase new file mode 100644 index 0000000..ea22322 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project5.testcase @@ -0,0 +1,7 @@ +ST_Project - invalid BLOB start Point +:memory: #use in-memory database +SELECT ST_Project(zeroblob(4), 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(zeroblob(4), 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project6.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project6.testcase new file mode 100644 index 0000000..be86b1f --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project6.testcase @@ -0,0 +1,7 @@ +ST_Project - start Point (not long/lat) +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project7.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project7.testcase new file mode 100644 index 0000000..1f69864 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project7.testcase @@ -0,0 +1,7 @@ +ST_Project - start Point (actually: Linestring) +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project8.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project8.testcase new file mode 100644 index 0000000..233d09f --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project8.testcase @@ -0,0 +1,7 @@ +ST_Project - NULL distance +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_project9.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project9.testcase new file mode 100644 index 0000000..30d9aab --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_project9.testcase @@ -0,0 +1,7 @@ +ST_Project - TEXT distance +:memory: #use in-memory database +SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)); +1 # rows (not including the header row) +1 # columns +ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_segmentize15.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_segmentize15.testcase new file mode 100644 index 0000000..9286243 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_segmentize15.testcase @@ -0,0 +1,7 @@ +ST_Segmentize - Point Z +:memory: #use in-memory database +SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)) +POINT Z(0 0 10) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self1.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self1.testcase new file mode 100644 index 0000000..22facbb --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self1.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Invalid BLOB input (error) +:memory: #use in-memory database +SELECT ST_SelfIntersections(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +ST_SelfIntersections(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self2.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self2.testcase new file mode 100644 index 0000000..97a41b7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self2.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Invalid INT input (error) +:memory: #use in-memory database +SELECT ST_SelfIntersections(1); +1 # rows (not including the header row) +1 # columns +ST_SelfIntersections(1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self3.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self3.testcase new file mode 100644 index 0000000..1396e9f --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self3.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Invalid DOUBLE input (error) +:memory: #use in-memory database +SELECT ST_SelfIntersections(1.1); +1 # rows (not including the header row) +1 # columns +ST_SelfIntersections(1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self4.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self4.testcase new file mode 100644 index 0000000..fda1671 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self4.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Invalid TEXT input (error) +:memory: #use in-memory database +SELECT ST_SelfIntersections('alpha'); +1 # rows (not including the header row) +1 # columns +ST_SelfIntersections('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self5.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self5.testcase new file mode 100644 index 0000000..e7c03d3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self5.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Valid 2D input +:memory: #use in-memory database +SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))) +MULTIPOINT(5 5) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self6.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self6.testcase new file mode 100644 index 0000000..eb1ed6a --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self6.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Valid 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) +MULTIPOINT Z(5 5 4.5) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self7.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self7.testcase new file mode 100644 index 0000000..26d448b --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self7.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Valid MultiLinestring 2D input +:memory: #use in-memory database +SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))) +MULTIPOINT(5 5, 10 10) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self8.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self8.testcase new file mode 100644 index 0000000..9e523a5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self8.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Valid MultiLinestring 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))) +MULTIPOINT Z(5 5 4.5, 10 10 10) diff --git a/src/spatialite/test/sql_stmt_lwgeom_tests/st_self9.testcase b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self9.testcase new file mode 100644 index 0000000..5e5b6d6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_lwgeom_tests/st_self9.testcase @@ -0,0 +1,7 @@ +ST_SelfIntersections - Invalid MultiPoint 3D input +:memory: #use in-memory database +SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); +1 # rows (not including the header row) +1 # columns +ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) +(NULL) diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.am b/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.am new file mode 100644 index 0000000..9684306 --- /dev/null +++ b/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.am @@ -0,0 +1,102 @@ + +EXTRA_DIST = acos10.testcase \ + acos20.testcase \ + acos2.testcase \ + acos.testcase \ + acos-text.testcase \ + asin10.testcase \ + asin1.testcase \ + asin20.testcase \ + asin2.testcase \ + asin-text.testcase \ + atan00.testcase \ + atan0.testcase \ + atan-text.testcase \ + ceilfloat2.testcase \ + ceilfloat.testcase \ + ceil-int.testcase \ + ceilnull.testcase \ + cos00.testcase \ + cos0.testcase \ + cos-text.testcase \ + cot00.testcase \ + cot0.testcase \ + cotpi2.testcase \ + cot-text.testcase \ + degrees45.testcase \ + degrees.testcase \ + degreestext.testcase \ + exp00.testcase \ + exp0.testcase \ + exp10.testcase \ + exp1.testcase \ + expneg.testcase \ + exptext.testcase \ + floor32.testcase \ + floorint.testcase \ + floornull.testcase \ + log10-0.0.testcase \ + log10-100.0.testcase \ + log10-100.testcase \ + log10-text.testcase \ + log2-0.0.testcase \ + log2-0.testcase \ + log2-4.0.testcase \ + log2-4.testcase \ + log2-text.testcase \ + logn00.testcase \ + logn0.testcase \ + logn10.testcase \ + logn1.testcase \ + logn2-01.testcase \ + logn2-02.testcase \ + logn2-2.2.testcase \ + logn2-4.2int.testcase \ + logn2-4.2.testcase \ + logn2-text2.testcase \ + logn2-text3.testcase \ + logn2-text4.testcase \ + logn2-text.testcase \ + logn-text.testcase \ + pi.testcase \ + pow00-1.testcase \ + pow00-2.testcase \ + pow00double.testcase \ + pow00.testcase \ + pow-badarg1.testcase \ + pow-badarg2.testcase \ + pow-edom.testcase \ + pow-fp.testcase \ + rad0.testcase \ + radpi.testcase \ + rad-text.testcase \ + sign00.testcase \ + sign01.testcase \ + sign0.testcase \ + sign10.testcase \ + signeg2int.testcase \ + signeg2.testcase \ + signeg.testcase \ + signtext.testcase \ + sin00.testcase \ + sin0.testcase \ + sin-pi2.testcase \ + sinpi2.testcase \ + sin-pi.testcase \ + sinpi.testcase \ + sin-text.testcase \ + sqrt00.testcase \ + sqrt0.testcase \ + sqrt-10.testcase \ + sqrt-1.testcase \ + sqrt-640.testcase \ + sqrt-64.testcase \ + sqrt-text.testcase \ + stddev.testcase \ + tan00.testcase \ + tan0.testcase \ + tanpi4.testcase \ + tan-pi.testcase \ + tanpi.testcase \ + tan-text.testcase \ + variance.testcase diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.in b/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.in new file mode 100644 index 0000000..d396428 --- /dev/null +++ b/src/spatialite/test/sql_stmt_mathsql_tests/Makefile.in @@ -0,0 +1,538 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_mathsql_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = acos10.testcase \ + acos20.testcase \ + acos2.testcase \ + acos.testcase \ + acos-text.testcase \ + asin10.testcase \ + asin1.testcase \ + asin20.testcase \ + asin2.testcase \ + asin-text.testcase \ + atan00.testcase \ + atan0.testcase \ + atan-text.testcase \ + ceilfloat2.testcase \ + ceilfloat.testcase \ + ceil-int.testcase \ + ceilnull.testcase \ + cos00.testcase \ + cos0.testcase \ + cos-text.testcase \ + cot00.testcase \ + cot0.testcase \ + cotpi2.testcase \ + cot-text.testcase \ + degrees45.testcase \ + degrees.testcase \ + degreestext.testcase \ + exp00.testcase \ + exp0.testcase \ + exp10.testcase \ + exp1.testcase \ + expneg.testcase \ + exptext.testcase \ + floor32.testcase \ + floorint.testcase \ + floornull.testcase \ + log10-0.0.testcase \ + log10-100.0.testcase \ + log10-100.testcase \ + log10-text.testcase \ + log2-0.0.testcase \ + log2-0.testcase \ + log2-4.0.testcase \ + log2-4.testcase \ + log2-text.testcase \ + logn00.testcase \ + logn0.testcase \ + logn10.testcase \ + logn1.testcase \ + logn2-01.testcase \ + logn2-02.testcase \ + logn2-2.2.testcase \ + logn2-4.2int.testcase \ + logn2-4.2.testcase \ + logn2-text2.testcase \ + logn2-text3.testcase \ + logn2-text4.testcase \ + logn2-text.testcase \ + logn-text.testcase \ + pi.testcase \ + pow00-1.testcase \ + pow00-2.testcase \ + pow00double.testcase \ + pow00.testcase \ + pow-badarg1.testcase \ + pow-badarg2.testcase \ + pow-edom.testcase \ + pow-fp.testcase \ + rad0.testcase \ + radpi.testcase \ + rad-text.testcase \ + sign00.testcase \ + sign01.testcase \ + sign0.testcase \ + sign10.testcase \ + signeg2int.testcase \ + signeg2.testcase \ + signeg.testcase \ + signtext.testcase \ + sin00.testcase \ + sin0.testcase \ + sin-pi2.testcase \ + sinpi2.testcase \ + sin-pi.testcase \ + sinpi.testcase \ + sin-text.testcase \ + sqrt00.testcase \ + sqrt0.testcase \ + sqrt-10.testcase \ + sqrt-1.testcase \ + sqrt-640.testcase \ + sqrt-64.testcase \ + sqrt-text.testcase \ + stddev.testcase \ + tan00.testcase \ + tan0.testcase \ + tanpi4.testcase \ + tan-pi.testcase \ + tanpi.testcase \ + tan-text.testcase \ + variance.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round-29.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round-29.testcase deleted file mode 100644 index bfdd3be..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round-29.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(-2.9) -:memory: -SELECT round(-2.9); # the SQL to run -1 # rows -1 # column -round(-2.9) # this is the header row --3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round-31.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round-31.testcase deleted file mode 100644 index 9960065..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round-31.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(-3.1) -:memory: -SELECT round(-3.1); # the SQL to run -1 # rows -1 # column -round(-3.1) # this is the header row --3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round-text.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round-text.testcase deleted file mode 100644 index 9962b01..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round-text.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(text) -:memory: -SELECT round("text"); # the SQL to run -1 # rows -1 # column -round("text") # this is the header row -(NULL) # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round0.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round0.testcase deleted file mode 100644 index bfe58db..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round0.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(0) -:memory: -SELECT round(0); # the SQL to run -1 # rows -1 # column -round(0) # this is the header row -0.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round29.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round29.testcase deleted file mode 100644 index 8c060bb..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round29.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(2.9) -:memory: -SELECT round(2.9); # the SQL to run -1 # rows -1 # column -round(2.9) # this is the header row -3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round3.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round3.testcase deleted file mode 100644 index f6e8eb5..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round3.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(3) -:memory: -SELECT round(3); # the SQL to run -1 # rows -1 # column -round(3) # this is the header row -3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round30.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round30.testcase deleted file mode 100644 index 2bdad47..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round30.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(3.0) -:memory: -SELECT round(3.0); # the SQL to run -1 # rows -1 # column -round(3.0) # this is the header row -3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_mathsql_tests/round31.testcase b/src/spatialite/test/sql_stmt_mathsql_tests/round31.testcase deleted file mode 100644 index 561d151..0000000 --- a/src/spatialite/test/sql_stmt_mathsql_tests/round31.testcase +++ /dev/null @@ -1,7 +0,0 @@ -round(3.1) -:memory: -SELECT round(3.1); # the SQL to run -1 # rows -1 # column -round(3.1) # this is the header row -3.0 # this is really the result \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_proj_tests/Makefile.am b/src/spatialite/test/sql_stmt_proj_tests/Makefile.am new file mode 100644 index 0000000..e47f83a --- /dev/null +++ b/src/spatialite/test/sql_stmt_proj_tests/Makefile.am @@ -0,0 +1,72 @@ + +EXTRA_DIST = askml10.testcase \ + askml11.testcase \ + askml1.testcase \ + askml2.testcase \ + askml3.testcase \ + askml4.testcase \ + askml5.testcase \ + askml6.testcase \ + askml7.testcase \ + askml8.testcase \ + askml9.testcase \ + fromgml42.testcase \ + output10.testcase \ + output11.testcase \ + output12.testcase \ + output13.testcase \ + output14.testcase \ + output15.testcase \ + output16.testcase \ + output17.testcase \ + output18.testcase \ + output19.testcase \ + output1.testcase \ + output20.testcase \ + output21.testcase \ + output22.testcase \ + output23.testcase \ + output24.testcase \ + output25.testcase \ + output26.testcase \ + output27.testcase \ + output28.testcase \ + output29.testcase \ + output2.testcase \ + output30.testcase \ + output31.testcase \ + output32.testcase \ + output33.testcase \ + output34.testcase \ + output35.testcase \ + output36.testcase \ + output37.testcase \ + output38.testcase \ + output3.testcase \ + output4.testcase \ + output5.testcase \ + output6.testcase \ + output7.testcase \ + output8.testcase \ + output9.testcase \ + transform10.testcase \ + transform11.testcase \ + transform12.testcase \ + transform13.testcase \ + transform14.testcase \ + transform15.testcase \ + transform16.testcase \ + transform17.testcase \ + transform18.testcase \ + transform19.testcase \ + transform1.testcase \ + transform20.testcase \ + transform21.testcase \ + transform2.testcase \ + transform3.testcase \ + transform4.testcase \ + transform5.testcase \ + transform6.testcase \ + transform7.testcase \ + transform8.testcase \ + transform9.testcase diff --git a/src/spatialite/test/sql_stmt_proj_tests/Makefile.in b/src/spatialite/test/sql_stmt_proj_tests/Makefile.in new file mode 100644 index 0000000..aae1b09 --- /dev/null +++ b/src/spatialite/test/sql_stmt_proj_tests/Makefile.in @@ -0,0 +1,508 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_proj_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = askml10.testcase \ + askml11.testcase \ + askml1.testcase \ + askml2.testcase \ + askml3.testcase \ + askml4.testcase \ + askml5.testcase \ + askml6.testcase \ + askml7.testcase \ + askml8.testcase \ + askml9.testcase \ + fromgml42.testcase \ + output10.testcase \ + output11.testcase \ + output12.testcase \ + output13.testcase \ + output14.testcase \ + output15.testcase \ + output16.testcase \ + output17.testcase \ + output18.testcase \ + output19.testcase \ + output1.testcase \ + output20.testcase \ + output21.testcase \ + output22.testcase \ + output23.testcase \ + output24.testcase \ + output25.testcase \ + output26.testcase \ + output27.testcase \ + output28.testcase \ + output29.testcase \ + output2.testcase \ + output30.testcase \ + output31.testcase \ + output32.testcase \ + output33.testcase \ + output34.testcase \ + output35.testcase \ + output36.testcase \ + output37.testcase \ + output38.testcase \ + output3.testcase \ + output4.testcase \ + output5.testcase \ + output6.testcase \ + output7.testcase \ + output8.testcase \ + output9.testcase \ + transform10.testcase \ + transform11.testcase \ + transform12.testcase \ + transform13.testcase \ + transform14.testcase \ + transform15.testcase \ + transform16.testcase \ + transform17.testcase \ + transform18.testcase \ + transform19.testcase \ + transform1.testcase \ + transform20.testcase \ + transform21.testcase \ + transform2.testcase \ + transform3.testcase \ + transform4.testcase \ + transform5.testcase \ + transform6.testcase \ + transform7.testcase \ + transform8.testcase \ + transform9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_proj_tests/output10.testcase b/src/spatialite/test/sql_stmt_proj_tests/output10.testcase index 70dca37..3636307 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output10.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output10.testcase @@ -16,4 +16,4 @@ POINT(-1 1) {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINT(-1 1) -535249443D343332363B303130313030303030303030303030303030303030304630424630303030303030303030303046303346 +3031303130303030323045363130303030303030303030303030303030304630424630303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output11.testcase b/src/spatialite/test/sql_stmt_proj_tests/output11.testcase index 8733c3c..23c3aa1 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output11.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output11.testcase @@ -16,4 +16,4 @@ POINT Z(-1 1 2.3) {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3) -535249443D343332363B30313031303030303830303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 +303130313030303041304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output12.testcase b/src/spatialite/test/sql_stmt_proj_tests/output12.testcase index 044e837..0932d5a 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output12.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output12.testcase @@ -16,4 +16,4 @@ POINT M(-1 1 2.3) {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINTM(-1 1 2.3) -535249443D343332363B30313031303030303430303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 +303130313030303036304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output13.testcase b/src/spatialite/test/sql_stmt_proj_tests/output13.testcase index 959886e..2930501 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output13.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output13.testcase @@ -16,4 +16,4 @@ POINT ZM(-1 1 2.3 4) {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3 4) -535249443D343332363B3031303130303030433030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430 +30313031303030304530453631303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output14.testcase b/src/spatialite/test/sql_stmt_proj_tests/output14.testcase index 03a3e25..1331024 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output14.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output14.testcase @@ -16,4 +16,4 @@ LINESTRING Z(-1 1 2.3, 1 -2 4.6) {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3,1 -2 4.6) -535249443D343332363B303130323030303038303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 +3031303230303030413045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output15.testcase b/src/spatialite/test/sql_stmt_proj_tests/output15.testcase index 300e336..351017d 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output15.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output15.testcase @@ -16,4 +16,4 @@ LINESTRING M(-1 1 2.3, 1 -2 4.6) {"type":"LineString","coordinates":[[-1,1],[1,-2]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRINGM(-1 1 2.3,1 -2 4.6) -535249443D343332363B303130323030303034303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 +3031303230303030363045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output16.testcase b/src/spatialite/test/sql_stmt_proj_tests/output16.testcase index 7a3f52f..7c21316 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output16.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output16.testcase @@ -16,4 +16,4 @@ LINESTRING ZM(-1 1 2.3 -1, 1 -2 4.6 -6) {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3 -1,1 -2 4.6 -6):0 -535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330 +30313032303030304530453631303030303030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output17.testcase b/src/spatialite/test/sql_stmt_proj_tests/output17.testcase index 565574d..81c5a7f 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output17.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output17.testcase @@ -16,4 +16,4 @@ POLYGON Z((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) -535249443D343332363B30313033303030303830303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 +303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output18.testcase b/src/spatialite/test/sql_stmt_proj_tests/output18.testcase index f9d888b..24fbab6 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output18.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output18.testcase @@ -16,4 +16,4 @@ POLYGON M((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4 {"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-1,1],[1,-2],[0,-2],[-1,1]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)):0 SRID=4326;POLYGONM((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) -535249443D343332363B30313033303030303430303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 +303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output19.testcase b/src/spatialite/test/sql_stmt_proj_tests/output19.testcase index 4ed52b5..4fce0f1 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output19.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output19.testcase @@ -16,4 +16,4 @@ POLYGON ZM((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4), (-1 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1 4,-10 10 2 5,10 10 3 6.8,10 -10 4 5,-10 -10 1 4),(-1 1 2.3 1,1 -2 4.6 2,0 -2 1.6 3.333,-1 1 2.3 1)) -535249443D343332363B30313033303030304330303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303030343030303030303030303030303031343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430333333333333333333333333314234303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030304630334630303030303030303030303031303430303430303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030304330394139393939393939393939463933463434384236434537464241393041343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346 +303130333030303045304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303030343030303030303030303030303031343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430333333333333333333333333314234303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030304630334630303030303030303030303031303430303430303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030304330394139393939393939393939463933463434384236434537464241393041343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output20.testcase b/src/spatialite/test/sql_stmt_proj_tests/output20.testcase index a756b0f..f50ae3d 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output20.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output20.testcase @@ -16,4 +16,4 @@ MULTIPOINT ZM(-1 1 2.3 4, 1 2 4.1 1.9) {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9) -535249443D343332363B30313034303030304330303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346 +303130343030303045304536313030303030303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output21.testcase b/src/spatialite/test/sql_stmt_proj_tests/output21.testcase index ba7b063..9ebca85 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output21.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output21.testcase @@ -16,4 +16,4 @@ MULTIPOINT Z(-1 1 2.3, 1 2 4.1) {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1) -535249443D343332363B3031303430303030383030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 +30313034303030304130453631303030303030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output22.testcase b/src/spatialite/test/sql_stmt_proj_tests/output22.testcase index a0f08ee..b6d6e79 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output22.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output22.testcase @@ -16,4 +16,4 @@ MULTIPOINT M(-1 1 2.3, 1 2 4.1) {"type":"MultiPoint","coordinates":[[-1,1],[1,2]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1) -535249443D343332363B3031303430303030343030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 +30313034303030303630453631303030303030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output23.testcase b/src/spatialite/test/sql_stmt_proj_tests/output23.testcase index a3abfc7..acb3810 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output23.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output23.testcase @@ -16,4 +16,4 @@ MULTILINESTRING((-1 1, 2 3, 4 1), (0 2, 2 0, 0 0, 1 1)) {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) -535249443D343332363B3031303530303030303030323030303030303031303230303030303030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030463033463031303230303030303030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304630334630303030303030303030303046303346 \ No newline at end of file +30313035303030303230453631303030303030323030303030303031303230303030303030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030463033463031303230303030303030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304630334630303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output24.testcase b/src/spatialite/test/sql_stmt_proj_tests/output24.testcase index 7850800..b15dc8e 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output24.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output24.testcase @@ -16,4 +16,4 @@ MULTILINESTRING Z((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) -535249443D343332363B303130353030303038303032303030303030303130323030303038303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303038303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 +3031303530303030413045363130303030303032303030303030303130323030303038303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303038303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output25.testcase b/src/spatialite/test/sql_stmt_proj_tests/output25.testcase index 3eec2f5..b59f185 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output25.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output25.testcase @@ -16,4 +16,4 @@ MULTILINESTRING M((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRINGM((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) -535249443D343332363B303130353030303034303032303030303030303130323030303034303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303034303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 +3031303530303030363045363130303030303032303030303030303130323030303034303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303034303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output26.testcase b/src/spatialite/test/sql_stmt_proj_tests/output26.testcase index 0e5a68e..cdd5a5e 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output26.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output26.testcase @@ -16,4 +16,4 @@ MULTILINESTRING ZM((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1), (0 2 1 84, 2 0 1 26, 0 0 2 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9 1,2 3 8.4 3,4 1 9.4 1),(0 2 1 84,2 0 1 26,0 0 2 -2.1,1 1 3 0)) -535249443D343332363B30313035303030304330303230303030303030313032303030304330303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030303834303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303030303030303030303030304630334630313032303030304330303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303035353430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030334134303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034304344434343434343434343433030433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303030 +303130353030303045304536313030303030303230303030303030313032303030304330303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030303834303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303030303030303030303030304630334630313032303030304330303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303035353430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030334134303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034304344434343434343434343433030433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output27.testcase b/src/spatialite/test/sql_stmt_proj_tests/output27.testcase index 1d5b274..426ecd3 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output27.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output27.testcase @@ -16,4 +16,4 @@ MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)), ((-10 -10, -10 10, 10 10, 10 -10 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) -535249443D343332363B303130363030303030303032303030303030303130333030303030303031303030303030303530303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 +3031303630303030323045363130303030303032303030303030303130333030303030303031303030303030303530303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output28.testcase b/src/spatialite/test/sql_stmt_proj_tests/output28.testcase index 932b8ac..c992348 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output28.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output28.testcase @@ -16,4 +16,4 @@ MULTIPOLYGON Z(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) -535249443D343332363B3031303630303030383030323030303030303031303330303030383030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 \ No newline at end of file +30313036303030304130453631303030303030323030303030303031303330303030383030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output29.testcase b/src/spatialite/test/sql_stmt_proj_tests/output29.testcase index d50064d..ecf6f12 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output29.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output29.testcase @@ -16,4 +16,4 @@ MULTIPOLYGON M(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGONM(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) -535249443D343332363B3031303630303030343030323030303030303031303330303030343030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 +30313036303030303630453631303030303030323030303030303031303330303030343030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output30.testcase b/src/spatialite/test/sql_stmt_proj_tests/output30.testcase index bc1abae..30bab25 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output30.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output30.testcase @@ -16,4 +16,4 @@ MULTIPOLYGON ZM(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2 1,0 10 1.3 -2,0 0 1.1 5.8,0 10 1.3 3,10 10 1.2 1)),((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) -535249443D343332363B30313036303030304330303230303030303030313033303030304330303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030323434304344434343434343434343434634334630303030303030303030303030304330303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346333333333333333333333333313734303030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303038343030303030303030303030303032343430303030303030303030303030323434303333333333333333333333334633334630303030303030303030303046303346303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 +303130363030303045304536313030303030303230303030303030313033303030304330303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030323434304344434343434343434343434634334630303030303030303030303030304330303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346333333333333333333333333313734303030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303038343030303030303030303030303032343430303030303030303030303030323434303333333333333333333333334633334630303030303030303030303046303346303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output31.testcase b/src/spatialite/test/sql_stmt_proj_tests/output31.testcase index d4ee857..a49a029 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output31.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output31.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION ZM(POLYGON ZM((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0 {"type":"GeometryCollection","geometries":[{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) -535249443D343332363B303130373030303043303031303030303030303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 +3031303730303030453045363130303030303031303030303030303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output32.testcase b/src/spatialite/test/sql_stmt_proj_tests/output32.testcase index 7647811..44cfaaa 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output32.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output32.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION Z(POINT Z(1 2 3), POLYGON Z((-10 -10 4, -10 10 5, 10 10 6, 10 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,3]},{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) -535249443D343332363B30313037303030303830303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 +303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output33.testcase b/src/spatialite/test/sql_stmt_proj_tests/output33.testcase index 608912f..8cdedef 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output33.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output33.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION M(POINT M(1 2 3), POLYGON M((-10 -10 4, -10 10 5, 10 10 6, 10 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) -535249443D343332363B30313037303030303430303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 +303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output34.testcase b/src/spatialite/test/sql_stmt_proj_tests/output34.testcase index 37858a3..97316ec 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output34.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output34.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION(POINT(1 2), POLYGON((-10 -10, -10 10, 10 10, 10 -10, -10 -10) {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) -535249443D343332363B303130373030303030303032303030303030303130313030303030303030303030303030303030304630334630303030303030303030303030303430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 +3031303730303030323045363130303030303032303030303030303130313030303030303030303030303030303030304630334630303030303030303030303030303430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output35.testcase b/src/spatialite/test/sql_stmt_proj_tests/output35.testcase index 34007f4..be2d75b 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output35.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output35.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(2 3 101 11), LINESTRING ZM( {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"Point","coordinates":[2,3,101]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),POINT(2 3),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),POINT(2 3 101 11),LINESTRING(3 4 100 10,4 5 101 11)) -535249443D343332363B303130373030303043303033303030303030303130313030303043303030303030303030303030304630334630303030303030303030303030303430303030303030303030303030353934303030303030303030303030303234343030313031303030304330303030303030303030303030303034303030303030303030303030303038343030303030303030303030343035393430303030303030303030303030323634303031303230303030433030323030303030303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030353934303030303030303030303030303234343030303030303030303030303031303430303030303030303030303030313434303030303030303030303034303539343030303030303030303030303032363430 +3031303730303030453045363130303030303033303030303030303130313030303043303030303030303030303030304630334630303030303030303030303030303430303030303030303030303030353934303030303030303030303030303234343030313031303030304330303030303030303030303030303034303030303030303030303030303038343030303030303030303030343035393430303030303030303030303030323634303031303230303030433030323030303030303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030353934303030303030303030303030303234343030303030303030303030303031303430303030303030303030303030313434303030303030303030303034303539343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output36.testcase b/src/spatialite/test/sql_stmt_proj_tests/output36.testcase index 018ab33..b411e28 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output36.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output36.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION Z(POINT Z(1 2 100), LINESTRING Z(3 4 100, 4 5 101)) {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 100,4 5 101)) -535249443D343332363B30313037303030303830303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430 +303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430 diff --git a/src/spatialite/test/sql_stmt_proj_tests/output37.testcase b/src/spatialite/test/sql_stmt_proj_tests/output37.testcase index 29c5651..7a9f6af 100644 --- a/src/spatialite/test/sql_stmt_proj_tests/output37.testcase +++ b/src/spatialite/test/sql_stmt_proj_tests/output37.testcase @@ -16,4 +16,4 @@ GEOMETRYCOLLECTION M(POINT M(1 2 10), LINESTRING M(3 4 10, 4 5 11)) {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"LineString","coordinates":[[3,4],[4,5]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,4 5 11)) -535249443D343332363B30313037303030303430303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430 +303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430 diff --git a/src/spatialite/test/sql_stmt_security_tests/Makefile.am b/src/spatialite/test/sql_stmt_security_tests/Makefile.am new file mode 100644 index 0000000..e75ab94 --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/Makefile.am @@ -0,0 +1,15 @@ + +EXTRA_DIST = blobfromfile1.testcase \ + blobfromfile2.testcase \ + blobfromfile3.testcase \ + blobfromfile4.testcase \ + blobtofile1.testcase \ + blobtofile2.testcase \ + blobtofile3.testcase \ + blobtofile4.testcase \ + isXblob1.testcase \ + isXblob2.testcase \ + isXblob3.testcase \ + isXblob4.testcase \ + isXblob8.testcase \ + isXblob9.testcase diff --git a/src/spatialite/test/sql_stmt_security_tests/Makefile.in b/src/spatialite/test/sql_stmt_security_tests/Makefile.in new file mode 100644 index 0000000..4472dcf --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/Makefile.in @@ -0,0 +1,451 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_security_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = blobfromfile1.testcase \ + blobfromfile2.testcase \ + blobfromfile3.testcase \ + blobfromfile4.testcase \ + blobtofile1.testcase \ + blobtofile2.testcase \ + blobtofile3.testcase \ + blobtofile4.testcase \ + isXblob1.testcase \ + isXblob2.testcase \ + isXblob3.testcase \ + isXblob4.testcase \ + isXblob8.testcase \ + isXblob9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_security_tests/blobtofile1.testcase b/src/spatialite/test/sql_stmt_security_tests/blobtofile1.testcase new file mode 100644 index 0000000..5a98592 --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/blobtofile1.testcase @@ -0,0 +1,7 @@ +blobtofile - null payload +:memory: #use in-memory database +SELECT BlobToFile(null, 'abracadabra.outfile') +1 # rows (not including the header row) +1 # columns +BlobToFile(null, 'abracadabra.outfile') +0 diff --git a/src/spatialite/test/sql_stmt_security_tests/blobtofile2.testcase b/src/spatialite/test/sql_stmt_security_tests/blobtofile2.testcase new file mode 100644 index 0000000..e94156c --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/blobtofile2.testcase @@ -0,0 +1,7 @@ +blobtofile - non-Blob payload +:memory: #use in-memory database +SELECT BlobToFile('alpha', 'abracadabra.outfile') +1 # rows (not including the header row) +1 # columns +BlobToFile('alpha', 'abracadabra.outfile') +0 diff --git a/src/spatialite/test/sql_stmt_security_tests/blobtofile3.testcase b/src/spatialite/test/sql_stmt_security_tests/blobtofile3.testcase new file mode 100644 index 0000000..8b2fb32 --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/blobtofile3.testcase @@ -0,0 +1,7 @@ +blobtofile - ok +:memory: #use in-memory database +SELECT BlobToFile(zeroblob(100), 'abracadabra.outfile') +1 # rows (not including the header row) +1 # columns +BlobToFile(zeroblob(100), 'abracadabra.outfile') +1 diff --git a/src/spatialite/test/sql_stmt_security_tests/blobtofile4.testcase b/src/spatialite/test/sql_stmt_security_tests/blobtofile4.testcase new file mode 100644 index 0000000..8e56dfb --- /dev/null +++ b/src/spatialite/test/sql_stmt_security_tests/blobtofile4.testcase @@ -0,0 +1,7 @@ +blobtofile - non-text path +:memory: #use in-memory database +SELECT BlobToFile(zeroblob(100), 1) +1 # rows (not including the header row) +1 # columns +BlobToFile(zeroblob(100), 1) +0 diff --git a/src/spatialite/test/sql_stmt_tests/Makefile.am b/src/spatialite/test/sql_stmt_tests/Makefile.am new file mode 100644 index 0000000..7806e31 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/Makefile.am @@ -0,0 +1,1912 @@ + +EXTRA_DIST = addpoint10.testcase \ + addpoint11.testcase \ + addpoint12.testcase \ + addpoint13.testcase \ + addpoint14.testcase \ + addpoint15.testcase \ + addpoint16.testcase \ + addpoint17.testcase \ + addpoint18.testcase \ + addpoint19.testcase \ + addpoint1.testcase \ + addpoint20.testcase \ + addpoint21.testcase \ + addpoint22.testcase \ + addpoint23.testcase \ + addpoint24.testcase \ + addpoint25.testcase \ + addpoint26.testcase \ + addpoint27.testcase \ + addpoint28.testcase \ + addpoint2.testcase \ + addpoint3.testcase \ + addpoint4.testcase \ + addpoint5.testcase \ + addpoint6.testcase \ + addpoint7.testcase \ + addpoint8.testcase \ + addpoint9.testcase \ + asbinary10.testcase \ + asbinary11.testcase \ + asbinary12.testcase \ + asbinary13.testcase \ + asbinary14.testcase \ + asbinary15.testcase \ + asbinary16.testcase \ + asbinary17.testcase \ + asbinary1.testcase \ + asbinary2.testcase \ + asbinary3.testcase \ + asbinary4.testcase \ + asbinary5.testcase \ + asbinary6.testcase \ + asbinary7.testcase \ + asbinary8.testcase \ + asbinary9.testcase \ + asewkb10.testcase \ + asewkb11.testcase \ + asewkb12.testcase \ + asewkb13.testcase \ + asewkb14.testcase \ + asewkb15.testcase \ + asewkb16.testcase \ + asewkb17.testcase \ + asewkb1.testcase \ + asewkb2.testcase \ + asewkb3.testcase \ + asewkb4.testcase \ + asewkb5.testcase \ + asewkb6.testcase \ + asewkb7.testcase \ + asewkb8.testcase \ + asewkb9.testcase \ + asfgf1.testcase \ + asfgf2.testcase \ + asfgf3.testcase \ + asfgf4.testcase \ + asfgf5.testcase \ + asfgf6.testcase \ + asfgf7.testcase \ + asfgf8.testcase \ + asfgf9.testcase \ + asgeojson1.testcase \ + asgeojson2.testcase \ + asgeojson3.testcase \ + asgeojson4.testcase \ + asgeojson5.testcase \ + asgeojson6.testcase \ + asgeojson7.testcase \ + asgeojson8.testcase \ + asgml10.testcase \ + asgml11.testcase \ + asgml1.testcase \ + asgml2.testcase \ + asgml3.testcase \ + asgml4.testcase \ + asgml5.testcase \ + asgml6.testcase \ + asgml7.testcase \ + asgml8.testcase \ + asgml9.testcase \ + assvg17.testcase \ + assvg18.testcase \ + assvg19.testcase \ + assvg1.testcase \ + assvg20.testcase \ + assvg21.testcase \ + assvg22.testcase \ + assvg23.testcase \ + assvg24.testcase \ + assvg25.testcase \ + assvg26.testcase \ + assvg2.testcase \ + assvg3.testcase \ + assvg4.testcase \ + assvg5.testcase \ + assvg6.testcase \ + assvg7.testcase \ + assvg8.testcase \ + assvg9.testcase \ + aswkt-text.testcase \ + badEWKT1.testcase \ + badEWKT2.testcase \ + badEWKT3.testcase \ + badEWKT4.testcase \ + badEWKT5.testcase \ + badEWKT6.testcase \ + badEWKT7.testcase \ + badEWKT8.testcase \ + badGeoJSON1.testcase \ + badGeoJSON2.testcase \ + badGeoJSON3.testcase \ + badGeoJSON4.testcase \ + badGeoJSON5.testcase \ + badGeoJSON6.testcase \ + badGeoJSON7.testcase \ + badGML1.testcase \ + badGML2.testcase \ + badGML3.testcase \ + badGML4.testcase \ + badGML5.testcase \ + badGML6.testcase \ + badGML7.testcase \ + badKML1.testcase \ + badKML2.testcase \ + badKML3.testcase \ + badKML4.testcase \ + badKML5.testcase \ + badKML6.testcase \ + badKML7.testcase \ + badwkt1.testcase \ + badwkt2.testcase \ + badwkt3.testcase \ + badwkt4.testcase \ + badwkt5.testcase \ + badwkt6.testcase \ + badwkt7.testcase \ + badwkt8.testcase \ + badwkt9.testcase \ + buildcirclembr10.testcase \ + buildcirclembr11.testcase \ + buildcirclembr12.testcase \ + buildcirclembr1.testcase \ + buildcirclembr2.testcase \ + buildcirclembr3.testcase \ + buildcirclembr4.testcase \ + buildcirclembr5.testcase \ + buildcirclembr6.testcase \ + buildcirclembr7.testcase \ + buildcirclembr8.testcase \ + buildcirclembr9.testcase \ + buildmbr10.testcase \ + buildmbr11.testcase \ + buildmbr12.testcase \ + buildmbr13.testcase \ + buildmbr14.testcase \ + buildmbr1.testcase \ + buildmbr2.testcase \ + buildmbr3.testcase \ + buildmbr4.testcase \ + buildmbr5.testcase \ + buildmbr6.testcase \ + buildmbr7.testcase \ + buildmbr8.testcase \ + buildmbr9.testcase \ + casttoblob10.testcase \ + casttoblob12.testcase \ + casttoblob13.testcase \ + casttoblob14.testcase \ + casttoblob1.testcase \ + casttoblob2.testcase \ + casttoblob3.testcase \ + casttoblob4.testcase \ + casttoblob5.testcase \ + casttoblob6.testcase \ + casttoblob7.testcase \ + casttoblob8.testcase \ + casttoblob9.testcase \ + casttodouble1.testcase \ + casttodouble2.testcase \ + casttodouble3.testcase \ + casttodouble4.testcase \ + casttodouble5.testcase \ + casttodouble6.testcase \ + casttodouble7.testcase \ + casttogeometrycollection2.testcase \ + casttogeometrycollection3.testcase \ + casttogeometrycollection4.testcase \ + casttogeometrycollection5.testcase \ + casttogeometrycollection6.testcase \ + casttogeometrycollection.testcase \ + casttoint1.testcase \ + casttoint2.testcase \ + casttoint3.testcase \ + casttoint4.testcase \ + casttoint5.testcase \ + casttoint6.testcase \ + casttoint7.testcase \ + casttolinestring1.testcase \ + casttolinestring2.testcase \ + casttolinestring3.testcase \ + casttolinestring4.testcase \ + casttolinestring5.testcase \ + casttolinestring6.testcase \ + casttolinestring7.testcase \ + casttolinestring8.testcase \ + casttomulti11.testcase \ + casttomulti1.testcase \ + casttomulti2.testcase \ + casttomulti3.testcase \ + casttomulti4.testcase \ + casttomulti5.testcase \ + casttomulti6.testcase \ + casttomulti7.testcase \ + casttomulti8.testcase \ + casttomultilinestring1.testcase \ + casttomultilinestring2.testcase \ + casttomultilinestring3.testcase \ + casttomultilinestring4.testcase \ + casttomultilinestring5.testcase \ + casttomultilinestring6.testcase \ + casttomultilinestring7.testcase \ + casttomultipoint1.testcase \ + casttomultipoint2.testcase \ + casttomultipoint3.testcase \ + casttomultipoint4.testcase \ + casttomultipoint5.testcase \ + casttomultipoint6.testcase \ + casttomultipoint7.testcase \ + casttomultipoint8.testcase \ + casttomultipoint9.testcase \ + casttomultipolygon1.testcase \ + casttomultipolygon2.testcase \ + casttomultipolygon3.testcase \ + casttomultipolygon4.testcase \ + casttomultipolygon5.testcase \ + casttopoint1.testcase \ + casttopoint2.testcase \ + casttopoint3.testcase \ + casttopoint4.testcase \ + casttopoint5.testcase \ + casttopoint6.testcase \ + casttopoint7.testcase \ + casttopoint8.testcase \ + casttopoly1.testcase \ + casttopoly2.testcase \ + casttopoly3.testcase \ + casttopoly4.testcase \ + casttopoly5.testcase \ + casttopoly6.testcase \ + casttopoly7.testcase \ + casttopoly8.testcase \ + casttosingle10.testcase \ + casttosingle12.testcase \ + casttosingle1.testcase \ + casttosingle2.testcase \ + casttosingle3.testcase \ + casttosingle4.testcase \ + casttosingle5.testcase \ + casttosingle6.testcase \ + casttosingle7.testcase \ + casttosingle8.testcase \ + casttosingle9.testcase \ + casttotext10.testcase \ + casttotext11.testcase \ + casttotext12.testcase \ + casttotext13.testcase \ + casttotext14.testcase \ + casttotext15.testcase \ + casttotext1.testcase \ + casttotext2.testcase \ + casttotext3.testcase \ + casttotext4.testcase \ + casttotext5.testcase \ + casttotext6.testcase \ + casttotext7.testcase \ + casttotext8.testcase \ + casttotext9.testcase \ + casttoxy1.testcase \ + casttoxy2.testcase \ + casttoxy3.testcase \ + casttoxym1.testcase \ + casttoxym2.testcase \ + casttoxym3.testcase \ + casttoxym4.testcase \ + casttoxym5.testcase \ + casttoxym6.testcase \ + casttoxyz1.testcase \ + casttoxyz2.testcase \ + casttoxyz3.testcase \ + casttoxyz4.testcase \ + casttoxyz5.testcase \ + casttoxyz6.testcase \ + casttoxyzm1.testcase \ + casttoxyzm2.testcase \ + casttoxyzm3.testcase \ + casttoxyzm4.testcase \ + casttoxyzm5.testcase \ + casttoxyzm6.testcase \ + checkspatialmetadata1.testcase \ + checkspatialmetadata2.testcase \ + checkspatialmetadata3.testcase \ + checkspatialmetadata4.testcase \ + checkspatialmetadata5.testcase \ + ch_m.testcase \ + cm_m.testcase \ + collect10.testcase \ + collect11.testcase \ + collect12.testcase \ + collect13.testcase \ + collect14.testcase \ + collect15.testcase \ + collect16.testcase \ + collect17.testcase \ + collect18.testcase \ + collect19.testcase \ + collect1.testcase \ + collect20.testcase \ + collect21.testcase \ + collect23.testcase \ + collect24.testcase \ + collect25.testcase \ + collect26.testcase \ + collect27.testcase \ + collect28.testcase \ + collect29.testcase \ + collect2.testcase \ + collect30.testcase \ + collect31.testcase \ + collect32.testcase \ + collect33.testcase \ + collect34.testcase \ + collect35.testcase \ + collect36.testcase \ + collect37.testcase \ + collect38.testcase \ + collect39.testcase \ + collect3.testcase \ + collect40.testcase \ + collect41.testcase \ + collect42.testcase \ + collect43.testcase \ + collect44.testcase \ + collect45.testcase \ + collect46.testcase \ + collect47.testcase \ + collect48.testcase \ + collect49.testcase \ + collect4.testcase \ + collect50.testcase \ + collect51.testcase \ + collect52.testcase \ + collect53.testcase \ + collect54.testcase \ + collect55.testcase \ + collect56.testcase \ + collect57.testcase \ + collect58.testcase \ + collect59.testcase \ + collect5.testcase \ + collect6.testcase \ + collect7.testcase \ + collect8.testcase \ + collect9.testcase \ + collectextract10.testcase \ + collectextract11.testcase \ + collectextract12.testcase \ + collectextract13.testcase \ + collectextract14.testcase \ + collectextract15.testcase \ + collectextract16.testcase \ + collectextract17.testcase \ + collectextract18.testcase \ + collectextract19.testcase \ + collectextract1.testcase \ + collectextract20.testcase \ + collectextract21.testcase \ + collectextract22.testcase \ + collectextract23.testcase \ + collectextract24.testcase \ + collectextract25.testcase \ + collectextract2.testcase \ + collectextract3.testcase \ + collectextract4.testcase \ + collectextract5.testcase \ + collectextract6.testcase \ + collectextract7.testcase \ + collectextract8.testcase \ + collectextract9.testcase \ + compressgeometry10.testcase \ + compressgeometry11.testcase \ + compressgeometry12.testcase \ + compressgeometry13.testcase \ + compressgeometry14.testcase \ + compressgeometry15.testcase \ + compressgeometry17.testcase \ + compressgeometry18.testcase \ + compressgeometry19.testcase \ + compressgeometry1.testcase \ + compressgeometry20.testcase \ + compressgeometry21.testcase \ + compressgeometry22.testcase \ + compressgeometry23.testcase \ + compressgeometry24.testcase \ + compressgeometry25.testcase \ + compressgeometry26.testcase \ + compressgeometry27.testcase \ + compressgeometry28.testcase \ + compressgeometry29.testcase \ + compressgeometry2.testcase \ + compressgeometry30.testcase \ + compressgeometry31.testcase \ + compressgeometry32.testcase \ + compressgeometry33.testcase \ + compressgeometry34.testcase \ + compressgeometry35.testcase \ + compressgeometry36.testcase \ + compressgeometry37.testcase \ + compressgeometry38.testcase \ + compressgeometry39.testcase \ + compressgeometry3.testcase \ + compressgeometry40.testcase \ + compressgeometry41.testcase \ + compressgeometry42.testcase \ + compressgeometry43.testcase \ + compressgeometry44.testcase \ + compressgeometry45.testcase \ + compressgeometry46.testcase \ + compressgeometry47.testcase \ + compressgeometry48.testcase \ + compressgeometry49.testcase \ + compressgeometry4.testcase \ + compressgeometry50.testcase \ + compressgeometry51.testcase \ + compressgeometry52.testcase \ + compressgeometry53.testcase \ + compressgeometry54.testcase \ + compressgeometry55.testcase \ + compressgeometry56.testcase \ + compressgeometry57.testcase \ + compressgeometry58.testcase \ + compressgeometry59.testcase \ + compressgeometry5.testcase \ + compressgeometry60.testcase \ + compressgeometry61.testcase \ + compressgeometry62.testcase \ + compressgeometry63.testcase \ + compressgeometry64.testcase \ + compressgeometry65.testcase \ + compressgeometry66.testcase \ + compressgeometry67.testcase \ + compressgeometry68.testcase \ + compressgeometry69.testcase \ + compressgeometry6.testcase \ + compressgeometry7.testcase \ + compressgeometry8.testcase \ + compressgeometry9.testcase \ + createrastercoverages.testcase \ + createuuid1.testcase \ + dimension1.testcase \ + dimension2.testcase \ + dimension3.testcase \ + dimension4.testcase \ + dimension5.testcase \ + dimension6.testcase \ + dimension7.testcase \ + dimension8.testcase \ + dissolve10.testcase \ + dissolve11.testcase \ + dissolve12.testcase \ + dissolve13.testcase \ + dissolve14.testcase \ + dissolve15.testcase \ + dissolve16.testcase \ + dissolve17.testcase \ + dissolve18.testcase \ + dissolve19.testcase \ + dissolve1.testcase \ + dissolve20.testcase \ + dissolve21.testcase \ + dissolve22.testcase \ + dissolve23.testcase \ + dissolve24.testcase \ + dissolve25.testcase \ + dissolve26.testcase \ + dissolve27.testcase \ + dissolve28.testcase \ + dissolve29.testcase \ + dissolve2.testcase \ + dissolve30.testcase \ + dissolve3.testcase \ + dissolve4.testcase \ + dissolve5.testcase \ + dissolve6.testcase \ + dissolve7.testcase \ + dissolve8.testcase \ + dissolve9.testcase \ + dm_m.testcase \ + DSC_1467.JPG \ + DSCN0042.JPG \ + emptyfile.txt \ + endpoint1.testcase \ + envelope1.testcase \ + envelope2.testcase \ + envelope3.testcase \ + envelope4.testcase \ + envelope5.testcase \ + envelope6.testcase \ + envelope7.testcase \ + envintersects10.testcase \ + envintersects1.testcase \ + envintersects2.testcase \ + envintersects3.testcase \ + envintersects4.testcase \ + envintersects5.testcase \ + envintersects6.testcase \ + envintersects7.testcase \ + envintersects8.testcase \ + envintersects9.testcase \ + ewkb10.testcase \ + ewkb11.testcase \ + ewkb12.testcase \ + ewkb1.testcase \ + ewkb2.testcase \ + ewkb3.testcase \ + ewkb4.testcase \ + ewkb5.testcase \ + ewkb6.testcase \ + ewkb7.testcase \ + ewkb8.testcase \ + ewkb9.testcase \ + expand1.testcase \ + expand2.testcase \ + expand3.testcase \ + expand4.testcase \ + expand5.testcase \ + expand6.testcase \ + expand7.testcase \ + extent1.testcase \ + extractmultilinestring1.testcase \ + extractmultilinestring2.testcase \ + extractmultilinestring3.testcase \ + extractmultipoint1.testcase \ + extractmultipoint2.testcase \ + extractmultipoint3.testcase \ + extractmultipolygon1.testcase \ + extractmultipolygon2.testcase \ + extractmultipolygon3.testcase \ + fath_m.testcase \ + fdo_ogr1.testcase \ + fdo_ogr2.testcase \ + fdo-wkb.sqlite_RO \ + forcenull10.testcase \ + forcenull11.testcase \ + forcenull12.testcase \ + forcenull13.testcase \ + forcenull14.testcase \ + forcenull15.testcase \ + forcenull16.testcase \ + forcenull17.testcase \ + forcenull18.testcase \ + forcenull19.testcase \ + forcenull1.testcase \ + forcenull20.testcase \ + forcenull21.testcase \ + forcenull22.testcase \ + forcenull23.testcase \ + forcenull24.testcase \ + forcenull25.testcase \ + forcenull26.testcase \ + forcenull27.testcase \ + forcenull28.testcase \ + forcenull2.testcase \ + forcenull3.testcase \ + forcenull4.testcase \ + forcenull5.testcase \ + forcenull6.testcase \ + forcenull7.testcase \ + forcenull8.testcase \ + forcenull9.testcase \ + fromewkt10.testcase \ + fromewkt11.testcase \ + fromewkt12.testcase \ + fromewkt13.testcase \ + fromewkt14.testcase \ + fromewkt15.testcase \ + fromewkt16.testcase \ + fromewkt17.testcase \ + fromewkt18.testcase \ + fromewkt19.testcase \ + fromewkt1.testcase \ + fromewkt20.testcase \ + fromewkt22.testcase \ + fromewkt23.testcase \ + fromewkt24.testcase \ + fromewkt25.testcase \ + fromewkt26.testcase \ + fromewkt27.testcase \ + fromewkt28.testcase \ + fromewkt29.testcase \ + fromewkt2.testcase \ + fromewkt30.testcase \ + fromewkt31.testcase \ + fromewkt32.testcase \ + fromewkt33.testcase \ + fromewkt34.testcase \ + fromewkt35.testcase \ + fromewkt36.testcase \ + fromewkt37.testcase \ + fromewkt38.testcase \ + fromewkt39.testcase \ + fromewkt3.testcase \ + fromewkt4.testcase \ + fromewkt5.testcase \ + fromewkt6.testcase \ + fromewkt7.testcase \ + fromewkt8.testcase \ + fromewkt9.testcase \ + fromgeojson10.testcase \ + fromgeojson11.testcase \ + fromgeojson12.testcase \ + fromgeojson13.testcase \ + fromgeojson14.testcase \ + fromgeojson15.testcase \ + fromgeojson16.testcase \ + fromgeojson17.testcase \ + fromgeojson18.testcase \ + fromgeojson19.testcase \ + fromgeojson1.testcase \ + fromgeojson20.testcase \ + fromgeojson21.testcase \ + fromgeojson22.testcase \ + fromgeojson23.testcase \ + fromgeojson24.testcase \ + fromgeojson25.testcase \ + fromgeojson26.testcase \ + fromgeojson27.testcase \ + fromgeojson28.testcase \ + fromgeojson29.testcase \ + fromgeojson2.testcase \ + fromgeojson30.testcase \ + fromgeojson31.testcase \ + fromgeojson32.testcase \ + fromgeojson3.testcase \ + fromgeojson4.testcase \ + fromgeojson5.testcase \ + fromgeojson6.testcase \ + fromgeojson7.testcase \ + fromgeojson8.testcase \ + fromgeojson9.testcase \ + fromgml10.testcase \ + fromgml11.testcase \ + fromgml12.testcase \ + fromgml13.testcase \ + fromgml14.testcase \ + fromgml15.testcase \ + fromgml16.testcase \ + fromgml17.testcase \ + fromgml18.testcase \ + fromgml19.testcase \ + fromgml1.testcase \ + fromgml20.testcase \ + fromgml21.testcase \ + fromgml22.testcase \ + fromgml23.testcase \ + fromgml24.testcase \ + fromgml25.testcase \ + fromgml26.testcase \ + fromgml27.testcase \ + fromgml28.testcase \ + fromgml29.testcase \ + fromgml2.testcase \ + fromgml30.testcase \ + fromgml31.testcase \ + fromgml32.testcase \ + fromgml33.testcase \ + fromgml34.testcase \ + fromgml35.testcase \ + fromgml36.testcase \ + fromgml37.testcase \ + fromgml38.testcase \ + fromgml39.testcase \ + fromgml3.testcase \ + fromgml40.testcase \ + fromgml41.testcase \ + fromgml43.testcase \ + fromgml44.testcase \ + fromgml45.testcase \ + fromgml46.testcase \ + fromgml47.testcase \ + fromgml48.testcase \ + fromgml49.testcase \ + fromgml4.testcase \ + fromgml50.testcase \ + fromgml51.testcase \ + fromgml52.testcase \ + fromgml53.testcase \ + fromgml54.testcase \ + fromgml55.testcase \ + fromgml56.testcase \ + fromgml57.testcase \ + fromgml58.testcase \ + fromgml59.testcase \ + fromgml5.testcase \ + fromgml60.testcase \ + fromgml61.testcase \ + fromgml6.testcase \ + fromgml7.testcase \ + fromgml8.testcase \ + fromgml9.testcase \ + fromWkb10.testcase \ + fromWkb11.testcase \ + fromWkb12.testcase \ + fromWkb13.testcase \ + fromWkb14.testcase \ + fromWkb15.testcase \ + fromWkb16.testcase \ + fromWkb17.testcase \ + fromWkb18.testcase \ + fromWkb19.testcase \ + fromWkb1.testcase \ + fromWkb20.testcase \ + fromWkb21.testcase \ + fromWkb22.testcase \ + fromWkb23.testcase \ + fromWkb24.testcase \ + fromWkb25.testcase \ + fromWkb26.testcase \ + fromWkb2.testcase \ + fromWkb3.testcase \ + fromWkb4.testcase \ + fromWkb5.testcase \ + fromWkb6.testcase \ + fromWkb7.testcase \ + fromWkb8.testcase \ + fromWkb9.testcase \ + ft_m.testcase \ + garsmbr10.testcase \ + garsmbr11.testcase \ + garsmbr12.testcase \ + garsmbr13.testcase \ + garsmbr14.testcase \ + garsmbr15.testcase \ + garsmbr16.testcase \ + garsmbr17.testcase \ + garsmbr18.testcase \ + garsmbr1.testcase \ + garsmbr20.testcase \ + garsmbr21.testcase \ + garsmbr22.testcase \ + garsmbr23.testcase \ + garsmbr24.testcase \ + garsmbr25.testcase \ + garsmbr26.testcase \ + garsmbr27.testcase \ + garsmbr28.testcase \ + garsmbr29.testcase \ + garsmbr2.testcase \ + garsmbr30.testcase \ + garsmbr31.testcase \ + garsmbr32.testcase \ + garsmbr33.testcase \ + garsmbr34.testcase \ + garsmbr35.testcase \ + garsmbr36.testcase \ + garsmbr3.testcase \ + garsmbr4.testcase \ + garsmbr5.testcase \ + garsmbr6.testcase \ + garsmbr7.testcase \ + garsmbr8.testcase \ + garsmbr9.testcase \ + geodesic-len1.testcase \ + geodesic-len2.testcase \ + geodesic-len3.testcase \ + geodesic-len4.testcase \ + geodesic-len5.testcase \ + geodesic-len6.testcase \ + geodesic-len7.testcase \ + geodesic-len8.testcase \ + geojson1.testcase \ + geojson2.testcase \ + geojson3.testcase \ + geojson4.testcase \ + geojson5.testcase \ + geojson6.testcase \ + geomcollfromtext1.testcase \ + geomcollfromtext2.testcase \ + geomconstraints10.testcase \ + geomconstraints11.testcase \ + geomconstraints12.testcase \ + geomconstraints13.testcase \ + geomconstraints14.testcase \ + geomconstraints15.testcase \ + geomconstraints16.testcase \ + geomconstraints17.testcase \ + geomconstraints18.testcase \ + geomconstraints19.testcase \ + geomconstraints1.testcase \ + geomconstraints20.testcase \ + geomconstraints21.testcase \ + geomconstraints22.testcase \ + geomconstraints23.testcase \ + geomconstraints24.testcase \ + geomconstraints25.testcase \ + geomconstraints26.testcase \ + geomconstraints27.testcase \ + geomconstraints28.testcase \ + geomconstraints2.testcase \ + geomconstraints3.testcase \ + geomconstraints4.testcase \ + geomconstraints5.testcase \ + geomconstraints6.testcase \ + geomconstraints7.testcase \ + geomconstraints8.testcase \ + geomconstraints9.testcase \ + geometryn10.testcase \ + geometryn11.testcase \ + geometryn12.testcase \ + geometryn13.testcase \ + geometryn14.testcase \ + geometryn15.testcase \ + geometryn16.testcase \ + geometryn17.testcase \ + geometryn18.testcase \ + geometryn19.testcase \ + geometryn1.testcase \ + geometryn20.testcase \ + geometryn2.testcase \ + geometryn3.testcase \ + geometryn4.testcase \ + geometryn5.testcase \ + geometryn6.testcase \ + geometryn7.testcase \ + geometryn8.testcase \ + geometryn9.testcase \ + geometryn.testcase \ + geomfromewkb1.testcase \ + geomfromewkb2.testcase \ + geomfromkml10.testcase \ + geomfromkml11.testcase \ + geomfromkml12.testcase \ + geomfromkml13.testcase \ + geomfromkml14.testcase \ + geomfromkml15.testcase \ + geomfromkml16.testcase \ + geomfromkml17.testcase \ + geomfromkml18.testcase \ + geomfromkml19.testcase \ + geomfromkml1.testcase \ + geomfromkml20.testcase \ + geomfromkml21.testcase \ + geomfromkml22.testcase \ + geomfromkml23.testcase \ + geomfromkml2.testcase \ + geomfromkml3.testcase \ + geomfromkml4.testcase \ + geomfromkml5.testcase \ + geomfromkml6.testcase \ + geomfromkml7.testcase \ + geomfromkml8.testcase \ + geomfromkml9.testcase \ + geomfromtext10.testcase \ + geomfromtext11.testcase \ + geomfromtext12.testcase \ + geomfromtext13.testcase \ + geomfromtext14.testcase \ + geomfromtext15.testcase \ + geomfromtext16.testcase \ + geomfromtext17.testcase \ + geomfromtext18.testcase \ + geomfromtext19.testcase \ + geomfromtext1.testcase \ + geomfromtext20.testcase \ + geomfromtext21.testcase \ + geomfromtext22.testcase \ + geomfromtext23.testcase \ + geomfromtext24.testcase \ + geomfromtext25.testcase \ + geomfromtext26.testcase \ + geomfromtext27.testcase \ + geomfromtext28.testcase \ + geomfromtext29.testcase \ + geomfromtext2.testcase \ + geomfromtext30.testcase \ + geomfromtext31.testcase \ + geomfromtext32.testcase \ + geomfromtext33.testcase \ + geomfromtext34.testcase \ + geomfromtext35.testcase \ + geomfromtext36.testcase \ + geomfromtext37.testcase \ + geomfromtext38.testcase \ + geomfromtext39.testcase \ + geomfromtext3.testcase \ + geomfromtext40.testcase \ + geomfromtext41.testcase \ + geomfromtext42.testcase \ + geomfromtext43.testcase \ + geomfromtext44.testcase \ + geomfromtext45.testcase \ + geomfromtext4.testcase \ + geomfromtext5.testcase \ + geomfromtext6.testcase \ + geomfromtext7.testcase \ + geomfromtext8.testcase \ + geomfromtext9.testcase \ + geomtype10.testcase \ + geomtype11.testcase \ + geomtype12.testcase \ + geomtype13.testcase \ + geomtype14.testcase \ + geomtype15.testcase \ + geomtype16.testcase \ + geomtype17.testcase \ + geomtype18.testcase \ + geomtype19.testcase \ + geomtype1.testcase \ + geomtype20.testcase \ + geomtype21.testcase \ + geomtype22.testcase \ + geomtype23.testcase \ + geomtype24.testcase \ + geomtype25.testcase \ + geomtype26.testcase \ + geomtype27.testcase \ + geomtype28.testcase \ + geomtype29.testcase \ + geomtype2.testcase \ + geomtype30.testcase \ + geomtype31.testcase \ + geomtype32.testcase \ + geomtype33.testcase \ + geomtype34.testcase \ + geomtype35.testcase \ + geomtype36.testcase \ + geomtype37.testcase \ + geomtype38.testcase \ + geomtype39.testcase \ + geomtype3.testcase \ + geomtype40.testcase \ + geomtype41.testcase \ + geomtype42.testcase \ + geomtype43.testcase \ + geomtype44.testcase \ + geomtype45.testcase \ + geomtype46.testcase \ + geomtype47.testcase \ + geomtype48.testcase \ + geomtype49.testcase \ + geomtype4.testcase \ + geomtype50.testcase \ + geomtype51.testcase \ + geomtype52.testcase \ + geomtype53.testcase \ + geomtype54.testcase \ + geomtype55.testcase \ + geomtype56.testcase \ + geomtype57.testcase \ + geomtype58.testcase \ + geomtype59.testcase \ + geomtype5.testcase \ + geomtype60.testcase \ + geomtype61.testcase \ + geomtype62.testcase \ + geomtype63.testcase \ + geomtype64.testcase \ + geomtype65.testcase \ + geomtype66.testcase \ + geomtype67.testcase \ + geomtype68.testcase \ + geomtype69.testcase \ + geomtype6.testcase \ + geomtype7.testcase \ + geomtype8.testcase \ + geomtype9.testcase \ + getmimetype1.testcase \ + getmimetype2.testcase \ + getmimetype3.testcase \ + getmimetype4.testcase \ + getmimetype5.testcase \ + gml10.testcase \ + gml11.testcase \ + gml12.testcase \ + gml13.testcase \ + gml14.testcase \ + gml15.testcase \ + gml16.testcase \ + gml1.testcase \ + gml2.testcase \ + gml3.testcase \ + gml4.testcase \ + gml5.testcase \ + gml6.testcase \ + gml7.testcase \ + gml8.testcase \ + gml9.testcase \ + greatcircle-badblob.testcase \ + greatcircle-poly2.testcase \ + greatcircle-poly3.testcase \ + greatcircle-poly4.testcase \ + greatcircle-poly5.testcase \ + greatcircle-poly6.testcase \ + greatcircle-poly7.testcase \ + greatcircle-poly.testcase \ + greatcircle.testcase \ + greatcircle-text.testcase \ + ind_ch_m.testcase \ + ind_ft_m.testcase \ + ind_yd_m.testcase \ + in_m.testcase \ + is3d1.testcase \ + is3d2.testcase \ + is3d3.testcase \ + is3d4.testcase \ + is3d5.testcase \ + is3d6.testcase \ + isempty2.testcase \ + isempty3.testcase \ + isempty4.testcase \ + isempty.testcase \ + ismeasured1.testcase \ + ismeasured2.testcase \ + ismeasured3.testcase \ + ismeasured4.testcase \ + ismeasured5.testcase \ + ismeasured6.testcase \ + ispopulatedcoverage1.testcase \ + ispopulatedcoverage2.testcase \ + isvalidnodata1.testcase \ + isvalidnodata2.testcase \ + isvalidnodata3.testcase \ + isvalidnodata4.testcase \ + isvalidpalette1.testcase \ + isvalidpalette2.testcase \ + isvalidpalette3.testcase \ + isvalidrasterstats1.testcase \ + isvalidrasterstats2.testcase \ + isvalidrasterstats3.testcase \ + isvalidrasterstats4.testcase \ + isvalidrasterstats5.testcase \ + isvalidrasterstats6.testcase \ + isvalidrasterstats7.testcase \ + isvalidrastertile1.testcase \ + isvalidrastertile2.testcase \ + isvalidrastertile3.testcase \ + isvalidrastertile4.testcase \ + isvalidrastertile5.testcase \ + isvalidrastertile6.testcase \ + isXblob5.testcase \ + isXblob6.testcase \ + isXblob7.testcase \ + k3b-icon.png \ + km_m.testcase \ + ktorrent_grad1.jpg \ + ktorrent_sidebar.gif \ + La_folla_durante_il_Palio.jpg \ + lhr1.testcase \ + lhr2.testcase \ + lhr3.testcase \ + lhr4.testcase \ + lhr5.testcase \ + lhr6.testcase \ + linefromtext1.testcase \ + linefromtext2.testcase \ + linesfromrings1.testcase \ + linesfromrings2.testcase \ + linesfromrings3.testcase \ + linesfromrings4.testcase \ + linesfromrings5.testcase \ + linesfromrings6.testcase \ + linesfromrings7.testcase \ + link_m.testcase \ + locatemeasure10.testcase \ + locatemeasure11.testcase \ + locatemeasure12.testcase \ + locatemeasure13.testcase \ + locatemeasure14.testcase \ + locatemeasure15.testcase \ + locatemeasure16.testcase \ + locatemeasure17.testcase \ + locatemeasure18.testcase \ + locatemeasure19.testcase \ + locatemeasure1.testcase \ + locatemeasure2.testcase \ + locatemeasure3.testcase \ + locatemeasure4.testcase \ + locatemeasure5.testcase \ + locatemeasure6.testcase \ + locatemeasure7.testcase \ + locatemeasure8.testcase \ + locatemeasure9.testcase \ + makeline10.testcase \ + makeline11.testcase \ + makeline12.testcase \ + makeline13.testcase \ + makeline14.testcase \ + makeline15.testcase \ + makeline16.testcase \ + makeline17.testcase \ + makeline18.testcase \ + makeline19.testcase \ + makeline20.testcase \ + makeline21.testcase \ + makeline22.testcase \ + makeline23.testcase \ + makeline24.testcase \ + makeline25.testcase \ + makeline26.testcase \ + makeline27.testcase \ + makeline28.testcase \ + makeline29.testcase \ + makeline2.testcase \ + makeline3.testcase \ + makeline30.testcase \ + makeline31.testcase \ + makeline32.testcase \ + makeline4.testcase \ + makeline5.testcase \ + makeline6.testcase \ + makeline7.testcase \ + makeline8.testcase \ + makeline9.testcase \ + makeline.testcase \ + makepoint10.testcase \ + makepoint11.testcase \ + makepoint12.testcase \ + makepoint13.testcase \ + makepoint14.testcase \ + makepoint15.testcase \ + makepoint1.testcase \ + makepoint2.testcase \ + makepoint3.testcase \ + makepoint4.testcase \ + makepoint5.testcase \ + makepoint6.testcase \ + makepoint7.testcase \ + makepoint8.testcase \ + makepoint9.testcase \ + makepointm-null1.testcase \ + makepointm-null2.testcase \ + makepointm-null3.testcase \ + makepointm-null4.testcase \ + makepointm-null5.testcase \ + makepointm-null6.testcase \ + makepointm-null7.testcase \ + makepointm-null8.testcase \ + makepoint-null1.testcase \ + makepoint-null2.testcase \ + makepoint-null3.testcase \ + makepoint-null4.testcase \ + makepoint-null5.testcase \ + makepoint-null6.testcase \ + makepoint-null7.testcase \ + makepointzm-null10.testcase \ + makepointzm-null1.testcase \ + makepointzm-null2.testcase \ + makepointzm-null3.testcase \ + makepointzm-null4.testcase \ + makepointzm-null5.testcase \ + makepointzm-null6.testcase \ + makepointzm-null7.testcase \ + makepointzm-null8.testcase \ + makepointzm-null9.testcase \ + makepointz-null1.testcase \ + makepointz-null2.testcase \ + makepointz-null3.testcase \ + makepointz-null4.testcase \ + makepointz-null5.testcase \ + makepointz-null6.testcase \ + makepointz-null7.testcase \ + makepointz-null8.testcase \ + makepointz-null9.testcase \ + makecircle1.testcase \ + makecircle2.testcase \ + makecircle3.testcase \ + makecircle4.testcase \ + makecircle5.testcase \ + makecircle6.testcase \ + makecircle7.testcase \ + makecircle8.testcase \ + makecircle9.testcase \ + makeellipse1.testcase \ + makeellipse2.testcase \ + makeellipse3.testcase \ + makeellipse4.testcase \ + makeellipse5.testcase \ + makeellipse6.testcase \ + makeellipse7.testcase \ + makeellipse8.testcase \ + makeellipse9.testcase \ + makeellipse10.testcase \ + makeellipse11.testcase \ + makeellipse12.testcase \ + makeellipse14.testcase \ + makeellipse15.testcase \ + makeellipse16.testcase \ + makeellipse18.testcase \ + makeellipse19.testcase \ + makeellipse20.testcase \ + makearc1.testcase \ + makearc2.testcase \ + makearc3.testcase \ + makearc4.testcase \ + makearc5.testcase \ + makearc6.testcase \ + makearc7.testcase \ + makearc8.testcase \ + makearc9.testcase \ + makearc10.testcase \ + makearc11.testcase \ + makearc12.testcase \ + makearc13.testcase \ + makearc14.testcase \ + makearc16.testcase \ + makearc17.testcase \ + makearc18.testcase \ + makearc20.testcase \ + makearc21.testcase \ + makearc22.testcase \ + makeellipticarc1.testcase \ + makeellipticarc2.testcase \ + makeellipticarc3.testcase \ + makeellipticarc4.testcase \ + makeellipticarc5.testcase \ + makeellipticarc6.testcase \ + makeellipticarc7.testcase \ + makeellipticarc8.testcase \ + makeellipticarc9.testcase \ + makeellipticarc10.testcase \ + makeellipticarc11.testcase \ + makeellipticarc12.testcase \ + makeellipticarc13.testcase \ + makeellipticarc14.testcase \ + makeellipticarc15.testcase \ + makeellipticarc16.testcase \ + makeellipticarc17.testcase \ + makeellipticarc19.testcase \ + makeellipticarc20.testcase \ + makeellipticarc21.testcase \ + makeellipticarc23.testcase \ + makeellipticarc24.testcase \ + makeellipticarc25.testcase \ + makecircularsector1.testcase \ + makecircularsector2.testcase \ + makecircularsector3.testcase \ + makecircularsector4.testcase \ + makecircularsector5.testcase \ + makecircularsector6.testcase \ + makecircularsector7.testcase \ + makecircularsector8.testcase \ + makecircularsector9.testcase \ + makecircularsector10.testcase \ + makecircularsector11.testcase \ + makecircularsector12.testcase \ + makecircularsector13.testcase \ + makecircularsector14.testcase \ + makecircularsector16.testcase \ + makecircularsector17.testcase \ + makecircularsector18.testcase \ + makecircularsector20.testcase \ + makecircularsector21.testcase \ + makecircularsector22.testcase \ + makecircularstripe1.testcase \ + makecircularstripe2.testcase \ + makecircularstripe3.testcase \ + makecircularstripe4.testcase \ + makecircularstripe5.testcase \ + makecircularstripe6.testcase \ + makecircularstripe7.testcase \ + makecircularstripe8.testcase \ + makecircularstripe9.testcase \ + makecircularstripe10.testcase \ + makecircularstripe11.testcase \ + makecircularstripe12.testcase \ + makecircularstripe13.testcase \ + makecircularstripe14.testcase \ + makecircularstripe16.testcase \ + makecircularstripe17.testcase \ + makecircularstripe18.testcase \ + makecircularstripe20.testcase \ + makecircularstripe21.testcase \ + makecircularstripe22.testcase \ + makecircularstripe24.testcase \ + makecircularstripe25.testcase \ + makecircularstripe26.testcase \ + makeellipticsector1.testcase \ + makeellipticsector2.testcase \ + makeellipticsector3.testcase \ + makeellipticsector4.testcase \ + makeellipticsector5.testcase \ + makeellipticsector6.testcase \ + makeellipticsector7.testcase \ + makeellipticsector8.testcase \ + makeellipticsector9.testcase \ + makeellipticsector10.testcase \ + makeellipticsector11.testcase \ + makeellipticsector12.testcase \ + makeellipticsector13.testcase \ + makeellipticsector14.testcase \ + makeellipticsector15.testcase \ + makeellipticsector16.testcase \ + makeellipticsector17.testcase \ + makeellipticsector19.testcase \ + makeellipticsector20.testcase \ + makeellipticsector21.testcase \ + makeellipticsector23.testcase \ + makeellipticsector24.testcase \ + makeellipticsector25.testcase \ + maxm1.testcase \ + maxm2.testcase \ + maxm3.testcase \ + maxm4.testcase \ + maxm5.testcase \ + maxm6.testcase \ + maxm7.testcase \ + maxz1.testcase \ + maxz2.testcase \ + maxz3.testcase \ + maxz4.testcase \ + maxz5.testcase \ + maxz6.testcase \ + maxz7.testcase \ + mbr10.testcase \ + mbr11.testcase \ + mbr12.testcase \ + mbr13.testcase \ + mbr14.testcase \ + mbr15.testcase \ + mbr16.testcase \ + mbr17.testcase \ + mbr18.testcase \ + mbr19.testcase \ + mbr1.testcase \ + mbr20.testcase \ + mbr21.testcase \ + mbr22.testcase \ + mbr23.testcase \ + mbr24.testcase \ + mbr25.testcase \ + mbr26.testcase \ + mbr27.testcase \ + mbr28.testcase \ + mbr29.testcase \ + mbr2.testcase \ + mbr30.testcase \ + mbr31.testcase \ + mbr32.testcase \ + mbr3.testcase \ + mbr4.testcase \ + mbr5.testcase \ + mbr6.testcase \ + mbr7.testcase \ + mbr8.testcase \ + mbr9.testcase \ + mbrminmax1.testcase \ + mbrminmax2.testcase \ + mbrminmax3.testcase \ + mbrminmax4.testcase \ + mbrminmax5.testcase \ + mbrminmax6.testcase \ + mbrminmax7.testcase \ + mbrminmax8.testcase \ + m_ch.testcase \ + m_cm.testcase \ + m_dm.testcase \ + m_fath.testcase \ + m_ft.testcase \ + m_ft-text.testcase \ + mi_m.testcase \ + m_ind_ch.testcase \ + m_ind_ft.testcase \ + m_ind_yd.testcase \ + minm1.testcase \ + minm2.testcase \ + minm3.testcase \ + minm4.testcase \ + minm5.testcase \ + minm6.testcase \ + m_in.testcase \ + m_in_us.testcase \ + minz1.testcase \ + minz2.testcase \ + minz3.testcase \ + minz4.testcase \ + minz5.testcase \ + minz6.testcase \ + m_km.testcase \ + mlinefromtext1.testcase \ + mlinefromtext2.testcase \ + m_ln.testcase \ + m_mi.testcase \ + m_mm.testcase \ + mm_m.testcase \ + m_nm.testcase \ + mpointfromtext1.testcase \ + mpointfromtext2.testcase \ + mpolygonfromtext1.testcase \ + mpolygonfromtext2.testcase \ + m_us_ch.testcase \ + m_us_ft.testcase \ + m_usmi.testcase \ + m_yd.testcase \ + m_yd_us.testcase \ + ndims1.testcase \ + ndims2.testcase \ + ndims3.testcase \ + ndims4.testcase \ + ndims5.testcase \ + ndims6.testcase \ + nm_m.testcase \ + normalizelonlat10.testcase \ + normalizelonlat11.testcase \ + normalizelonlat12.testcase \ + normalizelonlat13.testcase \ + normalizelonlat14.testcase \ + normalizelonlat15.testcase \ + normalizelonlat16.testcase \ + normalizelonlat17.testcase \ + normalizelonlat18.testcase \ + normalizelonlat19.testcase \ + normalizelonlat1.testcase \ + normalizelonlat20.testcase \ + normalizelonlat21.testcase \ + normalizelonlat22.testcase \ + normalizelonlat23.testcase \ + normalizelonlat24.testcase \ + normalizelonlat25.testcase \ + normalizelonlat26.testcase \ + normalizelonlat27.testcase \ + normalizelonlat2.testcase \ + normalizelonlat3.testcase \ + normalizelonlat4.testcase \ + normalizelonlat5.testcase \ + normalizelonlat6.testcase \ + normalizelonlat7.testcase \ + normalizelonlat8.testcase \ + normalizelonlat9.testcase \ + npoints1.testcase \ + npoints2.testcase \ + npoints3.testcase \ + npoints4.testcase \ + npoints5.testcase \ + npoints6.testcase \ + nrings1.testcase \ + nrings2.testcase \ + nrings3.testcase \ + nrings4.testcase \ + nrings5.testcase \ + nrings6.testcase \ + numgeometries1.testcase \ + numgeometries2.testcase \ + numgeometries3.testcase \ + numgeometries4.testcase \ + numgeometries5.testcase \ + numgeometries6.testcase \ + NumPoints2.testcase \ + NumPoints3.testcase \ + NumPoints4.testcase \ + NumPoints5.testcase \ + NumPoints6.testcase \ + NumPoints7.testcase \ + NumPoints.testcase \ + pointfromtext1.testcase \ + pointfromtext2.testcase \ + pointn10.testcase \ + pointn11.testcase \ + pointn12.testcase \ + pointn13.testcase \ + pointn14.testcase \ + pointn15.testcase \ + pointn1.testcase \ + pointn2.testcase \ + pointn3.testcase \ + pointn4.testcase \ + pointn5.testcase \ + pointn6.testcase \ + pointn7.testcase \ + pointn8.testcase \ + pointn9.testcase \ + polygonfromtext1.testcase \ + polygonfromtext2.testcase \ + reflectcoords10.testcase \ + reflectcoords11.testcase \ + reflectcoords12.testcase \ + reflectcoords13.testcase \ + reflectcoords14.testcase \ + reflectcoords15.testcase \ + reflectcoords16.testcase \ + reflectcoords17.testcase \ + reflectcoords1.testcase \ + reflectcoords2.testcase \ + reflectcoords3.testcase \ + reflectcoords4.testcase \ + reflectcoords5.testcase \ + reflectcoords6.testcase \ + reflectcoords7.testcase \ + reflectcoords8.testcase \ + reflectcoords9.testcase \ + removepoint10.testcase \ + removepoint11.testcase \ + removepoint12.testcase \ + removepoint13.testcase \ + removepoint14.testcase \ + removepoint15.testcase \ + removepoint16.testcase \ + removepoint1.testcase \ + removepoint2.testcase \ + removepoint3.testcase \ + removepoint4.testcase \ + removepoint5.testcase \ + removepoint6.testcase \ + removepoint7.testcase \ + removepoint8.testcase \ + removepoint9.testcase \ + reverse1.testcase \ + reverse2.testcase \ + reverse3.testcase \ + reverse4.testcase \ + reverse5.testcase \ + reverse6.testcase \ + ring10.testcase \ + ring11.testcase \ + ring12.testcase \ + ring13.testcase \ + ring14.testcase \ + ring15.testcase \ + ring16.testcase \ + ring17.testcase \ + ring18.testcase \ + ring19.testcase \ + ring1.testcase \ + ring20.testcase \ + ring21.testcase \ + ring22.testcase \ + ring23.testcase \ + ring24.testcase \ + ring25.testcase \ + ring26.testcase \ + ring27.testcase \ + ring28.testcase \ + ring2.testcase \ + ring3.testcase \ + ring4.testcase \ + ring5.testcase \ + ring6.testcase \ + ring7.testcase \ + ring8.testcase \ + ring9.testcase \ + rotatecoords10.testcase \ + rotatecoords11.testcase \ + rotatecoords12.testcase \ + rotatecoords13.testcase \ + rotatecoords14.testcase \ + rotatecoords1.testcase \ + rotatecoords2.testcase \ + rotatecoords3.testcase \ + rotatecoords4.testcase \ + rotatecoords5.testcase \ + rotatecoords6.testcase \ + rotatecoords7.testcase \ + rotatecoords8.testcase \ + rotatecoords9.testcase \ + routing1.testcase \ + routing2.testcase \ + routing3.testcase \ + routing4.testcase \ + routing5.testcase \ + rtreealign1.testcase \ + rtreealign2.testcase \ + rtreealign3.testcase \ + rtreealign4.testcase \ + sandro.jpg \ + sanitizeGeometry10.testcase \ + sanitizeGeometry11.testcase \ + sanitizeGeometry12.testcase \ + sanitizeGeometry13.testcase \ + sanitizeGeometry14.testcase \ + sanitizeGeometry15.testcase \ + sanitizeGeometry16.testcase \ + sanitizeGeometry1.testcase \ + sanitizeGeometry2.testcase \ + sanitizeGeometry3.testcase \ + sanitizeGeometry4.testcase \ + sanitizeGeometry5.testcase \ + sanitizeGeometry6.testcase \ + sanitizeGeometry7.testcase \ + sanitizeGeometry8.testcase \ + sanitizeGeometry9.testcase \ + scalecoords10.testcase \ + scalecoords11.testcase \ + scalecoords12.testcase \ + scalecoords13.testcase \ + scalecoords1.testcase \ + scalecoords2.testcase \ + scalecoords3.testcase \ + scalecoords4.testcase \ + scalecoords5.testcase \ + scalecoords6.testcase \ + scalecoords7.testcase \ + scalecoords8.testcase \ + scalecoords9.testcase \ + seconds.wav \ + setpoint10.testcase \ + setpoint11.testcase \ + setpoint12.testcase \ + setpoint13.testcase \ + setpoint14.testcase \ + setpoint15.testcase \ + setpoint16.testcase \ + setpoint17.testcase \ + setpoint18.testcase \ + setpoint19.testcase \ + setpoint1.testcase \ + setpoint20.testcase \ + setpoint21.testcase \ + setpoint22.testcase \ + setpoint23.testcase \ + setpoint2.testcase \ + setpoint3.testcase \ + setpoint4.testcase \ + setpoint5.testcase \ + setpoint6.testcase \ + setpoint7.testcase \ + setpoint8.testcase \ + setpoint9.testcase \ + shiftcoords10.testcase \ + shiftcoords11.testcase \ + shiftcoords12.testcase \ + shiftcoords13.testcase \ + shiftcoords14.testcase \ + shiftcoords15.testcase \ + shiftcoords1.testcase \ + shiftcoords2.testcase \ + shiftcoords3.testcase \ + shiftcoords4.testcase \ + shiftcoords5.testcase \ + shiftcoords6.testcase \ + shiftcoords7.testcase \ + shiftcoords8.testcase \ + shiftcoords9.testcase \ + shiftlongitude10.testcase \ + shiftlongitude11.testcase \ + shiftlongitude12.testcase \ + shiftlongitude13.testcase \ + shiftlongitude14.testcase \ + shiftlongitude15.testcase \ + shiftlongitude16.testcase \ + shiftlongitude17.testcase \ + shiftlongitude18.testcase \ + shiftlongitude19.testcase \ + shiftlongitude1.testcase \ + shiftlongitude20.testcase \ + shiftlongitude21.testcase \ + shiftlongitude22.testcase \ + shiftlongitude23.testcase \ + shiftlongitude24.testcase \ + shiftlongitude25.testcase \ + shiftlongitude26.testcase \ + shiftlongitude2.testcase \ + shiftlongitude3.testcase \ + shiftlongitude4.testcase \ + shiftlongitude5.testcase \ + shiftlongitude6.testcase \ + shiftlongitude7.testcase \ + shiftlongitude8.testcase \ + shiftlongitude9.testcase \ + spatialindex.testcase \ + srid10.testcase \ + srid11.testcase \ + srid1.testcase \ + srid2.testcase \ + srid3.testcase \ + srid4.testcase \ + srid5.testcase \ + srid6.testcase \ + srid7.testcase \ + srid8.testcase \ + srid9.testcase \ + SridFromAuthCRS2.testcase \ + SridFromAuthCRS3.testcase \ + SridFromAuthCRS4.testcase \ + SridFromAuthCRS5.testcase \ + SridFromAuthCRS6.testcase \ + SridFromAuthCRS.testcase \ + startpoint1.testcase \ + startpoint2.testcase \ + startpoint3.testcase \ + st_m1.testcase \ + st_m2.testcase \ + st_m3.testcase \ + st_m4.testcase \ + st_m5.testcase \ + st_m6.testcase \ + st_m8.testcase \ + st_x1.testcase \ + st_x2.testcase \ + st_x3.testcase \ + st_x4.testcase \ + st_x5.testcase \ + st_x6.testcase \ + st_x7.testcase \ + st_x8.testcase \ + st_x9.testcase \ + st_y1.testcase \ + st_y2.testcase \ + st_y3.testcase \ + st_y4.testcase \ + st_y5.testcase \ + st_y7.testcase \ + st_y8.testcase \ + st_y9.testcase \ + st_z1.testcase \ + st_z2.testcase \ + st_z3.testcase \ + st_z4.testcase \ + st_z5.testcase \ + st_z6.testcase \ + st_z7.testcase \ + st_z8.testcase \ + st_z9.testcase \ + swapcoords10.testcase \ + swapcoords11.testcase \ + swapcoords1.testcase \ + swapcoords2.testcase \ + swapcoords3.testcase \ + swapcoords4.testcase \ + swapcoords5.testcase \ + swapcoords6.testcase \ + swapcoords7.testcase \ + swapcoords8.testcase \ + swapcoords9.testcase \ + testdb1.sqlite \ + testFDO.sqlite \ + testFGF.sqlite \ + test.webp \ + togars10.testcase \ + togars11.testcase \ + togars12.testcase \ + togars13.testcase \ + togars1.testcase \ + togars2.testcase \ + togars3.testcase \ + togars4.testcase \ + togars5.testcase \ + togars6.testcase \ + togars7.testcase \ + togars8.testcase \ + togars9.testcase \ + translate10.testcase \ + translate11.testcase \ + translate12.testcase \ + translate13.testcase \ + translate14.testcase \ + translate15.testcase \ + translate16.testcase \ + translate17.testcase \ + translate18.testcase \ + translate19.testcase \ + translate1.testcase \ + translate2.testcase \ + translate3.testcase \ + translate4.testcase \ + translate5.testcase \ + translate6.testcase \ + translate7.testcase \ + translate8.testcase \ + translate9.testcase \ + trivial.sqlite_RO \ + uncompressgeom1.testcase \ + uncompressgeom2.testcase \ + uncompressgeom3.testcase \ + unsafeTriggers1.testcase \ + us_ch_m.testcase \ + us_ft_m.testcase \ + us_in_m.testcase \ + us_mi_m.testcase \ + us_yd_m.testcase \ + wkb10.testcase \ + wkb11.testcase \ + wkb12.testcase \ + wkb13.testcase \ + wkb14.testcase \ + wkb15.testcase \ + wkb16.testcase \ + wkb17.testcase \ + wkb18.testcase \ + wkb19.testcase \ + wkb1.testcase \ + wkb20.testcase \ + wkb21.testcase \ + wkb22.testcase \ + wkb23.testcase \ + wkb24.testcase \ + wkb25.testcase \ + wkb26.testcase \ + wkb27.testcase \ + wkb28.testcase \ + wkb29.testcase \ + wkb2.testcase \ + wkb30.testcase \ + wkb31.testcase \ + wkb32.testcase \ + wkb33.testcase \ + wkb34.testcase \ + wkb35.testcase \ + wkb36.testcase \ + wkb3.testcase \ + wkb4.testcase \ + wkb5.testcase \ + wkb6.testcase \ + wkb7.testcase \ + wkb8.testcase \ + wkb9.testcase \ + wkbtosql1.testcase \ + wkbtosql2.testcase \ + wkbtosql3.testcase \ + wkttosql1.testcase \ + wkttosql2.testcase \ + wkttosql3.testcase \ + yd_m.testcase \ + getlayerextent1.testcase \ + getlayerextent2.testcase \ + getlayerextent3.testcase \ + getlayerextent4.testcase \ + getlayerextent5.testcase \ + getlayerextent6.testcase \ + getlayerextent7.testcase \ + getlayerextent8.testcase \ + getlayerextent9.testcase \ + getlayerextent10.testcase \ + getlayerextent11.testcase \ + getlayerextent12.testcase \ + getlayerextent13.testcase \ + getlayerextent14.testcase \ + invalidatestats1.testcase \ + invalidatestats2.testcase \ + invalidatestats3.testcase \ + invalidatestats4.testcase \ + invalidatestats5.testcase \ + invalidatestats6.testcase \ + invalidatestats7.testcase \ + invalidatestats8.testcase \ + invalidatestats9.testcase \ + invalidatestats10.testcase \ + updatestats1.testcase \ + updatestats2.testcase \ + updatestats3.testcase \ + updatestats4.testcase \ + updatestats5.testcase \ + updatestats6.testcase \ + updatestats7.testcase \ + updatestats8.testcase \ + updatestats9.testcase \ + updatestats10.testcase \ + makepolygon1.testcase \ + makepolygon2.testcase \ + makepolygon3.testcase \ + makepolygon4.testcase \ + makepolygon5.testcase \ + makepolygon7.testcase \ + makepolygon8.testcase \ + makepolygon9.testcase \ + makepolygon10.testcase \ + makepolygon11.testcase \ + makepolygon12.testcase \ + makepolygon13.testcase \ + makepolygon14.testcase \ + makepolygon15.testcase \ + makepolygon16.testcase \ + makepolygon17.testcase \ + makepolygon18.testcase \ + makepolygon19.testcase \ + makepolygon20.testcase \ + makepolygon21.testcase \ + makepolygon22.testcase \ + makepolygon23.testcase \ + makepolygon24.testcase \ + makepolygon25.testcase \ + makepolygon26.testcase \ + todms1.testcase \ + todms2.testcase \ + todms3.testcase \ + todms4.testcase \ + todms5.testcase \ + todms6.testcase \ + todms7.testcase \ + todms8.testcase \ + todms9.testcase \ + todms10.testcase \ + todms11.testcase \ + todms12.testcase \ + todms13.testcase \ + fromdms1.testcase \ + fromdms2.testcase \ + fromdms3.testcase \ + fromdms4.testcase \ + fromdms5.testcase \ + fromdms6.testcase \ + fromdms7.testcase \ + fromdms8.testcase \ + fromdms9.testcase diff --git a/src/spatialite/test/sql_stmt_tests/Makefile.in b/src/spatialite/test/sql_stmt_tests/Makefile.in new file mode 100644 index 0000000..226b566 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/Makefile.in @@ -0,0 +1,2348 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = addpoint10.testcase \ + addpoint11.testcase \ + addpoint12.testcase \ + addpoint13.testcase \ + addpoint14.testcase \ + addpoint15.testcase \ + addpoint16.testcase \ + addpoint17.testcase \ + addpoint18.testcase \ + addpoint19.testcase \ + addpoint1.testcase \ + addpoint20.testcase \ + addpoint21.testcase \ + addpoint22.testcase \ + addpoint23.testcase \ + addpoint24.testcase \ + addpoint25.testcase \ + addpoint26.testcase \ + addpoint27.testcase \ + addpoint28.testcase \ + addpoint2.testcase \ + addpoint3.testcase \ + addpoint4.testcase \ + addpoint5.testcase \ + addpoint6.testcase \ + addpoint7.testcase \ + addpoint8.testcase \ + addpoint9.testcase \ + asbinary10.testcase \ + asbinary11.testcase \ + asbinary12.testcase \ + asbinary13.testcase \ + asbinary14.testcase \ + asbinary15.testcase \ + asbinary16.testcase \ + asbinary17.testcase \ + asbinary1.testcase \ + asbinary2.testcase \ + asbinary3.testcase \ + asbinary4.testcase \ + asbinary5.testcase \ + asbinary6.testcase \ + asbinary7.testcase \ + asbinary8.testcase \ + asbinary9.testcase \ + asewkb10.testcase \ + asewkb11.testcase \ + asewkb12.testcase \ + asewkb13.testcase \ + asewkb14.testcase \ + asewkb15.testcase \ + asewkb16.testcase \ + asewkb17.testcase \ + asewkb1.testcase \ + asewkb2.testcase \ + asewkb3.testcase \ + asewkb4.testcase \ + asewkb5.testcase \ + asewkb6.testcase \ + asewkb7.testcase \ + asewkb8.testcase \ + asewkb9.testcase \ + asfgf1.testcase \ + asfgf2.testcase \ + asfgf3.testcase \ + asfgf4.testcase \ + asfgf5.testcase \ + asfgf6.testcase \ + asfgf7.testcase \ + asfgf8.testcase \ + asfgf9.testcase \ + asgeojson1.testcase \ + asgeojson2.testcase \ + asgeojson3.testcase \ + asgeojson4.testcase \ + asgeojson5.testcase \ + asgeojson6.testcase \ + asgeojson7.testcase \ + asgeojson8.testcase \ + asgml10.testcase \ + asgml11.testcase \ + asgml1.testcase \ + asgml2.testcase \ + asgml3.testcase \ + asgml4.testcase \ + asgml5.testcase \ + asgml6.testcase \ + asgml7.testcase \ + asgml8.testcase \ + asgml9.testcase \ + assvg17.testcase \ + assvg18.testcase \ + assvg19.testcase \ + assvg1.testcase \ + assvg20.testcase \ + assvg21.testcase \ + assvg22.testcase \ + assvg23.testcase \ + assvg24.testcase \ + assvg25.testcase \ + assvg26.testcase \ + assvg2.testcase \ + assvg3.testcase \ + assvg4.testcase \ + assvg5.testcase \ + assvg6.testcase \ + assvg7.testcase \ + assvg8.testcase \ + assvg9.testcase \ + aswkt-text.testcase \ + badEWKT1.testcase \ + badEWKT2.testcase \ + badEWKT3.testcase \ + badEWKT4.testcase \ + badEWKT5.testcase \ + badEWKT6.testcase \ + badEWKT7.testcase \ + badEWKT8.testcase \ + badGeoJSON1.testcase \ + badGeoJSON2.testcase \ + badGeoJSON3.testcase \ + badGeoJSON4.testcase \ + badGeoJSON5.testcase \ + badGeoJSON6.testcase \ + badGeoJSON7.testcase \ + badGML1.testcase \ + badGML2.testcase \ + badGML3.testcase \ + badGML4.testcase \ + badGML5.testcase \ + badGML6.testcase \ + badGML7.testcase \ + badKML1.testcase \ + badKML2.testcase \ + badKML3.testcase \ + badKML4.testcase \ + badKML5.testcase \ + badKML6.testcase \ + badKML7.testcase \ + badwkt1.testcase \ + badwkt2.testcase \ + badwkt3.testcase \ + badwkt4.testcase \ + badwkt5.testcase \ + badwkt6.testcase \ + badwkt7.testcase \ + badwkt8.testcase \ + badwkt9.testcase \ + buildcirclembr10.testcase \ + buildcirclembr11.testcase \ + buildcirclembr12.testcase \ + buildcirclembr1.testcase \ + buildcirclembr2.testcase \ + buildcirclembr3.testcase \ + buildcirclembr4.testcase \ + buildcirclembr5.testcase \ + buildcirclembr6.testcase \ + buildcirclembr7.testcase \ + buildcirclembr8.testcase \ + buildcirclembr9.testcase \ + buildmbr10.testcase \ + buildmbr11.testcase \ + buildmbr12.testcase \ + buildmbr13.testcase \ + buildmbr14.testcase \ + buildmbr1.testcase \ + buildmbr2.testcase \ + buildmbr3.testcase \ + buildmbr4.testcase \ + buildmbr5.testcase \ + buildmbr6.testcase \ + buildmbr7.testcase \ + buildmbr8.testcase \ + buildmbr9.testcase \ + casttoblob10.testcase \ + casttoblob12.testcase \ + casttoblob13.testcase \ + casttoblob14.testcase \ + casttoblob1.testcase \ + casttoblob2.testcase \ + casttoblob3.testcase \ + casttoblob4.testcase \ + casttoblob5.testcase \ + casttoblob6.testcase \ + casttoblob7.testcase \ + casttoblob8.testcase \ + casttoblob9.testcase \ + casttodouble1.testcase \ + casttodouble2.testcase \ + casttodouble3.testcase \ + casttodouble4.testcase \ + casttodouble5.testcase \ + casttodouble6.testcase \ + casttodouble7.testcase \ + casttogeometrycollection2.testcase \ + casttogeometrycollection3.testcase \ + casttogeometrycollection4.testcase \ + casttogeometrycollection5.testcase \ + casttogeometrycollection6.testcase \ + casttogeometrycollection.testcase \ + casttoint1.testcase \ + casttoint2.testcase \ + casttoint3.testcase \ + casttoint4.testcase \ + casttoint5.testcase \ + casttoint6.testcase \ + casttoint7.testcase \ + casttolinestring1.testcase \ + casttolinestring2.testcase \ + casttolinestring3.testcase \ + casttolinestring4.testcase \ + casttolinestring5.testcase \ + casttolinestring6.testcase \ + casttolinestring7.testcase \ + casttolinestring8.testcase \ + casttomulti11.testcase \ + casttomulti1.testcase \ + casttomulti2.testcase \ + casttomulti3.testcase \ + casttomulti4.testcase \ + casttomulti5.testcase \ + casttomulti6.testcase \ + casttomulti7.testcase \ + casttomulti8.testcase \ + casttomultilinestring1.testcase \ + casttomultilinestring2.testcase \ + casttomultilinestring3.testcase \ + casttomultilinestring4.testcase \ + casttomultilinestring5.testcase \ + casttomultilinestring6.testcase \ + casttomultilinestring7.testcase \ + casttomultipoint1.testcase \ + casttomultipoint2.testcase \ + casttomultipoint3.testcase \ + casttomultipoint4.testcase \ + casttomultipoint5.testcase \ + casttomultipoint6.testcase \ + casttomultipoint7.testcase \ + casttomultipoint8.testcase \ + casttomultipoint9.testcase \ + casttomultipolygon1.testcase \ + casttomultipolygon2.testcase \ + casttomultipolygon3.testcase \ + casttomultipolygon4.testcase \ + casttomultipolygon5.testcase \ + casttopoint1.testcase \ + casttopoint2.testcase \ + casttopoint3.testcase \ + casttopoint4.testcase \ + casttopoint5.testcase \ + casttopoint6.testcase \ + casttopoint7.testcase \ + casttopoint8.testcase \ + casttopoly1.testcase \ + casttopoly2.testcase \ + casttopoly3.testcase \ + casttopoly4.testcase \ + casttopoly5.testcase \ + casttopoly6.testcase \ + casttopoly7.testcase \ + casttopoly8.testcase \ + casttosingle10.testcase \ + casttosingle12.testcase \ + casttosingle1.testcase \ + casttosingle2.testcase \ + casttosingle3.testcase \ + casttosingle4.testcase \ + casttosingle5.testcase \ + casttosingle6.testcase \ + casttosingle7.testcase \ + casttosingle8.testcase \ + casttosingle9.testcase \ + casttotext10.testcase \ + casttotext11.testcase \ + casttotext12.testcase \ + casttotext13.testcase \ + casttotext14.testcase \ + casttotext15.testcase \ + casttotext1.testcase \ + casttotext2.testcase \ + casttotext3.testcase \ + casttotext4.testcase \ + casttotext5.testcase \ + casttotext6.testcase \ + casttotext7.testcase \ + casttotext8.testcase \ + casttotext9.testcase \ + casttoxy1.testcase \ + casttoxy2.testcase \ + casttoxy3.testcase \ + casttoxym1.testcase \ + casttoxym2.testcase \ + casttoxym3.testcase \ + casttoxym4.testcase \ + casttoxym5.testcase \ + casttoxym6.testcase \ + casttoxyz1.testcase \ + casttoxyz2.testcase \ + casttoxyz3.testcase \ + casttoxyz4.testcase \ + casttoxyz5.testcase \ + casttoxyz6.testcase \ + casttoxyzm1.testcase \ + casttoxyzm2.testcase \ + casttoxyzm3.testcase \ + casttoxyzm4.testcase \ + casttoxyzm5.testcase \ + casttoxyzm6.testcase \ + checkspatialmetadata1.testcase \ + checkspatialmetadata2.testcase \ + checkspatialmetadata3.testcase \ + checkspatialmetadata4.testcase \ + checkspatialmetadata5.testcase \ + ch_m.testcase \ + cm_m.testcase \ + collect10.testcase \ + collect11.testcase \ + collect12.testcase \ + collect13.testcase \ + collect14.testcase \ + collect15.testcase \ + collect16.testcase \ + collect17.testcase \ + collect18.testcase \ + collect19.testcase \ + collect1.testcase \ + collect20.testcase \ + collect21.testcase \ + collect23.testcase \ + collect24.testcase \ + collect25.testcase \ + collect26.testcase \ + collect27.testcase \ + collect28.testcase \ + collect29.testcase \ + collect2.testcase \ + collect30.testcase \ + collect31.testcase \ + collect32.testcase \ + collect33.testcase \ + collect34.testcase \ + collect35.testcase \ + collect36.testcase \ + collect37.testcase \ + collect38.testcase \ + collect39.testcase \ + collect3.testcase \ + collect40.testcase \ + collect41.testcase \ + collect42.testcase \ + collect43.testcase \ + collect44.testcase \ + collect45.testcase \ + collect46.testcase \ + collect47.testcase \ + collect48.testcase \ + collect49.testcase \ + collect4.testcase \ + collect50.testcase \ + collect51.testcase \ + collect52.testcase \ + collect53.testcase \ + collect54.testcase \ + collect55.testcase \ + collect56.testcase \ + collect57.testcase \ + collect58.testcase \ + collect59.testcase \ + collect5.testcase \ + collect6.testcase \ + collect7.testcase \ + collect8.testcase \ + collect9.testcase \ + collectextract10.testcase \ + collectextract11.testcase \ + collectextract12.testcase \ + collectextract13.testcase \ + collectextract14.testcase \ + collectextract15.testcase \ + collectextract16.testcase \ + collectextract17.testcase \ + collectextract18.testcase \ + collectextract19.testcase \ + collectextract1.testcase \ + collectextract20.testcase \ + collectextract21.testcase \ + collectextract22.testcase \ + collectextract23.testcase \ + collectextract24.testcase \ + collectextract25.testcase \ + collectextract2.testcase \ + collectextract3.testcase \ + collectextract4.testcase \ + collectextract5.testcase \ + collectextract6.testcase \ + collectextract7.testcase \ + collectextract8.testcase \ + collectextract9.testcase \ + compressgeometry10.testcase \ + compressgeometry11.testcase \ + compressgeometry12.testcase \ + compressgeometry13.testcase \ + compressgeometry14.testcase \ + compressgeometry15.testcase \ + compressgeometry17.testcase \ + compressgeometry18.testcase \ + compressgeometry19.testcase \ + compressgeometry1.testcase \ + compressgeometry20.testcase \ + compressgeometry21.testcase \ + compressgeometry22.testcase \ + compressgeometry23.testcase \ + compressgeometry24.testcase \ + compressgeometry25.testcase \ + compressgeometry26.testcase \ + compressgeometry27.testcase \ + compressgeometry28.testcase \ + compressgeometry29.testcase \ + compressgeometry2.testcase \ + compressgeometry30.testcase \ + compressgeometry31.testcase \ + compressgeometry32.testcase \ + compressgeometry33.testcase \ + compressgeometry34.testcase \ + compressgeometry35.testcase \ + compressgeometry36.testcase \ + compressgeometry37.testcase \ + compressgeometry38.testcase \ + compressgeometry39.testcase \ + compressgeometry3.testcase \ + compressgeometry40.testcase \ + compressgeometry41.testcase \ + compressgeometry42.testcase \ + compressgeometry43.testcase \ + compressgeometry44.testcase \ + compressgeometry45.testcase \ + compressgeometry46.testcase \ + compressgeometry47.testcase \ + compressgeometry48.testcase \ + compressgeometry49.testcase \ + compressgeometry4.testcase \ + compressgeometry50.testcase \ + compressgeometry51.testcase \ + compressgeometry52.testcase \ + compressgeometry53.testcase \ + compressgeometry54.testcase \ + compressgeometry55.testcase \ + compressgeometry56.testcase \ + compressgeometry57.testcase \ + compressgeometry58.testcase \ + compressgeometry59.testcase \ + compressgeometry5.testcase \ + compressgeometry60.testcase \ + compressgeometry61.testcase \ + compressgeometry62.testcase \ + compressgeometry63.testcase \ + compressgeometry64.testcase \ + compressgeometry65.testcase \ + compressgeometry66.testcase \ + compressgeometry67.testcase \ + compressgeometry68.testcase \ + compressgeometry69.testcase \ + compressgeometry6.testcase \ + compressgeometry7.testcase \ + compressgeometry8.testcase \ + compressgeometry9.testcase \ + createrastercoverages.testcase \ + createuuid1.testcase \ + dimension1.testcase \ + dimension2.testcase \ + dimension3.testcase \ + dimension4.testcase \ + dimension5.testcase \ + dimension6.testcase \ + dimension7.testcase \ + dimension8.testcase \ + dissolve10.testcase \ + dissolve11.testcase \ + dissolve12.testcase \ + dissolve13.testcase \ + dissolve14.testcase \ + dissolve15.testcase \ + dissolve16.testcase \ + dissolve17.testcase \ + dissolve18.testcase \ + dissolve19.testcase \ + dissolve1.testcase \ + dissolve20.testcase \ + dissolve21.testcase \ + dissolve22.testcase \ + dissolve23.testcase \ + dissolve24.testcase \ + dissolve25.testcase \ + dissolve26.testcase \ + dissolve27.testcase \ + dissolve28.testcase \ + dissolve29.testcase \ + dissolve2.testcase \ + dissolve30.testcase \ + dissolve3.testcase \ + dissolve4.testcase \ + dissolve5.testcase \ + dissolve6.testcase \ + dissolve7.testcase \ + dissolve8.testcase \ + dissolve9.testcase \ + dm_m.testcase \ + DSC_1467.JPG \ + DSCN0042.JPG \ + emptyfile.txt \ + endpoint1.testcase \ + envelope1.testcase \ + envelope2.testcase \ + envelope3.testcase \ + envelope4.testcase \ + envelope5.testcase \ + envelope6.testcase \ + envelope7.testcase \ + envintersects10.testcase \ + envintersects1.testcase \ + envintersects2.testcase \ + envintersects3.testcase \ + envintersects4.testcase \ + envintersects5.testcase \ + envintersects6.testcase \ + envintersects7.testcase \ + envintersects8.testcase \ + envintersects9.testcase \ + ewkb10.testcase \ + ewkb11.testcase \ + ewkb12.testcase \ + ewkb1.testcase \ + ewkb2.testcase \ + ewkb3.testcase \ + ewkb4.testcase \ + ewkb5.testcase \ + ewkb6.testcase \ + ewkb7.testcase \ + ewkb8.testcase \ + ewkb9.testcase \ + expand1.testcase \ + expand2.testcase \ + expand3.testcase \ + expand4.testcase \ + expand5.testcase \ + expand6.testcase \ + expand7.testcase \ + extent1.testcase \ + extractmultilinestring1.testcase \ + extractmultilinestring2.testcase \ + extractmultilinestring3.testcase \ + extractmultipoint1.testcase \ + extractmultipoint2.testcase \ + extractmultipoint3.testcase \ + extractmultipolygon1.testcase \ + extractmultipolygon2.testcase \ + extractmultipolygon3.testcase \ + fath_m.testcase \ + fdo_ogr1.testcase \ + fdo_ogr2.testcase \ + fdo-wkb.sqlite_RO \ + forcenull10.testcase \ + forcenull11.testcase \ + forcenull12.testcase \ + forcenull13.testcase \ + forcenull14.testcase \ + forcenull15.testcase \ + forcenull16.testcase \ + forcenull17.testcase \ + forcenull18.testcase \ + forcenull19.testcase \ + forcenull1.testcase \ + forcenull20.testcase \ + forcenull21.testcase \ + forcenull22.testcase \ + forcenull23.testcase \ + forcenull24.testcase \ + forcenull25.testcase \ + forcenull26.testcase \ + forcenull27.testcase \ + forcenull28.testcase \ + forcenull2.testcase \ + forcenull3.testcase \ + forcenull4.testcase \ + forcenull5.testcase \ + forcenull6.testcase \ + forcenull7.testcase \ + forcenull8.testcase \ + forcenull9.testcase \ + fromewkt10.testcase \ + fromewkt11.testcase \ + fromewkt12.testcase \ + fromewkt13.testcase \ + fromewkt14.testcase \ + fromewkt15.testcase \ + fromewkt16.testcase \ + fromewkt17.testcase \ + fromewkt18.testcase \ + fromewkt19.testcase \ + fromewkt1.testcase \ + fromewkt20.testcase \ + fromewkt22.testcase \ + fromewkt23.testcase \ + fromewkt24.testcase \ + fromewkt25.testcase \ + fromewkt26.testcase \ + fromewkt27.testcase \ + fromewkt28.testcase \ + fromewkt29.testcase \ + fromewkt2.testcase \ + fromewkt30.testcase \ + fromewkt31.testcase \ + fromewkt32.testcase \ + fromewkt33.testcase \ + fromewkt34.testcase \ + fromewkt35.testcase \ + fromewkt36.testcase \ + fromewkt37.testcase \ + fromewkt38.testcase \ + fromewkt39.testcase \ + fromewkt3.testcase \ + fromewkt4.testcase \ + fromewkt5.testcase \ + fromewkt6.testcase \ + fromewkt7.testcase \ + fromewkt8.testcase \ + fromewkt9.testcase \ + fromgeojson10.testcase \ + fromgeojson11.testcase \ + fromgeojson12.testcase \ + fromgeojson13.testcase \ + fromgeojson14.testcase \ + fromgeojson15.testcase \ + fromgeojson16.testcase \ + fromgeojson17.testcase \ + fromgeojson18.testcase \ + fromgeojson19.testcase \ + fromgeojson1.testcase \ + fromgeojson20.testcase \ + fromgeojson21.testcase \ + fromgeojson22.testcase \ + fromgeojson23.testcase \ + fromgeojson24.testcase \ + fromgeojson25.testcase \ + fromgeojson26.testcase \ + fromgeojson27.testcase \ + fromgeojson28.testcase \ + fromgeojson29.testcase \ + fromgeojson2.testcase \ + fromgeojson30.testcase \ + fromgeojson31.testcase \ + fromgeojson32.testcase \ + fromgeojson3.testcase \ + fromgeojson4.testcase \ + fromgeojson5.testcase \ + fromgeojson6.testcase \ + fromgeojson7.testcase \ + fromgeojson8.testcase \ + fromgeojson9.testcase \ + fromgml10.testcase \ + fromgml11.testcase \ + fromgml12.testcase \ + fromgml13.testcase \ + fromgml14.testcase \ + fromgml15.testcase \ + fromgml16.testcase \ + fromgml17.testcase \ + fromgml18.testcase \ + fromgml19.testcase \ + fromgml1.testcase \ + fromgml20.testcase \ + fromgml21.testcase \ + fromgml22.testcase \ + fromgml23.testcase \ + fromgml24.testcase \ + fromgml25.testcase \ + fromgml26.testcase \ + fromgml27.testcase \ + fromgml28.testcase \ + fromgml29.testcase \ + fromgml2.testcase \ + fromgml30.testcase \ + fromgml31.testcase \ + fromgml32.testcase \ + fromgml33.testcase \ + fromgml34.testcase \ + fromgml35.testcase \ + fromgml36.testcase \ + fromgml37.testcase \ + fromgml38.testcase \ + fromgml39.testcase \ + fromgml3.testcase \ + fromgml40.testcase \ + fromgml41.testcase \ + fromgml43.testcase \ + fromgml44.testcase \ + fromgml45.testcase \ + fromgml46.testcase \ + fromgml47.testcase \ + fromgml48.testcase \ + fromgml49.testcase \ + fromgml4.testcase \ + fromgml50.testcase \ + fromgml51.testcase \ + fromgml52.testcase \ + fromgml53.testcase \ + fromgml54.testcase \ + fromgml55.testcase \ + fromgml56.testcase \ + fromgml57.testcase \ + fromgml58.testcase \ + fromgml59.testcase \ + fromgml5.testcase \ + fromgml60.testcase \ + fromgml61.testcase \ + fromgml6.testcase \ + fromgml7.testcase \ + fromgml8.testcase \ + fromgml9.testcase \ + fromWkb10.testcase \ + fromWkb11.testcase \ + fromWkb12.testcase \ + fromWkb13.testcase \ + fromWkb14.testcase \ + fromWkb15.testcase \ + fromWkb16.testcase \ + fromWkb17.testcase \ + fromWkb18.testcase \ + fromWkb19.testcase \ + fromWkb1.testcase \ + fromWkb20.testcase \ + fromWkb21.testcase \ + fromWkb22.testcase \ + fromWkb23.testcase \ + fromWkb24.testcase \ + fromWkb25.testcase \ + fromWkb26.testcase \ + fromWkb2.testcase \ + fromWkb3.testcase \ + fromWkb4.testcase \ + fromWkb5.testcase \ + fromWkb6.testcase \ + fromWkb7.testcase \ + fromWkb8.testcase \ + fromWkb9.testcase \ + ft_m.testcase \ + garsmbr10.testcase \ + garsmbr11.testcase \ + garsmbr12.testcase \ + garsmbr13.testcase \ + garsmbr14.testcase \ + garsmbr15.testcase \ + garsmbr16.testcase \ + garsmbr17.testcase \ + garsmbr18.testcase \ + garsmbr1.testcase \ + garsmbr20.testcase \ + garsmbr21.testcase \ + garsmbr22.testcase \ + garsmbr23.testcase \ + garsmbr24.testcase \ + garsmbr25.testcase \ + garsmbr26.testcase \ + garsmbr27.testcase \ + garsmbr28.testcase \ + garsmbr29.testcase \ + garsmbr2.testcase \ + garsmbr30.testcase \ + garsmbr31.testcase \ + garsmbr32.testcase \ + garsmbr33.testcase \ + garsmbr34.testcase \ + garsmbr35.testcase \ + garsmbr36.testcase \ + garsmbr3.testcase \ + garsmbr4.testcase \ + garsmbr5.testcase \ + garsmbr6.testcase \ + garsmbr7.testcase \ + garsmbr8.testcase \ + garsmbr9.testcase \ + geodesic-len1.testcase \ + geodesic-len2.testcase \ + geodesic-len3.testcase \ + geodesic-len4.testcase \ + geodesic-len5.testcase \ + geodesic-len6.testcase \ + geodesic-len7.testcase \ + geodesic-len8.testcase \ + geojson1.testcase \ + geojson2.testcase \ + geojson3.testcase \ + geojson4.testcase \ + geojson5.testcase \ + geojson6.testcase \ + geomcollfromtext1.testcase \ + geomcollfromtext2.testcase \ + geomconstraints10.testcase \ + geomconstraints11.testcase \ + geomconstraints12.testcase \ + geomconstraints13.testcase \ + geomconstraints14.testcase \ + geomconstraints15.testcase \ + geomconstraints16.testcase \ + geomconstraints17.testcase \ + geomconstraints18.testcase \ + geomconstraints19.testcase \ + geomconstraints1.testcase \ + geomconstraints20.testcase \ + geomconstraints21.testcase \ + geomconstraints22.testcase \ + geomconstraints23.testcase \ + geomconstraints24.testcase \ + geomconstraints25.testcase \ + geomconstraints26.testcase \ + geomconstraints27.testcase \ + geomconstraints28.testcase \ + geomconstraints2.testcase \ + geomconstraints3.testcase \ + geomconstraints4.testcase \ + geomconstraints5.testcase \ + geomconstraints6.testcase \ + geomconstraints7.testcase \ + geomconstraints8.testcase \ + geomconstraints9.testcase \ + geometryn10.testcase \ + geometryn11.testcase \ + geometryn12.testcase \ + geometryn13.testcase \ + geometryn14.testcase \ + geometryn15.testcase \ + geometryn16.testcase \ + geometryn17.testcase \ + geometryn18.testcase \ + geometryn19.testcase \ + geometryn1.testcase \ + geometryn20.testcase \ + geometryn2.testcase \ + geometryn3.testcase \ + geometryn4.testcase \ + geometryn5.testcase \ + geometryn6.testcase \ + geometryn7.testcase \ + geometryn8.testcase \ + geometryn9.testcase \ + geometryn.testcase \ + geomfromewkb1.testcase \ + geomfromewkb2.testcase \ + geomfromkml10.testcase \ + geomfromkml11.testcase \ + geomfromkml12.testcase \ + geomfromkml13.testcase \ + geomfromkml14.testcase \ + geomfromkml15.testcase \ + geomfromkml16.testcase \ + geomfromkml17.testcase \ + geomfromkml18.testcase \ + geomfromkml19.testcase \ + geomfromkml1.testcase \ + geomfromkml20.testcase \ + geomfromkml21.testcase \ + geomfromkml22.testcase \ + geomfromkml23.testcase \ + geomfromkml2.testcase \ + geomfromkml3.testcase \ + geomfromkml4.testcase \ + geomfromkml5.testcase \ + geomfromkml6.testcase \ + geomfromkml7.testcase \ + geomfromkml8.testcase \ + geomfromkml9.testcase \ + geomfromtext10.testcase \ + geomfromtext11.testcase \ + geomfromtext12.testcase \ + geomfromtext13.testcase \ + geomfromtext14.testcase \ + geomfromtext15.testcase \ + geomfromtext16.testcase \ + geomfromtext17.testcase \ + geomfromtext18.testcase \ + geomfromtext19.testcase \ + geomfromtext1.testcase \ + geomfromtext20.testcase \ + geomfromtext21.testcase \ + geomfromtext22.testcase \ + geomfromtext23.testcase \ + geomfromtext24.testcase \ + geomfromtext25.testcase \ + geomfromtext26.testcase \ + geomfromtext27.testcase \ + geomfromtext28.testcase \ + geomfromtext29.testcase \ + geomfromtext2.testcase \ + geomfromtext30.testcase \ + geomfromtext31.testcase \ + geomfromtext32.testcase \ + geomfromtext33.testcase \ + geomfromtext34.testcase \ + geomfromtext35.testcase \ + geomfromtext36.testcase \ + geomfromtext37.testcase \ + geomfromtext38.testcase \ + geomfromtext39.testcase \ + geomfromtext3.testcase \ + geomfromtext40.testcase \ + geomfromtext41.testcase \ + geomfromtext42.testcase \ + geomfromtext43.testcase \ + geomfromtext44.testcase \ + geomfromtext45.testcase \ + geomfromtext4.testcase \ + geomfromtext5.testcase \ + geomfromtext6.testcase \ + geomfromtext7.testcase \ + geomfromtext8.testcase \ + geomfromtext9.testcase \ + geomtype10.testcase \ + geomtype11.testcase \ + geomtype12.testcase \ + geomtype13.testcase \ + geomtype14.testcase \ + geomtype15.testcase \ + geomtype16.testcase \ + geomtype17.testcase \ + geomtype18.testcase \ + geomtype19.testcase \ + geomtype1.testcase \ + geomtype20.testcase \ + geomtype21.testcase \ + geomtype22.testcase \ + geomtype23.testcase \ + geomtype24.testcase \ + geomtype25.testcase \ + geomtype26.testcase \ + geomtype27.testcase \ + geomtype28.testcase \ + geomtype29.testcase \ + geomtype2.testcase \ + geomtype30.testcase \ + geomtype31.testcase \ + geomtype32.testcase \ + geomtype33.testcase \ + geomtype34.testcase \ + geomtype35.testcase \ + geomtype36.testcase \ + geomtype37.testcase \ + geomtype38.testcase \ + geomtype39.testcase \ + geomtype3.testcase \ + geomtype40.testcase \ + geomtype41.testcase \ + geomtype42.testcase \ + geomtype43.testcase \ + geomtype44.testcase \ + geomtype45.testcase \ + geomtype46.testcase \ + geomtype47.testcase \ + geomtype48.testcase \ + geomtype49.testcase \ + geomtype4.testcase \ + geomtype50.testcase \ + geomtype51.testcase \ + geomtype52.testcase \ + geomtype53.testcase \ + geomtype54.testcase \ + geomtype55.testcase \ + geomtype56.testcase \ + geomtype57.testcase \ + geomtype58.testcase \ + geomtype59.testcase \ + geomtype5.testcase \ + geomtype60.testcase \ + geomtype61.testcase \ + geomtype62.testcase \ + geomtype63.testcase \ + geomtype64.testcase \ + geomtype65.testcase \ + geomtype66.testcase \ + geomtype67.testcase \ + geomtype68.testcase \ + geomtype69.testcase \ + geomtype6.testcase \ + geomtype7.testcase \ + geomtype8.testcase \ + geomtype9.testcase \ + getmimetype1.testcase \ + getmimetype2.testcase \ + getmimetype3.testcase \ + getmimetype4.testcase \ + getmimetype5.testcase \ + gml10.testcase \ + gml11.testcase \ + gml12.testcase \ + gml13.testcase \ + gml14.testcase \ + gml15.testcase \ + gml16.testcase \ + gml1.testcase \ + gml2.testcase \ + gml3.testcase \ + gml4.testcase \ + gml5.testcase \ + gml6.testcase \ + gml7.testcase \ + gml8.testcase \ + gml9.testcase \ + greatcircle-badblob.testcase \ + greatcircle-poly2.testcase \ + greatcircle-poly3.testcase \ + greatcircle-poly4.testcase \ + greatcircle-poly5.testcase \ + greatcircle-poly6.testcase \ + greatcircle-poly7.testcase \ + greatcircle-poly.testcase \ + greatcircle.testcase \ + greatcircle-text.testcase \ + ind_ch_m.testcase \ + ind_ft_m.testcase \ + ind_yd_m.testcase \ + in_m.testcase \ + is3d1.testcase \ + is3d2.testcase \ + is3d3.testcase \ + is3d4.testcase \ + is3d5.testcase \ + is3d6.testcase \ + isempty2.testcase \ + isempty3.testcase \ + isempty4.testcase \ + isempty.testcase \ + ismeasured1.testcase \ + ismeasured2.testcase \ + ismeasured3.testcase \ + ismeasured4.testcase \ + ismeasured5.testcase \ + ismeasured6.testcase \ + ispopulatedcoverage1.testcase \ + ispopulatedcoverage2.testcase \ + isvalidnodata1.testcase \ + isvalidnodata2.testcase \ + isvalidnodata3.testcase \ + isvalidnodata4.testcase \ + isvalidpalette1.testcase \ + isvalidpalette2.testcase \ + isvalidpalette3.testcase \ + isvalidrasterstats1.testcase \ + isvalidrasterstats2.testcase \ + isvalidrasterstats3.testcase \ + isvalidrasterstats4.testcase \ + isvalidrasterstats5.testcase \ + isvalidrasterstats6.testcase \ + isvalidrasterstats7.testcase \ + isvalidrastertile1.testcase \ + isvalidrastertile2.testcase \ + isvalidrastertile3.testcase \ + isvalidrastertile4.testcase \ + isvalidrastertile5.testcase \ + isvalidrastertile6.testcase \ + isXblob5.testcase \ + isXblob6.testcase \ + isXblob7.testcase \ + k3b-icon.png \ + km_m.testcase \ + ktorrent_grad1.jpg \ + ktorrent_sidebar.gif \ + La_folla_durante_il_Palio.jpg \ + lhr1.testcase \ + lhr2.testcase \ + lhr3.testcase \ + lhr4.testcase \ + lhr5.testcase \ + lhr6.testcase \ + linefromtext1.testcase \ + linefromtext2.testcase \ + linesfromrings1.testcase \ + linesfromrings2.testcase \ + linesfromrings3.testcase \ + linesfromrings4.testcase \ + linesfromrings5.testcase \ + linesfromrings6.testcase \ + linesfromrings7.testcase \ + link_m.testcase \ + locatemeasure10.testcase \ + locatemeasure11.testcase \ + locatemeasure12.testcase \ + locatemeasure13.testcase \ + locatemeasure14.testcase \ + locatemeasure15.testcase \ + locatemeasure16.testcase \ + locatemeasure17.testcase \ + locatemeasure18.testcase \ + locatemeasure19.testcase \ + locatemeasure1.testcase \ + locatemeasure2.testcase \ + locatemeasure3.testcase \ + locatemeasure4.testcase \ + locatemeasure5.testcase \ + locatemeasure6.testcase \ + locatemeasure7.testcase \ + locatemeasure8.testcase \ + locatemeasure9.testcase \ + makeline10.testcase \ + makeline11.testcase \ + makeline12.testcase \ + makeline13.testcase \ + makeline14.testcase \ + makeline15.testcase \ + makeline16.testcase \ + makeline17.testcase \ + makeline18.testcase \ + makeline19.testcase \ + makeline20.testcase \ + makeline21.testcase \ + makeline22.testcase \ + makeline23.testcase \ + makeline24.testcase \ + makeline25.testcase \ + makeline26.testcase \ + makeline27.testcase \ + makeline28.testcase \ + makeline29.testcase \ + makeline2.testcase \ + makeline3.testcase \ + makeline30.testcase \ + makeline31.testcase \ + makeline32.testcase \ + makeline4.testcase \ + makeline5.testcase \ + makeline6.testcase \ + makeline7.testcase \ + makeline8.testcase \ + makeline9.testcase \ + makeline.testcase \ + makepoint10.testcase \ + makepoint11.testcase \ + makepoint12.testcase \ + makepoint13.testcase \ + makepoint14.testcase \ + makepoint15.testcase \ + makepoint1.testcase \ + makepoint2.testcase \ + makepoint3.testcase \ + makepoint4.testcase \ + makepoint5.testcase \ + makepoint6.testcase \ + makepoint7.testcase \ + makepoint8.testcase \ + makepoint9.testcase \ + makepointm-null1.testcase \ + makepointm-null2.testcase \ + makepointm-null3.testcase \ + makepointm-null4.testcase \ + makepointm-null5.testcase \ + makepointm-null6.testcase \ + makepointm-null7.testcase \ + makepointm-null8.testcase \ + makepoint-null1.testcase \ + makepoint-null2.testcase \ + makepoint-null3.testcase \ + makepoint-null4.testcase \ + makepoint-null5.testcase \ + makepoint-null6.testcase \ + makepoint-null7.testcase \ + makepointzm-null10.testcase \ + makepointzm-null1.testcase \ + makepointzm-null2.testcase \ + makepointzm-null3.testcase \ + makepointzm-null4.testcase \ + makepointzm-null5.testcase \ + makepointzm-null6.testcase \ + makepointzm-null7.testcase \ + makepointzm-null8.testcase \ + makepointzm-null9.testcase \ + makepointz-null1.testcase \ + makepointz-null2.testcase \ + makepointz-null3.testcase \ + makepointz-null4.testcase \ + makepointz-null5.testcase \ + makepointz-null6.testcase \ + makepointz-null7.testcase \ + makepointz-null8.testcase \ + makepointz-null9.testcase \ + makecircle1.testcase \ + makecircle2.testcase \ + makecircle3.testcase \ + makecircle4.testcase \ + makecircle5.testcase \ + makecircle6.testcase \ + makecircle7.testcase \ + makecircle8.testcase \ + makecircle9.testcase \ + makeellipse1.testcase \ + makeellipse2.testcase \ + makeellipse3.testcase \ + makeellipse4.testcase \ + makeellipse5.testcase \ + makeellipse6.testcase \ + makeellipse7.testcase \ + makeellipse8.testcase \ + makeellipse9.testcase \ + makeellipse10.testcase \ + makeellipse11.testcase \ + makeellipse12.testcase \ + makeellipse14.testcase \ + makeellipse15.testcase \ + makeellipse16.testcase \ + makeellipse18.testcase \ + makeellipse19.testcase \ + makeellipse20.testcase \ + makearc1.testcase \ + makearc2.testcase \ + makearc3.testcase \ + makearc4.testcase \ + makearc5.testcase \ + makearc6.testcase \ + makearc7.testcase \ + makearc8.testcase \ + makearc9.testcase \ + makearc10.testcase \ + makearc11.testcase \ + makearc12.testcase \ + makearc13.testcase \ + makearc14.testcase \ + makearc16.testcase \ + makearc17.testcase \ + makearc18.testcase \ + makearc20.testcase \ + makearc21.testcase \ + makearc22.testcase \ + makeellipticarc1.testcase \ + makeellipticarc2.testcase \ + makeellipticarc3.testcase \ + makeellipticarc4.testcase \ + makeellipticarc5.testcase \ + makeellipticarc6.testcase \ + makeellipticarc7.testcase \ + makeellipticarc8.testcase \ + makeellipticarc9.testcase \ + makeellipticarc10.testcase \ + makeellipticarc11.testcase \ + makeellipticarc12.testcase \ + makeellipticarc13.testcase \ + makeellipticarc14.testcase \ + makeellipticarc15.testcase \ + makeellipticarc16.testcase \ + makeellipticarc17.testcase \ + makeellipticarc19.testcase \ + makeellipticarc20.testcase \ + makeellipticarc21.testcase \ + makeellipticarc23.testcase \ + makeellipticarc24.testcase \ + makeellipticarc25.testcase \ + makecircularsector1.testcase \ + makecircularsector2.testcase \ + makecircularsector3.testcase \ + makecircularsector4.testcase \ + makecircularsector5.testcase \ + makecircularsector6.testcase \ + makecircularsector7.testcase \ + makecircularsector8.testcase \ + makecircularsector9.testcase \ + makecircularsector10.testcase \ + makecircularsector11.testcase \ + makecircularsector12.testcase \ + makecircularsector13.testcase \ + makecircularsector14.testcase \ + makecircularsector16.testcase \ + makecircularsector17.testcase \ + makecircularsector18.testcase \ + makecircularsector20.testcase \ + makecircularsector21.testcase \ + makecircularsector22.testcase \ + makecircularstripe1.testcase \ + makecircularstripe2.testcase \ + makecircularstripe3.testcase \ + makecircularstripe4.testcase \ + makecircularstripe5.testcase \ + makecircularstripe6.testcase \ + makecircularstripe7.testcase \ + makecircularstripe8.testcase \ + makecircularstripe9.testcase \ + makecircularstripe10.testcase \ + makecircularstripe11.testcase \ + makecircularstripe12.testcase \ + makecircularstripe13.testcase \ + makecircularstripe14.testcase \ + makecircularstripe16.testcase \ + makecircularstripe17.testcase \ + makecircularstripe18.testcase \ + makecircularstripe20.testcase \ + makecircularstripe21.testcase \ + makecircularstripe22.testcase \ + makecircularstripe24.testcase \ + makecircularstripe25.testcase \ + makecircularstripe26.testcase \ + makeellipticsector1.testcase \ + makeellipticsector2.testcase \ + makeellipticsector3.testcase \ + makeellipticsector4.testcase \ + makeellipticsector5.testcase \ + makeellipticsector6.testcase \ + makeellipticsector7.testcase \ + makeellipticsector8.testcase \ + makeellipticsector9.testcase \ + makeellipticsector10.testcase \ + makeellipticsector11.testcase \ + makeellipticsector12.testcase \ + makeellipticsector13.testcase \ + makeellipticsector14.testcase \ + makeellipticsector15.testcase \ + makeellipticsector16.testcase \ + makeellipticsector17.testcase \ + makeellipticsector19.testcase \ + makeellipticsector20.testcase \ + makeellipticsector21.testcase \ + makeellipticsector23.testcase \ + makeellipticsector24.testcase \ + makeellipticsector25.testcase \ + maxm1.testcase \ + maxm2.testcase \ + maxm3.testcase \ + maxm4.testcase \ + maxm5.testcase \ + maxm6.testcase \ + maxm7.testcase \ + maxz1.testcase \ + maxz2.testcase \ + maxz3.testcase \ + maxz4.testcase \ + maxz5.testcase \ + maxz6.testcase \ + maxz7.testcase \ + mbr10.testcase \ + mbr11.testcase \ + mbr12.testcase \ + mbr13.testcase \ + mbr14.testcase \ + mbr15.testcase \ + mbr16.testcase \ + mbr17.testcase \ + mbr18.testcase \ + mbr19.testcase \ + mbr1.testcase \ + mbr20.testcase \ + mbr21.testcase \ + mbr22.testcase \ + mbr23.testcase \ + mbr24.testcase \ + mbr25.testcase \ + mbr26.testcase \ + mbr27.testcase \ + mbr28.testcase \ + mbr29.testcase \ + mbr2.testcase \ + mbr30.testcase \ + mbr31.testcase \ + mbr32.testcase \ + mbr3.testcase \ + mbr4.testcase \ + mbr5.testcase \ + mbr6.testcase \ + mbr7.testcase \ + mbr8.testcase \ + mbr9.testcase \ + mbrminmax1.testcase \ + mbrminmax2.testcase \ + mbrminmax3.testcase \ + mbrminmax4.testcase \ + mbrminmax5.testcase \ + mbrminmax6.testcase \ + mbrminmax7.testcase \ + mbrminmax8.testcase \ + m_ch.testcase \ + m_cm.testcase \ + m_dm.testcase \ + m_fath.testcase \ + m_ft.testcase \ + m_ft-text.testcase \ + mi_m.testcase \ + m_ind_ch.testcase \ + m_ind_ft.testcase \ + m_ind_yd.testcase \ + minm1.testcase \ + minm2.testcase \ + minm3.testcase \ + minm4.testcase \ + minm5.testcase \ + minm6.testcase \ + m_in.testcase \ + m_in_us.testcase \ + minz1.testcase \ + minz2.testcase \ + minz3.testcase \ + minz4.testcase \ + minz5.testcase \ + minz6.testcase \ + m_km.testcase \ + mlinefromtext1.testcase \ + mlinefromtext2.testcase \ + m_ln.testcase \ + m_mi.testcase \ + m_mm.testcase \ + mm_m.testcase \ + m_nm.testcase \ + mpointfromtext1.testcase \ + mpointfromtext2.testcase \ + mpolygonfromtext1.testcase \ + mpolygonfromtext2.testcase \ + m_us_ch.testcase \ + m_us_ft.testcase \ + m_usmi.testcase \ + m_yd.testcase \ + m_yd_us.testcase \ + ndims1.testcase \ + ndims2.testcase \ + ndims3.testcase \ + ndims4.testcase \ + ndims5.testcase \ + ndims6.testcase \ + nm_m.testcase \ + normalizelonlat10.testcase \ + normalizelonlat11.testcase \ + normalizelonlat12.testcase \ + normalizelonlat13.testcase \ + normalizelonlat14.testcase \ + normalizelonlat15.testcase \ + normalizelonlat16.testcase \ + normalizelonlat17.testcase \ + normalizelonlat18.testcase \ + normalizelonlat19.testcase \ + normalizelonlat1.testcase \ + normalizelonlat20.testcase \ + normalizelonlat21.testcase \ + normalizelonlat22.testcase \ + normalizelonlat23.testcase \ + normalizelonlat24.testcase \ + normalizelonlat25.testcase \ + normalizelonlat26.testcase \ + normalizelonlat27.testcase \ + normalizelonlat2.testcase \ + normalizelonlat3.testcase \ + normalizelonlat4.testcase \ + normalizelonlat5.testcase \ + normalizelonlat6.testcase \ + normalizelonlat7.testcase \ + normalizelonlat8.testcase \ + normalizelonlat9.testcase \ + npoints1.testcase \ + npoints2.testcase \ + npoints3.testcase \ + npoints4.testcase \ + npoints5.testcase \ + npoints6.testcase \ + nrings1.testcase \ + nrings2.testcase \ + nrings3.testcase \ + nrings4.testcase \ + nrings5.testcase \ + nrings6.testcase \ + numgeometries1.testcase \ + numgeometries2.testcase \ + numgeometries3.testcase \ + numgeometries4.testcase \ + numgeometries5.testcase \ + numgeometries6.testcase \ + NumPoints2.testcase \ + NumPoints3.testcase \ + NumPoints4.testcase \ + NumPoints5.testcase \ + NumPoints6.testcase \ + NumPoints7.testcase \ + NumPoints.testcase \ + pointfromtext1.testcase \ + pointfromtext2.testcase \ + pointn10.testcase \ + pointn11.testcase \ + pointn12.testcase \ + pointn13.testcase \ + pointn14.testcase \ + pointn15.testcase \ + pointn1.testcase \ + pointn2.testcase \ + pointn3.testcase \ + pointn4.testcase \ + pointn5.testcase \ + pointn6.testcase \ + pointn7.testcase \ + pointn8.testcase \ + pointn9.testcase \ + polygonfromtext1.testcase \ + polygonfromtext2.testcase \ + reflectcoords10.testcase \ + reflectcoords11.testcase \ + reflectcoords12.testcase \ + reflectcoords13.testcase \ + reflectcoords14.testcase \ + reflectcoords15.testcase \ + reflectcoords16.testcase \ + reflectcoords17.testcase \ + reflectcoords1.testcase \ + reflectcoords2.testcase \ + reflectcoords3.testcase \ + reflectcoords4.testcase \ + reflectcoords5.testcase \ + reflectcoords6.testcase \ + reflectcoords7.testcase \ + reflectcoords8.testcase \ + reflectcoords9.testcase \ + removepoint10.testcase \ + removepoint11.testcase \ + removepoint12.testcase \ + removepoint13.testcase \ + removepoint14.testcase \ + removepoint15.testcase \ + removepoint16.testcase \ + removepoint1.testcase \ + removepoint2.testcase \ + removepoint3.testcase \ + removepoint4.testcase \ + removepoint5.testcase \ + removepoint6.testcase \ + removepoint7.testcase \ + removepoint8.testcase \ + removepoint9.testcase \ + reverse1.testcase \ + reverse2.testcase \ + reverse3.testcase \ + reverse4.testcase \ + reverse5.testcase \ + reverse6.testcase \ + ring10.testcase \ + ring11.testcase \ + ring12.testcase \ + ring13.testcase \ + ring14.testcase \ + ring15.testcase \ + ring16.testcase \ + ring17.testcase \ + ring18.testcase \ + ring19.testcase \ + ring1.testcase \ + ring20.testcase \ + ring21.testcase \ + ring22.testcase \ + ring23.testcase \ + ring24.testcase \ + ring25.testcase \ + ring26.testcase \ + ring27.testcase \ + ring28.testcase \ + ring2.testcase \ + ring3.testcase \ + ring4.testcase \ + ring5.testcase \ + ring6.testcase \ + ring7.testcase \ + ring8.testcase \ + ring9.testcase \ + rotatecoords10.testcase \ + rotatecoords11.testcase \ + rotatecoords12.testcase \ + rotatecoords13.testcase \ + rotatecoords14.testcase \ + rotatecoords1.testcase \ + rotatecoords2.testcase \ + rotatecoords3.testcase \ + rotatecoords4.testcase \ + rotatecoords5.testcase \ + rotatecoords6.testcase \ + rotatecoords7.testcase \ + rotatecoords8.testcase \ + rotatecoords9.testcase \ + routing1.testcase \ + routing2.testcase \ + routing3.testcase \ + routing4.testcase \ + routing5.testcase \ + rtreealign1.testcase \ + rtreealign2.testcase \ + rtreealign3.testcase \ + rtreealign4.testcase \ + sandro.jpg \ + sanitizeGeometry10.testcase \ + sanitizeGeometry11.testcase \ + sanitizeGeometry12.testcase \ + sanitizeGeometry13.testcase \ + sanitizeGeometry14.testcase \ + sanitizeGeometry15.testcase \ + sanitizeGeometry16.testcase \ + sanitizeGeometry1.testcase \ + sanitizeGeometry2.testcase \ + sanitizeGeometry3.testcase \ + sanitizeGeometry4.testcase \ + sanitizeGeometry5.testcase \ + sanitizeGeometry6.testcase \ + sanitizeGeometry7.testcase \ + sanitizeGeometry8.testcase \ + sanitizeGeometry9.testcase \ + scalecoords10.testcase \ + scalecoords11.testcase \ + scalecoords12.testcase \ + scalecoords13.testcase \ + scalecoords1.testcase \ + scalecoords2.testcase \ + scalecoords3.testcase \ + scalecoords4.testcase \ + scalecoords5.testcase \ + scalecoords6.testcase \ + scalecoords7.testcase \ + scalecoords8.testcase \ + scalecoords9.testcase \ + seconds.wav \ + setpoint10.testcase \ + setpoint11.testcase \ + setpoint12.testcase \ + setpoint13.testcase \ + setpoint14.testcase \ + setpoint15.testcase \ + setpoint16.testcase \ + setpoint17.testcase \ + setpoint18.testcase \ + setpoint19.testcase \ + setpoint1.testcase \ + setpoint20.testcase \ + setpoint21.testcase \ + setpoint22.testcase \ + setpoint23.testcase \ + setpoint2.testcase \ + setpoint3.testcase \ + setpoint4.testcase \ + setpoint5.testcase \ + setpoint6.testcase \ + setpoint7.testcase \ + setpoint8.testcase \ + setpoint9.testcase \ + shiftcoords10.testcase \ + shiftcoords11.testcase \ + shiftcoords12.testcase \ + shiftcoords13.testcase \ + shiftcoords14.testcase \ + shiftcoords15.testcase \ + shiftcoords1.testcase \ + shiftcoords2.testcase \ + shiftcoords3.testcase \ + shiftcoords4.testcase \ + shiftcoords5.testcase \ + shiftcoords6.testcase \ + shiftcoords7.testcase \ + shiftcoords8.testcase \ + shiftcoords9.testcase \ + shiftlongitude10.testcase \ + shiftlongitude11.testcase \ + shiftlongitude12.testcase \ + shiftlongitude13.testcase \ + shiftlongitude14.testcase \ + shiftlongitude15.testcase \ + shiftlongitude16.testcase \ + shiftlongitude17.testcase \ + shiftlongitude18.testcase \ + shiftlongitude19.testcase \ + shiftlongitude1.testcase \ + shiftlongitude20.testcase \ + shiftlongitude21.testcase \ + shiftlongitude22.testcase \ + shiftlongitude23.testcase \ + shiftlongitude24.testcase \ + shiftlongitude25.testcase \ + shiftlongitude26.testcase \ + shiftlongitude2.testcase \ + shiftlongitude3.testcase \ + shiftlongitude4.testcase \ + shiftlongitude5.testcase \ + shiftlongitude6.testcase \ + shiftlongitude7.testcase \ + shiftlongitude8.testcase \ + shiftlongitude9.testcase \ + spatialindex.testcase \ + srid10.testcase \ + srid11.testcase \ + srid1.testcase \ + srid2.testcase \ + srid3.testcase \ + srid4.testcase \ + srid5.testcase \ + srid6.testcase \ + srid7.testcase \ + srid8.testcase \ + srid9.testcase \ + SridFromAuthCRS2.testcase \ + SridFromAuthCRS3.testcase \ + SridFromAuthCRS4.testcase \ + SridFromAuthCRS5.testcase \ + SridFromAuthCRS6.testcase \ + SridFromAuthCRS.testcase \ + startpoint1.testcase \ + startpoint2.testcase \ + startpoint3.testcase \ + st_m1.testcase \ + st_m2.testcase \ + st_m3.testcase \ + st_m4.testcase \ + st_m5.testcase \ + st_m6.testcase \ + st_m8.testcase \ + st_x1.testcase \ + st_x2.testcase \ + st_x3.testcase \ + st_x4.testcase \ + st_x5.testcase \ + st_x6.testcase \ + st_x7.testcase \ + st_x8.testcase \ + st_x9.testcase \ + st_y1.testcase \ + st_y2.testcase \ + st_y3.testcase \ + st_y4.testcase \ + st_y5.testcase \ + st_y7.testcase \ + st_y8.testcase \ + st_y9.testcase \ + st_z1.testcase \ + st_z2.testcase \ + st_z3.testcase \ + st_z4.testcase \ + st_z5.testcase \ + st_z6.testcase \ + st_z7.testcase \ + st_z8.testcase \ + st_z9.testcase \ + swapcoords10.testcase \ + swapcoords11.testcase \ + swapcoords1.testcase \ + swapcoords2.testcase \ + swapcoords3.testcase \ + swapcoords4.testcase \ + swapcoords5.testcase \ + swapcoords6.testcase \ + swapcoords7.testcase \ + swapcoords8.testcase \ + swapcoords9.testcase \ + testdb1.sqlite \ + testFDO.sqlite \ + testFGF.sqlite \ + test.webp \ + togars10.testcase \ + togars11.testcase \ + togars12.testcase \ + togars13.testcase \ + togars1.testcase \ + togars2.testcase \ + togars3.testcase \ + togars4.testcase \ + togars5.testcase \ + togars6.testcase \ + togars7.testcase \ + togars8.testcase \ + togars9.testcase \ + translate10.testcase \ + translate11.testcase \ + translate12.testcase \ + translate13.testcase \ + translate14.testcase \ + translate15.testcase \ + translate16.testcase \ + translate17.testcase \ + translate18.testcase \ + translate19.testcase \ + translate1.testcase \ + translate2.testcase \ + translate3.testcase \ + translate4.testcase \ + translate5.testcase \ + translate6.testcase \ + translate7.testcase \ + translate8.testcase \ + translate9.testcase \ + trivial.sqlite_RO \ + uncompressgeom1.testcase \ + uncompressgeom2.testcase \ + uncompressgeom3.testcase \ + unsafeTriggers1.testcase \ + us_ch_m.testcase \ + us_ft_m.testcase \ + us_in_m.testcase \ + us_mi_m.testcase \ + us_yd_m.testcase \ + wkb10.testcase \ + wkb11.testcase \ + wkb12.testcase \ + wkb13.testcase \ + wkb14.testcase \ + wkb15.testcase \ + wkb16.testcase \ + wkb17.testcase \ + wkb18.testcase \ + wkb19.testcase \ + wkb1.testcase \ + wkb20.testcase \ + wkb21.testcase \ + wkb22.testcase \ + wkb23.testcase \ + wkb24.testcase \ + wkb25.testcase \ + wkb26.testcase \ + wkb27.testcase \ + wkb28.testcase \ + wkb29.testcase \ + wkb2.testcase \ + wkb30.testcase \ + wkb31.testcase \ + wkb32.testcase \ + wkb33.testcase \ + wkb34.testcase \ + wkb35.testcase \ + wkb36.testcase \ + wkb3.testcase \ + wkb4.testcase \ + wkb5.testcase \ + wkb6.testcase \ + wkb7.testcase \ + wkb8.testcase \ + wkb9.testcase \ + wkbtosql1.testcase \ + wkbtosql2.testcase \ + wkbtosql3.testcase \ + wkttosql1.testcase \ + wkttosql2.testcase \ + wkttosql3.testcase \ + yd_m.testcase \ + getlayerextent1.testcase \ + getlayerextent2.testcase \ + getlayerextent3.testcase \ + getlayerextent4.testcase \ + getlayerextent5.testcase \ + getlayerextent6.testcase \ + getlayerextent7.testcase \ + getlayerextent8.testcase \ + getlayerextent9.testcase \ + getlayerextent10.testcase \ + getlayerextent11.testcase \ + getlayerextent12.testcase \ + getlayerextent13.testcase \ + getlayerextent14.testcase \ + invalidatestats1.testcase \ + invalidatestats2.testcase \ + invalidatestats3.testcase \ + invalidatestats4.testcase \ + invalidatestats5.testcase \ + invalidatestats6.testcase \ + invalidatestats7.testcase \ + invalidatestats8.testcase \ + invalidatestats9.testcase \ + invalidatestats10.testcase \ + updatestats1.testcase \ + updatestats2.testcase \ + updatestats3.testcase \ + updatestats4.testcase \ + updatestats5.testcase \ + updatestats6.testcase \ + updatestats7.testcase \ + updatestats8.testcase \ + updatestats9.testcase \ + updatestats10.testcase \ + makepolygon1.testcase \ + makepolygon2.testcase \ + makepolygon3.testcase \ + makepolygon4.testcase \ + makepolygon5.testcase \ + makepolygon7.testcase \ + makepolygon8.testcase \ + makepolygon9.testcase \ + makepolygon10.testcase \ + makepolygon11.testcase \ + makepolygon12.testcase \ + makepolygon13.testcase \ + makepolygon14.testcase \ + makepolygon15.testcase \ + makepolygon16.testcase \ + makepolygon17.testcase \ + makepolygon18.testcase \ + makepolygon19.testcase \ + makepolygon20.testcase \ + makepolygon21.testcase \ + makepolygon22.testcase \ + makepolygon23.testcase \ + makepolygon24.testcase \ + makepolygon25.testcase \ + makepolygon26.testcase \ + todms1.testcase \ + todms2.testcase \ + todms3.testcase \ + todms4.testcase \ + todms5.testcase \ + todms6.testcase \ + todms7.testcase \ + todms8.testcase \ + todms9.testcase \ + todms10.testcase \ + todms11.testcase \ + todms12.testcase \ + todms13.testcase \ + fromdms1.testcase \ + fromdms2.testcase \ + fromdms3.testcase \ + fromdms4.testcase \ + fromdms5.testcase \ + fromdms6.testcase \ + fromdms7.testcase \ + fromdms8.testcase \ + fromdms9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_tests/addpoint1.testcase b/src/spatialite/test/sql_stmt_tests/addpoint1.testcase new file mode 100644 index 0000000..03b2c61 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint1.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - NULL line +:memory: #use in-memory database +SELECT ST_AddPoint(NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint10.testcase b/src/spatialite/test/sql_stmt_tests/addpoint10.testcase new file mode 100644 index 0000000..4f33cdc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint10.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - BLOB Point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint11.testcase b/src/spatialite/test/sql_stmt_tests/addpoint11.testcase new file mode 100644 index 0000000..b572190 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint11.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - NULL index +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint12.testcase b/src/spatialite/test/sql_stmt_tests/addpoint12.testcase new file mode 100644 index 0000000..57f1c62 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint12.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - DOUBLE index +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint13.testcase b/src/spatialite/test/sql_stmt_tests/addpoint13.testcase new file mode 100644 index 0000000..08bb431 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint13.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - TEXT index +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint14.testcase b/src/spatialite/test/sql_stmt_tests/addpoint14.testcase new file mode 100644 index 0000000..194bb2f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint14.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - BLOB index +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint15.testcase b/src/spatialite/test/sql_stmt_tests/addpoint15.testcase new file mode 100644 index 0000000..0883fcc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint15.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - invalid index +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint16.testcase b/src/spatialite/test/sql_stmt_tests/addpoint16.testcase new file mode 100644 index 0000000..ed0a9ca --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint16.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - not a line +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint17.testcase b/src/spatialite/test/sql_stmt_tests/addpoint17.testcase new file mode 100644 index 0000000..aa6bcca --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint17.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - not a line +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint18.testcase b/src/spatialite/test/sql_stmt_tests/addpoint18.testcase new file mode 100644 index 0000000..277e003 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint18.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - not a point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint19.testcase b/src/spatialite/test/sql_stmt_tests/addpoint19.testcase new file mode 100644 index 0000000..e1a4d2e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint19.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - append (no index) +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) +LINESTRING(0 0, 1 0, 1 1) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint2.testcase b/src/spatialite/test/sql_stmt_tests/addpoint2.testcase new file mode 100644 index 0000000..5801c15 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint2.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - INTEGER line +:memory: #use in-memory database +SELECT ST_AddPoint(1, NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(1, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint20.testcase b/src/spatialite/test/sql_stmt_tests/addpoint20.testcase new file mode 100644 index 0000000..b36d829 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint20.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - append (negative index) +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) +LINESTRING(0 0, 1 0, 1 1) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint21.testcase b/src/spatialite/test/sql_stmt_tests/addpoint21.testcase new file mode 100644 index 0000000..9de88a2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint21.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - insert into the middle +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) +LINESTRING(0 0, 1 1, 1 0) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint22.testcase b/src/spatialite/test/sql_stmt_tests/addpoint22.testcase new file mode 100644 index 0000000..c90e19d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint22.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - insert before start +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) +LINESTRING(1 1, 0 0, 1 0) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint23.testcase b/src/spatialite/test/sql_stmt_tests/addpoint23.testcase new file mode 100644 index 0000000..d1e0107 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint23.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - append (no index) Z +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) +LINESTRING Z(0 0 1, 1 0 2, 1 1 0) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint24.testcase b/src/spatialite/test/sql_stmt_tests/addpoint24.testcase new file mode 100644 index 0000000..0d57033 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint24.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - append (no index) M +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) +LINESTRING M(0 0 1, 1 0 2, 1 1 0) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint25.testcase b/src/spatialite/test/sql_stmt_tests/addpoint25.testcase new file mode 100644 index 0000000..12a80e7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint25.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - append (no index) ZM +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) +LINESTRING ZM(0 0 1 3, 1 0 2 3, 1 1 0 0) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint26.testcase b/src/spatialite/test/sql_stmt_tests/addpoint26.testcase new file mode 100644 index 0000000..8b83d65 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint26.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - insert into the middle Z +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) +LINESTRING Z(0 0 1, 1 1 0, 1 0 2) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint27.testcase b/src/spatialite/test/sql_stmt_tests/addpoint27.testcase new file mode 100644 index 0000000..a71da56 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint27.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - insert into the middle M +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) +LINESTRING M(0 0 1, 1 1 0, 1 0 2) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint28.testcase b/src/spatialite/test/sql_stmt_tests/addpoint28.testcase new file mode 100644 index 0000000..a301e37 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint28.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - insert into the middle ZM +:memory: #use in-memory database +SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) +1 # rows (not including the header row) +1 # columns +AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) +LINESTRING ZM(0 0 1 3, 1 1 0 0, 1 0 2 3) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint3.testcase b/src/spatialite/test/sql_stmt_tests/addpoint3.testcase new file mode 100644 index 0000000..9a98a0c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint3.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - DOUBLE line +:memory: #use in-memory database +SELECT ST_AddPoint(1.1, NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(1.1, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint4.testcase b/src/spatialite/test/sql_stmt_tests/addpoint4.testcase new file mode 100644 index 0000000..1785255 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint4.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - TEXT line +:memory: #use in-memory database +SELECT ST_AddPoint('alpha', NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint('alpha', NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint5.testcase b/src/spatialite/test/sql_stmt_tests/addpoint5.testcase new file mode 100644 index 0000000..b13f987 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint5.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - BLOB line +:memory: #use in-memory database +SELECT ST_AddPoint(zeroblob(4), NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(zeroblob(4), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint6.testcase b/src/spatialite/test/sql_stmt_tests/addpoint6.testcase new file mode 100644 index 0000000..6694396 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint6.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - NULL Point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint7.testcase b/src/spatialite/test/sql_stmt_tests/addpoint7.testcase new file mode 100644 index 0000000..3db6aae --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint7.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - INTEGER Point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint8.testcase b/src/spatialite/test/sql_stmt_tests/addpoint8.testcase new file mode 100644 index 0000000..0d8d3a5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint8.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - DOUBLE Point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/addpoint9.testcase b/src/spatialite/test/sql_stmt_tests/addpoint9.testcase new file mode 100644 index 0000000..ce0d394 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/addpoint9.testcase @@ -0,0 +1,7 @@ +ST_AddPoint() - TEXT Point +:memory: #use in-memory database +SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') +1 # rows (not including the header row) +1 # columns +ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/asewkb1.testcase b/src/spatialite/test/sql_stmt_tests/asewkb1.testcase index 310b15a..b2126bb 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb1.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb1.testcase @@ -4,7 +4,7 @@ SELECT Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) -535249443D343332363B303130313030303030303030303030303030303030304630334630303030303030303030303030383430 +3031303130303030323045363130303030303030303030303030303030304630334630303030303030303030303030383430 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb10.testcase b/src/spatialite/test/sql_stmt_tests/asewkb10.testcase index 375549c..948e242 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb10.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb10.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) -535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030 - +30313032303030304530453631303030303030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb11.testcase b/src/spatialite/test/sql_stmt_tests/asewkb11.testcase index a6d4fa8..3c4b376 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb11.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb11.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326))) -535249443D343332363B30313035303030303030303230303030303030313032303030303030303430303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303030303031303230303030303030343030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032323430303030303030303030303030323034303030303030303030303030303345433039413939393939393939393930394330 - +303130353030303032304536313030303030303230303030303030313032303030303030303430303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303030303031303230303030303030343030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032323430303030303030303030303030323034303030303030303030303030303345433039413939393939393939393930394330 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb12.testcase b/src/spatialite/test/sql_stmt_tests/asewkb12.testcase index 549604b..65c779f 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb12.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb12.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326))) -535249443D343332363B30313033303030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030304630334630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303046303346 - +303130333030303032304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030304630334630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb13.testcase b/src/spatialite/test/sql_stmt_tests/asewkb13.testcase index cc9142d..217ede7 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb13.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb13.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) -535249443D343332363B30313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 - +303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb14.testcase b/src/spatialite/test/sql_stmt_tests/asewkb14.testcase index 0afd15a..c1153cc 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb14.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb14.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) -535249443D343332363B30313033303030303430303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 - +303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb15.testcase b/src/spatialite/test/sql_stmt_tests/asewkb15.testcase index 230d5c6..6d03007 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb15.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb15.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) -535249443D343332363B303130343030303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346 - +3031303430303030323045363130303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb16.testcase b/src/spatialite/test/sql_stmt_tests/asewkb16.testcase index f00d80a..6c34b4e 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb16.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb16.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 432 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326))) -535249443D343332363B303130373030303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430 - +3031303730303030323045363130303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb17.testcase b/src/spatialite/test/sql_stmt_tests/asewkb17.testcase index 329fa01..054f218 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb17.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb17.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326))) -535249443D343332363B3031303730303030383030323030303030303031303130303030383030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303038343030313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 - +30313037303030304130453631303030303030323030303030303031303130303030383030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303038343030313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb2.testcase b/src/spatialite/test/sql_stmt_tests/asewkb2.testcase index b03762b..741c686 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb2.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb2.testcase @@ -4,7 +4,5 @@ SELECT Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) -535249443D343332363B30313031303030303830303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 - - +303130313030303041304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb3.testcase b/src/spatialite/test/sql_stmt_tests/asewkb3.testcase index f64d789..83b0ffb 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb3.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb3.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) -535249443D343332363B30313031303030303430303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 - +303130313030303036304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb4.testcase b/src/spatialite/test/sql_stmt_tests/asewkb4.testcase index f1c062c..6aa88bf 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb4.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb4.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326))) -535249443D343332363B30313032303030303030303230303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 - +303130323030303032304536313030303030303230303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb6.testcase b/src/spatialite/test/sql_stmt_tests/asewkb6.testcase index 0df12e6..fae5e0b 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb6.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb6.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) -535249443D343332363B3031303130303030433030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 - +30313031303030304530453631303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb8.testcase b/src/spatialite/test/sql_stmt_tests/asewkb8.testcase index 6ff77ea..53693d9 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb8.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb8.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) -535249443D343332363B303130323030303038303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 - +3031303230303030413045363130303030303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 diff --git a/src/spatialite/test/sql_stmt_tests/asewkb9.testcase b/src/spatialite/test/sql_stmt_tests/asewkb9.testcase index b7d093c..cb016c8 100644 --- a/src/spatialite/test/sql_stmt_tests/asewkb9.testcase +++ b/src/spatialite/test/sql_stmt_tests/asewkb9.testcase @@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326))) -535249443D343332363B303130323030303034303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 - +3031303230303030363045363130303030303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 diff --git a/src/spatialite/test/sql_stmt_tests/asgeojson8.testcase b/src/spatialite/test/sql_stmt_tests/asgeojson8.testcase new file mode 100644 index 0000000..3f6f098 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/asgeojson8.testcase @@ -0,0 +1,7 @@ +asgeojson - bad args (3 arg, out of range option 0) +:memory: #use in-memory database +SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0); +1 # rows (not including the header row) +1 # columns +asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0) +{"type":"Point","coordinates":[1,2]}:0 diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob1.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob1.testcase new file mode 100644 index 0000000..47ca9e8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob1.testcase @@ -0,0 +1,7 @@ +CastToBlob() - NULL +:memory: #use in-memory database +SELECT CastToBlob(NULL) +1 # rows (not including the header row) +1 # columns +CastToBlob(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob10.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob10.testcase new file mode 100644 index 0000000..4183fe6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob10.testcase @@ -0,0 +1,9 @@ +CastToBlob() - Invalid (1) hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCFzZ', 1) +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCFzZ', 1) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob12.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob12.testcase new file mode 100644 index 0000000..7ef96b4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob12.testcase @@ -0,0 +1,9 @@ +CastToBlob() - Invalid (2) hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCF7', 1) +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCF7', 1) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob13.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob13.testcase new file mode 100644 index 0000000..e16a9c8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob13.testcase @@ -0,0 +1,9 @@ +CastToBlob() - Valid (1) hex_input +:memory: #use in-memory database +SELECT Hex(CastToBlob('0129abCF', 1)) +1 # rows (not including the header row) +1 # columns +Hex(CastToBlob('0129abCF', 1)) +0129ABCF + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob14.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob14.testcase new file mode 100644 index 0000000..24ab76a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob14.testcase @@ -0,0 +1,9 @@ +CastToBlob() - Valid (2) hex_input +:memory: #use in-memory database +SELECT Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) +1 # rows (not including the header row) +1 # columns +Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) +0123456789ABCDEFFEDCBA9876543210 + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob2.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob2.testcase new file mode 100644 index 0000000..2bc3935 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob2.testcase @@ -0,0 +1,9 @@ +CastToBlob() - BLOB +:memory: #use in-memory database +SELECT Hex(CastToBlob(x'0102fafb')), TypeOf(CastToBlob(x'0102fafb')) +1 # rows (not including the header row) +2 # columns +Hex(CastToBlob(x'0102fafb')) +TypeOf(CastToBlob(x'0102fafb')) +0102FAFB +blob diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob3.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob3.testcase new file mode 100644 index 0000000..9b8ced4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob3.testcase @@ -0,0 +1,9 @@ +CastToBlob() - TEXT +:memory: #use in-memory database +SELECT Hex(CastToBlob('alpha')), TypeOf(CastToBlob('alpha')) +1 # rows (not including the header row) +2 # columns +Hex(CastToBlob('alpha')) +TypeOf(CastToBlob('alpha')) +616C706861 +blob diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob4.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob4.testcase new file mode 100644 index 0000000..9cefed9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob4.testcase @@ -0,0 +1,9 @@ +CastToBlob() - INTEGER +:memory: #use in-memory database +SELECT CastToBlob(123) +1 # rows (not including the header row) +1 # columns +CastToBlob(123) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob5.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob5.testcase new file mode 100644 index 0000000..6415064 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob5.testcase @@ -0,0 +1,9 @@ +CastToBlob() - DOUBLE +:memory: #use in-memory database +SELECT CastToBlob(123.5) +1 # rows (not including the header row) +1 # columns +CastToBlob(123.5) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob6.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob6.testcase new file mode 100644 index 0000000..b66fe66 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob6.testcase @@ -0,0 +1,9 @@ +CastToBlob() - NULL hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCF', NULL) +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCF', NULL) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob7.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob7.testcase new file mode 100644 index 0000000..dabed0c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob7.testcase @@ -0,0 +1,9 @@ +CastToBlob() - DOUBLE hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCF', 2.3) +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCF', 2.3) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob8.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob8.testcase new file mode 100644 index 0000000..d56321b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob8.testcase @@ -0,0 +1,9 @@ +CastToBlob() - TEXT hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCF', 'alpha') +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCF', 'alpha') +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttoblob9.testcase b/src/spatialite/test/sql_stmt_tests/casttoblob9.testcase new file mode 100644 index 0000000..54cad73 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoblob9.testcase @@ -0,0 +1,9 @@ +CastToBlob() - BLOB hex_input +:memory: #use in-memory database +SELECT CastToBlob('0129abCF', zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToBlob('0129abCF', zeroblob(4)) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble1.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble1.testcase new file mode 100644 index 0000000..798a8f3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble1.testcase @@ -0,0 +1,7 @@ +CastToDouble() - NULL +:memory: #use in-memory database +SELECT CastToDouble(NULL) +1 # rows (not including the header row) +1 # columns +CastToDouble(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble2.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble2.testcase new file mode 100644 index 0000000..fbcdaab --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble2.testcase @@ -0,0 +1,7 @@ +CastToDouble() - BLOB +:memory: #use in-memory database +SELECT CastToDouble(zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToDouble(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble3.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble3.testcase new file mode 100644 index 0000000..8c6d619 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble3.testcase @@ -0,0 +1,7 @@ +CastToDouble() - TEXT invalid +:memory: #use in-memory database +SELECT CastToDouble('alpha') +1 # rows (not including the header row) +1 # columns +CastToDouble('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble4.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble4.testcase new file mode 100644 index 0000000..41ca039 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble4.testcase @@ -0,0 +1,10 @@ +CastToDouble() - TEXT valid +:memory: #use in-memory database +SELECT CastToDouble('123'), TypeOf(CastToDouble('123')) +1 # rows (not including the header row) +2 # columns +CastToDouble('123') +TypeOf(CastToDouble('123')) +123.0 +real + diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble5.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble5.testcase new file mode 100644 index 0000000..886d611 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble5.testcase @@ -0,0 +1,10 @@ +CastToDouble() - TEXT valid decimals +:memory: #use in-memory database +SELECT CastToDouble('123.88'), TypeOf(CastToDouble('123.88')) +1 # rows (not including the header row) +2 # columns +CastToDouble('123.88') +TypeOf(CastToDouble('123.88')) +123.88 +real + diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble6.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble6.testcase new file mode 100644 index 0000000..7ba1ec1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble6.testcase @@ -0,0 +1,10 @@ +CastToDouble() - INTEGER +:memory: #use in-memory database +SELECT CastToDouble(123), TypeOf(CastToDouble(123)) +1 # rows (not including the header row) +2 # columns +CastToDouble(123) +TypeOf(CastToDouble(123)) +123.0 +real + diff --git a/src/spatialite/test/sql_stmt_tests/casttodouble7.testcase b/src/spatialite/test/sql_stmt_tests/casttodouble7.testcase new file mode 100644 index 0000000..e480a51 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttodouble7.testcase @@ -0,0 +1,10 @@ +CastToDouble() - DOUBLE +:memory: #use in-memory database +SELECT CastToDouble(123.4), TypeOf(CastToDouble(123.4)) +1 # rows (not including the header row) +2 # columns +CastToDouble(123.4) +TypeOf(CastToDouble(123.4)) +123.4 +real + diff --git a/src/spatialite/test/sql_stmt_tests/casttoint1.testcase b/src/spatialite/test/sql_stmt_tests/casttoint1.testcase new file mode 100644 index 0000000..ad38282 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint1.testcase @@ -0,0 +1,7 @@ +CastToInteger() - NULL +:memory: #use in-memory database +SELECT CastToInteger(NULL) +1 # rows (not including the header row) +1 # columns +CastToInteger(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttoint2.testcase b/src/spatialite/test/sql_stmt_tests/casttoint2.testcase new file mode 100644 index 0000000..1704814 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint2.testcase @@ -0,0 +1,7 @@ +CastToInteger() - BLOB +:memory: #use in-memory database +SELECT CastToInteger(zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToInteger(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttoint3.testcase b/src/spatialite/test/sql_stmt_tests/casttoint3.testcase new file mode 100644 index 0000000..3dbf6dd --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint3.testcase @@ -0,0 +1,7 @@ +CastToInteger() - TEXT invalid +:memory: #use in-memory database +SELECT CastToInteger('alpha') +1 # rows (not including the header row) +1 # columns +CastToInteger('alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttoint4.testcase b/src/spatialite/test/sql_stmt_tests/casttoint4.testcase new file mode 100644 index 0000000..0565380 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint4.testcase @@ -0,0 +1,10 @@ +CastToInteger() - TEXT valid +:memory: #use in-memory database +SELECT CastToInteger('123'), TypeOf(CastToInteger('123')) +1 # rows (not including the header row) +2 # columns +CastToInteger('123') +TypeOf(CastToInteger('123')) +123 +integer + diff --git a/src/spatialite/test/sql_stmt_tests/casttoint5.testcase b/src/spatialite/test/sql_stmt_tests/casttoint5.testcase new file mode 100644 index 0000000..6964d20 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint5.testcase @@ -0,0 +1,10 @@ +CastToInteger() - TEXT valid decimals +:memory: #use in-memory database +SELECT CastToInteger('123.88'), TypeOf(CastToInteger('123.88')) +1 # rows (not including the header row) +2 # columns +CastToInteger('123.88') +TypeOf(CastToInteger('123.88')) +124 +integer + diff --git a/src/spatialite/test/sql_stmt_tests/casttoint6.testcase b/src/spatialite/test/sql_stmt_tests/casttoint6.testcase new file mode 100644 index 0000000..b5abaa9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint6.testcase @@ -0,0 +1,10 @@ +CastToInteger() - INTEGER +:memory: #use in-memory database +SELECT CastToInteger(123), TypeOf(CastToInteger(123)) +1 # rows (not including the header row) +2 # columns +CastToInteger(123) +TypeOf(CastToInteger(123)) +123 +integer + diff --git a/src/spatialite/test/sql_stmt_tests/casttoint7.testcase b/src/spatialite/test/sql_stmt_tests/casttoint7.testcase new file mode 100644 index 0000000..4a99af5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttoint7.testcase @@ -0,0 +1,10 @@ +CastToInteger() - DOUBLE +:memory: #use in-memory database +SELECT CastToInteger(123.4), TypeOf(CastToInteger(123.4)) +1 # rows (not including the header row) +2 # columns +CastToInteger(123.4) +TypeOf(CastToInteger(123.4)) +123 +integer + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext1.testcase b/src/spatialite/test/sql_stmt_tests/casttotext1.testcase new file mode 100644 index 0000000..9a57bc0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext1.testcase @@ -0,0 +1,7 @@ +CastToText() - NULL +:memory: #use in-memory database +SELECT CastToText(NULL) +1 # rows (not including the header row) +1 # columns +CastToText(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttotext10.testcase b/src/spatialite/test/sql_stmt_tests/casttotext10.testcase new file mode 100644 index 0000000..b692c49 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext10.testcase @@ -0,0 +1,11 @@ +CastToText() - INTEGER, zero_pad +:memory: #use in-memory database +SELECT CastToText(123, 10), TypeOf(CastToText(123, 10)) +1 # rows (not including the header row) +2 # columns +CastToText(123, 10) +TypeOf(CastToText(123, 10)) +0000000123 +text + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext11.testcase b/src/spatialite/test/sql_stmt_tests/casttotext11.testcase new file mode 100644 index 0000000..f2daa8f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext11.testcase @@ -0,0 +1,9 @@ +CastToText() - DOUBLE, NULL zero_pad +:memory: #use in-memory database +SELECT CastToText(123.456, NULL) +1 # rows (not including the header row) +1 # columns +CastToText(123.456, NULL) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext12.testcase b/src/spatialite/test/sql_stmt_tests/casttotext12.testcase new file mode 100644 index 0000000..a2ca02c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext12.testcase @@ -0,0 +1,9 @@ +CastToText() - DOUBLE, DOUBLE zero_pad +:memory: #use in-memory database +SELECT CastToText(123.456, 1.5) +1 # rows (not including the header row) +1 # columns +CastToText(123.456, 1.5) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext13.testcase b/src/spatialite/test/sql_stmt_tests/casttotext13.testcase new file mode 100644 index 0000000..cd77485 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext13.testcase @@ -0,0 +1,9 @@ +CastToText() - DOUBLE, TEXT zero_pad +:memory: #use in-memory database +SELECT CastToText(123.456, 'alpha') +1 # rows (not including the header row) +1 # columns +CastToText(123.456, 'alpha') +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext14.testcase b/src/spatialite/test/sql_stmt_tests/casttotext14.testcase new file mode 100644 index 0000000..256ba4c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext14.testcase @@ -0,0 +1,9 @@ +CastToText() - DOUBLE, BLOB zero_pad +:memory: #use in-memory database +SELECT CastToText(123.456, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToText(123.456, zeroblob(4)) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext15.testcase b/src/spatialite/test/sql_stmt_tests/casttotext15.testcase new file mode 100644 index 0000000..ab45234 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext15.testcase @@ -0,0 +1,11 @@ +CastToText() - DOUBLE, zero_pad +:memory: #use in-memory database +SELECT CastToText(123.456, 10), TypeOf(CastToText(123.456, 10)) +1 # rows (not including the header row) +2 # columns +CastToText(123.456, 10) +TypeOf(CastToText(123.456, 10)) +0000000123.456 +text + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext2.testcase b/src/spatialite/test/sql_stmt_tests/casttotext2.testcase new file mode 100644 index 0000000..f768d98 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext2.testcase @@ -0,0 +1,7 @@ +CastToText() - BLOB +:memory: #use in-memory database +SELECT CastToText(zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToText(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/casttotext3.testcase b/src/spatialite/test/sql_stmt_tests/casttotext3.testcase new file mode 100644 index 0000000..77889c7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext3.testcase @@ -0,0 +1,9 @@ +CastToText() - TEXT +:memory: #use in-memory database +SELECT CastToText('alpha'), TypeOf(CastToText('alpha')) +1 # rows (not including the header row) +2 # columns +CastToText('alpha') +TypeOf(CastToText('alpha')) +alpha +text diff --git a/src/spatialite/test/sql_stmt_tests/casttotext4.testcase b/src/spatialite/test/sql_stmt_tests/casttotext4.testcase new file mode 100644 index 0000000..1851353 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext4.testcase @@ -0,0 +1,11 @@ +CastToText() - INTEGER +:memory: #use in-memory database +SELECT CastToText(123), TypeOf(CastToText(123)) +1 # rows (not including the header row) +2 # columns +CastToText(123) +TypeOf(CastToText(123)) +123 +text + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext5.testcase b/src/spatialite/test/sql_stmt_tests/casttotext5.testcase new file mode 100644 index 0000000..5b56e3b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext5.testcase @@ -0,0 +1,11 @@ +CastToText() - DOUBLE +:memory: #use in-memory database +SELECT CastToText(123.5), TypeOf(CastToText(123.5)) +1 # rows (not including the header row) +2 # columns +CastToText(123.5) +TypeOf(CastToText(123.5)) +123.5 +text + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext6.testcase b/src/spatialite/test/sql_stmt_tests/casttotext6.testcase new file mode 100644 index 0000000..a4b3dae --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext6.testcase @@ -0,0 +1,9 @@ +CastToText() - INTEGER, NULL zero_pad +:memory: #use in-memory database +SELECT CastToText(123, NULL) +1 # rows (not including the header row) +1 # columns +CastToText(123, NULL) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext7.testcase b/src/spatialite/test/sql_stmt_tests/casttotext7.testcase new file mode 100644 index 0000000..1a6d16e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext7.testcase @@ -0,0 +1,9 @@ +CastToText() - INTEGER, DOUBLE zero_pad +:memory: #use in-memory database +SELECT CastToText(123, 1.5) +1 # rows (not including the header row) +1 # columns +CastToText(123, 1.5) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext8.testcase b/src/spatialite/test/sql_stmt_tests/casttotext8.testcase new file mode 100644 index 0000000..5d6ce32 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext8.testcase @@ -0,0 +1,9 @@ +CastToText() - INTEGER, ALPHA zero_pad +:memory: #use in-memory database +SELECT CastToText(123, 'alpha') +1 # rows (not including the header row) +1 # columns +CastToText(123, 'alpha') +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/casttotext9.testcase b/src/spatialite/test/sql_stmt_tests/casttotext9.testcase new file mode 100644 index 0000000..2676133 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/casttotext9.testcase @@ -0,0 +1,9 @@ +CastToText() - INTEGER, BLOB zero_pad +:memory: #use in-memory database +SELECT CastToText(123, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +CastToText(123, zeroblob(4)) +(NULL) + + diff --git a/src/spatialite/test/sql_stmt_tests/collectextract1.testcase b/src/spatialite/test/sql_stmt_tests/collectextract1.testcase index 40af387..5cdf1ce 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract1.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract1.testcase @@ -4,5 +4,5 @@ SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)) -MULTIPOINT(1 2) +POINT(1 2) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract10.testcase b/src/spatialite/test/sql_stmt_tests/collectextract10.testcase index 5498990..99a3375 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract10.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract10.testcase @@ -4,5 +4,5 @@ SELECT AsText(CollectionExtract(GeomFromText("POINTZ(1 2 3)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTZ(1 2 3)"), 1)) -MULTIPOINT Z(1 2 3) +POINT Z(1 2 3) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract11.testcase b/src/spatialite/test/sql_stmt_tests/collectextract11.testcase index f1a163c..0c3707f 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract11.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract11.testcase @@ -4,5 +4,5 @@ SELECT AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)) -MULTIPOINT ZM(1 2 3 4) +POINT ZM(1 2 3 4) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract12.testcase b/src/spatialite/test/sql_stmt_tests/collectextract12.testcase index e264d6f..e587dd6 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract12.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract12.testcase @@ -4,5 +4,5 @@ SELECT AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)) -MULTIPOINT M(1 2 4) +POINT M(1 2 4) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract15.testcase b/src/spatialite/test/sql_stmt_tests/collectextract15.testcase index 0d6a652..498f7b9 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract15.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract15.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)) -MULTILINESTRING((1 2, 4 3)) +LINESTRING(1 2, 4 3) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract16.testcase b/src/spatialite/test/sql_stmt_tests/collectextract16.testcase index 826a7a8..c5fb97b 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract16.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract16.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)) -MULTILINESTRING Z((1 2 4, 4 3 1)) +LINESTRING Z(1 2 4, 4 3 1) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract17.testcase b/src/spatialite/test/sql_stmt_tests/collectextract17.testcase index 4d6f21d..70696db 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract17.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract17.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)) -MULTILINESTRING M((1 2 4, 4 3 1)) +LINESTRING M(1 2 4, 4 3 1) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract18.testcase b/src/spatialite/test/sql_stmt_tests/collectextract18.testcase index d0a1c9d..b908b79 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract18.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract18.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 2)) -MULTILINESTRING ZM((1 2 4 1, 4 3 1 2)) +LINESTRING ZM(1 2 4 1, 4 3 1 2) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract19.testcase b/src/spatialite/test/sql_stmt_tests/collectextract19.testcase index e30ad1d..8c22487 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract19.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract19.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 1 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3),(1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))"), 3)) -MULTIPOLYGON ZM(((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3), (1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))) +POLYGON ZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3), (1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1)) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract20.testcase b/src/spatialite/test/sql_stmt_tests/collectextract20.testcase index 352fe56..4e01c37 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract20.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract20.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) -MULTIPOLYGON Z(((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4))) +POLYGON Z((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4)) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract21.testcase b/src/spatialite/test/sql_stmt_tests/collectextract21.testcase index 212d37c..2f380f2 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract21.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract21.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) -MULTIPOLYGON M(((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4))) +POLYGON M((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4)) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract22.testcase b/src/spatialite/test/sql_stmt_tests/collectextract22.testcase index 30461ce..f519bd5 100644 --- a/src/spatialite/test/sql_stmt_tests/collectextract22.testcase +++ b/src/spatialite/test/sql_stmt_tests/collectextract22.testcase @@ -4,6 +4,6 @@ SELECT AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 2, 4 3, 1 1, 1 2))"), 3)) -MULTIPOLYGON(((0 0, 10 0, 10 10, 0 0), (1 2, 4 3, 1 1, 1 2))) +POLYGON((0 0, 10 0, 10 10, 0 0), (1 2, 4 3, 1 1, 1 2)) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract23.testcase b/src/spatialite/test/sql_stmt_tests/collectextract23.testcase new file mode 100644 index 0000000..4e1c8ef --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/collectextract23.testcase @@ -0,0 +1,7 @@ +Collection Extract - Extract MULTIPOINT +:memory: #use in-memory database +SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 1)); +1 # rows (not including the header row) +1 # columns +AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 1)) +MULTIPOINT(0 0, 1 1) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract24.testcase b/src/spatialite/test/sql_stmt_tests/collectextract24.testcase new file mode 100644 index 0000000..4b1ac86 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/collectextract24.testcase @@ -0,0 +1,7 @@ +Collection Extract - Extract MULTILINESTRING +:memory: #use in-memory database +SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 2)); +1 # rows (not including the header row) +1 # columns +AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 2)) +MULTILINESTRING((0 0, 1 1), (1 1, 2 2)) diff --git a/src/spatialite/test/sql_stmt_tests/collectextract25.testcase b/src/spatialite/test/sql_stmt_tests/collectextract25.testcase new file mode 100644 index 0000000..9e4b3cb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/collectextract25.testcase @@ -0,0 +1,7 @@ +Collection Extract - Extract MULTILINESTRING +:memory: #use in-memory database +SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 3)); +1 # rows (not including the header row) +1 # columns +AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 3)) +MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 1, 2 1, 2 2, 1 2, 1 1))) diff --git a/src/spatialite/test/sql_stmt_tests/createrastercoverages.testcase b/src/spatialite/test/sql_stmt_tests/createrastercoverages.testcase new file mode 100644 index 0000000..9ddcf9a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/createrastercoverages.testcase @@ -0,0 +1,8 @@ +CreateRasterCoveragesTable +NEW:memory: #use in-memory database +SELECT CreateRasterCoveragesTable(); +1 # rows (not including the header row) +1 # columns +CreateRasterCoveragesTable() +1 + diff --git a/src/spatialite/test/sql_stmt_tests/createuuid1.testcase b/src/spatialite/test/sql_stmt_tests/createuuid1.testcase new file mode 100644 index 0000000..6869a57 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/createuuid1.testcase @@ -0,0 +1,7 @@ +CreateUUID() - NULL +:memory: #use in-memory database +SELECT Length(CreateUUID()); +1 # rows (not including the header row) +1 # columns +Length(CreateUUID()) +36 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull1.testcase b/src/spatialite/test/sql_stmt_tests/forcenull1.testcase new file mode 100644 index 0000000..5911bc4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull1.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER/DOUBLE +:memory: #use in-memory database +SELECT ForceAsNull(1, 1.5) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, 1.5) +1 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull10.testcase b/src/spatialite/test/sql_stmt_tests/forcenull10.testcase new file mode 100644 index 0000000..dd799cc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull10.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT/DOUBLE +:memory: #use in-memory database +SELECT ForceAsNull('alpha', 1.5) +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', 1.5) +alpha diff --git a/src/spatialite/test/sql_stmt_tests/forcenull11.testcase b/src/spatialite/test/sql_stmt_tests/forcenull11.testcase new file mode 100644 index 0000000..8595832 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull11.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT/BLOB +:memory: #use in-memory database +SELECT ForceAsNull('alpha', zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', zeroblob(4)) +alpha diff --git a/src/spatialite/test/sql_stmt_tests/forcenull12.testcase b/src/spatialite/test/sql_stmt_tests/forcenull12.testcase new file mode 100644 index 0000000..43906da --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull12.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT/NULL +:memory: #use in-memory database +SELECT ForceAsNull('alpha', NULL) +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', NULL) +alpha diff --git a/src/spatialite/test/sql_stmt_tests/forcenull13.testcase b/src/spatialite/test/sql_stmt_tests/forcenull13.testcase new file mode 100644 index 0000000..4e06a6b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull13.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB/INTEGER +:memory: #use in-memory database +SELECT Hex(ForceAsNull(x'0102a1b2', 1)) +1 # rows (not including the header row) +1 # columns +Hex(ForceAsNull(x'0102a1b2', 1)) +0102A1B2 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull14.testcase b/src/spatialite/test/sql_stmt_tests/forcenull14.testcase new file mode 100644 index 0000000..252361e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull14.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB/DOUBLE +:memory: #use in-memory database +SELECT Hex(ForceAsNull(x'0102a1b2', 1.5)) +1 # rows (not including the header row) +1 # columns +Hex(ForceAsNull(x'0102a1b2', 1.5)) +0102A1B2 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull15.testcase b/src/spatialite/test/sql_stmt_tests/forcenull15.testcase new file mode 100644 index 0000000..80f234e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull15.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB/TEXT +:memory: #use in-memory database +SELECT Hex(ForceAsNull(x'0102a1b2', 'alpha')) +1 # rows (not including the header row) +1 # columns +Hex(ForceAsNull(x'0102a1b2', 'alpha')) +0102A1B2 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull16.testcase b/src/spatialite/test/sql_stmt_tests/forcenull16.testcase new file mode 100644 index 0000000..4e4d602 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull16.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB/NULL +:memory: #use in-memory database +SELECT Hex(ForceAsNull(x'0102a1b2', NULL)) +1 # rows (not including the header row) +1 # columns +Hex(ForceAsNull(x'0102a1b2', NULL)) +0102A1B2 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull17.testcase b/src/spatialite/test/sql_stmt_tests/forcenull17.testcase new file mode 100644 index 0000000..ad26f23 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull17.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - NULL/INTEGER +:memory: #use in-memory database +SELECT ForceAsNull(NULL, 1) +1 # rows (not including the header row) +1 # columns +ForceAsNull(NULL, 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull18.testcase b/src/spatialite/test/sql_stmt_tests/forcenull18.testcase new file mode 100644 index 0000000..b6ef02e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull18.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - NULL/DOUBLE +:memory: #use in-memory database +SELECT ForceAsNull(NULL, 1.5) +1 # rows (not including the header row) +1 # columns +ForceAsNull(NULL, 1.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull19.testcase b/src/spatialite/test/sql_stmt_tests/forcenull19.testcase new file mode 100644 index 0000000..5983e6e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull19.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - NULL/TEXT +:memory: #use in-memory database +SELECT ForceAsNull(NULL, 'alpha') +1 # rows (not including the header row) +1 # columns +ForceAsNull(NULL, 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull2.testcase b/src/spatialite/test/sql_stmt_tests/forcenull2.testcase new file mode 100644 index 0000000..9de74b4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull2.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER/TEXT +:memory: #use in-memory database +SELECT ForceAsNull(1, 'alpha') +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, 'alpha') +1 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull20.testcase b/src/spatialite/test/sql_stmt_tests/forcenull20.testcase new file mode 100644 index 0000000..91222dc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull20.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - NULL/BLOB +:memory: #use in-memory database +SELECT ForceAsNull(NULL, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ForceAsNull(NULL, zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull21.testcase b/src/spatialite/test/sql_stmt_tests/forcenull21.testcase new file mode 100644 index 0000000..3caef0e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull21.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER - mismatching +:memory: #use in-memory database +SELECT ForceAsNull(1, 2) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, 2) +1 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull22.testcase b/src/spatialite/test/sql_stmt_tests/forcenull22.testcase new file mode 100644 index 0000000..7df75ba --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull22.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER - matching +:memory: #use in-memory database +SELECT ForceAsNull(1, 1) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull23.testcase b/src/spatialite/test/sql_stmt_tests/forcenull23.testcase new file mode 100644 index 0000000..3990a71 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull23.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE - mismatching +:memory: #use in-memory database +SELECT ForceAsNull(1.5, 1.6) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, 1.6) +1.5 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull24.testcase b/src/spatialite/test/sql_stmt_tests/forcenull24.testcase new file mode 100644 index 0000000..a7b1158 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull24.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE - matching +:memory: #use in-memory database +SELECT ForceAsNull(1.5, 1.5) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, 1.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull25.testcase b/src/spatialite/test/sql_stmt_tests/forcenull25.testcase new file mode 100644 index 0000000..862447c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull25.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT - mismatching +:memory: #use in-memory database +SELECT ForceAsNull('alpha', 'beta') +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', 'beta') +alpha diff --git a/src/spatialite/test/sql_stmt_tests/forcenull26.testcase b/src/spatialite/test/sql_stmt_tests/forcenull26.testcase new file mode 100644 index 0000000..1da322c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull26.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT - matching +:memory: #use in-memory database +SELECT ForceAsNull('alpha', 'ALPHA') +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', 'ALPHA') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull27.testcase b/src/spatialite/test/sql_stmt_tests/forcenull27.testcase new file mode 100644 index 0000000..51ee023 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull27.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB - mismatching +:memory: #use in-memory database +SELECT Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) +1 # rows (not including the header row) +1 # columns +Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) +0102A1B2 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull28.testcase b/src/spatialite/test/sql_stmt_tests/forcenull28.testcase new file mode 100644 index 0000000..88c6990 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull28.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - BLOB - mismatching +:memory: #use in-memory database +SELECT ForceAsNull(x'0102a1b2', x'0102a1b2') +1 # rows (not including the header row) +1 # columns +ForceAsNull(x'0102a1b2', x'0102a1b2') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/forcenull3.testcase b/src/spatialite/test/sql_stmt_tests/forcenull3.testcase new file mode 100644 index 0000000..4a2cb9c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull3.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER/BLOB +:memory: #use in-memory database +SELECT ForceAsNull(1, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, zeroblob(4)) +1 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull4.testcase b/src/spatialite/test/sql_stmt_tests/forcenull4.testcase new file mode 100644 index 0000000..302fb9c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull4.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - INTEGER/NULL +:memory: #use in-memory database +SELECT ForceAsNull(1, NULL) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1, NULL) +1 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull5.testcase b/src/spatialite/test/sql_stmt_tests/forcenull5.testcase new file mode 100644 index 0000000..a9efbbe --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull5.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE/INTEGER +:memory: #use in-memory database +SELECT ForceAsNull(1.5, 1) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, 1) +1.5 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull6.testcase b/src/spatialite/test/sql_stmt_tests/forcenull6.testcase new file mode 100644 index 0000000..4bfcaa5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull6.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE/TEXT +:memory: #use in-memory database +SELECT ForceAsNull(1.5, 'alpha') +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, 'alpha') +1.5 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull7.testcase b/src/spatialite/test/sql_stmt_tests/forcenull7.testcase new file mode 100644 index 0000000..eb30cb1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull7.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE/BLOB +:memory: #use in-memory database +SELECT ForceAsNull(1.5, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, zeroblob(4)) +1.5 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull8.testcase b/src/spatialite/test/sql_stmt_tests/forcenull8.testcase new file mode 100644 index 0000000..432e178 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull8.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - DOUBLE/NULL +:memory: #use in-memory database +SELECT ForceAsNull(1.5, NULL) +1 # rows (not including the header row) +1 # columns +ForceAsNull(1.5, NULL) +1.5 diff --git a/src/spatialite/test/sql_stmt_tests/forcenull9.testcase b/src/spatialite/test/sql_stmt_tests/forcenull9.testcase new file mode 100644 index 0000000..04a042a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/forcenull9.testcase @@ -0,0 +1,7 @@ +ForceAsNull() - TEXT/INTEGER +:memory: #use in-memory database +SELECT ForceAsNull('alpha', 1) +1 # rows (not including the header row) +1 # columns +ForceAsNull('alpha', 1) +alpha diff --git a/src/spatialite/test/sql_stmt_tests/fromWkb24.testcase b/src/spatialite/test/sql_stmt_tests/fromWkb24.testcase new file mode 100644 index 0000000..dcee96b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromWkb24.testcase @@ -0,0 +1,9 @@ +fromWkb - mixed big-little-endian sub-items (1) +:memory: #use in-memory database +SELECT AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) +GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) + + diff --git a/src/spatialite/test/sql_stmt_tests/fromWkb25.testcase b/src/spatialite/test/sql_stmt_tests/fromWkb25.testcase new file mode 100644 index 0000000..62f6773 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromWkb25.testcase @@ -0,0 +1,9 @@ +fromWkb - mixed big-little-endian sub-items (2) +:memory: #use in-memory database +SELECT AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))) +GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) + + diff --git a/src/spatialite/test/sql_stmt_tests/fromWkb26.testcase b/src/spatialite/test/sql_stmt_tests/fromWkb26.testcase new file mode 100644 index 0000000..416bd60 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromWkb26.testcase @@ -0,0 +1,9 @@ +fromWkb - mixed big-little-endian sub-items (3) +:memory: #use in-memory database +SELECT AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) +GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) + + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms1.testcase b/src/spatialite/test/sql_stmt_tests/fromdms1.testcase new file mode 100644 index 0000000..ce8538d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms1.testcase @@ -0,0 +1,10 @@ +fromdms - NULL DMS expression +:memory: #use in-memory database +SELECT LongitudeFromDMS(NULL), LatitudeFromDMS(NULL); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS(NULL) +LatitudeFromDMS(NULL) +(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms2.testcase b/src/spatialite/test/sql_stmt_tests/fromdms2.testcase new file mode 100644 index 0000000..c6e216f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms2.testcase @@ -0,0 +1,10 @@ +fromdms - Integer DMS expression +:memory: #use in-memory database +SELECT LongitudeFromDMS(1), LatitudeFromDMS(1); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS(1) +LatitudeFromDMS(1) +(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms3.testcase b/src/spatialite/test/sql_stmt_tests/fromdms3.testcase new file mode 100644 index 0000000..ef3de8d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms3.testcase @@ -0,0 +1,10 @@ +fromdms - Double DMS expression +:memory: #use in-memory database +SELECT LongitudeFromDMS(1.2), LatitudeFromDMS(1.2); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS(1.2) +LatitudeFromDMS(1.2) +(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms4.testcase b/src/spatialite/test/sql_stmt_tests/fromdms4.testcase new file mode 100644 index 0000000..0ee3dcb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms4.testcase @@ -0,0 +1,10 @@ +fromdms - BLOB DMS expression +:memory: #use in-memory database +SELECT LongitudeFromDMS(zeroblob(4)), LatitudeFromDMS(zeroblob(4)); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS(zeroblob(4)) +LatitudeFromDMS(zeroblob(4)) +(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms5.testcase b/src/spatialite/test/sql_stmt_tests/fromdms5.testcase new file mode 100644 index 0000000..dac08d6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms5.testcase @@ -0,0 +1,10 @@ +fromdms - generic TEXT DMS expression +:memory: #use in-memory database +SELECT LongitudeFromDMS('alpha'), LatitudeFromDMS('alpha'); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS('alpha') +LatitudeFromDMS('alpha') +(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms6.testcase b/src/spatialite/test/sql_stmt_tests/fromdms6.testcase new file mode 100644 index 0000000..a32766f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms6.testcase @@ -0,0 +1,10 @@ +fromdms - valid DMS expression-1 +:memory: #use in-memory database +SELECT LongitudeFromDMS('N40°26′47″ W079°58′36″'), LatitudeFromDMS('N40°26′47″ W079°58′36″'); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS('N40°26′47″ W079°58′36″') +LatitudeFromDMS('N40°26′47″ W079°58′36″') +-79.97666:5 +40.44638:5 + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms7.testcase b/src/spatialite/test/sql_stmt_tests/fromdms7.testcase new file mode 100644 index 0000000..115790b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms7.testcase @@ -0,0 +1,10 @@ +fromdms - valid DMS expression-2 +:memory: #use in-memory database +SELECT LongitudeFromDMS('N40d26''47" W079d58''36"'), LatitudeFromDMS('N40d26''47" W079d58''36"'); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS('N40d26''47" W079d58''36"') +LatitudeFromDMS('N40d26''47" W079d58''36"') +-79.97666:5 +40.44638:5 + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms8.testcase b/src/spatialite/test/sql_stmt_tests/fromdms8.testcase new file mode 100644 index 0000000..17ea90e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms8.testcase @@ -0,0 +1,11 @@ +fromdms - valid DMS expression-3 +:memory: #use in-memory database +SELECT LongitudeFromDMS('40°26′47″S 079°58′36″E'), LatitudeFromDMS('40°26′47″S 079°58′36″E'); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS('40°26′47″S 079°58′36″E') +LatitudeFromDMS('40°26′47″S 079°58′36″E') +79.97666:5 +-40.44638:5 + + diff --git a/src/spatialite/test/sql_stmt_tests/fromdms9.testcase b/src/spatialite/test/sql_stmt_tests/fromdms9.testcase new file mode 100644 index 0000000..562d761 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromdms9.testcase @@ -0,0 +1,9 @@ +fromdms - valid DMS expression-4 +:memory: #use in-memory database +SELECT LongitudeFromDMS('40d26''47"S 079d58''36"E'), LatitudeFromDMS('40d26''47"S 079d58''36"E'); +1 # rows (not including the header row) +2 # columns +LongitudeFromDMS('40d26''47"S 079d58''36"E') +LatitudeFromDMS('40d26''47"S 079d58''36"E') +79.97666:5 +-40.44638:5 diff --git a/src/spatialite/test/sql_stmt_tests/fromgeojson22.testcase b/src/spatialite/test/sql_stmt_tests/fromgeojson22.testcase index bc9f855..4037678 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgeojson22.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgeojson22.testcase @@ -1,8 +1,8 @@ FromGeoJSON - geometry collectionz, SRID :memory: #use in-memory database -SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[12,3,2],[4,6,1]]]}]}')) +SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}')) 1 # rows (not including the header row) 1 # columns -AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[12,3,2],[4,6,1]]]}]}')):0 -SRID=3003;GEOMETRYCOLLECTION(POINT(4 6 0),POLYGON((4 6 1,7 10 1,12 3 2,4 6 1))) +AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}')):0 +SRID=3003;GEOMETRYCOLLECTION(POINT(4 6 0),POLYGON((4 6 1,7 10 1,13 3 2,4 6 1))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgeojson23.testcase b/src/spatialite/test/sql_stmt_tests/fromgeojson23.testcase index 301ab37..ee1a55f 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgeojson23.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgeojson23.testcase @@ -1,8 +1,8 @@ FromGeoJSON - geometry collection, SRID :memory: #use in-memory database -SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}')) +SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}')) 1 # rows (not including the header row) 1 # columns -AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}')):0 -SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,12 3,4 6))) +AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}')):0 +SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,13 3,4 6))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgeojson24.testcase b/src/spatialite/test/sql_stmt_tests/fromgeojson24.testcase index 15fd952..330ff3e 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgeojson24.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgeojson24.testcase @@ -1,9 +1,9 @@ FromGeoJSON - geometry collection, SRID :memory: #use in-memory database -SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')) +SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')) 1 # rows (not including the header row) 1 # columns -AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0 -SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,12 3,4 6)),POLYGON((1 0,2 3,4 3,1 0))) +AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0 +SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,13 3,4 6)),POLYGON((1 0,2 3,4 3,1 0))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml11.testcase b/src/spatialite/test/sql_stmt_tests/fromgml11.testcase index 7c18104..7eb8237 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml11.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml11.testcase @@ -1,7 +1,7 @@ FromGML - MultiLinestring v2 :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.5,11')); +SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.5,11')):0 -SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) +AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')):0 +SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml12.testcase b/src/spatialite/test/sql_stmt_tests/fromgml12.testcase index 1813893..d31159e 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml12.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml12.testcase @@ -1,7 +1,7 @@ FromGML - MultiLinestring v3 :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')); +SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')):0 -SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) +AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')):0 +SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml17.testcase b/src/spatialite/test/sql_stmt_tests/fromgml17.testcase index e104c97..9cd9178 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml17.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml17.testcase @@ -1,7 +1,7 @@ FromGML - GeometryCollection v2 3D :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')); +SELECT AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')):0 -SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) +AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')):0 +SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml18.testcase b/src/spatialite/test/sql_stmt_tests/fromgml18.testcase index ea2b743..3e24437 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml18.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml18.testcase @@ -1,7 +1,7 @@ FromGML - GeometryCollection v3 3D :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); +SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 -SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) +AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 +SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml23.testcase b/src/spatialite/test/sql_stmt_tests/fromgml23.testcase index aec804a..78529d4 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml23.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml23.testcase @@ -1,7 +1,7 @@ FromGML - MultiLinestring v2 3D (no namespace) :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')); +SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')):0 -SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) +AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')):0 +SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml24.testcase b/src/spatialite/test/sql_stmt_tests/fromgml24.testcase index 7dca47f..ddb3991 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml24.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml24.testcase @@ -1,7 +1,7 @@ FromGML - MultiLinestring v3 3D (no namespace) :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')); +SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')):0 -SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) +AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')):0 +SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml25.testcase b/src/spatialite/test/sql_stmt_tests/fromgml25.testcase index 3c0bcb8..b30daae 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml25.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml25.testcase @@ -1,7 +1,7 @@ FromGML - MultiPolygon v2 3D (no namespace) :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')); +SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')):0 -SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) +AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')):0 +SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml26.testcase b/src/spatialite/test/sql_stmt_tests/fromgml26.testcase index 6b317f7..0ed42f0 100644 --- a/src/spatialite/test/sql_stmt_tests/fromgml26.testcase +++ b/src/spatialite/test/sql_stmt_tests/fromgml26.testcase @@ -1,7 +1,7 @@ FromGML - MultiPolygon v3 3D (no namespace) :memory: #use in-memory database -SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')); +SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')); 1 # rows (not including the header row) 1 # columns -AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')):0 -SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) +AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')):0 +SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml44.testcase b/src/spatialite/test/sql_stmt_tests/fromgml44.testcase new file mode 100644 index 0000000..9480482 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml44.testcase @@ -0,0 +1,7 @@ +FromGML - MultiPolygon v3 3D (no namespace) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')):0 +SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml45.testcase b/src/spatialite/test/sql_stmt_tests/fromgml45.testcase new file mode 100644 index 0000000..dfc6b0d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml45.testcase @@ -0,0 +1,7 @@ +FromGML - MultiPolygon v3 +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')):0 +SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml46.testcase b/src/spatialite/test/sql_stmt_tests/fromgml46.testcase new file mode 100644 index 0000000..71c95d2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml46.testcase @@ -0,0 +1,7 @@ +FromGML - MultiPolygon v2 3D (no namespace) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')):0 +SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml47.testcase b/src/spatialite/test/sql_stmt_tests/fromgml47.testcase new file mode 100644 index 0000000..a8f2a70 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml47.testcase @@ -0,0 +1,7 @@ +FromGML - MultiPolygon v2 +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')):0 +SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml48.testcase b/src/spatialite/test/sql_stmt_tests/fromgml48.testcase new file mode 100644 index 0000000..aa97d1b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml48.testcase @@ -0,0 +1,7 @@ +FromGML - GeometryCollection v3 3D +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 +SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml49.testcase b/src/spatialite/test/sql_stmt_tests/fromgml49.testcase new file mode 100644 index 0000000..fa18fc1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml49.testcase @@ -0,0 +1,7 @@ +FromGML - GeometryCollection v3 (no namespaces) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 +SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml50.testcase b/src/spatialite/test/sql_stmt_tests/fromgml50.testcase new file mode 100644 index 0000000..f816807 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml50.testcase @@ -0,0 +1,7 @@ +FromGML - MultiPoint v2 (no namespace) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('1,23,45,6')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('1,23,45,6')):0 +SRID=4326;MULTIPOINT(1 2,3 4,5 6) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml51.testcase b/src/spatialite/test/sql_stmt_tests/fromgml51.testcase new file mode 100644 index 0000000..2cb3ce4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml51.testcase @@ -0,0 +1,7 @@ +FromGML - multipoint, multiple SRID - bad second SRID, no namespace +:memory: #use in-memory database +SELECT AsText(GeomFromGml('1,2,3.22,4,4.2')) +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('1,2,3.22,4,4.2')):0 +MULTIPOINT Z(1 2 3.2, 2 4 4.2) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml52.testcase b/src/spatialite/test/sql_stmt_tests/fromgml52.testcase new file mode 100644 index 0000000..34b6e59 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml52.testcase @@ -0,0 +1,7 @@ +FromGML - MultiLinestring v2 +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')):0 +SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml53.testcase b/src/spatialite/test/sql_stmt_tests/fromgml53.testcase new file mode 100644 index 0000000..768aed5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml53.testcase @@ -0,0 +1,7 @@ +FromGML - MultiLinestring v2 3D (no namespace) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')):0 +SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml54.testcase b/src/spatialite/test/sql_stmt_tests/fromgml54.testcase new file mode 100644 index 0000000..bcbd64e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml54.testcase @@ -0,0 +1,7 @@ +FromGML - MultiLinestring v3 +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')):0 +SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml55.testcase b/src/spatialite/test/sql_stmt_tests/fromgml55.testcase new file mode 100644 index 0000000..ac373ec --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml55.testcase @@ -0,0 +1,7 @@ +FromGML - MultiLinestring v3 3D (no namespace) +:memory: #use in-memory database +SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')); +1 # rows (not including the header row) +1 # columns +AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')):0 +SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml56.testcase b/src/spatialite/test/sql_stmt_tests/fromgml56.testcase new file mode 100644 index 0000000..dc2fc52 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml56.testcase @@ -0,0 +1,7 @@ +FromGML - LineString +:memory: #use in-memory database +SELECT AsText(GeomFromGml('0 05 05 50 50 0')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('0 05 05 50 50 0')):0 +LINESTRING(0 0, 5 0, 5 5, 0 5, 0 0) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml57.testcase b/src/spatialite/test/sql_stmt_tests/fromgml57.testcase new file mode 100644 index 0000000..9080b6b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml57.testcase @@ -0,0 +1,7 @@ +FromGML - Polygon LinearRing outer/innerBoundary +:memory: #use in-memory database +SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 +POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml58.testcase b/src/spatialite/test/sql_stmt_tests/fromgml58.testcase new file mode 100644 index 0000000..4603880 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml58.testcase @@ -0,0 +1,7 @@ +FromGML - Curve +:memory: #use in-memory database +SELECT AsText(GeomFromGml('1 23 45 67 8')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('1 23 45 67 8')):0 +LINESTRING(1 2, 3 4, 5 6, 7 8) diff --git a/src/spatialite/test/sql_stmt_tests/fromgml59.testcase b/src/spatialite/test/sql_stmt_tests/fromgml59.testcase new file mode 100644 index 0000000..7476a71 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml59.testcase @@ -0,0 +1,8 @@ +FromGML - Polygon LinearRing interior/exterior +:memory: #use in-memory database +SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 +POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) + diff --git a/src/spatialite/test/sql_stmt_tests/fromgml60.testcase b/src/spatialite/test/sql_stmt_tests/fromgml60.testcase new file mode 100644 index 0000000..ee1fb3e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml60.testcase @@ -0,0 +1,8 @@ +FromGML - Box-1 +:memory: #use in-memory database +SELECT AsText(GeomFromGml('1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581')):0 +POLYGON((1465764.67172 4301759.086704, 1486407.988806 4301759.086704, 1486407.988806 4322672.577666, 1465764.67172 4322672.577666, 1465764.67172 4301759.086704)) + diff --git a/src/spatialite/test/sql_stmt_tests/fromgml61.testcase b/src/spatialite/test/sql_stmt_tests/fromgml61.testcase new file mode 100644 index 0000000..651fcbb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/fromgml61.testcase @@ -0,0 +1,8 @@ +FromGML - Box-2 +:memory: #use in-memory database +SELECT AsText(GeomFromGml('1329459.947339,4879353.546282 1442103.707005,4967559.686594')); +1 # rows (not including the header row) +1 # columns +AsText(GeomFromGml('1329459.947339,4879353.546282 1442103.707005,4967559.686594')):0 +POLYGON((1329459.947339 4879353.546282, 1442103.707005 4879353.546282, 1442103.707005 4967559.686594, 1329459.947339 4967559.686594, 1329459.947339 4879353.546282)) + diff --git a/src/spatialite/test/sql_stmt_tests/geomfromtext6.testcase b/src/spatialite/test/sql_stmt_tests/geomfromtext6.testcase index d60d816..5f347ce 100644 --- a/src/spatialite/test/sql_stmt_tests/geomfromtext6.testcase +++ b/src/spatialite/test/sql_stmt_tests/geomfromtext6.testcase @@ -1,7 +1,7 @@ geomfromtext6 :memory: #use in-memory database -SELECT AsEWkt(GeomFromText("POINT(-71 42)", 4326)); +SELECT AsEWkt(GeomFromText("POINT(-72 42)", 4326)); 1 # rows (not including the header row) 1 # columns -AsEWkt(GeomFromText("POINT(-71 42)", 4326)) -SRID=4326;POINT(-71 42) +AsEWkt(GeomFromText("POINT(-72 42)", 4326)) +SRID=4326;POINT(-72 42) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent1.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent1.testcase new file mode 100644 index 0000000..6807e08 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent1.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - NULL, NULL +:memory: #use in-memory database +SELECT GetLayerExtent(NULL, NULL); +1 # rows (not including the header row) +1 # columns +GetLayerExtent(NULL, NULL); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent10.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent10.testcase new file mode 100644 index 0000000..feed782 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent10.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, NULL +:memory: #use in-memory database +SELECT GetLayerExtent('table', NULL); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', NULL); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent11.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent11.testcase new file mode 100644 index 0000000..6135b66 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent11.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, TEXT, TEXT +:memory: #use in-memory database +SELECT GetLayerExtent('table', 'column', 'alpha'); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 'column', 'alpha'); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent12.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent12.testcase new file mode 100644 index 0000000..7800b70 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent12.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, TEXT, INT +:memory: #use in-memory database +SELECT GetLayerExtent('table', 'column', 1); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 'column', 1); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent13.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent13.testcase new file mode 100644 index 0000000..bddc286 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent13.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, TEXT, DOUBLE +:memory: #use in-memory database +SELECT GetLayerExtent('table', 'column', 1.1); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 'column', 1.1); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent14.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent14.testcase new file mode 100644 index 0000000..941b9c3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent14.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, TEXT, BLOB +:memory: #use in-memory database +SELECT GetLayerExtent('table', 'column', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 'column', zeroblob(4)); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent2.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent2.testcase new file mode 100644 index 0000000..feed782 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent2.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, NULL +:memory: #use in-memory database +SELECT GetLayerExtent('table', NULL); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', NULL); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent3.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent3.testcase new file mode 100644 index 0000000..2ac98d5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent3.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, TEXT +:memory: #use in-memory database +SELECT GetLayerExtent('table', 'column'); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 'column'); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent4.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent4.testcase new file mode 100644 index 0000000..484c13d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent4.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - INT, TEXT +:memory: #use in-memory database +SELECT GetLayerExtent(1, 'column'); +1 # rows (not including the header row) +1 # columns +GetLayerExtent(1, 'column'); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent5.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent5.testcase new file mode 100644 index 0000000..edd2b31 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent5.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - DOUBLE, TEXT +:memory: #use in-memory database +SELECT GetLayerExtent(1.1, 'column'); +1 # rows (not including the header row) +1 # columns +GetLayerExtent(1.1, 'column'); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent6.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent6.testcase new file mode 100644 index 0000000..294840f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent6.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - BLOB, TEXT +:memory: #use in-memory database +SELECT GetLayerExtent(zeroblob(4), 'column'); +1 # rows (not including the header row) +1 # columns +GetLayerExtent(zeroblob(4), 'column'); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent7.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent7.testcase new file mode 100644 index 0000000..6f8b410 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent7.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, INT +:memory: #use in-memory database +SELECT GetLayerExtent('table', 1); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 1); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent8.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent8.testcase new file mode 100644 index 0000000..a241f9c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent8.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, DOUBLE +:memory: #use in-memory database +SELECT GetLayerExtent('table', 1.1); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', 1.1); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getlayerextent9.testcase b/src/spatialite/test/sql_stmt_tests/getlayerextent9.testcase new file mode 100644 index 0000000..01f684c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getlayerextent9.testcase @@ -0,0 +1,7 @@ +GetLayerExtent - TEXT, BLOB +:memory: #use in-memory database +SELECT GetLayerExtent('table', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +GetLayerExtent('table', zeroblob(4)); +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/getmimetype1.testcase b/src/spatialite/test/sql_stmt_tests/getmimetype1.testcase new file mode 100644 index 0000000..3c41c98 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getmimetype1.testcase @@ -0,0 +1,8 @@ +GetMimeType - NULL +:memory: #use in-memory database +SELECT GetMimeType(NULL); +1 # rows (not including the header row) +1 # columns +GetMimeType(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/getmimetype2.testcase b/src/spatialite/test/sql_stmt_tests/getmimetype2.testcase new file mode 100644 index 0000000..c657cc0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getmimetype2.testcase @@ -0,0 +1,8 @@ +GetMimeType - INTEGER +:memory: #use in-memory database +SELECT GetMimeType(1); +1 # rows (not including the header row) +1 # columns +GetMimeType(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/getmimetype3.testcase b/src/spatialite/test/sql_stmt_tests/getmimetype3.testcase new file mode 100644 index 0000000..70e37bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getmimetype3.testcase @@ -0,0 +1,8 @@ +GetMimeType - DOUBLE +:memory: #use in-memory database +SELECT GetMimeType(1.1); +1 # rows (not including the header row) +1 # columns +GetMimeType(1.1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/getmimetype4.testcase b/src/spatialite/test/sql_stmt_tests/getmimetype4.testcase new file mode 100644 index 0000000..2712577 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getmimetype4.testcase @@ -0,0 +1,8 @@ +GetMimeType - TEXT +:memory: #use in-memory database +SELECT GetMimeType('alpha'); +1 # rows (not including the header row) +1 # columns +GetMimeType('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/getmimetype5.testcase b/src/spatialite/test/sql_stmt_tests/getmimetype5.testcase new file mode 100644 index 0000000..c893bb7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/getmimetype5.testcase @@ -0,0 +1,8 @@ +GetMimeType - BLOB +:memory: #use in-memory database +SELECT GetMimeType(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +GetMimeType(zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats1.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats1.testcase new file mode 100644 index 0000000..6772193 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats1.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - NULL, NULL +:memory: #use in-memory database +SELECT InvalidateLayerStatistics(NULL, NULL); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics(NULL, NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats10.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats10.testcase new file mode 100644 index 0000000..49eba89 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats10.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, NULL +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', NULL); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats2.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats2.testcase new file mode 100644 index 0000000..49eba89 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats2.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, NULL +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', NULL); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats3.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats3.testcase new file mode 100644 index 0000000..2fff4ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats3.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, TEXT +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', 'column'); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', 'column'); +1 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats4.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats4.testcase new file mode 100644 index 0000000..34113f3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats4.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - INT, TEXT +:memory: #use in-memory database +SELECT InvalidateLayerStatistics(1, 'column'); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics(1, 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats5.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats5.testcase new file mode 100644 index 0000000..78bc014 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats5.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - DOUBLE, TEXT +:memory: #use in-memory database +SELECT InvalidateLayerStatistics(1.1, 'column'); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics(1.1, 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats6.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats6.testcase new file mode 100644 index 0000000..8654ce8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats6.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - BLOB, TEXT +:memory: #use in-memory database +SELECT InvalidateLayerStatistics(zeroblob(4), 'column'); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics(zeroblob(4), 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats7.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats7.testcase new file mode 100644 index 0000000..fd346ca --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats7.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, INT +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', 1); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', 1); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats8.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats8.testcase new file mode 100644 index 0000000..f938f98 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats8.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, DOUBLE +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', 1.1); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', 1.1); +0 diff --git a/src/spatialite/test/sql_stmt_tests/invalidatestats9.testcase b/src/spatialite/test/sql_stmt_tests/invalidatestats9.testcase new file mode 100644 index 0000000..39509da --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/invalidatestats9.testcase @@ -0,0 +1,7 @@ +InvalidateLayerStatistics - TEXT, BLOB +:memory: #use in-memory database +SELECT InvalidateLayerStatistics('table', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +InvalidateLayerStatistics('table', zeroblob(4)); +0 diff --git a/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage1.testcase b/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage1.testcase new file mode 100644 index 0000000..a3673ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage1.testcase @@ -0,0 +1,8 @@ +IsPopulatedCoverage - standard not existing coverage +NEW:memory: #use in-memory database +SELECT IsPopulatedCoverage('alpha'); +1 # rows (not including the header row) +1 # columns +IsPopulatedCoverage('alpha') +0 + diff --git a/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage2.testcase b/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage2.testcase new file mode 100644 index 0000000..f17a47a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/ispopulatedcoverage2.testcase @@ -0,0 +1,9 @@ +IsPopulatedCoverage - NULL coverage-name +NEW:memory: #use in-memory database +SELECT IsPopulatedCoverage(NULL); +1 # rows (not including the header row) +1 # columns +IsPopulatedCoverage(NULL) +-1 + + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidnodata1.testcase b/src/spatialite/test/sql_stmt_tests/isvalidnodata1.testcase new file mode 100644 index 0000000..496f495 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidnodata1.testcase @@ -0,0 +1,8 @@ +IsValidNoDataPixel - standard +NEW:memory: #use in-memory database +SELECT IsValidNoDataPixel(zeroblob(4), 'UINT8', 1); +1 # rows (not including the header row) +1 # columns +IsValidNoDataPixel(zeroblob(4), 'UINT8', 1) +0 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidnodata2.testcase b/src/spatialite/test/sql_stmt_tests/isvalidnodata2.testcase new file mode 100644 index 0000000..7b6cd15 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidnodata2.testcase @@ -0,0 +1,8 @@ +IsValidNoDataPixel - NULL pixel +NEW:memory: #use in-memory database +SELECT IsValidNoDataPixel(NULL, 'UINT8', 1); +1 # rows (not including the header row) +1 # columns +IsValidNoDataPixel(NULL, 'UINT8', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidnodata3.testcase b/src/spatialite/test/sql_stmt_tests/isvalidnodata3.testcase new file mode 100644 index 0000000..7104133 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidnodata3.testcase @@ -0,0 +1,8 @@ +IsValidNoDataPixel - NULL sample-type +NEW:memory: #use in-memory database +SELECT IsValidNoDataPixel(zeroblob(4), NULL, 1); +1 # rows (not including the header row) +1 # columns +IsValidNoDataPixel(zeroblob(4), NULL, 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidnodata4.testcase b/src/spatialite/test/sql_stmt_tests/isvalidnodata4.testcase new file mode 100644 index 0000000..1686639 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidnodata4.testcase @@ -0,0 +1,8 @@ +IsValidNoDataPixel - NULL #bands +NEW:memory: #use in-memory database +SELECT IsValidNoDataPixel(zeroblob(4), 'UINT8', NULL); +1 # rows (not including the header row) +1 # columns +IsValidNoDataPixel(zeroblob(4), 'UINT8', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidpalette1.testcase b/src/spatialite/test/sql_stmt_tests/isvalidpalette1.testcase new file mode 100644 index 0000000..0d6cfdc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidpalette1.testcase @@ -0,0 +1,8 @@ +IsValidRasterPalette - standard +NEW:memory: #use in-memory database +SELECT IsValidRasterPalette(zeroblob(4), 'UINT8'); +1 # rows (not including the header row) +1 # columns +IsValidRasterPalette(zeroblob(4), 'UINT8') +0 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidpalette2.testcase b/src/spatialite/test/sql_stmt_tests/isvalidpalette2.testcase new file mode 100644 index 0000000..3948a0b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidpalette2.testcase @@ -0,0 +1,8 @@ +IsValidRasterPalette - NULL palette +NEW:memory: #use in-memory database +SELECT IsValidRasterPalette(NULL, 'UINT8'); +1 # rows (not including the header row) +1 # columns +IsValidRasterPalette(NULL, 'UINT8') +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidpalette3.testcase b/src/spatialite/test/sql_stmt_tests/isvalidpalette3.testcase new file mode 100644 index 0000000..b2d8bb8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidpalette3.testcase @@ -0,0 +1,8 @@ +IsValidRasterPalette - NULL sample-type +NEW:memory: #use in-memory database +SELECT IsValidRasterPalette(zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +IsValidRasterPalette(zeroblob(4), NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats1.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats1.testcase new file mode 100644 index 0000000..e40b1b6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats1.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - standard: 2 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics('alpha', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics('alpha', zeroblob(4)) +0 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats2.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats2.testcase new file mode 100644 index 0000000..581a47b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats2.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - NULL coverage-name: 2 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics(NULL, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics(NULL, zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats3.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats3.testcase new file mode 100644 index 0000000..d23b1fb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats3.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - NULL statistics: 2 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics('alpha', NULL); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics('alpha', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats4.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats4.testcase new file mode 100644 index 0000000..d33a6a2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats4.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - standard: 3 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics(zeroblob(4), 'UINT8', 1); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics(zeroblob(4), 'UINT8', 1) +0 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats5.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats5.testcase new file mode 100644 index 0000000..6db71af --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats5.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - NULL statistics: 3 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics(NULL, 'UINT8', 1); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics(NULL, 'UINT8', 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats6.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats6.testcase new file mode 100644 index 0000000..8742fa6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats6.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - NULL sample-type: 3 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics(zeroblob(4), NULL, 1); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics(zeroblob(4), NULL, 1) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrasterstats7.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats7.testcase new file mode 100644 index 0000000..c2f9009 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrasterstats7.testcase @@ -0,0 +1,8 @@ +IsValidRasterStatistics - NULL #bands: 3 args +NEW:memory: #use in-memory database +SELECT IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL); +1 # rows (not including the header row) +1 # columns +IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile1.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile1.testcase new file mode 100644 index 0000000..9d18bfc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile1.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - standard +NEW:memory: #use in-memory database +SELECT IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4)) +0 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile2.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile2.testcase new file mode 100644 index 0000000..ca97aeb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile2.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - NULL coverage-name +NEW:memory: #use in-memory database +SELECT IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile3.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile3.testcase new file mode 100644 index 0000000..68d8bd9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile3.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - NULL pyramid-level +NEW:memory: #use in-memory database +SELECT IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile4.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile4.testcase new file mode 100644 index 0000000..099c782 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile4.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - NULL odd-tile +NEW:memory: #use in-memory database +SELECT IsValidRasterTile('alpha', 0, NULL, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile('alpha', 0, NULL, zeroblob(4)) +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile5.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile5.testcase new file mode 100644 index 0000000..416a28e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile5.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - TEXT even-tile +NEW:memory: #use in-memory database +SELECT IsValidRasterTile('alpha', 0, zeroblob(4), 'beta'); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile('alpha', 0, zeroblob(4), 'beta') +-1 + diff --git a/src/spatialite/test/sql_stmt_tests/isvalidrastertile6.testcase b/src/spatialite/test/sql_stmt_tests/isvalidrastertile6.testcase new file mode 100644 index 0000000..0ac9119 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/isvalidrastertile6.testcase @@ -0,0 +1,8 @@ +IsValidRasterTile - standard NULL even-tile +NEW:memory: #use in-memory database +SELECT IsValidRasterTile('alpha', 0, zeroblob(4), NULL); +1 # rows (not including the header row) +1 # columns +IsValidRasterTile('alpha', 0, zeroblob(4), NULL) +0 + diff --git a/src/spatialite/test/sql_stmt_tests/lhr3.testcase b/src/spatialite/test/sql_stmt_tests/lhr3.testcase index 842931e..0ce5f62 100644 --- a/src/spatialite/test/sql_stmt_tests/lhr3.testcase +++ b/src/spatialite/test/sql_stmt_tests/lhr3.testcase @@ -1,7 +1,7 @@ forceLHR - GeometryCollection XY :memory: #use in-memory database -SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))); +SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))) -SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,13 10.5,12 11.5,11 10.5)),POLYGON((20 20,24 20,22 18,20 20),(21 19.5,22 18.5,23 19.5,21 19.5))) +AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))"))) +SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 10.5,13 11.3,11 10.5)),POLYGON((20 20,24.1 20,22 18,20 20),(21 19.5,22 18.5,23.1 19.5,21 19.5))) diff --git a/src/spatialite/test/sql_stmt_tests/lhr4.testcase b/src/spatialite/test/sql_stmt_tests/lhr4.testcase index badf511..7f98ea2 100644 --- a/src/spatialite/test/sql_stmt_tests/lhr4.testcase +++ b/src/spatialite/test/sql_stmt_tests/lhr4.testcase @@ -1,7 +1,7 @@ forceLHR - GeometryCollection XYZ :memory: #use in-memory database -SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); +SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) -SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 194),POLYGON((10 10 101,12 12 103,14 10 102,10 10 101),(11 10.5 100,13 10.5 101,12 11.5 102,11 10.5 100)),POLYGON((20 20 100,24 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23 19.5 102,21 19.5 101))) +AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) +SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 19),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 10.5 101,13 11.3 102,11 10.5 100)),POLYGON((20 20 100,24.1 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23.1 19.5 102,21 19.5 101))) diff --git a/src/spatialite/test/sql_stmt_tests/lhr5.testcase b/src/spatialite/test/sql_stmt_tests/lhr5.testcase index c7681d3..4ba2e37 100644 --- a/src/spatialite/test/sql_stmt_tests/lhr5.testcase +++ b/src/spatialite/test/sql_stmt_tests/lhr5.testcase @@ -1,7 +1,7 @@ forceLHR - GeometryCollection XYM :memory: #use in-memory database -SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))); +SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))) -SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 12,9 9 13),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,13 10.5 11,12 11.5 12,11 10.5 10)),POLYGONM((20 20 10,24 20 11,22 18 12,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11))) +AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))) +SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 13,9 9 13),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 10.5 11,13 11.3 13,11 10.5 10)),POLYGONM((20 20 10,24.1 20 11,22 18 13,20 20 10),(21 19.5 11,22 18.5 13,23.1 19.5 13,21 19.5 11))) diff --git a/src/spatialite/test/sql_stmt_tests/lhr6.testcase b/src/spatialite/test/sql_stmt_tests/lhr6.testcase index a87f689..6aea126 100644 --- a/src/spatialite/test/sql_stmt_tests/lhr6.testcase +++ b/src/spatialite/test/sql_stmt_tests/lhr6.testcase @@ -1,7 +1,7 @@ forceLHR - GeometryCollection XYZM :memory: #use in-memory database -SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); +SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24.1 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 23.1 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) -SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(3 4 101 10,5 6 102 11,7 8 103 12,9 9 194 13),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,13 10.5 101 11,12 11.5 102 12,11 10.5 100 10)),POLYGON((20 20 100 10,24 20 101 11,22 18 102 12,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11))) +AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24.1 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 23.1 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) +SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(3 4 101 10,5 6 102 11,7 8 103 13,9 9 19 13),POLYGON((10 10 101 11,13 13 103 13,15 10 102 13,10 10 101 11),(11 10.5 100 10,13 10.5 101 11,13 11.3 102 13,11 10.5 100 10)),POLYGON((20 20 100 10,24.1 20 101 11,22 18 102 13,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23.1 19.5 102 13,21 19.5 101 11))) diff --git a/src/spatialite/test/sql_stmt_tests/locatemeasure18.testcase b/src/spatialite/test/sql_stmt_tests/locatemeasure18.testcase new file mode 100644 index 0000000..55caa4c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/locatemeasure18.testcase @@ -0,0 +1,7 @@ +ST_Locate_Between_Measures - Alternate name +:memory: #use in-memory database +SELECT AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); +1 # rows (not including the header row) +1 # columns +AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) +GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(5 0 2.5), LINESTRING M(2 1 2.1, 3 0 2.2)) diff --git a/src/spatialite/test/sql_stmt_tests/locatemeasure19.testcase b/src/spatialite/test/sql_stmt_tests/locatemeasure19.testcase new file mode 100644 index 0000000..735cc35 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/locatemeasure19.testcase @@ -0,0 +1,7 @@ +ST_Locate_Along_Measure - Alternate name +:memory: #use in-memory database +SELECT AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)); +1 # rows (not including the header row) +1 # columns +AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)) +GEOMETRYCOLLECTION ZM(POINT ZM(0 1 100 2.1), POINT ZM(2 1 102 2.1), LINESTRING ZM(5 0 105 2.1, 6 1 106 2.1)) diff --git a/src/spatialite/test/sql_stmt_tests/makearc1.testcase b/src/spatialite/test/sql_stmt_tests/makearc1.testcase new file mode 100644 index 0000000..cf14938 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc1.testcase @@ -0,0 +1,8 @@ +makearc1 - NULL cx +:memory: #use in-memory database +SELECT MakeArc(NULL, 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(NULL, 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc10.testcase b/src/spatialite/test/sql_stmt_tests/makearc10.testcase new file mode 100644 index 0000000..2271d2b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc10.testcase @@ -0,0 +1,8 @@ +makearc10 - text start +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 'text', 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 'text', 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc11.testcase b/src/spatialite/test/sql_stmt_tests/makearc11.testcase new file mode 100644 index 0000000..a0aabf5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc11.testcase @@ -0,0 +1,8 @@ +makearc11 - BLOB start +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, zeroblob(4), 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, zeroblob(4), 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc12.testcase b/src/spatialite/test/sql_stmt_tests/makearc12.testcase new file mode 100644 index 0000000..a9eb917 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc12.testcase @@ -0,0 +1,8 @@ +makearc12 - NULL stop +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, NULL); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc13.testcase b/src/spatialite/test/sql_stmt_tests/makearc13.testcase new file mode 100644 index 0000000..9826c51 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc13.testcase @@ -0,0 +1,8 @@ +makearc13 - text stop +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc14.testcase b/src/spatialite/test/sql_stmt_tests/makearc14.testcase new file mode 100644 index 0000000..5970844 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc14.testcase @@ -0,0 +1,8 @@ +makearc14 - BLOB stop +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc16.testcase b/src/spatialite/test/sql_stmt_tests/makearc16.testcase new file mode 100644 index 0000000..a0b0fab --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc16.testcase @@ -0,0 +1,8 @@ +makearc16 - NULL srid +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, NULL); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc17.testcase b/src/spatialite/test/sql_stmt_tests/makearc17.testcase new file mode 100644 index 0000000..689eae0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc17.testcase @@ -0,0 +1,8 @@ +makearc17 - text srid +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc18.testcase b/src/spatialite/test/sql_stmt_tests/makearc18.testcase new file mode 100644 index 0000000..503add3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc18.testcase @@ -0,0 +1,8 @@ +makearc18 - BLOB srid +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc2.testcase b/src/spatialite/test/sql_stmt_tests/makearc2.testcase new file mode 100644 index 0000000..d92e51e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc2.testcase @@ -0,0 +1,8 @@ +makearc1 - text cx +:memory: #use in-memory database +SELECT MakeArc('alpha', 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc('alpha', 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc20.testcase b/src/spatialite/test/sql_stmt_tests/makearc20.testcase new file mode 100644 index 0000000..1f4c615 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc20.testcase @@ -0,0 +1,8 @@ +makearc20 - NULL step +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc21.testcase b/src/spatialite/test/sql_stmt_tests/makearc21.testcase new file mode 100644 index 0000000..c69bb7b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc21.testcase @@ -0,0 +1,8 @@ +makearc21 - TEXT step +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc22.testcase b/src/spatialite/test/sql_stmt_tests/makearc22.testcase new file mode 100644 index 0000000..da0717b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc22.testcase @@ -0,0 +1,8 @@ +makearc21 - BLOB step +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc3.testcase b/src/spatialite/test/sql_stmt_tests/makearc3.testcase new file mode 100644 index 0000000..29498f5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc3.testcase @@ -0,0 +1,8 @@ +makearc3 - BLOB cx +:memory: #use in-memory database +SELECT MakeArc(zeroblob(4), 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(zeroblob(4), 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc4.testcase b/src/spatialite/test/sql_stmt_tests/makearc4.testcase new file mode 100644 index 0000000..faa95db --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc4.testcase @@ -0,0 +1,8 @@ +makearc4 - NULL cy +:memory: #use in-memory database +SELECT MakeArc(0, NULL, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, NULL, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc5.testcase b/src/spatialite/test/sql_stmt_tests/makearc5.testcase new file mode 100644 index 0000000..813e5c8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc5.testcase @@ -0,0 +1,8 @@ +makearc5 - text cy +:memory: #use in-memory database +SELECT MakeArc(0, 'alpha', 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 'alpha', 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc6.testcase b/src/spatialite/test/sql_stmt_tests/makearc6.testcase new file mode 100644 index 0000000..76956d4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc6.testcase @@ -0,0 +1,8 @@ +makearc6 - BLOB cy +:memory: #use in-memory database +SELECT MakeArc(0, zeroblob(4), 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, zeroblob(4), 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc7.testcase b/src/spatialite/test/sql_stmt_tests/makearc7.testcase new file mode 100644 index 0000000..f48b74d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc7.testcase @@ -0,0 +1,8 @@ +makearc7 - NULL radius +:memory: #use in-memory database +SELECT MakeArc(0, 0, NULL, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, NULL, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc8.testcase b/src/spatialite/test/sql_stmt_tests/makearc8.testcase new file mode 100644 index 0000000..430a352 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc8.testcase @@ -0,0 +1,8 @@ +makearc8 - text radius +:memory: #use in-memory database +SELECT MakeArc(0, 0, 'alpha', 30, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 'alpha', 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makearc9.testcase b/src/spatialite/test/sql_stmt_tests/makearc9.testcase new file mode 100644 index 0000000..c8aa2e5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makearc9.testcase @@ -0,0 +1,8 @@ +makearc9 - NULL start +:memory: #use in-memory database +SELECT MakeArc(0, 0, 100, NULL, 60); +1 # rows (not including the header row) +1 # columns +MakeArc(0, 0, 100, NULL, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle1.testcase b/src/spatialite/test/sql_stmt_tests/makecircle1.testcase new file mode 100644 index 0000000..42e6ea8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle1.testcase @@ -0,0 +1,8 @@ +makecircle1 - NULL cx +:memory: #use in-memory database +SELECT MakeCircle(NULL, 0, 100); +1 # rows (not including the header row) +1 # columns +MakeCircle(NULL, 0, 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle2.testcase b/src/spatialite/test/sql_stmt_tests/makecircle2.testcase new file mode 100644 index 0000000..677488c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle2.testcase @@ -0,0 +1,8 @@ +makecircle2 - text cx +:memory: #use in-memory database +SELECT MakeCircle('alpha', 0, 100); +1 # rows (not including the header row) +1 # columns +MakeCircle('alpha', 0, 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle3.testcase b/src/spatialite/test/sql_stmt_tests/makecircle3.testcase new file mode 100644 index 0000000..f4e5ba6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle3.testcase @@ -0,0 +1,8 @@ +makecircle3 - BLOB cx +:memory: #use in-memory database +SELECT MakeCircle(zeroblob(4), 0, 100); +1 # rows (not including the header row) +1 # columns +MakeCircle(zeroblob(4), 0, 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle4.testcase b/src/spatialite/test/sql_stmt_tests/makecircle4.testcase new file mode 100644 index 0000000..e06a91b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle4.testcase @@ -0,0 +1,8 @@ +makecircle4 - NULL cy +:memory: #use in-memory database +SELECT MakeCircle(0, NULL, 100); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, NULL, 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle5.testcase b/src/spatialite/test/sql_stmt_tests/makecircle5.testcase new file mode 100644 index 0000000..914dc7a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle5.testcase @@ -0,0 +1,8 @@ +makecircle5 - text cy +:memory: #use in-memory database +SELECT MakeCircle(0, 'alpha', 100); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, 'alpha', 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle6.testcase b/src/spatialite/test/sql_stmt_tests/makecircle6.testcase new file mode 100644 index 0000000..30e4b38 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle6.testcase @@ -0,0 +1,8 @@ +makecircle6 - BLOB cy +:memory: #use in-memory database +SELECT MakeCircle(0, zeroblob(4), 100); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, zeroblob(4), 100) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle7.testcase b/src/spatialite/test/sql_stmt_tests/makecircle7.testcase new file mode 100644 index 0000000..f4de667 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle7.testcase @@ -0,0 +1,8 @@ +makecircle7 - NULL radius +:memory: #use in-memory database +SELECT MakeCircle(0, 0, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, 0, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle8.testcase b/src/spatialite/test/sql_stmt_tests/makecircle8.testcase new file mode 100644 index 0000000..da72d3a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle8.testcase @@ -0,0 +1,8 @@ +makecircle8 - text radius +:memory: #use in-memory database +SELECT MakeCircle(0, 0, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, 0, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircle9.testcase b/src/spatialite/test/sql_stmt_tests/makecircle9.testcase new file mode 100644 index 0000000..fe1ef9c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircle9.testcase @@ -0,0 +1,8 @@ +makecircle9 - BLOB radius +:memory: #use in-memory database +SELECT MakeCircle(0, 0, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircle(0, 0, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector1.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector1.testcase new file mode 100644 index 0000000..bc92f38 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector1.testcase @@ -0,0 +1,8 @@ +makecircularsector1 - NULL cx +:memory: #use in-memory database +SELECT MakeCircularSector(NULL, 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(NULL, 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector10.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector10.testcase new file mode 100644 index 0000000..b4b9ad6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector10.testcase @@ -0,0 +1,8 @@ +makecircularsector - text start +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 'text', 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 'text', 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector11.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector11.testcase new file mode 100644 index 0000000..b9c7169 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector11.testcase @@ -0,0 +1,8 @@ +makecircularsector11 - BLOB start +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, zeroblob(4), 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, zeroblob(4), 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector12.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector12.testcase new file mode 100644 index 0000000..aba111e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector12.testcase @@ -0,0 +1,8 @@ +makecircularsector12 - NULL stop +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector13.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector13.testcase new file mode 100644 index 0000000..ed24589 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector13.testcase @@ -0,0 +1,8 @@ +makecircularsector13 - text stop +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector14.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector14.testcase new file mode 100644 index 0000000..9ea75ad --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector14.testcase @@ -0,0 +1,8 @@ +makecircularsector14 - BLOB stop +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector16.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector16.testcase new file mode 100644 index 0000000..2bc72bc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector16.testcase @@ -0,0 +1,8 @@ +makecircularsector16 - NULL srid +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector17.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector17.testcase new file mode 100644 index 0000000..882e0e8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector17.testcase @@ -0,0 +1,8 @@ +makecircularsector17 - text srid +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector18.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector18.testcase new file mode 100644 index 0000000..0b45c48 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector18.testcase @@ -0,0 +1,8 @@ +makecircularsector18 - BLOB srid +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector2.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector2.testcase new file mode 100644 index 0000000..59daeb7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector2.testcase @@ -0,0 +1,8 @@ +makecircularsector1 - text cx +:memory: #use in-memory database +SELECT MakeCircularSector('alpha', 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector('alpha', 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector20.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector20.testcase new file mode 100644 index 0000000..1997c47 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector20.testcase @@ -0,0 +1,8 @@ +makecircularsector20 - NULL step +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector21.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector21.testcase new file mode 100644 index 0000000..39b6f54 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector21.testcase @@ -0,0 +1,8 @@ +makecircularsector21 - TEXT step +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector22.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector22.testcase new file mode 100644 index 0000000..be8e4be --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector22.testcase @@ -0,0 +1,8 @@ +makecircularsector21 - BLOB step +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector3.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector3.testcase new file mode 100644 index 0000000..b02cd0b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector3.testcase @@ -0,0 +1,8 @@ +makecircularsector3 - BLOB cx +:memory: #use in-memory database +SELECT MakeCircularSector(zeroblob(4), 0, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(zeroblob(4), 0, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector4.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector4.testcase new file mode 100644 index 0000000..0e64d37 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector4.testcase @@ -0,0 +1,8 @@ +makecircularsector4 - NULL cy +:memory: #use in-memory database +SELECT MakeCircularSector(0, NULL, 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, NULL, 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector5.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector5.testcase new file mode 100644 index 0000000..57305c6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector5.testcase @@ -0,0 +1,8 @@ +makecircularsector5 - text cy +:memory: #use in-memory database +SELECT MakeCircularSector(0, 'alpha', 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 'alpha', 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector6.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector6.testcase new file mode 100644 index 0000000..71f3439 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector6.testcase @@ -0,0 +1,8 @@ +makecircularsector6 - BLOB cy +:memory: #use in-memory database +SELECT MakeCircularSector(0, zeroblob(4), 100, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, zeroblob(4), 100, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector7.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector7.testcase new file mode 100644 index 0000000..941b179 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector7.testcase @@ -0,0 +1,8 @@ +makecircularsector7 - NULL radius +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, NULL, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, NULL, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector8.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector8.testcase new file mode 100644 index 0000000..e52f8af --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector8.testcase @@ -0,0 +1,8 @@ +makecircularsector8 - text radius +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 'alpha', 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 'alpha', 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularsector9.testcase b/src/spatialite/test/sql_stmt_tests/makecircularsector9.testcase new file mode 100644 index 0000000..d7e8312 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularsector9.testcase @@ -0,0 +1,8 @@ +makecircularsector9 - NULL start +:memory: #use in-memory database +SELECT MakeCircularSector(0, 0, 100, NULL, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularSector(0, 0, 100, NULL, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe1.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe1.testcase new file mode 100644 index 0000000..89e02d6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe1.testcase @@ -0,0 +1,8 @@ +makecircularstripe1 - NULL cx +:memory: #use in-memory database +SELECT MakeCircularStripe(NULL, 0, 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(NULL, 0, 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe10.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe10.testcase new file mode 100644 index 0000000..aad1cfa --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe10.testcase @@ -0,0 +1,8 @@ +makecircularstripe10 - text start +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 'text', 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 'text', 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe11.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe11.testcase new file mode 100644 index 0000000..83e7435 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe11.testcase @@ -0,0 +1,8 @@ +makecircularstripe11 - BLOB start +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe12.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe12.testcase new file mode 100644 index 0000000..9aa47f4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe12.testcase @@ -0,0 +1,8 @@ +makecircularstripe12 - NULL stop +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe13.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe13.testcase new file mode 100644 index 0000000..a956d60 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe13.testcase @@ -0,0 +1,8 @@ +makecircularstripe13 - text stop +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe14.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe14.testcase new file mode 100644 index 0000000..81a4807 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe14.testcase @@ -0,0 +1,8 @@ +makecircularstripe14 - BLOB stop +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe16.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe16.testcase new file mode 100644 index 0000000..b81fc40 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe16.testcase @@ -0,0 +1,8 @@ +makecircularstripe16 - NULL srid +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe17.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe17.testcase new file mode 100644 index 0000000..0e3c95a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe17.testcase @@ -0,0 +1,8 @@ +makecircularstripe17 - text srid +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe18.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe18.testcase new file mode 100644 index 0000000..ab8c51a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe18.testcase @@ -0,0 +1,8 @@ +makecircularstripe18 - BLOB srid +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe2.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe2.testcase new file mode 100644 index 0000000..4ec059e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe2.testcase @@ -0,0 +1,8 @@ +makecircularstripe2 - text cx +:memory: #use in-memory database +SELECT MakeCircularStripe('alpha', 0, 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe('alpha', 0, 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe20.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe20.testcase new file mode 100644 index 0000000..0787576 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe20.testcase @@ -0,0 +1,8 @@ +makecircularstripe20 - NULL step +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe21.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe21.testcase new file mode 100644 index 0000000..64742e4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe21.testcase @@ -0,0 +1,8 @@ +makecircularstripe21 - TEXT step +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe22.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe22.testcase new file mode 100644 index 0000000..f917cde --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe22.testcase @@ -0,0 +1,8 @@ +makecircularstripe21 - BLOB step +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe24.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe24.testcase new file mode 100644 index 0000000..538e195 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe24.testcase @@ -0,0 +1,8 @@ +makecircularstripe24 - NULL radius #2 +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, NULL, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, NULL, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe25.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe25.testcase new file mode 100644 index 0000000..7d63d5b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe25.testcase @@ -0,0 +1,8 @@ +makecircularstripe25 - TEXT radius #2 +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 'alpha', 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 'alpha', 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe26.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe26.testcase new file mode 100644 index 0000000..02f1f6c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe26.testcase @@ -0,0 +1,8 @@ +makecircularstripe26 - BLOB radius #2 +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe3.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe3.testcase new file mode 100644 index 0000000..f4ac865 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe3.testcase @@ -0,0 +1,8 @@ +makecircularstripe3 - BLOB cx +:memory: #use in-memory database +SELECT MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe4.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe4.testcase new file mode 100644 index 0000000..3b6c9d0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe4.testcase @@ -0,0 +1,8 @@ +makecircularstripe4 - NULL cy +:memory: #use in-memory database +SELECT MakeCircularStripe(0, NULL, 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, NULL, 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe5.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe5.testcase new file mode 100644 index 0000000..6239d57 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe5.testcase @@ -0,0 +1,8 @@ +makecircularstripe5 - text cy +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 'alpha', 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 'alpha', 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe6.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe6.testcase new file mode 100644 index 0000000..3b93aea --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe6.testcase @@ -0,0 +1,8 @@ +makecircularstripe6 - BLOB cy +:memory: #use in-memory database +SELECT MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe7.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe7.testcase new file mode 100644 index 0000000..f3e72b3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe7.testcase @@ -0,0 +1,8 @@ +makecircularstripe7 - NULL radius +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, NULL, 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, NULL, 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe8.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe8.testcase new file mode 100644 index 0000000..ee428ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe8.testcase @@ -0,0 +1,8 @@ +makecircularstripe8 - text radius +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 'alpha', 90, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 'alpha', 90, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makecircularstripe9.testcase b/src/spatialite/test/sql_stmt_tests/makecircularstripe9.testcase new file mode 100644 index 0000000..6807a7b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makecircularstripe9.testcase @@ -0,0 +1,8 @@ +makecircularstripe9 - NULL start +:memory: #use in-memory database +SELECT MakeCircularStripe(0, 0, 100, 90, NULL, 60); +1 # rows (not including the header row) +1 # columns +MakeCircularStripe(0, 0, 100, 90, NULL, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse1.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse1.testcase new file mode 100644 index 0000000..1246386 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse1.testcase @@ -0,0 +1,8 @@ +makeellipse1 - NULL cx +:memory: #use in-memory database +SELECT MakeEllipse(NULL, 0, 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(NULL, 0, 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse10.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse10.testcase new file mode 100644 index 0000000..28b73a7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse10.testcase @@ -0,0 +1,8 @@ +makeellipse10 - NULL y_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse11.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse11.testcase new file mode 100644 index 0000000..94c583a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse11.testcase @@ -0,0 +1,8 @@ +makeellipse11 - text y_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse12.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse12.testcase new file mode 100644 index 0000000..5ad3eee --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse12.testcase @@ -0,0 +1,8 @@ +makeellipse12 - BLOB y_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse14.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse14.testcase new file mode 100644 index 0000000..08e481c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse14.testcase @@ -0,0 +1,8 @@ +makeellipse14 - NULL srid +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse15.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse15.testcase new file mode 100644 index 0000000..1587a9e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse15.testcase @@ -0,0 +1,8 @@ +makeellipse15 - text srid +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse16.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse16.testcase new file mode 100644 index 0000000..c402fcb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse16.testcase @@ -0,0 +1,8 @@ +makeellipse16 - BLOB srid +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse18.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse18.testcase new file mode 100644 index 0000000..75f24bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse18.testcase @@ -0,0 +1,8 @@ +makeellipse18 - NULL step +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse19.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse19.testcase new file mode 100644 index 0000000..2417b80 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse19.testcase @@ -0,0 +1,8 @@ +makeellipse19 - text step +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse2.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse2.testcase new file mode 100644 index 0000000..3f75c19 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse2.testcase @@ -0,0 +1,8 @@ +makeellipse2 - text cx +:memory: #use in-memory database +SELECT MakeEllipse('alpha', 0, 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse('alpha', 0, 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse20.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse20.testcase new file mode 100644 index 0000000..31ab5af --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse20.testcase @@ -0,0 +1,8 @@ +makeellipse20 - BLOB step +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse3.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse3.testcase new file mode 100644 index 0000000..7c2c196 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse3.testcase @@ -0,0 +1,8 @@ +makeellipse3 - BLOB cx +:memory: #use in-memory database +SELECT MakeEllipse(zeroblob(4), 0, 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(zeroblob(4), 0, 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse4.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse4.testcase new file mode 100644 index 0000000..f964f59 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse4.testcase @@ -0,0 +1,8 @@ +makecircle4 - NULL cy +:memory: #use in-memory database +SELECT MakeEllipse(0, NULL, 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, NULL, 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse5.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse5.testcase new file mode 100644 index 0000000..58de35f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse5.testcase @@ -0,0 +1,8 @@ +makeellipse5 - text cy +:memory: #use in-memory database +SELECT MakeEllipse(0, 'alpha', 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 'alpha', 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse6.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse6.testcase new file mode 100644 index 0000000..12f1b35 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse6.testcase @@ -0,0 +1,8 @@ +makeellipse6 - BLOB cy +:memory: #use in-memory database +SELECT MakeEllipse(0, zeroblob(4), 100, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, zeroblob(4), 100, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse7.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse7.testcase new file mode 100644 index 0000000..65ab5f2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse7.testcase @@ -0,0 +1,8 @@ +makeellipse7 - NULL x_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, NULL, 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, NULL, 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse8.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse8.testcase new file mode 100644 index 0000000..33cfa0e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse8.testcase @@ -0,0 +1,8 @@ +makeellipse8 - text x_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, 'alpha', 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, 'alpha', 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipse9.testcase b/src/spatialite/test/sql_stmt_tests/makeellipse9.testcase new file mode 100644 index 0000000..9e375bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipse9.testcase @@ -0,0 +1,8 @@ +makeellipse9 - BLOB x_axis +:memory: #use in-memory database +SELECT MakeEllipse(0, 0, zeroblob(4), 200); +1 # rows (not including the header row) +1 # columns +MakeEllipse(0, 0, zeroblob(4), 200) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc1.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc1.testcase new file mode 100644 index 0000000..481852e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc1.testcase @@ -0,0 +1,8 @@ +makeellipticarc1 - NULL cx +:memory: #use in-memory database +SELECT MakeEllipticArc(NULL, 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(NULL, 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc10.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc10.testcase new file mode 100644 index 0000000..096f177 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc10.testcase @@ -0,0 +1,8 @@ +makeellipticarc10 - text y_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 'alpha', 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 'alpha', 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc11.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc11.testcase new file mode 100644 index 0000000..8027237 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc11.testcase @@ -0,0 +1,8 @@ +makeellipticarc11 - BLOB y_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, zeroblob(4), 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, zeroblob(4), 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc12.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc12.testcase new file mode 100644 index 0000000..dd98508 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc12.testcase @@ -0,0 +1,8 @@ +makeellipticarc12 - NULL start +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, NULL, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, NULL, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc13.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc13.testcase new file mode 100644 index 0000000..3e97c72 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc13.testcase @@ -0,0 +1,8 @@ +makeellipticarc13 - text start +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 'alpha', 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 'alpha', 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc14.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc14.testcase new file mode 100644 index 0000000..9288210 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc14.testcase @@ -0,0 +1,8 @@ +makeellipticarc14 - blob start +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, zeroblob(4), 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, zeroblob(4), 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc15.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc15.testcase new file mode 100644 index 0000000..072d2ea --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc15.testcase @@ -0,0 +1,8 @@ +makeellipticarc15 - NULL stop +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc16.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc16.testcase new file mode 100644 index 0000000..955bbb1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc16.testcase @@ -0,0 +1,8 @@ +makeellipticarc15 - text stop +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc17.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc17.testcase new file mode 100644 index 0000000..0d5866f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc17.testcase @@ -0,0 +1,8 @@ +makeellipticarc17 - BLOB stop +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc19.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc19.testcase new file mode 100644 index 0000000..8d40682 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc19.testcase @@ -0,0 +1,8 @@ +makeellipticarc19 - NULL srid +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc2.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc2.testcase new file mode 100644 index 0000000..cc70152 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc2.testcase @@ -0,0 +1,8 @@ +makeellipticarc2 - text cx +:memory: #use in-memory database +SELECT MakeEllipticArc('alpha', 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc('alpha', 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc20.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc20.testcase new file mode 100644 index 0000000..0b46828 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc20.testcase @@ -0,0 +1,8 @@ +makeellipticarc20 - text srid +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc21.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc21.testcase new file mode 100644 index 0000000..f19ed7e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc21.testcase @@ -0,0 +1,8 @@ +makeellipticarc21 - BLOB srid +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc23.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc23.testcase new file mode 100644 index 0000000..282eae7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc23.testcase @@ -0,0 +1,8 @@ +makeellipticarc23 - NULL step +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc24.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc24.testcase new file mode 100644 index 0000000..b0a277e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc24.testcase @@ -0,0 +1,8 @@ +makeellipticarc24 - text step +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc25.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc25.testcase new file mode 100644 index 0000000..3868842 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc25.testcase @@ -0,0 +1,8 @@ +makeellipticarc25 - BLOB step +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc3.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc3.testcase new file mode 100644 index 0000000..21cf7ae --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc3.testcase @@ -0,0 +1,8 @@ +makeellipticarc3 - BLOB cx +:memory: #use in-memory database +SELECT MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc4.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc4.testcase new file mode 100644 index 0000000..bda33d8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc4.testcase @@ -0,0 +1,8 @@ +makeellipticarc4 - NULL cy +:memory: #use in-memory database +SELECT MakeEllipticArc(0, NULL, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, NULL, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc5.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc5.testcase new file mode 100644 index 0000000..2b9b8d6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc5.testcase @@ -0,0 +1,8 @@ +makeellipticarc5 - text cy +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 'alpha', 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 'alpha', 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc6.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc6.testcase new file mode 100644 index 0000000..c7d3023 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc6.testcase @@ -0,0 +1,8 @@ +makeellipticarc5 - NULL x_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, NULL, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, NULL, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc7.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc7.testcase new file mode 100644 index 0000000..fc7b351 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc7.testcase @@ -0,0 +1,8 @@ +makeellipticarc7 - text x_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 'alpha', 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 'alpha', 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc8.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc8.testcase new file mode 100644 index 0000000..829a17a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc8.testcase @@ -0,0 +1,8 @@ +makeellipticarc8 - BLOB x_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticarc9.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticarc9.testcase new file mode 100644 index 0000000..9efcbf1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticarc9.testcase @@ -0,0 +1,8 @@ +makeellipticarc9 - NULL y_axis +:memory: #use in-memory database +SELECT MakeEllipticArc(0, 0, 100, NULL, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticArc(0, 0, 100, NULL, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector1.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector1.testcase new file mode 100644 index 0000000..83d7bca --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector1.testcase @@ -0,0 +1,8 @@ +makeellipticsector1 - NULL cx +:memory: #use in-memory database +SELECT MakeEllipticSector(NULL, 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(NULL, 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector10.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector10.testcase new file mode 100644 index 0000000..a5c5cde --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector10.testcase @@ -0,0 +1,8 @@ +makeellipticsector10 - text y_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 'alpha', 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 'alpha', 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector11.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector11.testcase new file mode 100644 index 0000000..590963e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector11.testcase @@ -0,0 +1,8 @@ +makeellipticsector11 - BLOB y_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector12.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector12.testcase new file mode 100644 index 0000000..381da71 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector12.testcase @@ -0,0 +1,8 @@ +makeellipticsector12 - NULL start +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, NULL, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, NULL, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector13.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector13.testcase new file mode 100644 index 0000000..68f04d9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector13.testcase @@ -0,0 +1,8 @@ +makeellipticsector13 - text start +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 'alpha', 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 'alpha', 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector14.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector14.testcase new file mode 100644 index 0000000..236b2d5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector14.testcase @@ -0,0 +1,8 @@ +makeellipticsector14 - blob start +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, zeroblob(4), 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, zeroblob(4), 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector15.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector15.testcase new file mode 100644 index 0000000..c21e8ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector15.testcase @@ -0,0 +1,8 @@ +makeellipticsector15 - NULL stop +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector16.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector16.testcase new file mode 100644 index 0000000..cbb3b65 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector16.testcase @@ -0,0 +1,8 @@ +makeellipticsector15 - text stop +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector17.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector17.testcase new file mode 100644 index 0000000..c788a4e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector17.testcase @@ -0,0 +1,8 @@ +makeellipticsector17 - BLOB stop +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector19.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector19.testcase new file mode 100644 index 0000000..e62e91f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector19.testcase @@ -0,0 +1,8 @@ +makeellipticsector19 - NULL srid +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector2.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector2.testcase new file mode 100644 index 0000000..6f7e6e4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector2.testcase @@ -0,0 +1,8 @@ +makeellipticsector2 - text cx +:memory: #use in-memory database +SELECT MakeEllipticSector('alpha', 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector('alpha', 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector20.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector20.testcase new file mode 100644 index 0000000..06169f2 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector20.testcase @@ -0,0 +1,8 @@ +makeellipticsector20 - text srid +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector21.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector21.testcase new file mode 100644 index 0000000..5882167 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector21.testcase @@ -0,0 +1,8 @@ +makeellipticsector21 - BLOB srid +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector23.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector23.testcase new file mode 100644 index 0000000..93c68c3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector23.testcase @@ -0,0 +1,8 @@ +makeellipticsector23 - NULL step +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector24.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector24.testcase new file mode 100644 index 0000000..5931f93 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector24.testcase @@ -0,0 +1,8 @@ +makeellipticsector24 - text step +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha'); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector25.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector25.testcase new file mode 100644 index 0000000..6eae590 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector25.testcase @@ -0,0 +1,8 @@ +makeellipticsector25 - BLOB step +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector3.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector3.testcase new file mode 100644 index 0000000..4b0ad6e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector3.testcase @@ -0,0 +1,8 @@ +makeellipticsector - BLOB cx +:memory: #use in-memory database +SELECT MakeEllipticSector(zeroblob(4), 0, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(zeroblob(4), 0, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector4.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector4.testcase new file mode 100644 index 0000000..3efb988 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector4.testcase @@ -0,0 +1,8 @@ +makeellipticsector4 - NULL cy +:memory: #use in-memory database +SELECT MakeEllipticSector(0, NULL, 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, NULL, 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector5.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector5.testcase new file mode 100644 index 0000000..440edb7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector5.testcase @@ -0,0 +1,8 @@ +makeellipticsector5 - text cy +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 'alpha', 100, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 'alpha', 100, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector6.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector6.testcase new file mode 100644 index 0000000..758c807 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector6.testcase @@ -0,0 +1,8 @@ +makeellipticsector5 - NULL x_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, NULL, 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, NULL, 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector7.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector7.testcase new file mode 100644 index 0000000..887c348 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector7.testcase @@ -0,0 +1,8 @@ +makeellipticsector7 - text x_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 'alpha', 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 'alpha', 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector8.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector8.testcase new file mode 100644 index 0000000..10f62bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector8.testcase @@ -0,0 +1,8 @@ +makeellipticsector8 - BLOB x_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, zeroblob(4), 200, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, zeroblob(4), 200, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeellipticsector9.testcase b/src/spatialite/test/sql_stmt_tests/makeellipticsector9.testcase new file mode 100644 index 0000000..8555b4f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeellipticsector9.testcase @@ -0,0 +1,8 @@ +makeellipticsector9 - NULL y_axis +:memory: #use in-memory database +SELECT MakeEllipticSector(0, 0, 100, NULL, 30, 60); +1 # rows (not including the header row) +1 # columns +MakeEllipticSector(0, 0, 100, NULL, 30, 60) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makeline22.testcase b/src/spatialite/test/sql_stmt_tests/makeline22.testcase index 53ec0bf..87ed40e 100644 --- a/src/spatialite/test/sql_stmt_tests/makeline22.testcase +++ b/src/spatialite/test/sql_stmt_tests/makeline22.testcase @@ -1,8 +1,7 @@ -makeline - MULTIPOINT (error) +makeline - MULTIPOINT - invalid :memory: #use in-memory database -SELECT MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)")) +SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) 1 # rows (not including the header row) 1 # columns -MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)")) +AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) (NULL) - diff --git a/src/spatialite/test/sql_stmt_tests/makeline25.testcase b/src/spatialite/test/sql_stmt_tests/makeline25.testcase new file mode 100644 index 0000000..c188018 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline25.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XY valid - direct order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) +LINESTRING(1 2, 3 4) diff --git a/src/spatialite/test/sql_stmt_tests/makeline26.testcase b/src/spatialite/test/sql_stmt_tests/makeline26.testcase new file mode 100644 index 0000000..10ea0b3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline26.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYZM valid - reverse order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) +LINESTRING ZM(3 4 11 111, 1 2 10 100) diff --git a/src/spatialite/test/sql_stmt_tests/makeline27.testcase b/src/spatialite/test/sql_stmt_tests/makeline27.testcase new file mode 100644 index 0000000..f2db134 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline27.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYZ valid - reverse order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) +LINESTRING Z(3 4 11, 1 2 10) diff --git a/src/spatialite/test/sql_stmt_tests/makeline28.testcase b/src/spatialite/test/sql_stmt_tests/makeline28.testcase new file mode 100644 index 0000000..1d8a1a4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline28.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XY valid - reverse order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) +LINESTRING(3 4, 1 2) diff --git a/src/spatialite/test/sql_stmt_tests/makeline29.testcase b/src/spatialite/test/sql_stmt_tests/makeline29.testcase new file mode 100644 index 0000000..6296b6b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline29.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYM valid - reverse order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) +LINESTRING M(3 4 11, 1 2 10) diff --git a/src/spatialite/test/sql_stmt_tests/makeline30.testcase b/src/spatialite/test/sql_stmt_tests/makeline30.testcase new file mode 100644 index 0000000..6735656 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline30.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYZM valid - direct order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) +LINESTRING ZM(1 2 10 100, 3 4 11 111) diff --git a/src/spatialite/test/sql_stmt_tests/makeline31.testcase b/src/spatialite/test/sql_stmt_tests/makeline31.testcase new file mode 100644 index 0000000..f28ef46 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline31.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYZ valid - direct order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 1)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 1)) +LINESTRING Z(1 2 10, 3 4 11) diff --git a/src/spatialite/test/sql_stmt_tests/makeline32.testcase b/src/spatialite/test/sql_stmt_tests/makeline32.testcase new file mode 100644 index 0000000..570fbdc --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makeline32.testcase @@ -0,0 +1,7 @@ +makeline - MULTIPOINT (XYM valid - direct order) +:memory: #use in-memory database +SELECT AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 1)) +1 # rows (not including the header row) +1 # columns +AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 1)) +LINESTRING M(1 2 10, 3 4 11) diff --git a/src/spatialite/test/sql_stmt_tests/makepointz-null9.testcase b/src/spatialite/test/sql_stmt_tests/makepointz-null9.testcase new file mode 100644 index 0000000..ce86a8b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepointz-null9.testcase @@ -0,0 +1,7 @@ +makepointz-null9 +:memory: #use in-memory database +SELECT MakePointZ(26.0, 42.3150676015829, 'alpha', 3389) +1 # rows (not including the header row) +1 # columns +MakePointZ(26.0, 42.3150676015829, 'alpha', 3389) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon1.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon1.testcase new file mode 100644 index 0000000..1777a9b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon1.testcase @@ -0,0 +1,8 @@ +makepolygon - NULL exterior +:memory: #use in-memory database +SELECT MakePolygon(NULL); +1 # rows (not including the header row) +1 # columns +MakePolygon(NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon10.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon10.testcase new file mode 100644 index 0000000..bf7b801 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon10.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring exterior (not closed) +:memory: #use in-memory database +SELECT MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326)); +1 # rows (not including the header row) +1 # columns +MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon11.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon11.testcase new file mode 100644 index 0000000..58b1e7e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon11.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring exterior XY +:memory: #use in-memory database +SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1, 1 1)', 4326))); +1 # rows (not including the header row) +1 # columns +ST_AsText(MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1, 1 1)', 4326))) +POLYGON((1 1, 1 2, 2 2, 2 1, 1 1)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon12.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon12.testcase new file mode 100644 index 0000000..d2e5f26 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon12.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring exterior XYZ +:memory: #use in-memory database +SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))); +1 # rows (not including the header row) +1 # columns +ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))) +POLYGON Z((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon13.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon13.testcase new file mode 100644 index 0000000..0eac308 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon13.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring exterior XYM +:memory: #use in-memory database +SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))); +1 # rows (not including the header row) +1 # columns +ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))) +POLYGON M((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon14.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon14.testcase new file mode 100644 index 0000000..bd0511e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon14.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring exterior XYZM +:memory: #use in-memory database +SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326))); +1 # rows (not including the header row) +1 # columns +ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326))) +POLYGON ZM((1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon15.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon15.testcase new file mode 100644 index 0000000..7cdedda --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon15.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring NULL interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), NULL); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), NULL); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon16.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon16.testcase new file mode 100644 index 0000000..e62dc89 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon16.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring INTEGER interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon17.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon17.testcase new file mode 100644 index 0000000..1232789 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon17.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring DOUBLE interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon18.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon18.testcase new file mode 100644 index 0000000..314e605 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon18.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring TEXT interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha'); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha'); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon19.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon19.testcase new file mode 100644 index 0000000..0fa9c1e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon19.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring invalid BLOB interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4)); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon2.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon2.testcase new file mode 100644 index 0000000..2bd3b7d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon2.testcase @@ -0,0 +1,8 @@ +makepolygon - INTEGER exterior +:memory: #use in-memory database +SELECT MakePolygon(1); +1 # rows (not including the header row) +1 # columns +MakePolygon(1) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon20.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon20.testcase new file mode 100644 index 0000000..78a7381 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon20.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring invalid Point interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)')); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)')); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon21.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon21.testcase new file mode 100644 index 0000000..8f27696 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon21.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring invalid Polygon interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))')); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))')); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon22.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon22.testcase new file mode 100644 index 0000000..8b6d3fa --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon22.testcase @@ -0,0 +1,8 @@ +makepolygon - Linestring not closed interiors +:memory: #use in-memory database +SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))')); +1 # rows (not including the header row) +1 # columns +ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))')); +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon23.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon23.testcase new file mode 100644 index 0000000..d96e16c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon23.testcase @@ -0,0 +1,8 @@ +makepolygon - two holes +:memory: #use in-memory database +SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))'))); +1 # rows (not including the header row) +1 # columns +AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))'))); +POLYGON((1 1, 1 20, 20 20, 20 1, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon24.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon24.testcase new file mode 100644 index 0000000..0b5c6d9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon24.testcase @@ -0,0 +1,8 @@ +makepolygon - XYZ hole +:memory: #use in-memory database +SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))); +1 # rows (not including the header row) +1 # columns +AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))) +POLYGON Z((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon25.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon25.testcase new file mode 100644 index 0000000..1d5e563 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon25.testcase @@ -0,0 +1,8 @@ +makepolygon - XYM hole +:memory: #use in-memory database +SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))); +1 # rows (not including the header row) +1 # columns +AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))) +POLYGON M((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon26.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon26.testcase new file mode 100644 index 0000000..d4b4bcb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon26.testcase @@ -0,0 +1,8 @@ +makepolygon - XYZM hole +:memory: #use in-memory database +SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)'))); +1 # rows (not including the header row) +1 # columns +AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)'))) +POLYGON ZM((1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2), (2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon3.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon3.testcase new file mode 100644 index 0000000..fdf98f9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon3.testcase @@ -0,0 +1,8 @@ +makepolygon - DOUBLE exterior +:memory: #use in-memory database +SELECT MakePolygon(1.5); +1 # rows (not including the header row) +1 # columns +MakePolygon(1.5) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon4.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon4.testcase new file mode 100644 index 0000000..fda3f87 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon4.testcase @@ -0,0 +1,8 @@ +makepolygon - TEXT exterior +:memory: #use in-memory database +SELECT MakePolygon('alpha'); +1 # rows (not including the header row) +1 # columns +MakePolygon('alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon5.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon5.testcase new file mode 100644 index 0000000..9ac9245 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon5.testcase @@ -0,0 +1,8 @@ +makepolygon - invalid BLOB exterior +:memory: #use in-memory database +SELECT MakePolygon(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +MakePolygon(zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon7.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon7.testcase new file mode 100644 index 0000000..81d5981 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon7.testcase @@ -0,0 +1,8 @@ +makepolygon - Point exterior +:memory: #use in-memory database +SELECT MakePolygon(GeomFromText('POINT(1 1)', 4326)); +1 # rows (not including the header row) +1 # columns +MakePolygon(GeomFromText('POINT(1 1)', 4326)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon8.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon8.testcase new file mode 100644 index 0000000..f178690 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon8.testcase @@ -0,0 +1,8 @@ +makepolygon - Polygon exterior +:memory: #use in-memory database +SELECT MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326)); +1 # rows (not including the header row) +1 # columns +MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/makepolygon9.testcase b/src/spatialite/test/sql_stmt_tests/makepolygon9.testcase new file mode 100644 index 0000000..4336d1c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/makepolygon9.testcase @@ -0,0 +1,8 @@ +makepolygon - MultiLinestring exterior +:memory: #use in-memory database +SELECT MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326)); +1 # rows (not including the header row) +1 # columns +MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/mpointfromtext1.testcase b/src/spatialite/test/sql_stmt_tests/mpointfromtext1.testcase index 11223d5..d371c61 100644 --- a/src/spatialite/test/sql_stmt_tests/mpointfromtext1.testcase +++ b/src/spatialite/test/sql_stmt_tests/mpointfromtext1.testcase @@ -1,7 +1,7 @@ multipointfromtext1 :memory: #use in-memory database -SELECT AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)")) +SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)")) 1 # rows (not including the header row) 1 # columns -AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)")) -MULTIPOINT(-71 42,-70 41,-70 42,-70 42,-71 42) \ No newline at end of file +AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)")) +MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42) diff --git a/src/spatialite/test/sql_stmt_tests/mpointfromtext2.testcase b/src/spatialite/test/sql_stmt_tests/mpointfromtext2.testcase index f23c525..1362e22 100644 --- a/src/spatialite/test/sql_stmt_tests/mpointfromtext2.testcase +++ b/src/spatialite/test/sql_stmt_tests/mpointfromtext2.testcase @@ -1,7 +1,7 @@ multipointfromtext2 :memory: #use in-memory database -SELECT AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326)) +SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326)) 1 # rows (not including the header row) 1 # columns -AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326)) -MULTIPOINT(-71 42,-70 41,-70 42,-70 42,-71 42) \ No newline at end of file +AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326)) +MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint1.testcase b/src/spatialite/test/sql_stmt_tests/removepoint1.testcase new file mode 100644 index 0000000..93830b8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint1.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - NULL line +:memory: #use in-memory database +SELECT ST_RemovePoint(NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint10.testcase b/src/spatialite/test/sql_stmt_tests/removepoint10.testcase new file mode 100644 index 0000000..46a99eb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint10.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - negative index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint11.testcase b/src/spatialite/test/sql_stmt_tests/removepoint11.testcase new file mode 100644 index 0000000..9aeefc9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint11.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - invalid index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint12.testcase b/src/spatialite/test/sql_stmt_tests/removepoint12.testcase new file mode 100644 index 0000000..2344b7f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint12.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - not a line +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint13.testcase b/src/spatialite/test/sql_stmt_tests/removepoint13.testcase new file mode 100644 index 0000000..f0573da --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint13.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - XY +:memory: #use in-memory database +SELECT AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) +1 # rows (not including the header row) +1 # columns +AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) +LINESTRING(0 0, 1 1) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint14.testcase b/src/spatialite/test/sql_stmt_tests/removepoint14.testcase new file mode 100644 index 0000000..fa0c218 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint14.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - Z +:memory: #use in-memory database +SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) +1 # rows (not including the header row) +1 # columns +AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) +LINESTRING Z(0 0 1, 1 1 3) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint15.testcase b/src/spatialite/test/sql_stmt_tests/removepoint15.testcase new file mode 100644 index 0000000..692c593 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint15.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - M +:memory: #use in-memory database +SELECT AsText(RemovePoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1)) +1 # rows (not including the header row) +1 # columns +AsText(RemovePoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1)) +LINESTRING M(0 0 1, 1 1 3) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint16.testcase b/src/spatialite/test/sql_stmt_tests/removepoint16.testcase new file mode 100644 index 0000000..72ae779 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint16.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - ZM +:memory: #use in-memory database +SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) +1 # rows (not including the header row) +1 # columns +AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) +LINESTRING ZM(0 0 1 2, 1 1 3 4) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint2.testcase b/src/spatialite/test/sql_stmt_tests/removepoint2.testcase new file mode 100644 index 0000000..20643f3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint2.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - INTEGER line +:memory: #use in-memory database +SELECT ST_RemovePoint(1, NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(1, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint3.testcase b/src/spatialite/test/sql_stmt_tests/removepoint3.testcase new file mode 100644 index 0000000..bea5bf4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint3.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - DOUBLE line +:memory: #use in-memory database +SELECT ST_RemovePoint(1.7, NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(1.7, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint4.testcase b/src/spatialite/test/sql_stmt_tests/removepoint4.testcase new file mode 100644 index 0000000..8fd1965 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint4.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - TEXT line +:memory: #use in-memory database +SELECT ST_RemovePoint('alpha', NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint('alpha', NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint5.testcase b/src/spatialite/test/sql_stmt_tests/removepoint5.testcase new file mode 100644 index 0000000..e2c6b74 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint5.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - BLOB line +:memory: #use in-memory database +SELECT ST_RemovePoint(zeroblob(4), NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(zeroblob(4), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint6.testcase b/src/spatialite/test/sql_stmt_tests/removepoint6.testcase new file mode 100644 index 0000000..2c63534 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint6.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - NULL index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint7.testcase b/src/spatialite/test/sql_stmt_tests/removepoint7.testcase new file mode 100644 index 0000000..aaa089e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint7.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - DOUBLE index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint8.testcase b/src/spatialite/test/sql_stmt_tests/removepoint8.testcase new file mode 100644 index 0000000..fd84aa4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint8.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - TEXT index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/removepoint9.testcase b/src/spatialite/test/sql_stmt_tests/removepoint9.testcase new file mode 100644 index 0000000..e10c99e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/removepoint9.testcase @@ -0,0 +1,7 @@ +ST_RemovePoint() - BLOB index +:memory: #use in-memory database +SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/reverse3.testcase b/src/spatialite/test/sql_stmt_tests/reverse3.testcase index 9bef2a6..494e3db 100644 --- a/src/spatialite/test/sql_stmt_tests/reverse3.testcase +++ b/src/spatialite/test/sql_stmt_tests/reverse3.testcase @@ -1,7 +1,7 @@ reverse - GeometryCollection XY :memory: #use in-memory database -SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))); +SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))) -SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,12 11.5,13 10.5,11 10.5)),POLYGON((20 20,22 18,24 20,20 20),(21 19.5,22 18.5,23 19.5,21 19.5))) +AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))"))) +SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 11.3,13 10.5,11 10.5)),POLYGON((20 20,22 18,27 20,20 20),(21 19.5,22 18.5,27 19.5,21 19.5))) diff --git a/src/spatialite/test/sql_stmt_tests/reverse4.testcase b/src/spatialite/test/sql_stmt_tests/reverse4.testcase index a3905a6..e121deb 100644 --- a/src/spatialite/test/sql_stmt_tests/reverse4.testcase +++ b/src/spatialite/test/sql_stmt_tests/reverse4.testcase @@ -1,7 +1,7 @@ reverse - GeometryCollection XYZ :memory: #use in-memory database -SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); +SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) -SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(9 9 194,7 8 103,5 6 102,3 4 101),POLYGON((10 10 101,12 12 103,14 10 102,10 10 101),(11 10.5 100,12 11.5 102,13 10.5 101,11 10.5 100)),POLYGON((20 20 100,22 18 102,24 20 101,20 20 100),(21 19.5 101,22 18.5 103,23 19.5 102,21 19.5 101))) +AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) +SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(9 9 19,7 8 103,5 6 102,3 4 101),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 11.3 102,13 10.5 101,11 10.5 100)),POLYGON((20 20 100,22 18 102,27 20 101,20 20 100),(21 19.5 101,22 18.5 103,27 19.5 102,21 19.5 101))) diff --git a/src/spatialite/test/sql_stmt_tests/reverse5.testcase b/src/spatialite/test/sql_stmt_tests/reverse5.testcase index abce5fa..8afd01a 100644 --- a/src/spatialite/test/sql_stmt_tests/reverse5.testcase +++ b/src/spatialite/test/sql_stmt_tests/reverse5.testcase @@ -1,7 +1,7 @@ reverse - GeometryCollection XYM :memory: #use in-memory database -SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))); +SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))) -SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 12,5 6 11,3 4 10),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,12 11.5 12,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 12,24 20 11,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11))) +AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))) +SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 13,5 6 11,3 4 10),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 11.3 13,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 13,27 20 11,20 20 10),(21 19.5 11,22 18.5 13,27 19.5 13,21 19.5 11))) diff --git a/src/spatialite/test/sql_stmt_tests/reverse6.testcase b/src/spatialite/test/sql_stmt_tests/reverse6.testcase index e308372..c60a0c9 100644 --- a/src/spatialite/test/sql_stmt_tests/reverse6.testcase +++ b/src/spatialite/test/sql_stmt_tests/reverse6.testcase @@ -1,7 +1,7 @@ reverse - GeometryCollection XYZM :memory: #use in-memory database -SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); +SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); 1 # rows (not including the header row) 1 # columns -AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) -SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 194 13,7 8 103 12,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,12 11.5 102 12,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 12,24 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11))) +AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) +SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 19 13,7 8 103 13,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,13 13 103 13,15 10 102 13,10 10 101 11),(11 10.5 100 10,13 11.3 102 13,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 13,27 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,27 19.5 102 13,21 19.5 101 11))) diff --git a/src/spatialite/test/sql_stmt_tests/rtreealign1.testcase b/src/spatialite/test/sql_stmt_tests/rtreealign1.testcase new file mode 100644 index 0000000..1649a1b --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/rtreealign1.testcase @@ -0,0 +1,7 @@ +rtreealign - non-text first arg +:memory: #use in-memory database +SELECT RTreeAlign(0, 1, 2) +1 # rows (not including the header row) +1 # columns +RTreeAlign(0, 1, 2) +-1 \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_tests/rtreealign2.testcase b/src/spatialite/test/sql_stmt_tests/rtreealign2.testcase new file mode 100644 index 0000000..ceabaff --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/rtreealign2.testcase @@ -0,0 +1,7 @@ +rtreealign - non-int second arg +:memory: #use in-memory database +SELECT RTreeAlign("notreal", "non-int", 2) +1 # rows (not including the header row) +1 # columns +RTreeAlign("notreal", "non-int", 2) +-1 \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_tests/rtreealign3.testcase b/src/spatialite/test/sql_stmt_tests/rtreealign3.testcase new file mode 100644 index 0000000..ef20b67 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/rtreealign3.testcase @@ -0,0 +1,7 @@ +rtreealign - non-blob third arg +:memory: #use in-memory database +SELECT RTreeAlign("notreal", 2, 2) +1 # rows (not including the header row) +1 # columns +RTreeAlign("notreal", 2, 2) +-1 \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_tests/rtreealign4.testcase b/src/spatialite/test/sql_stmt_tests/rtreealign4.testcase new file mode 100644 index 0000000..2f38de7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/rtreealign4.testcase @@ -0,0 +1,7 @@ +rtreealign - null geometry +:memory: #use in-memory database +SELECT RTreeAlign("notreal", 2, zeroblob(100)) +1 # rows (not including the header row) +1 # columns +RTreeAlign("notreal", 2, zeroblob(100)) +1 \ No newline at end of file diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry10.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry10.testcase index a1e9933..3576cb7 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry10.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry10.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - POLYGON Z :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) -SRID=4326;POLYGON((-71 42 2,-70 41 2,-70 42 3,-70 42 4,-71 42 2)) +AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) +SRID=4326;POLYGON((-75 42 2,-70 39 2,-70 42 3,-70 42 4,-75 42 2)) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry11.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry11.testcase index e6bec32..74556f6 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry11.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry11.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - POLYGON M :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) -SRID=4326;POLYGONM((-71 42 2,-70 41 2,-70 42 3,-71 42 2)) +AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) +SRID=4326;POLYGONM((-75 42 2,-70 39 2,-70 42 3,-75 42 2)) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry12.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry12.testcase index 7804021..5fe0e9e 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry12.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry12.testcase @@ -1,10 +1,10 @@ Sanitize Geometry - POLYGON M - point combinations :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326))) -SRID=4326;POLYGONM((-70 42 2,-71 42 2,-70 41 2,-70 42 3,-71 42 2,-70 42 2)) +AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326))) +SRID=4326;POLYGONM((-70 42 2,-75 42 2,-70 39 2,-70 42 3,-75 42 2,-70 42 2)) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry6.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry6.testcase index 5a0959a..b0f494c 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry6.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry6.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - POLYGON :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326))) -SRID=4326;POLYGON((-71 42,-70 41,-70 42,-71 42)) +AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326))) +SRID=4326;POLYGON((-75 42,-70 39,-70 42,-75 42)) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry7.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry7.testcase index 5ff4b08..f233e3d 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry7.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry7.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - POLYGON ZM :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326))) -SRID=4326;POLYGON((-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0)) +AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326))) +SRID=4326;POLYGON((-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0)) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry8.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry8.testcase index 2f3b926..1c671f4 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry8.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry8.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - MULTIPOINT ZM :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) -SRID=4326;MULTIPOINT(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0) +AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) +SRID=4326;MULTIPOINT(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0) diff --git a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry9.testcase b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry9.testcase index 05dfdb1..d289fcd 100644 --- a/src/spatialite/test/sql_stmt_tests/sanitizeGeometry9.testcase +++ b/src/spatialite/test/sql_stmt_tests/sanitizeGeometry9.testcase @@ -1,9 +1,9 @@ Sanitize Geometry - LINESTRING ZM :memory: #use in-memory database -SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) +SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns -AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) -SRID=4326;LINESTRING(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0) +AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) +SRID=4326;LINESTRING(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0) diff --git a/src/spatialite/test/sql_stmt_tests/seconds.wav b/src/spatialite/test/sql_stmt_tests/seconds.wav new file mode 100644 index 0000000..0c85b2e Binary files /dev/null and b/src/spatialite/test/sql_stmt_tests/seconds.wav differ diff --git a/src/spatialite/test/sql_stmt_tests/setpoint1.testcase b/src/spatialite/test/sql_stmt_tests/setpoint1.testcase new file mode 100644 index 0000000..a1c7b90 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint1.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - NULL line +:memory: #use in-memory database +SELECT ST_SetPoint(NULL, NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(NULL, NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint10.testcase b/src/spatialite/test/sql_stmt_tests/setpoint10.testcase new file mode 100644 index 0000000..a4797ad --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint10.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - NULL Point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint11.testcase b/src/spatialite/test/sql_stmt_tests/setpoint11.testcase new file mode 100644 index 0000000..76bc1c5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint11.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - INTEGER Point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint12.testcase b/src/spatialite/test/sql_stmt_tests/setpoint12.testcase new file mode 100644 index 0000000..ea80854 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint12.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - DOUBLE Point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint13.testcase b/src/spatialite/test/sql_stmt_tests/setpoint13.testcase new file mode 100644 index 0000000..610db13 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint13.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - TEXT Point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint14.testcase b/src/spatialite/test/sql_stmt_tests/setpoint14.testcase new file mode 100644 index 0000000..7a4de6e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint14.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - BLOB Point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint15.testcase b/src/spatialite/test/sql_stmt_tests/setpoint15.testcase new file mode 100644 index 0000000..ed5d2fd --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint15.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - negative index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint16.testcase b/src/spatialite/test/sql_stmt_tests/setpoint16.testcase new file mode 100644 index 0000000..1ffe0e5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint16.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - invalid index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3, MakePoint(2, 0)) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3, MakePoint(2, 0)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint17.testcase b/src/spatialite/test/sql_stmt_tests/setpoint17.testcase new file mode 100644 index 0000000..01f5580 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint17.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - not a line +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint18.testcase b/src/spatialite/test/sql_stmt_tests/setpoint18.testcase new file mode 100644 index 0000000..01f5580 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint18.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - not a line +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint19.testcase b/src/spatialite/test/sql_stmt_tests/setpoint19.testcase new file mode 100644 index 0000000..9c16322 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint19.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - not a point +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint2.testcase b/src/spatialite/test/sql_stmt_tests/setpoint2.testcase new file mode 100644 index 0000000..7fc6e48 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint2.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - INTEGER line +:memory: #use in-memory database +SELECT ST_SetPoint(1, NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(1, NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint20.testcase b/src/spatialite/test/sql_stmt_tests/setpoint20.testcase new file mode 100644 index 0000000..ea2ee28 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint20.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - XY +:memory: #use in-memory database +SELECT AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) +1 # rows (not including the header row) +1 # columns +AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) +LINESTRING(0 0, 2 3, 1 1) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint21.testcase b/src/spatialite/test/sql_stmt_tests/setpoint21.testcase new file mode 100644 index 0000000..cca4bb9 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint21.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - Z +:memory: #use in-memory database +SELECT AsText(SetPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) +1 # rows (not including the header row) +1 # columns +AsText(SetPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) +LINESTRING Z(0 0 1, 2 3 0, 1 1 3) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint22.testcase b/src/spatialite/test/sql_stmt_tests/setpoint22.testcase new file mode 100644 index 0000000..599e725 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint22.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - M +:memory: #use in-memory database +SELECT AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) +1 # rows (not including the header row) +1 # columns +AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) +LINESTRING M(0 0 1, 2 3 0, 1 1 3) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint23.testcase b/src/spatialite/test/sql_stmt_tests/setpoint23.testcase new file mode 100644 index 0000000..959cd7f --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint23.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - ZM +:memory: #use in-memory database +SELECT AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) +1 # rows (not including the header row) +1 # columns +AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) +LINESTRING ZM(0 0 1 2, 2 3 0 0, 1 1 3 4) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint3.testcase b/src/spatialite/test/sql_stmt_tests/setpoint3.testcase new file mode 100644 index 0000000..6a754b5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint3.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - DOUBLE line +:memory: #use in-memory database +SELECT ST_SetPoint(1.5, NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(1.5, NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint4.testcase b/src/spatialite/test/sql_stmt_tests/setpoint4.testcase new file mode 100644 index 0000000..619f487 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint4.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - TEXT line +:memory: #use in-memory database +SELECT ST_SetPoint('alpha', NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint('alpha', NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint5.testcase b/src/spatialite/test/sql_stmt_tests/setpoint5.testcase new file mode 100644 index 0000000..098ab01 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint5.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - BLOB line +:memory: #use in-memory database +SELECT ST_SetPoint(zeroblob(4), NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(zeroblob(4), NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint6.testcase b/src/spatialite/test/sql_stmt_tests/setpoint6.testcase new file mode 100644 index 0000000..5e45910 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint6.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - NULL index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint7.testcase b/src/spatialite/test/sql_stmt_tests/setpoint7.testcase new file mode 100644 index 0000000..6d2b309 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint7.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - DOUBLE index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5, NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5, NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint8.testcase b/src/spatialite/test/sql_stmt_tests/setpoint8.testcase new file mode 100644 index 0000000..ecfa021 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint8.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - TEXT index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/setpoint9.testcase b/src/spatialite/test/sql_stmt_tests/setpoint9.testcase new file mode 100644 index 0000000..bce6590 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/setpoint9.testcase @@ -0,0 +1,7 @@ +ST_SetPoint() - BLOB index +:memory: #use in-memory database +SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) +1 # rows (not including the header row) +1 # columns +ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/test.webp b/src/spatialite/test/sql_stmt_tests/test.webp new file mode 100644 index 0000000..1ed03ca Binary files /dev/null and b/src/spatialite/test/sql_stmt_tests/test.webp differ diff --git a/src/spatialite/test/sql_stmt_tests/testFDO.sqlite b/src/spatialite/test/sql_stmt_tests/testFDO.sqlite index 345d3c9..6ea73eb 100644 Binary files a/src/spatialite/test/sql_stmt_tests/testFDO.sqlite and b/src/spatialite/test/sql_stmt_tests/testFDO.sqlite differ diff --git a/src/spatialite/test/sql_stmt_tests/todms1.testcase b/src/spatialite/test/sql_stmt_tests/todms1.testcase new file mode 100644 index 0000000..4913d9e --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms1.testcase @@ -0,0 +1,8 @@ +todms - NULL longitude +:memory: #use in-memory database +SELECT LongLatToDMS(NULL, 42.5); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(NULL, 42.5) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms10.testcase b/src/spatialite/test/sql_stmt_tests/todms10.testcase new file mode 100644 index 0000000..7968d0c --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms10.testcase @@ -0,0 +1,8 @@ +todms - invalid negative longitude +:memory: #use in-memory database +SELECT LongLatToDMS(-211.5, 42); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(-211.5, 42) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms11.testcase b/src/spatialite/test/sql_stmt_tests/todms11.testcase new file mode 100644 index 0000000..d4a2d19 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms11.testcase @@ -0,0 +1,8 @@ +todms - invalid positive longitude +:memory: #use in-memory database +SELECT LongLatToDMS(211.5, 42); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(211.5, 42) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms12.testcase b/src/spatialite/test/sql_stmt_tests/todms12.testcase new file mode 100644 index 0000000..7b4aabe --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms12.testcase @@ -0,0 +1,8 @@ +todms - invalid negative latitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, -92); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, -92) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms13.testcase b/src/spatialite/test/sql_stmt_tests/todms13.testcase new file mode 100644 index 0000000..144fe95 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms13.testcase @@ -0,0 +1,8 @@ +todms - invalid negative latitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, 92); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, 92) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms2.testcase b/src/spatialite/test/sql_stmt_tests/todms2.testcase new file mode 100644 index 0000000..9109272 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms2.testcase @@ -0,0 +1,8 @@ +todms - TEXT longitude +:memory: #use in-memory database +SELECT LongLatToDMS('alpha', 42.5); +1 # rows (not including the header row) +1 # columns +LongLatToDMS('alpha', 42.5) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms3.testcase b/src/spatialite/test/sql_stmt_tests/todms3.testcase new file mode 100644 index 0000000..589bd1a --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms3.testcase @@ -0,0 +1,8 @@ +todms - BLOB longitude +:memory: #use in-memory database +SELECT LongLatToDMS(zeroblob(4), 42.5); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(zeroblob(4), 42.5) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms4.testcase b/src/spatialite/test/sql_stmt_tests/todms4.testcase new file mode 100644 index 0000000..31cc5da --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms4.testcase @@ -0,0 +1,8 @@ +todms - Integer longitude +:memory: #use in-memory database +SELECT LongLatToDMS(11, 42.5); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11, 42.5) +42°30′00″N 011°00′00″E + diff --git a/src/spatialite/test/sql_stmt_tests/todms5.testcase b/src/spatialite/test/sql_stmt_tests/todms5.testcase new file mode 100644 index 0000000..b13affb --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms5.testcase @@ -0,0 +1,8 @@ +todms - Float longitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, 42.5); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, 42.5) +42°30′00″N 011°30′00″E + diff --git a/src/spatialite/test/sql_stmt_tests/todms6.testcase b/src/spatialite/test/sql_stmt_tests/todms6.testcase new file mode 100644 index 0000000..494a01d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms6.testcase @@ -0,0 +1,8 @@ +todms - NULL latitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, NULL); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, NULL) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms7.testcase b/src/spatialite/test/sql_stmt_tests/todms7.testcase new file mode 100644 index 0000000..cbad022 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms7.testcase @@ -0,0 +1,8 @@ +todms - TEXT latitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, 'alpha'); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, 'alpha') +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms8.testcase b/src/spatialite/test/sql_stmt_tests/todms8.testcase new file mode 100644 index 0000000..8fb72c0 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms8.testcase @@ -0,0 +1,8 @@ +todms - BLOB latitude +:memory: #use in-memory database +SELECT LongLatToDMS(11.5, zeroblob(4)); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(11.5, zeroblob(4)) +(NULL) + diff --git a/src/spatialite/test/sql_stmt_tests/todms9.testcase b/src/spatialite/test/sql_stmt_tests/todms9.testcase new file mode 100644 index 0000000..52a5a63 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/todms9.testcase @@ -0,0 +1,8 @@ +todms - Integer latitude +:memory: #use in-memory database +SELECT LongLatToDMS(-11.5, -42); +1 # rows (not including the header row) +1 # columns +LongLatToDMS(-11.5, -42) +42°00′00″S 011°30′00″W + diff --git a/src/spatialite/test/sql_stmt_tests/togars13.testcase b/src/spatialite/test/sql_stmt_tests/togars13.testcase new file mode 100644 index 0000000..08067f4 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/togars13.testcase @@ -0,0 +1,7 @@ +togars - GeometryCollection: Point + Linestring + Polygon +:memory: #use in-memory database +SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43), POLYGON((11 43, 11.05 43, 11.05 43.05, 11 43.05, 11 43)))", 4326)) +1 # rows (not including the header row) +1 # columns +ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43), POLYGON((11 43, 11.05 43, 11.05 43.05, 11 43.05, 11 43)))", 4326)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_tests/unsafeTriggers1.testcase b/src/spatialite/test/sql_stmt_tests/unsafeTriggers1.testcase new file mode 100644 index 0000000..e545a7d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/unsafeTriggers1.testcase @@ -0,0 +1,7 @@ +CountUnsafeTriggers() +:memory: #use in-memory database +SELECT CountUnsafeTriggers() +1 # rows (not including the header row) +1 # columns +CountUnsafeTriggers() +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats1.testcase b/src/spatialite/test/sql_stmt_tests/updatestats1.testcase new file mode 100644 index 0000000..8b4ff44 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats1.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - NULL, NULL +:memory: #use in-memory database +SELECT UpdateLayerStatistics(NULL, NULL); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics(NULL, NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats10.testcase b/src/spatialite/test/sql_stmt_tests/updatestats10.testcase new file mode 100644 index 0000000..9331cea --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats10.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, NULL +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', NULL); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats2.testcase b/src/spatialite/test/sql_stmt_tests/updatestats2.testcase new file mode 100644 index 0000000..9331cea --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats2.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, NULL +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', NULL); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', NULL); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats3.testcase b/src/spatialite/test/sql_stmt_tests/updatestats3.testcase new file mode 100644 index 0000000..46e65c8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats3.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, TEXT +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', 'column'); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', 'column'); +1 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats4.testcase b/src/spatialite/test/sql_stmt_tests/updatestats4.testcase new file mode 100644 index 0000000..8e87ad5 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats4.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - INT, TEXT +:memory: #use in-memory database +SELECT UpdateLayerStatistics(1, 'column'); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics(1, 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats5.testcase b/src/spatialite/test/sql_stmt_tests/updatestats5.testcase new file mode 100644 index 0000000..bea24a1 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats5.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - DOUBLE, TEXT +:memory: #use in-memory database +SELECT UpdateLayerStatistics(1.1, 'column'); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics(1.1, 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats6.testcase b/src/spatialite/test/sql_stmt_tests/updatestats6.testcase new file mode 100644 index 0000000..e630bae --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats6.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - BLOB, TEXT +:memory: #use in-memory database +SELECT UpdateLayerStatistics(zeroblob(4), 'column'); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics(zeroblob(4), 'column'); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats7.testcase b/src/spatialite/test/sql_stmt_tests/updatestats7.testcase new file mode 100644 index 0000000..4d59411 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats7.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, INT +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', 1); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', 1); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats8.testcase b/src/spatialite/test/sql_stmt_tests/updatestats8.testcase new file mode 100644 index 0000000..0525e41 --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats8.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, DOUBLE +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', 1.1); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', 1.1); +0 diff --git a/src/spatialite/test/sql_stmt_tests/updatestats9.testcase b/src/spatialite/test/sql_stmt_tests/updatestats9.testcase new file mode 100644 index 0000000..5d0463d --- /dev/null +++ b/src/spatialite/test/sql_stmt_tests/updatestats9.testcase @@ -0,0 +1,7 @@ +UpdateLayerStatistics - TEXT, BLOB +:memory: #use in-memory database +SELECT UpdateLayerStatistics('table', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +UpdateLayerStatistics('table', zeroblob(4)); +0 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.am b/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.am new file mode 100644 index 0000000..a889471 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.am @@ -0,0 +1,23 @@ + +EXTRA_DIST = loadxml1.testcase \ + loadxml2.testcase \ + loadxml3.testcase \ + loadxml4.testcase \ + loadxml5.testcase \ + loadxml6.testcase \ + storexml10.testcase \ + storexml11.testcase \ + storexml12.testcase \ + storexml13.testcase \ + storexml14.testcase \ + storexml15.testcase \ + storexml16.testcase \ + storexml1.testcase \ + storexml2.testcase \ + storexml3.testcase \ + storexml4.testcase \ + storexml5.testcase \ + storexml6.testcase \ + storexml7.testcase \ + storexml8.testcase \ + storexml9.testcase diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.in b/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.in new file mode 100644 index 0000000..a31c487 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/Makefile.in @@ -0,0 +1,459 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = test/sql_stmt_xmlsec_tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEOSCONFIG = @GEOSCONFIG@ +GEOS_CFLAGS = @GEOS_CFLAGS@ +GEOS_LDFLAGS = @GEOS_LDFLAGS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = loadxml1.testcase \ + loadxml2.testcase \ + loadxml3.testcase \ + loadxml4.testcase \ + loadxml5.testcase \ + loadxml6.testcase \ + storexml10.testcase \ + storexml11.testcase \ + storexml12.testcase \ + storexml13.testcase \ + storexml14.testcase \ + storexml15.testcase \ + storexml16.testcase \ + storexml1.testcase \ + storexml2.testcase \ + storexml3.testcase \ + storexml4.testcase \ + storexml5.testcase \ + storexml6.testcase \ + storexml7.testcase \ + storexml8.testcase \ + storexml9.testcase + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml1.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml1.testcase new file mode 100644 index 0000000..83750fd --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml1.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - NULL input +:memory: #use in-memory database +SELECT XB_LoadXML(NULL); +1 # rows (not including the header row) +1 # columns +XB_LoadXML(NULL) +(NULL) diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml2.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml2.testcase new file mode 100644 index 0000000..661ffba --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml2.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - INTEGER input +:memory: #use in-memory database +SELECT XB_LoadXML(1); +1 # rows (not including the header row) +1 # columns +XB_LoadXML(1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml3.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml3.testcase new file mode 100644 index 0000000..216eb1b --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml3.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - DOUBLE input +:memory: #use in-memory database +SELECT XB_LoadXML(1.1); +1 # rows (not including the header row) +1 # columns +XB_LoadXML(1.1) +(NULL) diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml4.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml4.testcase new file mode 100644 index 0000000..bc4aa13 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml4.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - BLOB input +:memory: #use in-memory database +SELECT XB_LoadXML(zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_LoadXML(zeroblob(4)) +(NULL) diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml5.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml5.testcase new file mode 100644 index 0000000..1682de7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml5.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - filepath input - invalid +:memory: #use in-memory database +SELECT XB_LoadXML('not-existing-books.xml'); +1 # rows (not including the header row) +1 # columns +XB_LoadXML('not-existing-books.xml') +(NULL) diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml6.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml6.testcase new file mode 100644 index 0000000..2e370b8 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/loadxml6.testcase @@ -0,0 +1,8 @@ +XB_LoadXML - filepath input - valid +:memory: #use in-memory database +SELECT Hex(XB_LoadXML('books.xml')); +1 # rows (not including the header row) +1 # columns +Hex(XB_LoadXML('books.xml')) +3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0A3C426F6F6B7320786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A6E6F4E616D657370616365536368656D614C6F636174696F6E3D22626F6F6B732E787364223E3C617574686F722066697273744E616D653D22436861726C657322206C6173744E616D653D224469636B656E73223E0A3C7469746C653E546865205069636B7769636B205061706572733C2F7469746C653E3C7469746C653E4F6C697665722054776973743C2F7469746C653E3C7469746C653E446176696420436F707065726669656C643C2F7469746C653E0A3C7469746C653E41204368726973746D6173204361726F6C3C2F7469746C653E3C7469746C653E486172642054696D65733C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D224E617468616E69656C22206C6173744E616D653D2248617774686F726E65223E3C7469746C653E54686520536361726C6574204C65747465723C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D2257696C6C69616D204D616B65706561636522206C6173744E616D653D22546861636B65726179223E3C7469746C653E56616E69747920466169723C2F7469746C653E0A3C7469746C653E546865204C75636B206F66204261727279204C796E646F6E3C2F7469746C653E3C2F617574686F723E3C617574686F722066697273744E616D653D224A6F7365706822206C6173744E616D653D22436F6E726164223E0A3C7469746C653E4C6F7264204A696D3C2F7469746C653E3C7469746C653E54686520536563726574204167656E743C2F7469746C653E3C7469746C653E4865617274206F66204461726B6E6573733C2F7469746C653E0A3C2F617574686F723E3C2F426F6F6B733E0A + diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml1.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml1.testcase new file mode 100644 index 0000000..5ceb4ff --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml1.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - NULL payload +:memory: #use in-memory database +SELECT XB_StoreXML(NULL, 'xml-test-out.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(NULL, 'xml-test-out.xml'); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml10.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml10.testcase new file mode 100644 index 0000000..9f6ecef --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml10.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, BLOB indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml11.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml11.testcase new file mode 100644 index 0000000..dfaa7c6 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml11.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); +1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml12.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml12.testcase new file mode 100644 index 0000000..e96c07b --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml12.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, zero-indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); +1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml13.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml13.testcase new file mode 100644 index 0000000..949fe38 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml13.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, NULL path +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml14.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml14.testcase new file mode 100644 index 0000000..a4d0849 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml14.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, INTEGER path +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml15.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml15.testcase new file mode 100644 index 0000000..fd52fd3 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml15.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, DOUBLE path +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml16.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml16.testcase new file mode 100644 index 0000000..0d772f7 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml16.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, BLOB path +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml2.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml2.testcase new file mode 100644 index 0000000..8a6d236 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml2.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - TEXT payload +:memory: #use in-memory database +SELECT XB_StoreXML('alpha', 'xml-test-out.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML('alpha', 'xml-test-out.xml'); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml3.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml3.testcase new file mode 100644 index 0000000..2ee4373 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml3.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - INTEGER payload +:memory: #use in-memory database +SELECT XB_StoreXML(1, 'xml-test-out.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(1, 'xml-test-out.xml'); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml4.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml4.testcase new file mode 100644 index 0000000..f872b83 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml4.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - DOUBLE payload +:memory: #use in-memory database +SELECT XB_StoreXML(1.2, 'xml-test-out.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(1.2, 'xml-test-out.xml'); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml5.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml5.testcase new file mode 100644 index 0000000..886f81e --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml5.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - invalid BLOB payload +:memory: #use in-memory database +SELECT XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); +0 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml6.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml6.testcase new file mode 100644 index 0000000..3ed60bb --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml6.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); +1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml7.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml7.testcase new file mode 100644 index 0000000..e173805 --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml7.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, NULL indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml8.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml8.testcase new file mode 100644 index 0000000..17b2b0b --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml8.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, TEXT indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); +-1 diff --git a/src/spatialite/test/sql_stmt_xmlsec_tests/storexml9.testcase b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml9.testcase new file mode 100644 index 0000000..eac187d --- /dev/null +++ b/src/spatialite/test/sql_stmt_xmlsec_tests/storexml9.testcase @@ -0,0 +1,7 @@ +XB_LoadXML - valid BLOB payload, DOUBLE indent +:memory: #use in-memory database +SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); +1 # rows (not including the header row) +1 # columns +XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); +-1 diff --git a/src/spatialite/test/stazioni_se.xml b/src/spatialite/test/stazioni_se.xml new file mode 100644 index 0000000..14574b6 --- /dev/null +++ b/src/spatialite/test/stazioni_se.xml @@ -0,0 +1,102 @@ + + + OSM Railway Stations - SLD test + SLD test - Point [Railway Stations] + an SLD complex variable style [depending on actual scale] + + OSM Railway Stations - SE test + + SE test - Point [Railway Stations] + a complex variable style [depending on actual scale] + + + Upper scale [simple circle, no label] + 500001 + 2500000 + + + + circle + + #8F00FF + + + 6 + + + + + Medium scale [bigger star, no label] + 500000 + + + + star + + #DC143C + + + #FFFFFF + 1 + + + 18 + + + + + Medium scale [bigger star + label] + 250000 + + + + star + + #DC143C + + + #FFFFFF + 1 + + + 18 + + + + + + Arial + 12 + normal + bold + + + + + 0.5 + 0.0 + + + 0 + 7 + + -45 + + + + 1 + + #FFFFFF + + + + #DC143C + + + + + + + diff --git a/src/spatialite/test/symbol.dxf b/src/spatialite/test/symbol.dxf new file mode 100644 index 0000000..ed6dcc7 --- /dev/null +++ b/src/spatialite/test/symbol.dxf @@ -0,0 +1,204 @@ + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +4D +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbBlockBegin + 2 +S04 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +S17 + 1 + + 0 +CIRCLE + 5 +4E +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbCircle + 10 +0.0 + 20 +0.0 + 30 +0.0 + 40 +0.4993929516959806 + 0 +ARC + 5 +4F +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbCircle + 10 +0.0 + 20 +0.0 + 30 +0.0 + 40 +0.4702375591390111 +100 +AcDbArc + 50 +1.352297952139852 + 51 +213.1028912230649 + 0 +ARC + 5 +50 +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbCircle + 10 +0.1224526574460816 + 20 +1.153653889613405 + 30 +0.0 + 40 +0.1224526574460816 +100 +AcDbArc + 50 +0.0 + 51 +180.0 + 0 +LINE + 5 +51 +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbLine + 10 +0.0 + 20 +0.4993929516959806 + 30 +0.0 + 11 +0.0 + 21 +1.153653889613405 + 31 +0.0 + 0 +ENDBLK + 5 +52 +330 +4A +100 +AcDbEntity + 8 +P212 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +INSERT + 5 +3F +330 +2 +100 +AcDbEntity + 8 +P212 +100 +AcDbBlockReference + 2 +S04 + 10 +1606600.703410613 + 20 +4832060.545362558 + 30 +9.65 + 41 +7.0 + 42 +7.0 + 43 +7.0 + 50 +53.0 + 0 +INSERT + 5 +3F +330 +2 +100 +AcDbEntity + 8 +P212 +100 +AcDbBlockReference + 2 +S04 + 10 +1606500.703410613 + 20 +4832560.545362558 + 30 +9.65 + 41 +7.0 + 42 +7.0 + 43 +7.0 + 50 +53.0 + 0 +ENDSEC + 0 +EOF diff --git a/src/spatialite/test/test-invalid.sqlite b/src/spatialite/test/test-invalid.sqlite new file mode 100644 index 0000000..cff6271 Binary files /dev/null and b/src/spatialite/test/test-invalid.sqlite differ diff --git a/src/spatialite/test/test.webp b/src/spatialite/test/test.webp new file mode 100644 index 0000000..1ed03ca Binary files /dev/null and b/src/spatialite/test/test.webp differ diff --git a/src/spatialite/test/test.wfs b/src/spatialite/test/test.wfs new file mode 100644 index 0000000..70c8852 --- /dev/null +++ b/src/spatialite/test/test.wfs @@ -0,0 +1 @@ +unknown207021072003-06-091010004000412105100.00.00.00002005-09-0120702100664642.36368551,5169415.33921845207021072003-06-091010004015912105100.00.00.00002005-09-0120702100664350.17953981,5171957.91565536207021072003-06-091010004016722105100.00.00.00002005-09-0120702100664964.44722454,5170571.24573168 \ No newline at end of file diff --git a/src/spatialite/test/testDescribeFeatureType.wfs b/src/spatialite/test/testDescribeFeatureType.wfs new file mode 100644 index 0000000..14ad944 --- /dev/null +++ b/src/spatialite/test/testDescribeFeatureType.wfs @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/spatialite/test/test_geos.sqlite b/src/spatialite/test/test_geos.sqlite new file mode 100644 index 0000000..336a1ef Binary files /dev/null and b/src/spatialite/test/test_geos.sqlite differ diff --git a/src/spatialite/test/test_helpers.h b/src/spatialite/test/test_helpers.h new file mode 100644 index 0000000..39475bc --- /dev/null +++ b/src/spatialite/test/test_helpers.h @@ -0,0 +1,80 @@ +#if __GNUC__ +#define UNUSED __attribute__ ((__unused__)) +#else +#define UNUSED +#endif + +#ifdef __WIN32 +/* + * Windows replacement for strcastr + * + * original code from: + * https://code.google.com/p/msysgit/source/browse/compat/strcasestr.c?repo=4msysgit&name=mingw-v1.5.2.4-devel + */ +static char * +strcasestr (const char *haystack, const char *needle) +{ + int nlen = strlen (needle); + int hlen = strlen (haystack) - nlen + 1; + int i; + + for (i = 0; i < hlen; i++) + { + int j; + for (j = 0; j < nlen; j++) + { + unsigned char c1 = haystack[i + j]; + unsigned char c2 = needle[j]; + if (toupper (c1) != toupper (c2)) + goto next; + } + return (char *) haystack + i; + next: + ; + } + return NULL; +} +#endif + +#ifdef __WIN32 +/* + * public domain strtok_r() by Charlie Gordon + * + * from comp.lang.c 9/14/2007 + * + * http://groups.google.com/group/comp.lang.c/msg/2ab1ecbb86646684 + * + * (Declaration that it's public domain): + * http://groups.google.com/group/comp.lang.c/msg/7c7b39328fefab9c + */ +static char * +strtok_r (char *str, const char *delim, char **nextp) +{ + char *ret; + + if (str == NULL) + { + str = *nextp; + } + + str += strspn (str, delim); + + if (*str == '\0') + { + return NULL; + } + + ret = str; + + str += strcspn (str, delim); + + if (*str) + { + *str++ = '\0'; + } + + *nextp = str; + + return ret; +} +#endif diff --git a/src/spatialite/test/test_under_valgrind.sh b/src/spatialite/test/test_under_valgrind.sh index 50e792c..331b229 100755 --- a/src/spatialite/test/test_under_valgrind.sh +++ b/src/spatialite/test/test_under_valgrind.sh @@ -1,6 +1,6 @@ #! /bin/bash for i in *; do if test -x $i -a -f $i -a $i != "test_under_valgrind.sh"; then - libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes $i + libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes --suppressions=geos-init.supp $i fi; done; diff --git a/src/spatialite/test/thunderstorm_mild.svg b/src/spatialite/test/thunderstorm_mild.svg new file mode 100644 index 0000000..70e6126 --- /dev/null +++ b/src/spatialite/test/thunderstorm_mild.svg @@ -0,0 +1,79 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/src/spatialite/test/tile000.jpeg b/src/spatialite/test/tile000.jpeg new file mode 100644 index 0000000..2d5da0c Binary files /dev/null and b/src/spatialite/test/tile000.jpeg differ diff --git a/src/spatialite/test/tile100.jpeg b/src/spatialite/test/tile100.jpeg new file mode 100644 index 0000000..cd5f51e Binary files /dev/null and b/src/spatialite/test/tile100.jpeg differ diff --git a/src/spatialite/test/tile101.jpeg b/src/spatialite/test/tile101.jpeg new file mode 100644 index 0000000..247ee24 Binary files /dev/null and b/src/spatialite/test/tile101.jpeg differ diff --git a/src/spatialite/test/tile110.jpeg b/src/spatialite/test/tile110.jpeg new file mode 100644 index 0000000..04f0f2a Binary files /dev/null and b/src/spatialite/test/tile110.jpeg differ diff --git a/src/spatialite/test/tile111.jpeg b/src/spatialite/test/tile111.jpeg new file mode 100644 index 0000000..92812e8 Binary files /dev/null and b/src/spatialite/test/tile111.jpeg differ diff --git a/test/memory_database.test.coffee b/test/memory_database.test.coffee index cca8e13..ebf3f99 100644 --- a/test/memory_database.test.coffee +++ b/test/memory_database.test.coffee @@ -35,3 +35,10 @@ describe 'SpatiaLite', -> throw err if err row.result.should.equal 'POLYGON((0 1, 0 10, 10 10, 10 1, 5 1, 0 1))' done() + + it 'should support geopackage', (done) -> + query = "SELECT HasGeoPackage() AS result" + db.get query (err, row) -> + throw err if err + row.result.should.equal 1 + done()